I've spent about 500 hours on a project to port and implement a modern version of the classic game xtank in BlitzMax. For those of you unfamiliar with xtank, it is a multiplayer tank combat game where players design vehicles and duke it out in a maze-like arena.
The original game was designed to run on a bank of xterm clients, in essence treating the game server like a machine with (say) 8 monitors and 8 keyboards. All processing of input and generation of output was handled on the server, and the clients were responsible only for displaying the game output. The game only worked on a LAN. Performance was great.
This architecture is archaic, and I envision something akin to a more traditional client/server setup. Each player would run the game on their PC, and communication would be handled by a central server whose main responsibility would be to relay messages between the clients. The game would be playable over the internet, and would have the interactive multiplayer feel of bzFlag (a pretty cool interactive online tank combat game not entirely dissimilar to xtank in some respects).
The creators of bzflag have created a very slick environment where you rarely notice lag and vehicle movement feels very smooth, but the differences between xtank and bzflag make me wonder if the same will be possible for xtank. In xtank, vehicles move quickly, making sudden, sharp turns, and their precise location can be very clearly seen on the screen. And the vehicles shoot a lot of bullets. In bzflag, by contrast, tanks are slow, lumbering vehicles, with limited motion and slow, plodding shots. The graphic style is 3D, making it more difficult to visually pinpoint the exact location of a vehicle. Because xtank vehicles change direction so rapidly and frequently, even very short lags can cause dead reckoning algorithms to go wrong, making a vehicle appear to jump around a fair bit.
I feel I have a respectable architecture in place, but I am not getting satisfactory results even on my own machine running just two clients -- pretty much the absolute best case scenario. I am coming to the conclusion that the nature of the game may make implementation impractical, and so I bring this question to the forum:
Is is possible to implement a multi-player highly interactive rapid-paced arcade like game that plays well over the Internet? Are there any good examples out there? Can it be done in BlitzMax?
The original game was designed to run on a bank of xterm clients, in essence treating the game server like a machine with (say) 8 monitors and 8 keyboards. All processing of input and generation of output was handled on the server, and the clients were responsible only for displaying the game output. The game only worked on a LAN. Performance was great.
This architecture is archaic, and I envision something akin to a more traditional client/server setup. Each player would run the game on their PC, and communication would be handled by a central server whose main responsibility would be to relay messages between the clients. The game would be playable over the internet, and would have the interactive multiplayer feel of bzFlag (a pretty cool interactive online tank combat game not entirely dissimilar to xtank in some respects).
The creators of bzflag have created a very slick environment where you rarely notice lag and vehicle movement feels very smooth, but the differences between xtank and bzflag make me wonder if the same will be possible for xtank. In xtank, vehicles move quickly, making sudden, sharp turns, and their precise location can be very clearly seen on the screen. And the vehicles shoot a lot of bullets. In bzflag, by contrast, tanks are slow, lumbering vehicles, with limited motion and slow, plodding shots. The graphic style is 3D, making it more difficult to visually pinpoint the exact location of a vehicle. Because xtank vehicles change direction so rapidly and frequently, even very short lags can cause dead reckoning algorithms to go wrong, making a vehicle appear to jump around a fair bit.
I feel I have a respectable architecture in place, but I am not getting satisfactory results even on my own machine running just two clients -- pretty much the absolute best case scenario. I am coming to the conclusion that the nature of the game may make implementation impractical, and so I bring this question to the forum:
Is is possible to implement a multi-player highly interactive rapid-paced arcade like game that plays well over the Internet? Are there any good examples out there? Can it be done in BlitzMax?