Monday, March 08, 2010
First Look
in Framework for Game Engine ToolsI’ve now implemented most of the groundwork and undoable create/delete actions. With some test buttons my level editor currently looks like this:

Tiger-tank truck!
About a week ago I sent a mail to Floh and asked him to clarify how he wanted the command system to be designed. In his answer he told about extending their NIDL system to generate both C++ and C# code, and then send serializable message objects between the two sides. As I have to get a usable level editor until the last milestone, I have already implemented my own design for the message/command system. It won’t meet their standards, but it will get the work done.
Though my goal is to code something that can be used for the Nebula 3 system. So I’ll aim to finish my level editor with base functionality and meet my requirements till the last milestone, and then start anew implementing his solution. I won’t have much time then but I’ll try to get at least the communication/messaging part done.
My current implementation looks like this:
There is three threads working, the main thread for user interface (View), one for receiving/sending data through the network (TcpConnection) and the last one taking care of received data in the inbox (MessageParser). The message parser will only manage thread-safe containers to avoid collisions.
Actions and commands will start through the user interface controls, and then be executed or sent to the Nebula viewer.
At this side it’s mostly interface controls that I haven’t implemented.
Here I got just one extra thread for the communication except for the viewer application threads. This part mostly just awaits XML commands from the C# tool, and then let the CommandHandler extract and forward the data to its respective instance for processing.
What I haven’t coded here is the LevelLoader and some ObjectManager methods.



















