Tuesday, 29 April 2014

My Programming beginnings

Sometime ago I got into playing computer games, particularly Star Wars games, in fact  I have over 50 SW games. Some of the early games got me into modding. I played with a modding tool called JED, which let me make my own levels for Dark Forces 2: Jedi Knight. I then played with a tool that let me make my own levels for Jedi Academy. ( I believe it was based on the one of the Quake engines or something like that.)
Some years later I got in a MMORPG called Star War Galaxies (still my favourite game of all time) . This led me to the idea that I wanted to get into making my own games so I found a program called Realm Crafter. This appeared to be a complete system to make an MMO without learning a massive amount of programming. I was wrong =(. Struggling to get it to do anything I wanted (I had no programming skills so it is no wonder), I planned to learn to program. After some careful thinking, I applied to the Open University to do a computer degree. With no previous programming knowledge, but with a lot hard work, I am slowly getting there. 
See next post for Open University stuff.....
I have used Dark Basic Pro, which I have used to varying degrees of success. I have been using Torque3D. I like the graphics and some of the pluggins are good fun, but for a beginner it is hard to use. I have also spent quite a bit of time using Leadwerks2.

Rancor rendered in Leadwerks 2
I developed a wrapper to use Leadwerks 2 in Java, it worked surprisingly well, but due my concerns over security (with the wrapper not Leadwerks2) I stopped the project.
As I have found it hard to get into other people's game engines I felt that the only way to get a game engine that I could use easily and in the language I enjoy is to write it myself. So that is why for the last year or so I have been learning OpenGL using a number of different books and websites. The main programming language I know is Java, so I tried a couple of options. I gave the JMonkeyEngine ago, but didn't get far as I really wanted to use OpenGl at low API level. I tried JOGL, but didn't like how you had to set up a window or how you access the OpenGL functions. My third option was to try LWJGL which I have found much more intuitive. The tutorials are very good and have helped me understand enough to use books and tutorials designed for programming in C or C+.

Recently I have started to learn Android development with Java. So far I find the API to be very user friendly. It makes sense to develop for Android as it is a growing market and is fully accessible to a Java programmer like myself. So my plan at the moment is to learn everything I can about Android development and OpenGL and make my own game engine that can be used on Android as well as a desktop. As Java  has a write once use anywhere philosophy I'll make the code so it can be used on plain old Java and Android with just a change of jar file. I'll use the LWJGL for the OpenGL on the desktop and the Android OpenGL ES2 so shaders will be used but some on the desktop will not be available on the Android system until OpenGL ES3 come out and I have a development machine that can run it.