A new focus: Ardor3D

We need a new, focused, open source, professionally driven 3d Java engine.

It's no one single event that leads me to say this, more a culmination of forces that together drives to a single conclusion. More and more often lately, the idea has come to the fore-front of my mind. Here are the top 5 things that are currently pushing on me:

1. Love for the Niche: Probably most important is my (admittedly biased) view that 3d Java game and rendering technology is an important and valuable platform for current and future entertainment and applications. I have truly enjoyed the nearly five years I've spent developing the jMonkeyEngine, particularly the experiences of discovery, collaboration, community and creativity. And so in a nutshell, I would have no qualms about doing it all over again in some fashion.

2. Dearth of jMonkeyEngine Activity: Lots of anecdotes here I suppose, but you can see in a nutshell what I mean by looking at the commit history over the last one or two years. Official developer activity has been incredibly low. Also, there is no clear, cohesive future direction for the technology. This drags on the joy described in point #1 for me.

3. Ardor Labs and the Future: The software and services company I started back in July depends on the existence of 3d Java technology that is not only great today, but will be great in the world of tomorrow. Tying in with #2, and as a small business owner, I am concerned about the viability of current technology for future needs.

4. Professionalism: Hand in hand with #3 are difficulties I've discovered in the current "branding" and direction of jMonkeyEngine. Branding might sound trivial, but it has been hard to get the technology in the door at some companies precisely because the name does not sound serious enough (I've had to "sneak" it in the door as "jME" in at least one occasion.) Add to this the visible lack of a coherent forward direction, license questions (who is this "jMonkeyEngine" the copyright is attributed to, etc.) and so forth and you end up with a lot of work to assure potential customers that this is the technology they should bet on. The recent shift to give check-in rights to anyone who asks, (a fine idea, given #2) unfortunately only amplifies the issues here, particularly regarding coherent forward direction. Points 1-3 could be possibly solved within jME itself, but I think this point would be a lot more difficult to crack in the current structure. A new project would have a second chance to consider such issues.

5. Direction and Structure: Recent readings of "Producing Open Source Software" have had a big affect on my thinking. jMonkeyEngine was started as a hobby and placed on java.net later. Throughout its lifetime, a lot of development happened behind closed doors and then was dumped into the repo. In an effort to maintain a pure direction, there was a high barrier to entry for folks who wanted to contribute. (Ironically that situation seems to have reversed now.) There were some attempts to formalize processes for contribution, releases and so forth, but most did not bear fruit and largely were forgotten. In summary, the hobby-turned-project never seemed to be able to get fully onto the path of an open source project. I am certainly as guilty as anyone for jME's past direction, but given that past I am not sure the project could be repositioned without a large political upheaval - one that I am not willing to fight through personally. A new engine could start with these principles and expectations on day one.


And so, it is my intention to build a group to move forward with the formation of a new open source engine in this niche, currently called "Ardor3D". The goal of this new engine is to be a professional engine, targeting serious users in gaming, industry, education, and government. By professional, I mean that the engine will be run by coherent and well known processes that conform to generally accepted open source principles. The focus will be on having a solid, small and modular core with an architecture that allows for easily integrated extensions of varying complexity and utility (to get an idea of what I'd like to shoot for, see OSGi.)

By building a group, I mean that this engine will not be the "Renanse" engine or the "Slack" engine or even the "Ardor Labs" engine. Rather, I believe it must be an engine that reflects the combined wisdom of folks who have walked this path already. Without such a foundation, there is truly no hope of "Ardor3D" becoming a solid, general purpose, useful technology. There are several folks who have expressed interest in this idea. One particular individual of note (who has given his nod to being named) is Rikard "MrCoder" Herlitz, a programmer who is well known in our niche for his expertise in areas of shader technology and visual effects. The Ardor3D group is lucky to have him among its founders. I hope to also introduce other folks in the near future as equal members of the group or as contributors as the case may be.

As a final note of clarity, I wish only the best for the future of jMonkeyEngine... after all, I poured a lot of myself into it over these years and there are several individuals I have deep respect for in its community. I do believe however that there are also many in that community who feel the same or similar to me about the needs for an engine with a more focused direction and I hope that those people will find Ardor3D attractive. I would like to see it as easy as possible for these people to get involved. To that end I believe strongly that it will be important to both make the new API as easy to port to as possible and to not reinvent the wheel when there exists code in jME to do some particular feature. Ardor3D will, over time, take the best ideas from other open source projects (as is the tradition in open source) and merge them with ideas and architecture of its own. Work you have done to support another engine will therefore not be in vain at all.

And so, to the future! Expect to see more news and online materials in the near future.

8 comments:

jfelrod1960 said...

Josh first of all I wish you the best of luck. You and Rikard are very talented developers and are very capable of making "Ardor3D" a reality. With some of the mobile game companies breaking into the PC game market and the fact that most of their programmers have been working with Java, I think a "serious" Java game engine is needed. But it is surprising that you are going to start brand new. JME as good as it is, is a long way from being the type of game engine serious industry players would consider for a six figure budget project. Now you are starting with a blank sheet of paper. But I do like the idea of a Java game engine where the authors are trying to achieve the same quality as the professional engines being used today. What is going to be the underlying graphics library?

Oak said...

Hi Josh, As I have said before we at Gamalocus Studios also see the need for this move - and will back you in this.

We look forward to hearing more about the development of Ardor3D and let us know where we can help.

I am not saying that Josh will start Ardor3D out this way - but jMonkeyEngine is distributed under the BSD license. Nothing is in the way of branching a new project - like Ardor3D - from the code base.

Paul said...

Sounds pretty cool! Can't wait to see what will be going on codewise! Good luck and....uh, a lot lot energy for this great quest!

Neakor said...

I have long waited for this! Thank you so much for starting this. Hopefully one day I'll be able to contribute as well. Best wishes.

PS. I'll be watching....hah

Neakor

the2bears said...

Interesting, especially the reference to OSGi. Are you saying you'd base the 3D engine on a set of bundles that run in a framework? Or rather, on a higher, more abstract level, are you looking for a similar component model?

I've been working on my own 2D engine, a sort of virtual console as I call it, with OSGi as the framework. I'll be watching your project with interest.

Bill

Perick said...

Josh,

I wish you good luck in this new challenge and will keep an eye on it.

I'm also very curious about the new ideas in terms of architecture, focus and features.

After you release more information on all this stuff I'll let you know in what areas I can contribute to its success.

Renanse said...

Thanks guys, I'm counting on community development on steering the project to its goals. :) Hopefully we'll have more out there in the next month or two.

elix said...

Sounds promising.

I've started to work on a small game company. Nowadays they were looking for an engine for the next project. Their main criteria was a good level design tool, as far as I can notice it is a must for a professional engine. What do you plan about design tools.