Developer on SEGA/Nokia SNAP:
The code was compiled using gcc on CentOS and cvs for source control. It
would be good if somebody at Nokia could give you the cvs repository.
Kosaka was probably working on Solaris.
I was directly involved in PS2 and ngage games, primarily the 2k sports
games (Visual Concepts) and a series of Capcom games (Resident Evil
Outbreak, Monster Hunter, etc). Also a bunch of games by RedLynx on the
rUDP was in the version of the code I started with, so Kosaka wrote the
first version. File it under “those who do not understand TCP are forced
to reinvent it”
The bootstrap server was a load balancer/authentication server. It used
the same UDP transport as the KICS (game router) servers. The bootstrap
basically took a request, built a challenge reply containing where the
client should connect to KICS and encrypted it using blowfish and the
password as a shared secret. One wrinkle here is that each client got its
own UDP port on KICS — most people were used to game servers using a
particular port, SNAPcom didn’t do that.
220.127.116.11 according to legend was Kosaka’s desktop Sun workstation.
The ops people were extremely annoyed that he didn’t use DNS (rightfully
so). Getting around this may be a serious problem.
The differences between the games, at very least, is the game class id.
Multiple game class ids can be served by the same bootstrap/KICS.
SNAPcom also allowed game-specific servers to be written (for custom
matchmaking or persistence or…) and you’re unlikely to have any of that.