AGDC wrap up

I was emptying out the bag I received from AGDC and realized two things: 1. I never posted anything about how AGDC went and 2. there was a pretty sorry error in the printed schedule for the track I participated in.

So to the first point, AGDC was fantastic in most regards. I bumped into many familiar friends, made a few new ones and in general did a lot of networking - something I've heard said often that this particular conference is good for. The open source technologies track I participated in also went very well. I shared the 10am session with gentlemen from two other engines, and noticed that in a room that could hold a bit less than 200 people, it felt about half full. As I noted previously, I spoke briefly about the jMonkeyEngine and how easy it is to get started. I also mentioned several of the folks who have used or are currently using the technology and showed again the movie Rikard and I did for JavaOne '08. Following me were presentations of Ogre3D and Panda3D, two mature C++ engines with nice feature-sets. I would say that jMonkeyEngine left a good impression though as at the end of that session all of the questions were about it. :)

On the show floor, Sun had one of the more active of the booths, showing off Project Darkstar through the help of a simple capture-the-flag style game with snowman avatars. I hung around the booth chatting with several of the Sun folks I've had the pleasure to get to know over the past several weeks (helping some in getting that game completed in time for the show.) Definitely some smart people there who "get it". I would guess that most of the Java gaming community sees only 5-10% of what these guys are actually doing to try to support everyone, which is unfortunate.

The second point I realized as I thumbed through the conference booklet for the first (and only - why do they print these things?) time is that they not only listed me as scheduled to speak at 9am during that track, but also credited me as "Creator, jMonkeyEngine" which is of course wrong. I have corrected Sun's overzealous crediting on slides and such in the past and reminded them of the history of that project but I suppose the original plan to have me speak in the "Views from the Big Chair" session made such a title sound more fitting or something? I only guess... but I'm glad that after asking them to remove me from that session (how do I fit into a group with the likes of Daniel James and Jesse Schell!) they replaced me with Prakash Ramamurthy from Gaia Online - a man who definitely had a lot more interesting things to say. :) (For example, Gaia is run on all open source software, including mySQL for its huge number of transactions!) Anyhow, seeing the mistake today on flipping through the guide was a bit disappointing and hopefully did not cause any confusion.

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.

Bored of Spore already, so let's blog...

I picked up Spore on release and have put about six hours into it... It's alright, but somehow not what I was expecting. Particularly it lost me when I entered the Tribal stage of development. The instructions asked me to go impress or destroy a rival village, then left me alone to figure out what that meant. It turns out you are now spending a ton of time harvesting and occasionally fighting off marauders. I need to get past this stage asap before I lose interest and move on to another game.

On the work front, I've been spending most of my time lately trying to tie up the odd bugs here and there on projects... It's a mostly ho-hum task of whack-a-mole that often seems to crop up near the end of a project. This usually comes about as more users come around to test things out and start doing stuff you were not expecting during the design phase. Fortunately though, this time around has been pretty benign.

Also I have been preparing (or trying to prepare) for AGDC. Compared to JavaOne, I guess this should be cake as I'm simply standing up for a bit to pimp something I've worked on for several years. If you're already well familiar with jMonkeyEngine you can go ahead and whip out your DS while I talk for 15 minutes or so. :) If you have not seen the jMonkeyEngine, or it has been a long time, here's a little shot from my last job showing what you can accomplish with it. (A former manager thought this should be okay to post... hopefully.) Sadly, the project was canceled for reasons out of the Java programmers' hands. :-/



On a more enjoyable note than bugs, cancellations and prepping for speaking engagements, I had a chance to hang out with Rikard ("MrCoder") today and talk about some fun coding ideas we've been kicking around for quite a while now. There were some very cool things discussed and I'm looking forward to seeing something new get started soon. :) Hopefully more can be said about what that "new" thing might be in the next couple months.

feel the urge

It has only been a couple weeks since I decided to take a back seat to development at jME and I am already feeling the urge to pick up my wrench and get back to some kind of engine development. The question is where...