Genesis Engine


https://lh5.googleusercontent.com/-SGjoAggGxOY/UlY3tjdNqkI/AAAAAAAAC6A/nftl1jHKxXk/w640-h400-no/genesisEngine.png

Introducing, my 2D game engine!
TA, DAAAAA! ;D

Graphics provided by LWJGL
Sound provided by TinySound
TTF support
custom texture loader (slickUtil is over rated, jk)
simple GUI framework

This engine isn’t much, and I can’t think of a single other person who would want to use it, not with all the other great options out there. I just feel that most libraries are too bloated, and get in the way of how I like to program. So this is my own little home brew.

If your board, or intrigued, and feel like ravaging through completely undocumented code, the project is hosted on BitBucket.

When you run the engine an example GUI will come up. Which is the product of me building and testing the UI package.

If you find any bugs, or notice something that I am doing ass backwards, let me know.

Some things I would like help with, if anyone has the time to teach me:
-batching
-shaders

All for minimalistic engines here… I actually might use this…
Does it feature
:oBLAST PROCESSING POWER?! :o

I agree though. A lot of engines just come with a bunch of things I don’t use. I’ll try this out when I have some time!

EDIT:
Oh, and here is an amazing tutorial on shaders.

Thanks for the commendation wesley.

The engine currently draws everything in immediate mode, but I eventually want to add batching and support for shaders.
Thanks for the link, I will check it out later.

The lwjgl-basics API also includes some examples of sprite batching that you might want to check out. It uses vertex arrays, which isn’t ideal, but it shouldn’t be too hard to switch that over to VBOs.

This tutorial also covers some sprite batching concepts. It’s specific to LibGDX, but the same concepts apply in LWJGL.

Hi

As you already use LWJGL, why not using its OpenAL binding instead of TinySound?

Because I am an idiot, that’s why!
Thanks for bringing it to my attention
And because TinySound is about at easy to use as it comes.

I didn’t mean that but TinySound relies on JavaSound which caused me a lot of troubles in the past, that’s why I switched to Paul Lamb Sound System (which supports both JavaSound and OpenAL). Moreover, JavaSound isn’t supported under Android byt maybe your engine will target only desktop environments. Of course, using a nice high level sound library is easier than using plain OpenAL.

No worries mate. The truth is it completely slipped my mind that LWJGL bound OpenAL. I am working on implementing it now actually. A lot of changes have been made already come to think of it. I have been making a game using the Engine, to see what needs to be changed and added, more on that later. (probably a significant amount of time later.)

Pauls lib crashed on my consistently and could not load most of my sounds no matter how I saved them in audacity. When it crashed it was not soft but hard. Almost bsoding me. I tested it on multiple computers and got the same thing. So when someone asks about sound, I say TinySound. It is not the best but it just works. Ultimately, implementing your own would be best. I would love to see what you get.

New versions have been added to the repo.

A batching update is coming soon, but for now I committed a bunch of bug fixes and code improvements.
Get version 0.0.3 here

CRAP That post came up the SECOND I finished updating my engine… :o
What bugs did you fix specifically?

I try to include a general overview of the fixes, additions, and removals in the commit message but specifically:

+progress actor
+vsync option to engine creation
+get selection index and text for scroll boxes and radio buttons
+flag to set scroll box elements to behave as checkboxes (stay selected) or buttons (clicked)
+set value method to slides
+remove scene method to theaters
positioning of scroll box elements (y position was overlapping)
key: (+) added, (-) removed, (
) fixed