Realm
of
Destiny

A free GPL multiplatform interactive internet/standalone game system
Powered by the Interactive Game Console Protocol

Hosted By

SourceForge.net Logo

It is currently Saturday April 20, 2024 08:57:29 AM UTC at the SourceForge webservers.

NEWS

The client infrastructure has undergone some significant design and is being implemented. I will be testing the steward code over the next while and will be looking to add JPG and PNG bitmap loaders in the near future. Once the infrastructure code is working and tested work on the protocol deisgn may begin. Anime Mayhem will be the test site for the server end of this task becuase the ColdC platform's object oriented nature coincides well with the design of the IGCP protocol.

Because the protocol itself is open and the client is open source any client based on the reference implementation will be able to speak to any server that adheres to the protocol specification. IGCP essentially specifies a client that forms a virtual machine that acts like a game console system with the ability to run JavaScript on it. The process is under complete control of the server hence a multiplayer environment may be established.


Abstract:

Realm of Destiny, ROD for short, is a client/server system for interactive games or multimedia presentations. A protocol between the server and client forms an abstract system that avoids system, architecture and hardware dependancies. The result is a game engine the works particularly well in an environemnt like the internet where computers are not made equally.

At the core of this system is an open protocol specification called the Interactive Game Console Protocol, or IGCP for short. IGCP is an object oriented protocol for exchanging state between the server and client economies. IGCP is packetized into frames and has mechanisms for error recovery. Similar to streaming video and audio codecs, the IGCP specification sends data using delta frames. For error recovery there are also multi frames (consolidated frames) and key frames (recovery/resynchronization frames). The reference client implementation is a GPL source code project that uses Allegro for low level system graphics and audio, and the Mozilla SpiderMonkey (JavaScript engine) for server controlled client-side scripting.

There are a few systems out there that do this sort of thing. Most of the ones I've seen are dedicated proprietary systems that cannot be expanded and require rather dedicated clients to use. Furthermore they usually also cost money.

Enter Realm of Destiny. Being a GNU Public License system, the code is available to anyone for review or modification as needed. ROD's IGCP Protocol allows a Story Server to express its output in a system indpendant manner thus freeing a designer of considerations arising from system compatibility issues. The IGCP Protocol is then used to communicate that information to a Client that renders the scene. Being GPL, the client source may readily be obtained and ported by people for other systems not already supported in any current release. The server uses a simple interaction language for game object interaction and the development environemnt, AGAPE (short for Adventure Game Author/Programmer Environment) is itself coded as an object economy present at the server end (meaning anyone with a client could remotely administer or design a game on any server that makes a point of giving them permissions to do so).

Though ROD is designed with adventure games in mind it's structure is actually useful for many kinds of interactive distributed tasks in such areas as education or presentations.

The abstract devices implemented in IGCP allow any kind of game from the olde standard MUD style games (you know those text-only things you have to use a mush client like Tinyfugue to access) to full 3D multimedia first-person adventure games.

The server end of the system only deals with the state of the game world and its translation into what sort of thing the player ought to be seeing. This information will then be transmitted to the client end as a series of object operations telling the client about changes of state in its local rendering economy. The client then uses its new state when rendering the next render frame. Dead reckoning is used to soften network lag at the client end on slower connections. The server never directly sends graphical information over the network connection though it might inform the client that such information is needed. The client uses a separate connection (either via existing FTP or HTTP standards) to download any such files, hence the actual file serving may be on a different machine than the story server.

Very similar to the operation of World-Wide-Web browsers, the clients implement cacheing to reduce bandwidth to downloading during gameplay as much as possible (though there are some cases that won't be avoidable such as new characters coming in with custom drawn likenesses).

If you want more information, pleae visit the Sourceforge Project Page. You can reach me via e-mail as gau_veldt@hotmail.com.

MORE TO COME... (Under construction)