Hello everyone! First off, I want to say thank you for making this awesome engine! At first, I was doing research on how to make games the old fashioned way: 100% from scratch. Then I found this wonderful engine, and now I get to make games the not very hard way.
Now then, inspired by JMonkey, I decided to create my own 2D game engine called The Dingo Engine. I used some of the traits from JME to create Dingo, such as the physics object, a base class you extend for the main application, and a small asset loader (that is slightly disorganized at the moment). It’s currently in Alpha 0 right now. Why zero? Because to be honest, I haven’t finished testing it, so there may be some huge bug waiting to come out and bite me. But it’s up on Github and ready to be messed with.
This engine actually was created before I even had the idea of it. A loooooong time ago (last year), I made a game for a friend of mine. Within the 20,000 line glitchy mess of code (no, not all in one file. The biggest file was 13,000 lines) was a game engine that I made completely unintentionally. So I pulled all of that code out, polished it up and improved it, and the Dingo Engine was born. Then my computer crashed, erasing the entire physics engine forcing me to rewrite it. Then I decided to give the entire engine a complete overhaul, using JME as an example. Here is a screenshot of the result from months of hard work:
I used the same collision detection method as from the game Dingo originated from, which isn’t the best method (surrounding the solid objects with small rectangular hitboxes). It works, until you start applying forces larger than about 10 units. But then you can get rather funny results if you apply an absurdly large force such as 10000 units. I am researching better collision detection methods, and have come up with a few myself. But that can wait until I have a engine that works in it’s entirety.
The engine also has some other cool features, such as two types of AI: a person that just wanders aimlessly, and an enemy that actually follows a target. Both of these AI originated from the original game, and I gotta say, they’re pretty impressive considering my skill level at the time I made them. The engine also has support for animations, directional sound (still being worked on), triggers, spawners, and (drumrooooooooollllllllllllllllllllllllllll)… Doors and keys! Yeah!
In my original game, most of the code was used to create the levels. They could be as big as 500 lines per map! The engine now has a loader that reads a text file and creates a map object for you, saving tons of code in the game. Right now the map file is strange, and I may redo it. I am currently working on a map editor to speed up the creation of map files, but until I get that working, the files will have to be hand coded.
For assets, the only custom type is the map file. Sprites and everything else use standard image formats, and to create a properly skinned, animated person, you need two image files. One containing a set of images the person uses, and another used to separate them into individual skins. Soon I’ll make my own binary format for both the map and skin files, to make things faster and more organized.
And that is the Dingo Engine! It’s still not finished, and will have many more additions to come. I still also need to post tutorials on how to use the darn thing, but that’s easy. But it’s available to download, and is waiting for people to break it. You can grab a copy of the library and source code here: GitHub - FloppidyDingo/Dingo-Engine: 2D Game Engine for JavaFX
There is a tiny bit more info about it on IndieDB: (I’ve always wanted to use this button!)