New material developed at USC! These are some screenshots from our finale project for the Game Engine Development class.

The idea for this project was simple, build an editor (GGE Live Editor) for an existing engine written in C++. As it is well known, the user interface written for this language is not the best one. After testing some open source frameworks such as wxWidgets or QT we quickly decided that C# and the windows framework was the perfect choice. This decision brought us a new challenge, how do we communicate both applications. One option was to write a wrapper around the engine in C++ so that we could fully access the engine’s features from C#. The second approach was to embed the C++ application into a C# control and communicate both applications using sockets. Since we just had around 12 weeks to develop, test and publish the editor, we decided that the second technique was more suitable for our requirements.

The approach worked really well and we had the first prototype working in just one week, it is quite straightforward to implement and the results are impressive. Of course, we had some problems, basically related with the synchronization but nothing important.

This is the list of basic features implemented in the editor:

  • Create, edit, and delete entities, scene nodes, lights…
  • Viewer: static meshes, animated meshes, particle systems
  • Edit and save scenes with different screens
  • Different cameras (top, side, front, perspective)
  • Grids, picking, maya controls…
  • Scene manager and properties editor.
  • Edit and execute the game inside the editor with different controls (edit or game controls)
  • And much more!

The following gallery shows the final aspect of the editor: