Page 1 of 1

[Submitted] Level Editor

Posted: Tue May 09, 2006 1:38 am
by the_cX
I am seeking to once and for all create a publicly available, robust and extensible in-game level editor for OGRE. The editor will use the .NET 2.0 Framework as a base for its interface controls and render to a panel. The most important aspect to this software is that it will be designed with a component architecture. Essentially, the goal of a level editor is to add various types of entities to the world, and manipulate those entities. The component architecture will be realized such that each entity type, and the corresponding interface used to manipulate that entity, will be stored in individual dlls. New entity types may be created and used within the editor by merely dragging the exported dll into the application folder. This adds a major level of extensibility to the software because individual development teams may create their own entity types tailored exactly to their needs, and use them in the editor. As for exporting levels, a software interface will be provided for individuals to create their own exporters into a dll format. This will be much like the behavior we see in modern day 3D modeling packages. These exporters will show up individually within the application, and the user will be able to choose into which format they would like this level to be exported in. The reason for this is that maybe not everyone wants to use the DotScene format for the levels, or wants to use a slightly different version of it. This feature will put the exact format that the user wants, in the users hands. The programming language is not set in stone at this point. C++ and C# are the languages under the microscope; however the concept of interoperation between the two languages that .NET provides will be a major preliminary research endeavor.

I feel as though the importance of tools for game development need not be articulated. Please read this and you will be converted if you aren’t already convinced of this: ... 62602.html
Furthermore, one Paul Lalonde ( visited my school a couple months ago and gave a presentation. At one point he said: “it doesn’t matter how many bells and whistles your game engine has, if you don’t have tools, your game engine is useless.” I immediately thought of OGRE. It is such a wonderful engine but there is still no usable level editor for it! OGRE needs a level editor.

Why Me?
I am senior Computer Science student at Washington State University. I have taken a software engineering class and have done rather well in it. I have also taken a Human Computer Interaction class where we vigorously studied how to create and test usable human-computer interfaces. I did rather well in that also, and I plan on using this knowledge when gathering the requirements for this software. Lastly, the most important thing is that I have adequate knowledge in creating .NET applications using OGRE. Please download and run them.
Managed C++:

I would also like to add that I have experience using the System.Reflection namespace and the dynamic dll loading at runtime that it provides. I am also 100% confident I can do the job, be open minded, and do it right.

I would have liked to make a comprehensive schedule, and I plan if I get accepted, however this application is due very shortly. :/ I found out about this competition during my finals week, I was moving on Saturday and Sunday and the application submission on the google website has been down since this morning. However, some notable milestones will be: beginning gathering requirements, creating surveys dealing with the design and features of the proposed software and posting them on the OGRE forums, architecting the software, beginning construction. The individual milestones during the construction are dependant upon the actual requirements that are established during the inception stage therefore I can’t mention them now. However they will be a part of the schedule after they are established. Meetings with my mentor and the release of software increments will also be frequent.

This will be a great project for OGRE and the Summer of Code program. :)

Posted: Tue May 09, 2006 2:44 am
by batonrye
This looks promising. We need a good level editing tool.

Keep in mind that some of the users using this tool may have absolutely NO programming experience what so ever.

Posted: Tue May 09, 2006 4:15 am
by Lioric
Very good, This is a similar project of what i suggested to some applicants that they should focus on

Re: [Submitted] Level Editor

Posted: Tue May 09, 2006 5:27 am
by buddy
the_cX wrote:Proposal:
I would have liked to make a comprehensive schedule, and I plan if I get accepted, however this application is due very shortly. :/
The deadline was extended, so just in case you think there was no time, you can update your application now - there are additional 18 hours to use. Good luck.

Posted: Tue May 09, 2006 9:06 pm
by Gauntlet
Great idea! I was really hoping someone was making such a submission!
I really like the meshviewer you made, just downloaded it. The interface is great and it has some really neat features. Our artist (and of course also me) will be very thankful for this tool.

Hope you will code this editor. I recently read a interview with a developer of "Stranglehold" (a game directed by John Woo).
And they decided to use the UE3 not because of the renderpart (they even totally rewrote it), but because of the dev tools it has.

I know, Ogre3d is a graphics engine, but I don't see a reason why there shouldn't be any tools to make it even more "complete" if you know what I mean :)

Posted: Tue May 09, 2006 10:02 pm
by Game_Ender
Very cool, yet familiar idea. Some attempts at this, like Ogre Toolbox have already sprung up and died trying. The best one currently is Mage (Ogre forum thread). I am not sure this will work with the Summer Of Code but could you help finish off mage? I feel less fragmentation/remaking of the wheel might be better. Yet the mage author appears to have have left us for a little while and svn server is refusing access. So...

Good luck on your proposal.

Posted: Tue May 09, 2006 10:04 pm
by jacmoe
I don't care, really - as long as *someone* actually makes a working editor, and by that I mean a full-featured tool. A little competition doesn't hurt. :wink:

Posted: Thu May 11, 2006 6:02 am
by the_cX
thank you guys. :D

i hope the project gets accepted :)

Posted: Thu May 11, 2006 9:31 am
by tuan kuranes
The reason for this is that maybe not everyone wants to use the DotScene format for the levels, or wants to use a slightly different version of it.
Do you intend to provide a levels format or extend the DotScene Format ?
If yes do you intend to release a plugin that help loading it ?

Posted: Thu May 11, 2006 1:45 pm
by BlasterN
remember to do a Editor with Ogre Engine not only for ogre engine. So we can preview the final product any time.
And the best editors ever made are BSP editors like Worldcraft-Hammer GTKRadian, QuArk Unreal editor etc... so keep in mind their texture mode texture and entities format.

GL! I will follow your work, do you have web ?

Posted: Thu May 11, 2006 4:45 pm
I'll definetly follow this closely :)

DotScene support would be awesome, but you're right, many users want a slight different version.. so it'd be great if you can write/insert your own plugins aswell. (for example if you want to add extra info to the dotscene files.. like spawnplaces etc)

Posted: Thu May 18, 2006 9:57 pm
by the_cX
Do you intend to provide a levels format or extend the DotScene Format ?
If yes do you intend to release a plugin that help loading it ?

sorry for the delayed reply, ive been on vacation for a week.

to answer your question: time permitting, i may have a DotScene exporter that comes with the editor initially. however the important thing is that there will be a software interface provided for individuals to create and use their own exporters through a dll/drag-and-drop medium. this software interface will basically be a handle to the scene manager and/or any other relevant information necessary. at this point the individual creating the exporter may traverse the scenemanager and format+write to a file however and in whichever way they would like. this will make it simple for developers to create and use their own scene formats if desired. also, this is a feature i have yet to see proposed in other OGRE level editors.

...ideally, one of these DotScene format gurus would step up and quickly throw a DotScene exporter together. if i got the position, i would do good to advertise and communicate the need for this task. if nobody volunteered and time permitted, i would undertake this task myself.


ps. thanks for all the positive feedback on this thread and through pm's. i hope i get to do the project, i promise itll be great. :)

Posted: Thu May 18, 2006 11:58 pm
by Falagard
In addition to MAGE, there's also GOOF. Who is working on that again? :-)

Posted: Fri May 19, 2006 12:51 am
by jacmoe
<hi-jack>I will surely use the GOOF Framework for my own game-specific editor. :) </hi-jack>

Posted: Fri May 19, 2006 1:18 am
by Falagard
No intention to hi-jack, it's just that people keep on starting editor projects. If there are any projects that are ready to be contributed to (where the author isn't saying "no it's not ready for public release yet - the code is uhhhgly!) then perhaps it's a good idea to look at them.

A simple example is GOOF - I've been working on it for a year now, and it is ready for public consumption. It's not done, but the framework is in place and ready for people to start looking at it and contributing.

I'm just in the middle of finding it a home for source control, hopefully a couple days.

I like the idea of the GUI of a .NET application, since I've found that using CEGUI in the editor can be painful at times. However, in my own case I've separated the user interface from the actual editor logic such that I should be able to support something like 2 different UIs, CEGUI and wxWidgets for example.

I guess this did turn into a hi-jack, but more of a "why not collaborate instead of re-inventing the wheel".

Posted: Fri May 19, 2006 5:12 am
by the_cX
i feel wierd hi-jacking my own thread, but...

i read the wiki page for GOOF and have actually been following it since the beginning.

im still unclear whether GOOF is just a framework of classes, or an editor, or a framework made for an editor, or a framework with extra stuff for an editor but can also be a game, or <insert permutation here>.

i could never get the demos to work less a recondite series of steps including downloading extra stuff and running extra binaries (like the mapsplitter, etc). from my perspective as an interested user and having the mapsplitter not work exactly right, this kind of turned me off from investigating any further. what if i dont want to use the PLSM2 and split maps, etc, do i have to write a new plugin? if the editor can be run without using the PLSM2, itd be helpful to see it. the current demo of the MapEditor feels like it can only be used for the PLSM2.

"The editor system can be used without GOOF directly."
can GOOF be used without the editor system?

i personally dont particularly enjoy the user interface in the MapEditor. it does indeed have some great functionality, such as the linking/unlinking. however, how extensible is that user interface? furthermore, it certainly doesnt have that 'professional feel' to it.

every real editor user in the world will tell you that they customize their user interface, and its for a reason. how much does CEGUI afford user interface control docking, tearing, pinning, etc? zero to none, and if there is some primitive form of docking, its no where near as sexy and professional feeling as .NET.

a scenario: a team wants to create a new entity type that has to deal with ai, say like the 'hotspots' that halo uses. the 'hotspots' are placed by the level designers - when a cpu character comes under fire and wants to retreat, it searches for the next closest/safest hotspot to run to then runs to it. and thats why halo looks so cool when the enemies run back to some perfect spot behind a rock and fire at wasnt random, that spot was put there by a designer. anywho, say these hotspots have a whole array of properties that go along with them, like position, radius, horizontal/vertical safeness, etc. simple would it be for the MapEditor to create and incorporate the user interface to be used to manipulate this entity? your correct in that CEGUI is tough to use. my proposed software is to have each interface used for each type of entity to be stored in its own dll. just create a new project > user control, *hand draw out your buttons/textboxes/all other beautiful user interface controls that .NET 2.0 has*, define the callbacks, fill in some pure virtual functions that are called when this entity is added/removed from the scene, etc, copy that dll into the application folder, run the application, and bam can see and use the interface you just created for your new entity immediatly. thats the desired level of extensibility. can the current MapEditor do that? maybe, maybe not, i couldnt really tell from the reading. and even if it can....making ui in CEGUI sucks!

extra stuff: i know your busy developing GOOF, but uploading some documentation - architecture models, data flow diagrams, etc, would *really* help fill in the gaps for people like me that still dont exactly understand how it works yet.

moral of the story: i dont even know if im gonna get to work on it yet! :p if i do, and if GOOF can be used and will be helpful to use in my software, i will definetly use it and ask you to help me out. ;) however 'revamping' the existing editor is not an option for me, for which some of the reasons have been explained above. however if i dont get my project picked, i will enjoy this conversation and thread hi jacking nonetheless.

Posted: Fri May 19, 2006 6:10 am
by Falagard
Would you like me to answer these questions here or somewhere else as to not hijack further? The answers to all these questions will shock and amaze you ;-)

Posted: Fri May 19, 2006 6:38 am
by the_cX

Posted: Fri May 19, 2006 7:04 am
by Falagard
Replied ;-)