Shogo: Progress Report

Go to the Linux-sectionGo to the Mac-section


29-September-1999: Progress update by Thomas Frieden

 

For the last few weeks, our efforts on Shogo concentrated on getting a working standalone server for Amiga and Macintosh. On the 16th of September, this was achieved when for the first time, a PC client was able to connect to a networked game hosted on an Amiga. One of the few bugs that was left in the server was very strange-looking: the gun pickups were too large, and sticking with one end in the ground. (Of course, it's fixed now. Wasn't easy to find, though).

The motive behind getting the server to work in standalone mode was simple. The game consists of several parts: server, client, renderer, and two game-specific "shells" (libraries of objects for the game). The standalone server can run with only two parts: the server (of course), and one of the shells. So, instead of building the client first, which requires, among others, a working renderer (which is the most complicated part of all), we went for the server. It's currently only a shell program, so debugging is relatively easy. Plus, the combination of a PC client and an Amiga server ensures that the engine is "endian clean".

Motorola processors, in contrast to Intel, use big endian, meaning the highest byte in a 16 bit or 32 bit number comes first (like in human-readable numbers). Little endian reverses this order. So, on a Motorola processor, the hexadecimal number 0xDEADBEEF is stored DE AD BE EF, while on a PC, it's EF BE AD DE. Now, if data blocks are transfered from from a PC to an Amiga, you'll have to make sure that incoming blocks are corrected.

Before even compiling the server, we scanned through the source code, identifying potential problems, and correcting them. Luckily, we've got all but one (which we caught later). This was one of the most time-consuming parts of the whole process.

The first compile was a static version; everything was compiled into one large binary. But, to be able to use modules later, we had to think of something to be able to use a "dynamic linking" scheme. Shogo uses the windows DLL concept (so does Heretic 2, btw), so we came up with an 'amigaized' version, making it possible for Shogo (and of course Heretic 2) to use mods (modifications to the game, found mainly on the internet) if the source code for them is available. It will also be possible for Amiga and Mac programmers to write mods of their own.

OK, off to build the client.

 


To top of pageBack