Project Hamac
Project home: Project Hamac |
History
Having experience with first and second generation multiplayer projects in IRCMFD and MultiOrb, the CCCP Team were looking for multiplayer 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 plugin for Orbiter was made to obtain test results.
Method
Using bare TCP and UDP connections between server and clients, Project Hamac would rightly be a third-generation multiplayer 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.
Current status
Whilst some modifications were made to the code to make the system user-facing, mutliple 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 neighbour 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 plugin (hamac.dll), is publically available for users to experiment with or to deploy a public service.
See also
Multiplayer -- an overview of multiplayer addons for Orbiter