CEGUI

Something that was missing in Unity3D was the possibility to extend it's editor with new GUIs. There were wizards but that's more like "Actions" in Virtools. The 2.1 release changed the situation – you can now create new editor-windows using the C# and Unity's scripted GUI engine.

As results, creating custom editor stuff is probably much easier than in Virtools, where you need to use MFC (which I really don't enjoy using). Unity3D's GUI engine is really nice. You don't have a MVC (Model-View-Controller) style but logic and view are in the same place. I already read prior to Unity about such an approach which, I think, is called Immediate-Mode. (Oh, I think I just found that source again – it's a video about immediate GUIs). At first I was skeptical after having watched this a couple of years ago but when I did some tests, at the beginning of this year, with Unity3D, it really made me grin happily!

You quickly implement dynamic, complex and adapting GUIs. I tried something similar to what I did in Unity with CrazyEddie's GUI for OGRE3D which uses the classic retained mode. It comes with an editor and compared to Virtools it's really nice…  but  … I was slower in implementing a less functional version of my Unity3D prototype GUI. Interesting!

CEGUI test in Ogre CEGUI Editor

So let's get back to topic. There are two Editor-Extension projects for Unity3D where a visual front end for connecting logic are developed:

GraphEditor from Forest Johnson for i.e. creating procedural textures

GraphEditor for Unity3D

AngryAnt::Behave to compose behaviour trees

Visual Tree Editor for Unity3D

Another interesting topic … AngryAnt refers to aigamedev.com, a site I am reading frequently since it's early days, too. It's very interesting place and I often try to think how some of the presented stuff can be done inside Virtools. Of course, with a graph you can create a behaviour tree – but the interesting part is to dynamically manage (extend) such a tree. It can be done by manually managing Virtools scripts, as you can pause and resume them easily, but some high-level editors/-logic to do this or other FSM-like implementations, is something I am missing for years now.

Well, to resume: immediate GUIs are really interesting, so are Behaviour Trees or Graphs. I think C# makes it easier to develop such editors/frameworks …