GSoC Ingame lobby

From Spring
Revision as of 20:20, 7 March 2012 by Abma (talk | contribs) (→What)
Jump to navigationJump to search

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.