http://java.sun.com/javaone http://java.sun.com/javaone http://java.sun.com/javaone
JavaOne - Experiencing Java technology through education, industry, and community
  2009 Platinum Cosponsor
Intel
  Cosponsors
Cosponsors
  Gen Session Cosponsors
General Session Cosponsors
  Media Sponsors
Media Cosponsors
Home > Rock Star Joshua Slack

Rock Star Joshua Slack


Neal Ford Bio: Joshua Slack's 2008 JavaOne conference session Creating Games on the jMonkeyEngine Platform, which focused on the future of 3D games powered by Java technology, taught developers how to use jMonkeyEngine to take a simple game from concept to reality. Slack is now both senior developer and president at Ardor Labs, Inc., a 3D software company whose clients include ConocoPhillips, NASA Ames Research Center, Rolls-Royce, and Sun Microsystems.
 

Q: What is the significance of your blogger nickname, "Renanse"?

A: I've had this nickname for years. I was a fairly prolific writer back in school: music, fiction, poetry, and of course code. Renanse was the name of a character from one of my story lines. He was leader of a group of roguish rebels, and I suppose I identified with him to a certain degree.

Q: Tell us about your contributions to jMonkeyEngine.

A: jMonkeyEngine (jME) was started in the middle of 2003, and I came on board in January of 2004. For about five years, until I left to create Ardor3D, I had a hand in pretty much every part of jME, from the core scene graph to special effects and music. It was a great ride, watching it grow from a hobby project to a community effort.

Q: Your efforts on jMonkeyEngine got you a job?

A: Yes! Out of the blue, about two years into doing this work as a part-time hobby, I got a call asking if I'd like to continue working on the technology at NCsoft, a top player in the massively multiplayer online game world. It was a great opportunity, and I really gained a lot from interacting with other developers who had been making professional game engines in C or C++ for years. I left NCsoft with a much better idea of what a true 3D engine should look like.

The Significance of Ardor3D

Q: What is the significance of Ardor3D, and what should Java developers know about it?

A: I started Ardor3D together with former jMonkeyEngine developer and fellow JavaOne Rock Star Rikard Herlitz about a year ago. Our goal was to create a version of jME that takes better advantage of modern Java concepts and libraries as well as to create an API with unified vision, professional support, a solid release schedule, and proper code provenance. We felt this would make us more attractive to serious developers -- which has proven to be true as reflected in our client list, which includes NASA, Rolls-Royce, and ConocoPhillips.

Q: Where is 3D Java technology headed? What technologies might benefit from it?

A: Right now, the sweet spot for 3D visualization in Java is using it to add 3D content to a web page or an existing Java application or framework such as NetBeans or Eclipse. With Ardor3D or other such engines, this has become a rewarding and fairly straightforward process.

That said, over the last few years, I've seen 3D Java used in pretty much every way imaginable from CAVE environments to scientific data visualization to multiplayer gaming. In many ways, it's like any good 3D-capable language now -- with a real budget and an experienced team, you could build anything. I think we'll see more and more professional 3D Java entertainment in the near future.

The Java Store

Q: Would you care to speculate on what will be the most important Java technology API three years from now?

A: Though it's not an API, I'm very interested in the Java Store recently announced by Jonathan Schwartz. If Sun is smart and uses lessons learned from Apple's iTunes Store, Sony's PlayStation Store, and Google's Android Market, this could be the biggest news Java has ever had. Only time will tell...

Q: What are the greatest technical challenges for 3D Java in general and Ardor3D in particular?

A: Definitely deployment. Quality 3D rendering requires access to your hardware, which, in Java, means stepping outside the normal sandbox. To date, this has resulted in limitations in how a user can get into your game or application -- preinstalling libraries or accepting "scary" security dialogs or other such hurdles. With Flash, Unity3D, and other web technologies, after a very quick install, there are no hurdles.

With Java 6u10 and beyond, we are starting to get closer, but even that is a mixed bag -- it's not available on Macs, for example. My hope is that this will change. Perhaps the aforementioned Java Store will help unify and improve the consumer experience.

Q: What advice would you give to a new Java programmer?

A: People develop skills in numerous ways, but if you're like me, it helps to have a real-world problem to solve and not just a bunch of abstract "Hello World" tutorials. Have an objective in mind; try to build a Java-based replacement for a simple widget you know well, like your desktop calculator. Your familiarity with the subject will help make the process feel more natural, and even better, you'll feel that burst of pride and excitement the first time you enter 2 + 2 and get 4.

Writing Code

Q: Can you describe the process of writing code?

A: For me, coding is very iterative. Many people design everything up front and then go in and get to work. I prefer to get in and start playing with the possible pieces before I decide which ones I'll actually want to keep around. It's a bit like writing a piece of music and playing around with various musical ideas before blending them together to get your final piece.

Q: Where in the process of programming do you have the most fun?

A: I have really grown to enjoy refactoring and optimization! As much as I love the iterative creation process I described, it's even more fun going over a set of classes and finding ways to chop large pieces out or streamline functionality. Knowing that I'm able to improve the quality of something, especially if other people benefit from the improvements, is a real high.

Q: What recent changes to the platform have made your life easier?

A: They're not so recent anymore, but I'd have to say generics and enums. I wish those had been included long ago.

Q: If you could work on a dream project, what would it be?

A: Actually, with Ardor3D, I am working on my dream project, though a bit more funding would allow us to fully realize that dream.

Q: What do you do when you feel stumped?

A: I usually like to get up and move around -- some might even call it pacing. This tends to help for at least two reasons. First, it gives my body something mindless to do so my brain can focus on the problem at hand. Second, it gets me away from the computer and its many distractions. When stumped on a piece of code, it is so tempting to start reading all those Facebook comments I never have time for.

Hitting the Gym

Q: Is there an intellectual discipline or fun activity that you feel makes you a better developer?

A: Does exercise count? I still have to drag myself there each time, but I'm convinced that balance is 100 percent necessary to maintaining your mental and creative powers. Hitting the gym a few times a week gives you more energy overall and can really make you a better developer.

For More Information

» Joshua Slack's Blog
» Technical Session From 2008 JavaOne Conference: Creating Games on the jMonkeyEngine Platform
» jMonkeyEngine
» Ardor3D

 

Do you have comments about this article? We welcome your participation in our community. Please keep your comments civil and on point. You may optionally provide your email address to be notified of replies - your information is not used for any other purpose. By submitting a comment, you agree to these Terms of Use.