<< back to index

Ardor3D News

 

Interview with Gijs-Jan, finalist in the 2010 Ardor3D Mobile Summer Event

September 29th, 2010 - Austin, Texas

Ardor Labs, sponsor of the Ardor3D Mobile Summer Event, is please to announce the successful completion of the summer event by Gijs-Jan ("methius"), one of the three event finalists.
Included below is an interview conducted by community member and fellow game developer "paranoidray".

Gijs-Jan "methius" Netherlands

How old are you and where do you live ?

"I am 23 years old and live in the southern part of the Netherlands, Limburg, in a city called Maastricht."

How did you start programming ?

"I started programming in the first year of my study, Knowledge Engineering. We were given the assignment of programming a solver for the pentomino fitting problem, on a 6x5 grid."

What is your favorite book on programming ?

"This is a tough one..
While I was introduced to programming with Horstmann's Java Concepts 4th Ed, I rather dislike the book and have finished almost no of the assignments in it.
I think people should really understand that there is a difference on learning the syntax of a language, and learning how to program.
Good books on learning how to program are:
How to design a Program by Felleisen (HTDP, free online), and
The Structure and Interpretation of Computer Programs by Abelson (SICP, also free online)

IMHO, programming should be learned through the act of exploration.
Pick a subject you like (Mine was games), a language, and start to program!
The language you'll learn by following online tutorials and starter books,
but learning how to program you can only do through exercise!"

What are your favorite games and companies ?

"My favorite games are rather old school: X-Com, Transport Tycoon, Theme Hospital, Dungeon Keeper, Fallout 1 & 2.
In the last few years I've played and liked BioShock, Fallout 3, Starcraft 2 && Minecraft.
Among my favorite companies is Blizzard, for the continued excellence they give to each and all of their games".

What programming languages do you like, which don't you like and why ?

"I haven't had enough programming experience (3 years) to really say I dislike a certain language. However, I do like:

Java for it's simplicity
Matlab for it's incredible speed
Scheme/Lisp for the incredible functionality that only a functional programming language can provide. (bracket hell though)"

What are some interesting trends in programming from your perspective ?

"I do not have enough experience in the matter to really give an opinion."

Would you like Closures for Java and if so which variant ?

"In this I have a very strong opinion: YES.
The core of Caravel is a predicate based logic system which determines whether someone wins, loses, is allowed to build, etc.
As such, I wanted to be able to dynamically create new game modes in XML, without having to hardcode any of the rule combinations, without having to use Java Reflection all over the program.

As such, I implemented a Predicate interface:


public interface Predicate<T> {

public boolean apply(T params);

}


and a Initable interface:

public interface Initable<T extends Initable<T>> {

public T init(Object... params);

}

And as I did not want my entire code base cluttered with classes implementing a single method like: ConstructionStateCheck, ConstructionRoundCheck, ConstructionLocationTypeCheck, ConstructionLocationNearnessCheck, or: VictoryPointsCheck.
Or one class with X amount of methods which I would have to locate with Reflection, or a single check method filled with case statements..

The above code, allows me to do create a enum called ConstructionRules, which implements Initable>, which returns an anonymous class implementation of a Predicate using the supplied variables.
I can then use the static methods AND/OR/NOT of a Predicates utility class to combine these to my hearts content.


In summary:
This allows me to create entire new game modes in xml with simple statements like:"

<AND>
<STATE Type="Setup">
<OR>
<RESOURCES Grain="1" Wool="1">
<OWNERSHIP type="Construction" subtype="House" equality="LESSEQUAL" number="1">
</OR>
</>

Tell us a little bit about your game.

"Caravel is a multiplayer, strategic board game centered around the acquisition of resources and achieving a preset goal.
Much more I cannot specify, as the entire game itself is coded so that I can easily change any aspect of the core rules.

If I want triangle board pieces? No problem.

Furthermore, I will be using the user data gained from the sessions for my AI research."

Where did you draw inspiration from ?

"I play a lot of board games with my friends, and wanted to implement a board game"

Why did you choose Ardor3D for your project ?

"I was introduced to JME in my first year of the study, and observed that Josh was one of the most active developers on the engine (if not the most). After he announced the setup of Ardor3D I was interested in it's development, and in short time, impressed by the speed at which the engine was being implemented.

Primarily the trust that, if issues were to show up during implementation, Josh could help out was the reason why I wanted to participate in the summer event. It also helped that I had some experience with the code base to begin with."

What alternatives did you look at ?

"I looked at implementing my own lightweight engine over the openGL bindings, and engines like Rokon(2D), Nobound3D and JPCT."

What is your experience so far with Ardor3D ?

"Al though it has some rough edges, Ardor3D is already usable for a full fledged game in it's current state."

What are your favorite features of Ardor3D ?

"Well, if we were to look at it from a most useful perspective: MeshCombiner.
This feature tripled my frames per second on the android.
Any developer should look into scene optimization. And MeshCombiner provides one aspect: minimization of nodes."

What would you like to see improved in Ardor3D ?

"I am still working on my Android game, so my focus lies in this direction.
The major areas in which work should be put are either Sound or Input.
Apart from that, I would say that time should be spent in developing tools that ease the workflow.
Things like importer/exporters, model previewers.
Also, as the engine itself is becoming more and more complete, the main focus of the developers should be about building a (larger) community around the engine. This can be done by filling out the wiki and creating startup tutorials for Ardor3D.
Things in which, we as a community could (/should) help!"

What would you suggest to people who want to begin writing games ?

"Do not wait, do not over design, just start."

What kind of game or application would you like to write if you had unlimited resources ?

"I like procedural generation.
If I had unlimited resources, I would get started on a game like Minecraft, or DwarvenFortress hybrid.
A game in which a full and vibrant world is generated, complete with history and inhabitants and players can sandbox to their hearts content. Be it RPG dungeon crawling, or construction of a city."

What do you plan to program next ?

"I currently have 3 other projects planned, all games for the Android platform, which I plan to (or already am programming) program with friends of mine."