Description I caught the c++ bug hard and fast a little over a year ago. I played with OpenGL for a bit and at some point decided to try my hand at a game engine. I spent about 4 months on it and spat out a game called Alien Defense (http://www.nitrousbutterflygames.com).
That was a huge learning curve and I decided to continue with the engine from there. My core concern was writing some better editing tools as that was done last with Alien Defense and became a real hassle. So I wanted the engine to be solid/stable/easy to use and have a really nice editor. My first stop was a GUI system. After looking around and not finding what I wanted I wrote my own from the ground up. The game we are currently working on uses a 3D tile system, so the editor has full control for editing a square tile by edges/faces and painting textures to tile faces.
The image above is a snapshot from within the engine showing the GUI system and the 3D tiles behind it. It also shows the light editor and light object. The engine has actually been modified quite a bit with new features since that shot. Here is a breakdown of what I've thrown in there.
- GUI System
- Resource Package System with external editor
- devIL for images
- Lua Scripting Manager
- Ogg Streaming Music
3D Tile Editing
- Light Editor
- Entity Browser/Editor
- Tile Editor
- Texture Browser
It looks great! I am a big fan of a 3d tile system done right.
Your year of dedication is clearly paying off in some apparently very satisfying artifacts. I remember making GUIs in c++/opengl as well. That is one real lacking I see in the constructs is no standard for GUI programming. Hopefully as Java and C# become more popular where GUI is a part of the core framework we will see acessory GUIs easier, but we do need some common construct for in game interfaces I think.
I hope your dedication continues for a good long time without burning you out
Thanks for the feedback Nomad. I certainly agree that a common GUI system is severely lacking for games/3D development. Creating my own, however, was a huge learning experience that I would certainly do again if I had it to do over.
Here are some more screenshots of the editor (large):
Hallway Angled Tiles More Angled Tiles Angle Editor Entity Property Editor
The last shot showing the Entity Property Editor is a dynamically generated scroll list of GUI controls for entity properties. Every entity registers property controls that have an internal values bound to them. Upon selection a list of property controls are sent to the edit window where they are created into GUI elements and sorted into an editable list. Just implimented this and am rather proud of how it works.
I certainly hope I don't burn out anytime soon either, but I get the feeling that if I do it will be like a friggin supernova.
Remember to spend the time to polish this project to a high sheen. A good project to look back on is very helpful in maintaining motivation down the road.
When building the hallway and other such structures, do you have a way to copy sections of tiles and repeat them or mirror them?
Currently no. I do plan to implement a copy/paste feature to copy properties from one tile and apply it to another. Mirroring would be a good idea too that I had not really thought of. You can currently modify multiple tiles in one go as the tile editor will apply changes to all selected tiles. There are alot of smaller things I plan to impliment to speed up production that are on my to-do list.