GSoC Ingame lobby: Difference between revisions
lobby should run as the same process |
|||
| Line 5: | Line 5: | ||
== What == | == What == | ||
A new lobby should be implemented with customization and control in mind, using Lua scripting and reusing Spring codebase when possible. | A new lobby should be implemented with customization and control in mind, using Lua scripting and reusing Spring codebase when possible. For the lobby itself luasocket could be used and it is then implemented in lua to allow easy customizing. For loading game / map an additional lua state should be added. | ||
Optionally, the engine's start screen should be replaced and integrated with it. | Optionally, the engine's start screen should be replaced and integrated with it. | ||
Revision as of 20:20, 7 March 2012
GSoC idea: Basic ingame lobby
Why
All existing Spring interfaces (lobbies) are either difficult to customize for game developers or have a different look and feel from the game itself and require focus switch from the game itself to operate.
What
A new lobby should be implemented with customization and control in mind, using Lua scripting and reusing Spring codebase when possible. For the lobby itself luasocket could be used and it is then implemented in lua to allow easy customizing. For loading game / map an additional lua state should be added.
Optionally, the engine's start screen should be replaced and integrated with it.
Required skills
- Knowledge of C++
- Knowledge of Lua
- Knowledge of Lua API/C bindings
- Knowledge of basic OpenGL programming
Difficulty
Estimated: hard
Technical details
- ensure Spring can clean up properly
- ensure Spring can change game and map during program runtime (requires that some singletons be converted to Spring's *handler pattern)
- The lobby API should reuse/be identical to spring's LuaUI where possible ( GL calls, access to game infos )
- to prevent Spring <-> lobby crash propagations they should run as separate processes, with lobby overlaying on top of Spring's UI, the only exception could be made for start screen.
- create a new Lua context or initalize current context earlier in the code and rewrite Spring's start interface using Lua scripting.
There is some potential of re-using/adapting libSpringLobby for the server interaction. Contact koshi in our IRC/Lobby channels if you are interested.