Saturday, September 15, 2007

Ortho Viewports

So I've implemented the 3 standard ortho viewports that are found in almost all editors. It only took me about an hour in total to get it done including compile times. All the viewport code worked, I just needed to add specific camera controls to handle each specific viewport. Everything else just worked automagically. I am having one problem with the translate tool if you start it in one window and then continue its motion in another window but that'll get solved.

The controls still need to be refined but they work. It's just a matter of tweaking at this point. I'm also going to try and list out a defined set of tasks that I've completed for each update so I can see the internal progress myself.

Change Log:
  • A front/side/top orthographic viewport is shown on the main page
  • The actual Entity that was clicked is selected now instead of the parent object.
  • The Translate/Rotate gizmos check the object and its parent object for the required properties
  • The Translate/Rotate gizmos now cache the selected scene objects that support the requirements so that they can simply be looped over instead of checking the requirements each frame.
  • Deleting an Entity no longer takes its parent object (usually a SceneNode) and the children of that parent with it.
  • The ResourceBrowser no longer shows a bounding box after the first object is changed.
  • Viewports now support camera styles to define their movement types: Free, Front, Side, Top

Wednesday, September 12, 2007


So not much has visually changed in the editor but again, lots of behind the scenes refactoring has taken place. I've created an internal OgreScene which is responsible for creating and updating all of the various managers that go along with it. Any plugin can create their own scene and they'll get gizmos and SceneObjects and a selection manager all for free right now. It's worked out well for the ResourceBrowser and the Entity Editor in that they can create their own OgreScene and they will end up with a movable camera as well as selection and gizmos. Eventually, each OgreScene will be able to turn certain features on and off at will to customize the particular scene.

I've enhanced the entity editor a bit which ended up creating a lot more wrapping around the Ogre objects. The properties/commands setup has worked out very well. I've had to add an additional feature which I'm calling "associated objects". These would be things like bones which make up an entity and attached objects. I've managed to convert all the Ogre specific code over to use the SceneObject system in the ResourceBrowser and in the EntityEditor.

I've also recently moved twice in the past month which has created a lot of running around for me. But I think I'm fairly settled now which is nice for a change. I'm hoping that I'll be able to actually get some real coding done now which will be nice. I'm really trucking along with the editor to try and get as much functionality in there as I can so that eventually, the entire game will be all data driven which means I can recruit a bunch of people to help put together some art and media and then some designers to actually piece it all together.

Doug is hard at work on some map media which I'm really looking forward to seeing. He's put together an awesome looking tree so far which I'll post next time once I ask if he minds posting the pic he sent me. It's a WIP so he wasn't pleased with it but I think that it looks really awesome. So we'll see whether he can finish it or if I can post the WIP version.

I did add the ability to preview ParticleSystems inside the ResourceBrowser. This again fell out of the SceneObject system as it was a few lines of code. The main thing here though is that the actual thing could be anything from a particle system to an entire prefabbed human base with 14 different buildings in it and people moving around inside. It doesn't matter to the ResourceBrowser.