Project home: Project Hamac
Author: David 'dh219' Henderson
Having experience with first and second generation multi-player projects in IRCMFD and MultiOrb, the CCCP Team were looking for multi-player strategies for their in-development simulator Kosmos. Two methods were suggested. The first was developed wholly internally by Russell Smith based on plans for MultiOrb before it was shelved. The second, a 'thin client' system, had no previous developments to build on, so a plug-in for Orbiter was made to obtain test results.
Using bare TCP and UDP connections between server and clients, Project Hamac would rightly be a third-generation multi-player system, in the same bracket as OMP.
The concept of the thin client, however, means Orbiter is only used as the rendering engine and supplier of basic ship-local physics (rotation, thrust, docking etc.). A central physics server determines the dynamics, specifically the orbit, and controls the flow of data to the clients providing a jitter-free inter-user experience at the expense of slight lag when executing translations.
Whilst some modifications were made to the code to make the system user-facing, multiple problems were encountered when trying to extend the system to Orbiter (for example, when a ship is docked, it will not update its position at the same time as a neighbor making three-way docking impossible with this system), consequently development was stopped as the technique was proven as successful and the target system will not have these problems that need to be worked around.
The project, comprising the physics server (orbits) and the plug-in (hamac.dll), is publically available for users to experiment with or to deploy a public service.