This is a large collaborative project with ethereal to build a multiplayer 3D space-based strategy game. It uses shaders and other modern OpenGL features, and code generation to automatically serialize classes (with the help of Boost.Serialization).
There is a server which runs and clients can connect to it. The client program has a menu system which is specified in XML, and animated with shaders. After connecting to the server, clients see a randomly generated set of stars and space ships. Star systems change halo colour according to their owner. One star system is given to the client, and the user can create ships there, then send them to other star systems and take them over. Trajectories are displayed, and there is also an in-system view that shows planets orbiting the star and ships present.
Any changes are visible to all connected clients, and a client can connect multiple times, receiving a new colour and a new star system each time. It's not a finished program, but it is a nice demo.
To build, run
mkdir build ; cd build ; cmake .. ; make. Dependencies are:
- OpenGL and GLEW (for graphics)
- SDL and SDL_image
- pugixml (included in source)
- Boost (threads, smart_ptr, signals, serialization, etc)