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

Hosted By

It is currently Monday March 19, 2018 14:33:49 PM 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).