Quad-Ren, AKA irrlicht for 2D

Discussion about everything. New games, 3d math, development tips...
Post Reply
hessiess
Posts: 47
Joined: Wed Mar 12, 2008 8:39 pm

Quad-Ren, AKA irrlicht for 2D

Post by hessiess »

I have bean developing a 2D platform game with irrlicht. As the project was developing it was becoming obvious that using a 3D engine for a 2D game wasn't my best idea, and the project frequently ran into problems, such as the lack of animated textures, 2D collision detection and the like. Because of this I ended up rewriting from scratch 3 times. When it became clear that I was going to have to re-right it for the forth time, I shelved the project until I could find a more suitable graphics engine.

I looked into SDL, which is frequently used for 2D game development, but found the lack of scaling a massive limitation, as this would make the game resolution dependent, As the Irrlicht version can render at any resolution, this sempt like a massive leap backwards. So I started looking into OpenGL.

One of my OpenGL test programs started to get more and more complicated, I realised that it would not be that difficult to convert into a resolution independent graphics engine, which became what is now called Quad-Ren(Quad Renderer :P).

The API was designed to be simmaler to Irrlicht, to make re-wrighting the previously mentioned game easy, but optimised for 2D and completely resolution independent, within the limitations of bitmap images of course.

The projects website is located at http://quad-ren.sourceforge.net/index.php.

Any tips, C+C etc?
loki1985
Posts: 214
Joined: Thu Mar 31, 2005 2:36 pm

Post by loki1985 »

i really don't want to make your project appear as a bad idea, i guess it is pretty usable, but:
is there a specific reason why you did not implement a layer with 2D functions on top of Irrlicht? i think that way you could make use of Irrlichts advantages (multiple renderers, possibility to use hardware acceleration, automatic texture management etc).
hessiess
Posts: 47
Joined: Wed Mar 12, 2008 8:39 pm

Post by hessiess »

loki1985 wrote:i really don't want to make your project appear as a bad idea, i guess it is pretty usable, but:
is there a specific reason why you did not implement a layer with 2D functions on top of Irrlicht? i think that way you could make use of Irrlichts advantages (multiple renderers, possibility to use hardware acceleration, automatic texture management etc).
Because that would make Irrlicht even larger than it already is, and I specifically do not want support for platform specific APIs like DX.

Quad-Ren already has hardware acceleration with OpenGL.
aanderse
Posts: 155
Joined: Sun Aug 10, 2008 2:02 pm
Location: Canada

Post by aanderse »

You are looking for Gosu http://code.google.com/p/gosu/
Cross platform, c++, opengl, 2d accelerated, optional ruby frontend, scalable images, etc...

For 2d which uses hardware acceleration Gosu is the way to go.
hessiess
Posts: 47
Joined: Wed Mar 12, 2008 8:39 pm

Post by hessiess »

aanderse wrote:You are looking for Gosu http://code.google.com/p/gosu/
Cross platform, c++, opengl, 2d accelerated, optional ruby frontend, scalable images, etc...

For 2d which uses hardware acceleration Gosu is the way to go.
Please stop recommending other API,s. I have already spent a lot of time developing Quad-Ren, so am not going to dump it.

After looking at Gosu, it appears that you have to call draw() on everything to get it to display, this is something that I do not want to have to do, as it would make the games structure messy.

Thaks.
FuzzYspo0N
Posts: 914
Joined: Fri Aug 03, 2007 12:43 pm
Location: South Africa
Contact:

Post by FuzzYspo0N »

have to call draw()
whether this is abstracted or not its going to happen.

plus, i dont think shooting down helpful community posts is gonna get you any friends, let alone more posts about your engine.Try not to come across as a douche.

the engine,

Looks pretty cool, i like the non resolution dependance and stuff.
The page looks pretty nice too, which is rare on these smaller community projects. keep it up (and in the mean time, im gonna try it out)
hessiess
Posts: 47
Joined: Wed Mar 12, 2008 8:39 pm

Post by hessiess »

FuzzYspo0N wrote:
have to call draw()
whether this is abstracted or not its going to happen.

plus, i dont think shooting down helpful community posts is gonna get you any friends, let alone more posts about your engine.Try not to come across as a douche.
I know that a draw method would have to be called, the scene nodes in Quad-Ren have render(), but calling this method of all quads, in the right order(back to front) is handled automatically.

It is a tile based game, and each tile has a 'sub tile' for things like traps and pick ups, the character is between the background and traps. For alpha to work properly in OpenGL it must be rendered back to front. So it would be necessary to loop through all the tiles drawing the background, then draw the character and finally loop through all the tiles again, this time drawing the sub tiles. if draw() is abstracted, as in QR, this is handled automatically, so makes the game code a lot cleaner.

Sorry if I came over as harsh, and sorry if I offended anyone. But I did ask for crits on Quad-Ren, not for existing libs. Incedently, part of the reason for writing it was to learn about OpenGL and lower level graphics programming.
the engine,

Looks pretty cool, i like the non resolution dependance and stuff.
The page looks pretty nice too, which is rare on these smaller community projects. keep it up (and in the mean time, im gonna try it out)
Thanks, do you have any suggestions for improvements?

Would someone be able to try to compile the lib with Visual C++/ whatever the OSX equivalent is. The lib *should* compile/run on any platform with OpenGL and SDL. But company's, especially MS, like to make non standard changes to language implementations.

Thanks.
Post Reply