Been meaning to do this for a long time. If you have any further questions about it feel free to ask me as I've probably missed something.
The basic premise of this project is to create a cross-platform sequel to the MMO game SubSpace which is currently played using the Continuum Client ( http://getcontinuum.com ). This game is over 10 years old and well due an update!
The goal is to augment the existing 2D graphics with 3D enviroment to enable new modes of play (think cross between asteroids and paper mario) whilst retaining the fun game play of the original. The current aim is to make a client that has the same functionality as the existing one then to extend it by adding new features.
One important aim is that i must run on older computers as well as newer computers. So OpenGL backwards compatabilitly is important.
Some techniques I have used that may be of interest are:
- There is an mesh abstraction so meshs can be created regardless of your VBO support.
- I also have ported a Milkshake3D Loader from C++/opengl to c#/opentk.
- There is a texture and model manager.
- There is alot of code dealing with rotation of objects in 3D space in a 2D plane.
- Languages C# and C++
- C# for game logic.
- OpenTK is used for all ingame graphics.
- Low Level Network code including reliable Subspace UDP implementation is written in C++.
All the interesting code is in the SVN client folder under my branch. The trunk is pretty old at the moment looking to merge it in a few days.
The Demo is not playable in any meaning full sence of the word.
Arrows - move
Esc - quit
pgup/pgdn - zoom
t/y - rotate view
enter = open chat console
This is my first real 3D graphics project and its been a really steep learning curve. I started with the Tao Framework but found OpenTK much easier and far far more logical. The little things like being able to easily write text to the screen make such a difference! The project was started in Jan 2008 and so far is the result of as a conservative estimate around 400 hours of work (mainly learning time)