Originally I was planning on sticking with java for this 3d game and using jMonkeyEngine, but that just didn't seem right. I've been following the development of that open source project on and off for a couple of years and even though it has made great strides, I still feel that some of the other tools out there will just be easier for me to pick up and learn right away. The major problem I didn't like versus some of the other candidates was just the fact everything was still programmed. An example of getting a simple textured box to appear in the screen can be done in the following form:
I really wanted to just draw a box on the screen and apply a texture which is why I chose not to go with jMonkeyEngine.
Box b = new Box(Vector3f.ZERO, 1, 1, 1); // create cube shape at the origin Geometry geom = new Geometry("Box", b); // create cube geometry from the shape Material mat = new Material(assetManager, "Common/MatDefs/Misc/Unshaded.j3md"); // create a simple material mat.setColor("Color", ColorRGBA.Blue); // set color of material to blue geom.setMaterial(mat); // set the cube's material rootNode.attachChild(geom); // make the cube appear in the scene
So, I started to look commercially for products and found the following 3 that I did some investigation on:
After some evaluation, I have decided to work with UDK. The main reason was just the options of the free vs paid versions. With UDK, you get all the features to design a full game, minus the source code. Then, if you want to commercialize your game, you have two options:
- Pay $99 and you get 100% of first $50k and then 75% thereafter
- Buy full commercial license to get source code and 100% of revenue (price not listed)
The reason why I felt this was a better option was due to the fact that with both CryENGINE and Unity 3d seemed to remove some features on the free versions. This meant that even if I never sold the game and wanted to use all of the features, I would have to buy a license.
Though enough about my investigations, on to UDK. This software is pretty damn impressive. Right now I have been following the 3D Buzz tutorials and with each video I finish my impression of the software just gets better and better. Some of the more notable features I've stumbled upon are:
- Light Lag Information - It can show you where you have too many lights on a surface and potential graphics lag.
- Apply Materials - Applying materials to various surfaces is as easy as drag-and-drop. And on top of that, if something is off, you can just tell it to auto-correct the layout of the materials and they re-adjust to properly align with one another.
- Kismet - I've only just begun with the Kismet scripting language but it's really cool. I used it to slide a gate back and forth based on a player's proximity to it. I just told Kismet where the gate will start/stop, how long the animation should go, and if I want any sounds. All of this was drag-and-drop as well. No manual programming to get a moving gate, how cool is that?
So, that's what I've been up to lately. I have completed my first simple level and would like to post a video walk-through of it. Actually, I can setup UDK to record a video walk-through but I haven't gotten that far in the tutorials yet so hopefully I figure it out soon and post a video.