Google

MAGE - Level editor

A place to show off your latest screenshots and for people to comment on them. Only start a new thread here if you have some nice images to show off!

Moderators: Moderators, OGRE Team

MAGE - Level editor

Postby rewinder » Fri Aug 12, 2005 9:44 am

Hi all.
Our team is working on level editor for our game. We call it MAGE (Multi-purpose Abstract Game Editor). When we started to develop it we keep in mind one thing: reusability. Our goal is make it as abstract and multiporposional as possible.
Before we thought it will be internal tool and we didn't going to show it to public. But now we think that it will be good for community to have such tool, so after some time we need for testing we are planning to release sources.
It is very unstable now, but it content all things we planned to develop:
- property system
- event system (borrowed from CEGUI)
- object hierarchy system

We are using Qt 4.0 for GUI, and it is main 3rd party dependency. In other hand, MAGE can be very easily ported to Linux and Mac.

Main disadvantages are:
- Ugly API. It really needs some refactoring.
- Undocumented and uncommented code. Our skills in English are very low, and it is one of our main problems.

So, there is a lot of work to do. But now MAGE does it's main job: load plugin which contents tools, objects, loaders/savers and give this arsenal to user.
Developers can easily write their own plugins for their projects, so core framework (GUI, renderer, input, etc) are premanent, but concrete type of objects and tools are loaded from shared libraries. So, we can say that MAGE is a framework for your own level editor.

We are looking forward for your comments and suggestions and we are going to release sources after about 2 weeks.

Screenshot: http://rewinder.studiodva.com/mage.jpg

WBR, rewinder
Studio "DVA" Team
User avatar
rewinder
Regular
 
Posts: 69
Joined: Fri Sep 24, 2004 5:15 am
Location: Omsk / Russia

Postby spookyboo » Fri Aug 12, 2005 10:06 am

Rewinder,

Good initiative, although I have mixed feelings with another editor. There are several projects that are still WIP, but none of them really delivered the goods. I don't blame anyone; we are all doing this in our spare time, but I hope one of these projects really reaches the finish. I wish you at least good luck with the project.
User avatar
spookyboo
Silver Sponsor
Silver Sponsor
 
Posts: 880
Joined: Tue Jul 06, 2004 5:57 am

Postby skullfire » Fri Aug 12, 2005 7:45 pm

Great work man. Though, if Maleficus releases the .Net version, this project could be ported to that, taking advantage of several components such as the property editor and well... everything the .net BCL has to offer.
I may have alzheimer, but at least I dont have alzheimer.
User avatar
skullfire
Regular
 
Posts: 150
Joined: Sat Mar 19, 2005 7:51 pm
Location: San Jose, Costa Rica

Postby rewinder » Fri Aug 12, 2005 8:27 pm

I don't blame anyone; we are all doing this in our spare time, but I hope one of these projects really reaches the finish.

No, working on our game project (which is about 70% finished) and on MAGE is our regular work so it gives (at least to us) hope in good result of project.

I wish you at least good luck with the project.

Thanks for warm words :wink:

Great work man. Though, if Maleficus releases the .Net version, this project could be ported to that, taking advantage of several components such as the property editor and well... everything the .net BCL has to offer.

Maybe, maybe... But we develop all our GUI using Qt and don't know mutch about .Net technology. I think property editor and other components can be easily implemented in Qt too, so it makes no sense. But if anyone wants to port MAGE to .Net, you are welcome :D .
User avatar
rewinder
Regular
 
Posts: 69
Joined: Fri Sep 24, 2004 5:15 am
Location: Omsk / Russia

Postby Maleficus » Fri Aug 12, 2005 8:32 pm

skullfire wrote:Great work man. Though, if Maleficus releases the .Net version, this project could be ported to that, taking advantage of several components such as the property editor and well... everything the .net BCL has to offer.


That might be a pain, since mono's System.Windows.Forms is still in development and more or less unusable. I imagine they're using GTK for windowing (since it's crossplatform), and while there are GTK bindings for .NET/Mono, I have no clue how one would get Ogre working with them. Sounds like an interesting project though :)

edit- oh, they used QT. I'm not sure bindings even exist for it. It might though.
Maleficus
Regular
 
Posts: 116
Joined: Sat Jul 30, 2005 11:11 am
Location: Vancouver, B.C. Canada

Postby rewinder » Sat Aug 13, 2005 10:56 am

oh, they used QT. I'm not sure bindings even exist for it. It might though.

I don't think that using third layer over native windowing system is a good way. Qt already abstracted from concrete platform, so why you like .NET so much?
User avatar
rewinder
Regular
 
Posts: 69
Joined: Fri Sep 24, 2004 5:15 am
Location: Omsk / Russia

Postby Chris Jones » Sat Aug 13, 2005 11:46 am

i like .net too. the editor im currently making uses the .net framework (written in C#)

its very easy to use, dont have to worry about memory leaks etc
the GUI system is quick and easy to use. its very fast to create working forms. its perfect for editors!
User avatar
Chris Jones
Veteran
 
Posts: 1714
Joined: Tue Apr 05, 2005 1:11 pm
Location: Gosport, South England

Re: MAGE - Level editor

Postby jacmoe » Sat Aug 13, 2005 4:05 pm

rewinder wrote:Our team is working on level editor for our game. We call it MAGE (Multi-purpose Abstract Game Editor). When we started to develop it we keep in mind one thing: reusability. Our goal is make it as abstract and multiporposional as possible.

This is a very good idea! :)

rewinder wrote:Before we thought it will be internal tool and we didn't going to show it to public. But now we think that it will be good for community to have such tool, so after some time we need for testing we are planning to release sources.

Very appreciated! :D
There is a lot of editors in progress right now, but none of them are released or usable as is.
It looks as if your editor is going to be the first one out. :)

rewinder wrote:It is very unstable now, but it content all things we planned to develop:
- property system
- event system (borrowed from CEGUI)
- object hierarchy system

This is more features than any WIP Ogre editor. :wink:

rewinder wrote:We are using Qt 4.0 for GUI, and it is main 3rd party dependency. In other hand, MAGE can be very easily ported to Linux and Mac.

Even better! 8)

rewinder wrote:Main disadvantages are:
- Ugly API. It really needs some refactoring.
- Undocumented and uncommented code. Our skills in English are very low, and it is one of our main problems.

If you decide to open-source it, and give it a proper open-source home (like ogreaddons or Berlios) - this could be improved upon by a lot of english speaking users and/or competent programmers. :wink:

rewinder wrote:So, there is a lot of work to do. But now MAGE does it's main job: load plugin which contents tools, objects, loaders/savers and give this arsenal to user.

This is great news! :D

rewinder wrote:Developers can easily write their own plugins for their projects, so core framework (GUI, renderer, input, etc) are premanent, but concrete type of objects and tools are loaded from shared libraries. So, we can say that MAGE is a framework for your own level editor.

It looks as if you guys did an excellent job! :)

rewinder wrote:We are looking forward for your comments and suggestions and we are going to release sources after about 2 weeks.

:shock:
I will be watching this space, that's for sure! :P
/* when invited to a free lunch, you should not complain about the quality of the caviar */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, Fueled by Passion.
Ogre AppWizards - project wizards for Visual Studio and Code::Blocks.
User avatar
jacmoe
OGRE Moderator
OGRE Moderator
 
Posts: 17493
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark

Postby Maleficus » Sat Aug 13, 2005 10:28 pm

rewinder wrote:I don't think that using third layer over native windowing system is a good way.


I agree.

rewinder wrote: Qt already abstracted from concrete platform, so why you like .NET so much?


I'm not the one who suggested the idea :) . And I do think it would be more trouble than it's worth. As for .NET, I'm not a fanboy, there's things I don't like. For example, the garbage collector annoys me. Garbage collection is for newbies who don't know how to delete their objects.

Let's just say, I'm more specifically a c# fanboy than a .NET fanboy ;) . My ideal language would be an unmanaged version of c#.

But this isn't a topic for this thread. I'll be quiet now :) .

Neat project, guys :)
Maleficus
Regular
 
Posts: 116
Joined: Sat Jul 30, 2005 11:11 am
Location: Vancouver, B.C. Canada

Postby rewinder » Sun Aug 14, 2005 10:26 am

There is a lot of editors in progress right now, but none of them are released or usable as is.

Ruefully, but MAGE in it's current state is very far from complete product. It works now, but our main goal is robust and intuitive API for toolset developers (like Ogre have), and we working on it. Another aspect is user-friendly interface and comfortable object editing (like MAX/Maya have).
Anyway, work is in progress.

If you decide to open-source it, and give it a proper open-source home (like ogreaddons or Berlios) - this could be improved upon by a lot of english speaking users and/or competent programmers.

Yes, of course. Now I'm waiting for project approval in sourceforge.net. :)

But this isn't a topic for this thread. I'll be quiet now

Yes, I'm quiet too :D As many peolpe as many tasties.
User avatar
rewinder
Regular
 
Posts: 69
Joined: Fri Sep 24, 2004 5:15 am
Location: Omsk / Russia

Postby BenO » Sun Aug 14, 2005 11:56 am

i heard Garbage collection could be faster than manual deletion :o
Benjamin RIGAUD
Software Engineer
User avatar
BenO
Regular
 
Posts: 241
Joined: Mon Apr 18, 2005 5:03 pm

Postby rewinder » Sun Aug 14, 2005 1:31 pm

We just implemented exact object picking (using polygon-to-ray collision detection) and handy objrect movement/rotation/scale (like Maya does):
Image

First test of toolset for our game:
Image
User avatar
rewinder
Regular
 
Posts: 69
Joined: Fri Sep 24, 2004 5:15 am
Location: Omsk / Russia

Postby Olex » Sun Aug 14, 2005 3:43 pm

Any chance that you could develop your editor in such a way, that later, someone (could be me :wink: ) would develop a physics editor out of it?

P.S. By physics editor, I mean being able to create basic shapes, rotate, move, of course, do some funky relation based activities (like adding a joint, motor, etc.), and then later being able to easily read all of it, to produce a physics xml description.
User avatar
Olex
Veteran
 
Posts: 591
Joined: Fri Apr 08, 2005 6:08 pm
Location: Ukrainian in Kentucky, USA

Postby Chris Jones » Mon Aug 15, 2005 12:06 am

i was thinking about that for my editor, im making my own file format to hold all info about the scene including physics, AI, sound etc etc

maybe this could be done with this editor too?
User avatar
Chris Jones
Veteran
 
Posts: 1714
Joined: Tue Apr 05, 2005 1:11 pm
Location: Gosport, South England

Postby Dilon » Sat Aug 20, 2005 1:17 pm

Our team has released first version of Mage. You can gain access to it through the sf.net with help the CVS:
MAGE
How to use CVS at sf.net
Note, that the code is too raw and required for refactoring.
some items from the TODO list:
-- Camera Controller(smothly moving, orthographic projection, predefined views)
-- Оbject Selector(different kinds of object picking)
-- Interface improving
-- Docs, new toolsets
If somebody want work with us at this project - welcome ;)
Dilon
Newcomer
 
Posts: 12
Joined: Thu Jul 14, 2005 9:44 am
Location: Russia

Postby Dilon » Sat Aug 20, 2005 1:30 pm

And some ideas about incapsulating such thing as AI, physics, etc at the editor. I think it's possible, but after some architecture remaking... maybe it will be realised like a toolsets plugins..
Dilon
Newcomer
 
Posts: 12
Joined: Thu Jul 14, 2005 9:44 am
Location: Russia

Postby jacmoe » Sat Aug 20, 2005 2:46 pm

The Qt/Windows Open Source Edition only supports the MinGW compiler.

What QT should I get in order to use it with msvc 2003 .NET ? :)
/* when invited to a free lunch, you should not complain about the quality of the caviar */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, Fueled by Passion.
Ogre AppWizards - project wizards for Visual Studio and Code::Blocks.
User avatar
jacmoe
OGRE Moderator
OGRE Moderator
 
Posts: 17493
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark

Postby Guest » Sat Aug 20, 2005 4:40 pm

BenO wrote:i heard Garbage collection could be faster than manual deletion :o


it is not
Guest
 

Postby Chris Jones » Sat Aug 20, 2005 6:00 pm

isnt garbage collection slower? (im not sure what that question really related to but anyway)

ive read on some website about garbage collection halting a program for upto a few seconds whilst it did what it was doing. besides, if the garbage collector was going to delete an object, surly it would have to do the same thing as manual deletion, so it would be around the same speed? or even slower? seeing as its doing other things too
User avatar
Chris Jones
Veteran
 
Posts: 1714
Joined: Tue Apr 05, 2005 1:11 pm
Location: Gosport, South England

Postby rewinder » Sat Aug 20, 2005 6:04 pm

Any chance that you could develop your editor in such a way, that later, someone (could be me ) would develop a physics editor out of it?

Yes, you can set up bodies/joints/collisions as usual and then run physic simulation. It is allowed by MAGE's architecture, you need just implement it in separate toolset :)

and then later being able to easily read all of it, to produce a physics xml description.

MAGE saving all scene data throught abstract Saver class. Your toolset should implement saving method - you can use any format you want.

i was thinking about that for my editor, im making my own file format to hold all info about the scene including physics, AI, sound etc etc

maybe this could be done with this editor too?

Yes, of course. One thing you need is your own toolset which contents all of tools and objects you need. What kind they will be depends only on your imagination :wink:

What QT should I get in order to use it with msvc 2003 .NET ?

Oh... really, Qt/Windows OS works only with MinGW. And we are using commercial version of Qt, so we didn't know about this trouble. :?
Maybe it is possible to use commercial version of qmake to generate neccesary solution and project files for Open Source edition? I will try it now. By the way, does this solution conflicts with Qt's license?
User avatar
rewinder
Regular
 
Posts: 69
Joined: Fri Sep 24, 2004 5:15 am
Location: Omsk / Russia

Postby Guest » Sat Aug 20, 2005 6:15 pm

well... it would be faster if for example garbage collector finds big chunk containing of cmall allocated chunks and free that at once.

but waiting seconds for program to finish is not very nice. But i'm not an expert in that. ask me about bus engines.
Guest
 

Postby jacmoe » Sat Aug 20, 2005 6:17 pm

rewinder wrote:Maybe it is possible to use commercial version of qmake to generate neccesary solution and project files for Open Source edition? I will try it now. By the way, does this solution conflicts with Qt's license?

I don't think so. The QT OS license is GPL - there's no (or I failed to find any) mentioning of it not working with msvc - even the INSTALL has a section on msvc. Only when you try and run configure, you will learn that it does not work on anything but mingw if you don't have a license key.
Sucks.

But I don't think the distribution of vc project files will violate anything..?
/* when invited to a free lunch, you should not complain about the quality of the caviar */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, Fueled by Passion.
Ogre AppWizards - project wizards for Visual Studio and Code::Blocks.
User avatar
jacmoe
OGRE Moderator
OGRE Moderator
 
Posts: 17493
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark

Postby rewinder » Sat Aug 20, 2005 7:33 pm

Step-by-step instructions (it works for Qt 4.0.0, but i think it will work with fresh Qt 4.0.1 too):
1) Download Qt/Windows Open Source.
2) Download this zip file
3) Extract Qt/Windows archive to something like C:\Qt\4.0.0 or C:\Qt\4.0.1 (warning! no spaces allowed in installation path!)
4) Run Visual Studio command prompt
5) Set up env. variables, replacing C:\Qt\4.0.X with your installation path:
Code: Select all
set QTDIR=C:\Qt\4.0.X
set PATH=%PATH%;C:\Qt\4.0.X\bin
set QMAKESPEC=win32-msvc.net

6) Extract qmake.exe from qtopen2nmake.zip to C:\Qt\4.0.X\bin\
7) Extract win32-msvc.net from qtopen2nmake.zip to C:\Qt\4.0.X\mkspecs\
8 )
Code: Select all
C:
cd \Qt\4.0.X
configure.exe -platform win32-g++ -debug-and-release -shared

9) Open .qmake.cache in text editor and replace QMAKESPEC=win32-g++ with QMAKESPEC=win32-msvc.net
10)
Code: Select all
qmake.exe
nmake.exe

11) Finished! :D
User avatar
rewinder
Regular
 
Posts: 69
Joined: Fri Sep 24, 2004 5:15 am
Location: Omsk / Russia

Postby jacmoe » Sun Aug 21, 2005 4:09 pm

I had to name the Qt directory: c:/Qt/4.0.0 - otherwise qmake fails.

Then I had to add these lines to the qplatformdefs.h in win32-msvc.net:
Code: Select all
#define QT_FOPEN                ::fopen
#define QT_FSEEK                ::fseek
#define QT_FTELL                ::ftell
#define QT_FGETPOS              ::fgetpos
#define QT_FSETPOS              ::fsetpos
#define QT_FPOS_T               fpos_t
#define QT_OFF_T                off_t


That got me as far as compiling qtmain and qtmaind, moc.exe and something else, but the linker dies:
qtextcodec.cpp
qutfcodec.cpp
qisciicodec.cpp
qtsciicodec.cpp
qlatincodec.cpp
qsimplecodec.cpp
qfontlaocodec.cpp
Generating Code...
cl -c -nologo -Zm200 -O2 -MD -O2 -MD -GR -EHsc -W3 -w34100 -w34189 -DUNI
CODE -DWIN32 -DQT_LARGEFILE_SUPPORT -DQT_EDITION=QT_EDITION_DESKTOP -DQT_BOOTSTR
APPED -DQT_RCC -DQT_LITE_UNICODE -DQT_NO_DATASTREAM -DQT_NO_THREAD -DQT_NO_QOBJE
CT -DQT_NO_UNICODETABLES -DQT_NO_LIBRARY -DQT_NODLL -I"..\..\corelib\arch\generi
c" -I"C:/Qt/4.0.0/include" -I"." -I"C:/Qt/4.0.0/include/QtCore" -I"C:/Qt/4.0.0/i
nclude/QtXml" -I"." -I"C:\Qt\4.0.0\mkspecs\win32-msvc.net" -Fotmp\obj\release_sh
ared\ @C:\DOCUME~1\jacmoe\LOCALS~1\Temp\nm41.tmp
qdom.cpp
qxml.cpp
Generating Code...
link /NOLOGO /SUBSYSTEM:CONSOLE /OUT:"..\..\..\bin\rcc.exe" @C:\DOCUME~1
\jacmoe\LOCALS~1\Temp\nm42.tmp
qbytearray.obj : error LNK2019: unresolved external symbol _compress2 referenced
in function "class QByteArray __cdecl qCompress(unsigned char const *,int,int)"
(?qCompress@@YA?AVQByteArray@@PBEHH@Z)
qbytearray.obj : error LNK2019: unresolved external symbol _uncompress reference
d in function "class QByteArray __cdecl qUncompress(unsigned char const *,int)"
(?qUncompress@@YA?AVQByteArray@@PBEH@Z)
..\..\..\bin\rcc.exe : fatal error LNK1120: 2 unresolved externals
NMAKE : fatal error U1077: 'link' : return code '0x460'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files\Microsoft Visual Studio .NET 2003\
VC7\BIN\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.

C:\Qt\4.0.0>
/* when invited to a free lunch, you should not complain about the quality of the caviar */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, Fueled by Passion.
Ogre AppWizards - project wizards for Visual Studio and Code::Blocks.
User avatar
jacmoe
OGRE Moderator
OGRE Moderator
 
Posts: 17493
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark

Postby BenO » Mon Aug 22, 2005 10:36 am

let's stop hijacking this thread about garbage collection ^^

i made a new thread to talk about :
http://www.ogre3d.org/phpBB2/viewtopic. ... 4865#94865
Benjamin RIGAUD
Software Engineer
User avatar
BenO
Regular
 
Posts: 241
Joined: Mon Apr 18, 2005 5:03 pm

Next

Return to Showcase

Who is online

Users browsing this forum: CABAListic, MSN [Bot], TeaBag and 13 guests