Jump to content


Photo

Sparrow3D - Multi Platform Game Engine


  • Please log in to reply
7 replies to this topic

#1 Ziz

Ziz

    GP32 User

  • Members
  • PipPipPip
  • 81 posts

Posted 26 February 2012 - 10:21 PM

Good evening, folk.

Some of you may know me from "snowman" or "puzzletube". I am the guy behind these games and in the last months I re-engineered my whole engine and gave it a name:

sparrow3d.

Sparrow3d is an engine similar to Penjin, Fenix, glBasic or the new Pengyne engine.

Why another engine?

First of all I wanted to write a 3D software renderer for the gp2x and other open handhelds. I just made more because of my laziness. It began with snowman, where I needed a basis, which had to be the same for every supported system. After snowman came puzzletube and there the first time I put my code in a own library and since then I optimized and rewrote the whole system. And added lot of other useful stuff.

To be fair I start with the disadvantages of sparrow3D (in comparison e.g. to Penjin):
  • no OOP. pure C. (of course you can use it in OOP, but you have to do it yourself)
  • no GL ES. Everything is rendered in software for compatibility to the gp2x and dingoo. So my renderer is slower, but works everywhere :)
  • only 16 bit graphic (better for my optimizations)
But there are of course PLENTY advantage. ^^
  • pure C (faster)
  • many supported platforms (gp2x, open2x, wiz, dingoo, caanoo, pandora, linux, windows)
  • 3D renderer with textures, which works on every supported platform
  • abstraction of the hardware. E.g. you don't have to know, whether there is a analog stick or a D-Pad
  • blit functions for surface in 2D or 3D
  • rotozoom functions (faster then SDL-gfx)
  • simple primitives like rectangles, ellipses or lines
  • mesh loading (obj files)
  • simple Sprite engine
  • font rendering
  • based totally of SDL. No other dependences.
  • using in an existing application. I have plans to make some 3D visualizations in Gmu :)
To see, what you would get, I made a test application for all supported handhelds:


Cannoo
Dingoo
GP2X
Pandora
Pandora Repo

Open2X
WIZ

Source Code at Github

Furthermore I created a more detailed description. But be aware! It will be corrected by some person with a (much) better English soon™.

Spoiler


Tomorrow I will post a (new) video, too. But I have screenshots for you:
Posted Image

Posted Image


Posted Image


Posted Image


Posted Image


Posted Image

Maybe I will use this engine for a game for the Rebirth competition, too. At the moment I am not sure because of to few time. :-\

But we will see.

greetings, Ziz

Edited by Ziz, 01 March 2012 - 10:42 AM.


#2 Ziz

Ziz

    GP32 User

  • Members
  • PipPipPip
  • 81 posts

Posted 27 February 2012 - 09:21 AM

Because somepony asked in another board:
The engine is licensed under LGPL and MPL.

You get the source code here: https://github.com/theZiz/sparrow3d

#3 Farox

Farox

    GP Mania

  • GP Guru
  • 491 posts
  • Gender:Male
  • Location:Italy
  • Interests:Pandora
    GP2X
    Caanoo

Posted 27 February 2012 - 12:25 PM

Great !! Seems very interesting ...thank a lot for your hard work..and for share with us.

#4 erico

erico

    GP32 Hardcore

  • Members
  • PipPipPipPip
  • 198 posts
  • Gender:Male
  • Location:Brasil

Posted 28 February 2012 - 03:47 AM

Great! gave a try on the game before on another thread!
All love for software render...

will check this new tests!

Congrats! :)

#5 Ziz

Ziz

    GP32 User

  • Members
  • PipPipPip
  • 81 posts

Posted 28 February 2012 - 08:00 PM

As promised here a video:



In fact it's just the demo from above, but filmed at my PC...

#6 Ziz

Ziz

    GP32 User

  • Members
  • PipPipPip
  • 81 posts

Posted 01 March 2012 - 10:41 AM

I forgot, there is a github link for the source code, too.

Source Code at Github

I'll add it to the first post.

#7 kayuz

kayuz

    Mega GP Mania

  • GP32 Hardcore
  • PipPipPipPipPipPip
  • 559 posts
  • Gender:Male

Posted 04 March 2012 - 08:38 PM

Really a good work, Ziz, really good work ;)
i like the thing that is SDL only based ;)

#8 Ziz

Ziz

    GP32 User

  • Members
  • PipPipPip
  • 81 posts

Posted 06 June 2012 - 05:31 AM

Good morning, folk.

After a long time I have done some little and bigger updates.
First of all I got some little improvements from pmprog (better handling of resizeable windows and an event feedback function as optional parameter for the main loop function) and from foxblock (some bugfixes and general improvements especially for compiling with Codeblocks in Windows™).
Furthermore I did some bug fixes and speed optimizations too and implemented
  • functions for creating and deleting sparrow3D compatible surfaces
  • some new math functions (arcsine, arccosine, tangens)
  • locking and unlocking of the rendertarget (in fact just an enclosure of SDL_LockSurface and SDL_UnlockSurface with returning the surfaces raw pixel data)
  • the functions for drawing text now support line breaks - just add '\n' anywhere in your C-String
  • Because of people using C++ I made the 'char*' in the font part to 'const char*' (std::string::c_str() returns a const char*). Other used C-Strings will follow later (mostly if someone needs it in C++ without bad casting...)
  • a new example for handling different render targets
  • sometime I improved the light: fewer flickering. Dunno, whether I ever mentioned it :)

And here is a new video especially of the last two parts in the list. It shows the four demo applications shipped with sparrow3D. Enjoy.



greetings,
Ziz