Game Programming and Development Tools

What do you think: GameBuilder – fearless

fearless

Member

Posts: 91
From: Romania, Tg Mures
Registered: 11-26-2005
After working on various GameDev projects I reached to conclusion that ther's a lot or redundant work programmers do. I've been working with various tools/semi-professional engines (i.e. Ogre, Irrlicht, Torque) but I haven't found something thats fast yet easy to customize. I thought of making a game builder, actually I have been working on it for two weeks now.
I know there are plenty game builders out there (i.e. blitz basic, Dark Basic Pro, etc) so it would be interesting to hear what do guys think about game builders, what are the things you like/dislike about them as opposed to handwritten C++/C method.

In case you're wandering here are some highlights on the aproach I'm taking.
The final product of the program is a huge C++ file. To run the game you need to compile the file. The C++ code is generated by what you do inside the program. I will use Irrlicht modules for rendering, GUI and some other things. The use of Irrlicht won't be hard coded though. I'm placing most function calls inside an editable XML file. By changing the header files and function calls in XML it will be posible to switch to Ogre or some other engine.

Random screenshot:

http://www.proimpact.ro/graphics/EngineBlocks.jpg

steveth45

Member

Posts: 536
From: Eugene, OR, USA
Registered: 08-10-2005
Well, I like the idea of a game builder that generates functioning C++ code. That way you can build up the game quickly, and then hand-tune the code. I imagine that you write the game scripts in C++. What would be nice is if the game builder allowed you to write scripts in Lua or Python, too, and automatically created the glue code.

Also, I'm a big fan of Irrlicht, so it's nice to see somebody else using it. The game I made for the Speedgame comp was made with Irrlicht. In writing the game, I made a loader and Irrlicht-based rendering code for tile maps made with the Tiled tile map editor. The code for the game is pretty messy, I've since refactored the code into a cleaner "CTileMap" class. If you want to add tilemap code to your engine, I can share the code with you.

Looks great!

------------------
+---------+
|steveth45|
+---------+

HanClinto

Administrator

Posts: 1828
From: Indiana
Registered: 10-11-2004
I'm intrigued by this idea. At first, I was more than a little skeptical thinking "Oh great, yet *another* framework that's so general it doesn't actually do anything but provide another bug-prone layer of abstraction", but I think this idea might have merit.

Something I really liked about the old Borland C++ Builder was that when it created GUIs, it created them with understandable C++ code that you could modify yourself to tweak if you wanted special things done. It was a huge time saver for creating GUIs, but still let you get your hands dirty.

I don't know enough about programming games in Irrlicht to know if something like could be similarly useful, but I'm intrigued nonetheless.

Thanks for sharing your ideas! I'm interested in hearing if/how this proceeds.

Cheers!

In Christ,
clint

jestermax

Member

Posts: 1064
From: Ontario, Canada
Registered: 06-21-2006
JDeveloper has a GUI system that generates the same code i would have written in the first place Anyways, kudos to game code generation
Faith_Warrior

Member

Posts: 490
From: So.Cal.
Registered: 09-05-2006
It’s called middleware, and it’s a very valuable resource. One commercial project I can think of that is being made using middleware is Star Gate Worlds. In their case they are using Big World and modifying it to use the Unreal rendering engine. A lot of independent developers are picking up on middleware packages as well. There are quite a number of middleware packages being developed right now and in the coming months or years there will be many excellent titles out there that will be available.

What this does is make it so developing a game from the foundation up will not require a huge staff of programmers which is a big chunk of budget cost and time to achieve. Such projects can be handled without the need to acquire a publishing company to endow the developers with large sums of money to just begin work on a project. This does not reduce the demand for programmers but I think to the contrary for now there are more development projects with programming positions open to customize the existing code base to suit the needs of the development project.

fearless

Member

Posts: 91
From: Romania, Tg Mures
Registered: 11-26-2005
Thanks for your input

@steveth45: My purpose is to have no script based on C++ or other language. There will be a minimalist hard coded setup. From there everything else will be event driven. At the moment it's still theory. All I have been working at is the interface. I should have a version that generates code soon though. Thanks for offering to share your tilemap code. I can't look at it right now since I have my hands full. I'd be a nice addition for the future though.

HanClinto: The program will use Irrlicht and C++ behind the curtain to make things work however you won't see Irrlicht specifics on the interface. The interface will be engine independant. As an example here's the xml code that generates the terrain creation call in the screenshot I posted.

<node>
<Type>action</Type>
<Name>Scene - Add Terrain</Name>
<Txt>Build terrain from height map [file]!!file[/file], using texture map [file]!!file[/file] and detail map [file]!!file[/file] . Tile texture map [int]1[/int] times and detail map [int]20[/int]times</Txt>
<Tag>scene::ITerrainSceneNode* terrain = smgr->addTerrainSceneNode(
[1]);

terrain->setScale(core::vector3df(40, 4.4f, 40));
terrain->setMaterialFlag(video::EMF_LIGHTING, false);

terrain->setMaterialTexture(0, driver->getTexture(
[2]));
terrain->setMaterialTexture(1, driver->getTexture(
[3]));

terrain->setMaterialType(video::EMT_DETAIL_MAP);
terrain->scaleTexture([4], [5]);</Tag>
</node>

Thanks for your interest.
When I get the time to round it up and make a version that generates code that compiles I'll post a test version here.

fearless

Member

Posts: 91
From: Romania, Tg Mures
Registered: 11-26-2005
I got to a point where you can get an idea of what this program is meant to be.
you can create a 3D terrain in an Irrlicht window using the program tools.
I've added some screenshots that should help understand how it works.

If you're familiar with Irrlicht take a look inside data.xml and variables.xml. You should be able to get other Irrlicht objects working as well.


download from here:
http://www.proimpact.ro/download/EngineManager0.82.zip

P.S: Since my 'Game Builder' uses WinForms you'll need NetFramework 2.0 to get it working.