Interview with solo developer of Marble Mania, the first jME3 game
December 4, 2010 in Interview
The very first complete jME3-powered game around is right around the corner. Just in time before official launch, I got in touch with Dennis Franke @Creativ who singlehandedly developed Marble Mania over the past several months. Want to know what it’s been like to develop a game with jMonkeyEngine 3, all the while with the alpha tag still on it? Here’s the interview.
Please make a brief introduction of yourself. -What’s your background in programming / game development? -When and how did you start your journey with jME?
My Name is Dennis Franke, 21 years old and I’m currently living in Braunschweig, Germany, and I study Computer Science at the TU Braunschweig. I started programming when I was about 13 years old with HTML and PHP and continued programming with PHP for about 5 years. After learning C++ and Visual Basic for a short period of time I switched to Java and stayed with it until now. Besides some small 2D Games with Java I made my first small 3D-Game with Java3D, but since Java3D is pretty much dead and there weren’t that many people that could help me, I decided to use JMonkeyEngine instead.
My first Game with JMonkeyEngine 2 was a small Game about the TV-Series Scrubs where you could walk around in the hospital and do a few Missions.
When I saw jME3 come out I decided to do another Game with the JME and so I started working on Return of the Warlord, but I never really finished it, since the Basis of RotW was a little messed up and after a short break I started with the first Prototype of Marble Mania.
By itself an impressive one-man effort, Marble Mania is the first complete game powered by jMonkeyEngine 3. What possessed you make a game with early alpha software?
Since I already knew from my experience with jME2 that the Community is really friendly and always helps I figured why not do some testing with jME3 and after the first few tests I really liked jME3 and so I also used it for Return of the Warlord and Marble Mania and until now I didn’t regret my Decision to use jME3. Most of the time there were only small changes to the API and so I never really had trouble after updating my Source with the SVN. Only a couple of times it took some time to fix some Issues I had after updating.
In my Opinion jMonkeyEngine 3 is already really stable and there are only minor changes to the API, so I can advice everyone thinking about using jME3 to do so.
How many hours do you reckon you’ve put into this game? When did the initial design stage begin?
I had the initial Idea for Marble Mania at the end of last Semester, which would be somewhere around July. During the Semester break I wrote the first small Prototype and collected some Ideas, for example the Skills were actually not planned in my first Prototype. Since then I’ve spent a LOT of time working on Marble Mania. I don’t have an exact number, but if I would have to guess I would say I spent at least 100 Hours working on Marble Mania.
What are your plans for the game?
For now my Plan is to get a stable Version ready and online and do some Marketing for Marble Mania, so that some People are actually playing it. My Goal is, that there are most of the time a few People playing so that you can just start the Game and there are already People online and you can just start playing against someone else, without having to wait until somebody else joins the Game.
Everything more than this goal is just a bonus for me.
I’m also planning some fun stuff for the Release of Marble Mania, but I’ll let you know more about that later.
What kind of work took up the majority of your time; toolsets, graphics, game logic or something else entirely?
Most of my time I spend working on the game logic and creating the game design of Marble Mania and right now I’m spending most of my time working on the Network-Layer for Marble Mania, because there are a couple of bugs left in SpiderMonkey that are holding me back from releasing a (hopefully) stable Version. But the Bugs should be fixed pretty soon and then I should be able to get a stable Version out there.
The graphics for Marble Mania were actually done pretty quick, because I’m really bad at designing graphics and I thought I would just create some placeholders for now and change them later, but after I saw the graphics in the Game I enjoyed the look of it and so I decided to keep them.
Along with being an early jME3 adopter, you were maybe the first developer to adopt SpiderMonkey. How would you say SM matched up against your initial networking implementation, and what pros and cons are there to speak of?
Compared to my own network implementation, which was still in a really early state, SpiderMonkey is much faster and SpiderMonkey also has some nice Features that make working with it much easier. Most of the time they are only some small Features, e.g. I enjoyed that I could add a Message-Listener for an specific Message.
SM also needs much less Heap Space than my own Implementation, which was based on Threads and java.io instead of java.nio. Thus I had to create a Thread for each Client which needed a lot of Heap Space.
Based on my experience with SpiderMonkey it is going to be a really cool feature of jMonkeyEngine.
You used NiftyGUI for your interface. Any constructive feedback to offer the library’s author?
I really enjoyed working with Nifty GUI, because in my Opinion it is really intuitive, but I had some trouble getting used to the layout in Nifty GUI.
I’m not quite sure wether there is some new Documentation online, but when I started working with Nifty GUI there wasn’t that much documentation about the layout in Nifty GUI.
Another thing is, that I find it kind of complicated to change for example the Images for a button or a textfield, so I would really appreciate it if the author could change it, so that it’s easier to change the Image, for example by defining the image in the XML-File.
Other than that I had lots of fun working with Nifty GUI and was impressed how easy it is to create a good-looking Menu with Nifty GUI.
Could you go into some detail about your art pipeline?
I’m not quite sure wether you really want to call it an art pipeline, because I didn’t really do that much art for Marble Mania, but I did some Prototypes to test the gameplay and see what it looks like and if it could be fun to play.
I also made some drawings of the different menus and for the Level-Design I did some paper-prototypes to check wether they could be fun or not and since they only contain basic shapes I decided to code the levels directly into the Source instead of importing them, which gives me much more possibilities than having to write everything into the importer.
All other art in Marble Mania was created pretty much on the fly when I needed them, so there isn’t really an art pipeline.
Best and worst parts of jMonkeyEngine 3.0?
Best parts:
- Already pretty stable (only minor changes to the API)
- Easy to start with
- Great Physics-Implementation
- Easy to create a GUI with Nifty GUI
- Great Network-Layer
Worst parts:
- The new Material-System is kind of confusing in the beginning
A big thanks to Dennis Franke for taking the time aside to answer the questions for this interview.
Go check out the Marble Mania project listing here on jmonkeyengine.org to keep up with the latest tweets and blogposts from the developer site Bazinga Productions.

nehon said on December 4, 2010
Congrats Dennis, great piece of work.
Setekh said on December 5, 2010
ha, the game is fun, the sound effects even better yhaaaaaa!
zarkob said on December 12, 2010
Nice work.
jjmontes said on December 21, 2010
Really nice work. Congratulations!