So, you sort of popped up out of nowhere. Who are you?
Paul: Heheh... I'm Paul Speed. Been developing software for a long time. Usual stuff, started coding when I was 10 or so but just really simple stuff. Got my real career start on C/asm work in the early 90s. I've been coding in Java since around 1998. Dabble in art, music and I always wanted to do game development so that's always been my hobby.
My current "paying job" is doing data visualization work, though not so much recently. I also have a background in graph databases and have a few open source projects out there. I had a small name for myself as developer of some third party tools for Neverwinter Nights but other than that not much public 'game' stuff.
The data vis work I was doing was using Open Scene Graph with our own in-house Java wrapper. I looked at jME about 4 or 5 years ago or something when we were looking for something more pure Java.
Yeah, so on that note, according to your profile you've been a registered member of the jMonkey forum for 5 whole years . I guess your first try with jME didn't amount to a whole lot then?
Paul: So, I code as a hobby as well as a career and at that time I was trying once again to get some kind of terrain engine off the ground. I played with jME for a bit and had some custom shaders written, little spinning brickwalls and whatever. But so much of it felt unpolished or convoluted. Open Scene Graph was a pretty clean API but the C++ -> Java disparity was pretty hard because it was a deeply vested C++ API using all kinds of C++ 'goodness'. At any rate, I was discouraged by jME2 and considered writing my own LWJGL based scene graph similar to OSG and ultimately got distracted by other shiny things. I can't code in C++ in my own time... just too painful.
hah, I'm pretty sure the jME community can relate.
Paul: But my terrain engine ideas lay dormant and festering. I've read the various GPU gems articles and other material. I started figuring out stuff I liked and stuff I didn't and sort of had this idea on how I wanted the world to work conceptually. I'd had an interest in fractally generated terrain and had written my own GUI terrain configurer thing back 5 years ago. My goal was to have some kind of game that I could play without knowing where everything was. I wanted to be able to have fun in my own game.
So now you're back with guns blazing. When did you first hear about jME3, and what made you go all in all of a sudden?
Paul: Well, I was playing Minecraft almost obsessively for a week straight... got on a buddy's server and we were building all kinds of cool stuff. Kept running into places where I wished that game had gone and something snapped inside my head: The light bulb came on. I had been trying to think of photo-realistic terrain rendering but I could do nearly everything I wanted to do by using an engine with a block-based world. And the engine architecture is not so dissimilar, really. As soon as I said to myself, "Why am I wasting time building block towers when I could be writing a game?", the new obsession began. So I peaked in to to see what jME had done while I was gone.
... and so glad I did.
we're happy too!
Paul: I downloaded the platform -- and I'll say that I'm generally distrustful of IDEs. But it was a great way to get started and figure out what was going on. I was literally up and doing interesting things within an hour. By the end of that weekend, I'd prototyped my environment effects and my geometry generation from the block data. It was excellent.
Sunday January 30th, 2011, I checked in my first code snippets for Mythruna. My beginning of turning that weekend's prototyping into something more tangible.
Did you evaluate any other engines before jumping into it?
Paul: What other engines? Not really. I'd looked around at other things all of those years ago and even then liked jME the best for the 'not written by me' back ends. So you were my first stop.
...and I saw no reason to continue on.
Indeed! Now, your motivations are still curious to me. By and large this strikes me as a personal, yet no doubt elaborate, "pet project". Are you doing this mainly for your own enjoyment, more so than anyone else's?
Paul: No, it's not just for me. The engine is, maybe, but I'd definitely like to see this go somewhere real and that's the plan. That's why I secured the domain, web site, etc.. It would be nice if I could earn some money at some point, though I'm ever the pessimist.
You're not afraid that the obvious similarity to Minecraft will cause issues? (I wouldn't wish fanboy hate on my worst enemy -- no disrespect to the Minecraft community, it's just an inevitable result of being worthy of fandom in the first place.)
Paul: It might. I'm billing this as more RPG though. Minecraft is all about 'emergent play' in my opinion. There's a tiny bit of 'found play' in there. I want to pump up the 'found play' a lot, add a tiny bit of role playing to get users invested in more than just their towers, while still allowing the emergent play and hopefully taking it to new levels.
I have some ideas that, if I can make them work, will just be so different from Minecraft. I do worry a little about fanboy hate, but I'm hoping the community has no reason to feel threatened. Actually, that's a strong motivator for this ultimately being 'for pay', as well. The last thing I want to do is come out with something free that undercuts that community.
I do have an end state in mind and loose plan for getting there... with an even looser timeline.
You mentioned "some ideas". Not something you want to disclose just yet?
Paul: Well, some I've already added like more non-cube block types, etc.. On the one hand, they make more possible when building, on the other hand they can be tricky to use and fit in given the limited sets of 'special parts' available.. And I hope that will appeal to the types that like these sorts of builder games. The "what can I do?" and "how can I do that?" mindsets. But that's simple. Beyond that it gets more experimental.
For example, I believe I can make craftable items using the same blocks. I have wood planks, wood pillars, etc. so why not allow the player to make chairs and tables and such which are essentially shrunk down chunks of world. I believe my engine will support this but I still have to do some testing.
Stuff like that. Trying to build smaller 'elements' that allow more diverse emergent play in concert. And on the other side, I want a living world.
Let's get one thing straight before we go a little further then. This is a project that you're doing on your spare time, for fun, but hopefully you'll get it to a point where it can become a revenue stream, possibly even big enough to become your day job; correct?
Paul: That is the ideal end state, yes. I'd like my obsessions to pay me instead of me paying for my obsessions.
And for the record, currently this project is occupying all of my non-family free time. I haven't even watched TV in two weeks. I hope to keep that up a while longer, I don't miss TV.
(we digress about the brilliant internet age for a while)
Currently you're distributing a non-obfuscated build and you're sharing a lot of insights on the jME forum already. if you manage to get this game to the commercial level, how will that affect the openness of the code, the licensing and so forth?
Paul: Good question. All of this is sort of open ended to me. If I can find a way to monetize and open source it at the same time, I would totally do that. I'm a big fan of open source and have three or four of my own projects out there now. However, I think that is unlikely to occur. I can't find a way to make that work. That being said, I'm not a fan of obfuscation.
What's amazing to me is that Minecraft has a whole community of modders which are essentially reverse engineering the game so that they can mod it. They distribute their mods as patches on top of the original code, all for a game they paid 15 euros for. Bottom line, I want to be as open as I can be within reason.
In short though, nothing is totally decided yet, right?
Paul: Correct. I know I want to earn money off of this at some point but I don't know how exactly.
To what extent to you see yourself doing this solo?
Paul: It's hard to say. I've worked big and small teams in my own career. I've been manager of software development down to just the lone-guy on the team. On the one hand, right now, I'm very nimble and all of my desirements are within my capability set. Even if some of it (like my shaders) might be ugly to someone with more expertise...
On the other hand, at some point, the project will start to stagnate without some additional input. However my inability to make promises or pay or whatever means that it would have to be a very specific set of events and relationships that developed to make it happen. I've been in startups that failed and I've been on teams that disbanded. Everyone would have to have their eyes wide open and be a 'perfect fit'. So I'm putting off thinking about it too deeply, until I start to feel the pressure of time or other factors that is.
Though, the art pipeline may need attention sooner than later. I'm not half-bad but I'm slow. I can model and texture most any inanimate object but animals and other animated characters will take me forever.
You're not planning to just make them out of blocks, Minecraft-style?
Paul: Ummm... no. Without getting too much into 'Minecraft comparisons', that world would look really strange with anything but block characters because everything is a block. In my world, blocks make up the base terrain but beyond that there will be slopes and round things, etc. that don't quite fit that model. I'm still trying to strike a balance but non-block characters will definitely not seem out of place in my world... block characters definitely would.
Think newer style lego versus old, without getting all crazy 'space lego' where everything is a special piece. I hope I appeal to the fellow Minecrafters that were looking for a little more and were disappointed when they reached bedrock, or the guy who built his really cool castle and then said "Ok, now what?"
lego & playmo, combined
Hmmmmm, interesting. Well now, let's get back on the design bit again before we wrap this up! you got me all excited about your "living world". No question, just freestyle it!
Paul: Living world = populated world. Part of the 'found play' aspect is in my minds eye I'd like to have villages that the user can run across maybe with people that go about their daily mundane jobs. That's on the "yeah, I wish" side of it. More realistically, if I have sheep and pigs then I ought to have wolves and tigers, and they should eat each other. I should be able to farm pigs and sheep if I want or go hunt wolves when they aren't hunting me...
Terrain-wise, the original motivation behind a completely morphable world was that terrain can change over time. Rivers could erode the land and change paths, storms could fell trees and so on. I'm not sure how much of that I can get in or will actually work in practice but those are the goals. Give the player the sense that there is something to explore over the horizon and that the world exists and does stuff even when they aren't in it.
"Emergent Play", "Found Play", and "Role Play" in any combination that the player chooses to explore.
Thank you for your time Paul, keep rocking those blocks!
*** Aftermath ***
Paul: All that being said, I try really hard not to directly refer to Minecraft all the time. I think this [type of gameplay] could end up being a whole genre and that's the way I'm treating it.
Erlend: Same genre, different games, like Halo and Gears of War.
Paul: Exactly. The "block world" of Minecraft was my inspiration, but it was more like a final piece of a larger picture.
Erlend: It's definitely a concept that's been taking off lately. And to my great delight as well, because as you've proven it really fosters a lot of creativity, in spite of starting out as something looking like a plane 'clone' of say, WoW (ring any bells anyone?). If you treat it as a genre and not a framework there's no end to what might come out of these games!
Erlend: I've said it in the jME team chat already and I'll say it again, Minecraft-esque beats WoW-esqe to a bloody pulp any day of the week.
While Mythruna is built with jMonkeyEngine 3, Minecraft is not. Both games however do have the Lightweight Java Game Library in common.