My affair with programming and making games began a long time ago when I was around 14. It started when me and
friend where talking about designing a game (for a magazine competition, I could win a free game!) and he asked if it would be
possible to actually make a game. I thought to myself, it can't be that difficult. So when I got home I went on the internet and
search for a game maker, not surprisingly Game Maker was the top result. So I downloaded GameMaker and started making my first game. I made a total
of two games with GameMaker before deciding that I wanted more control, to be able to play around with the computer more directly.
So again I ventured out on the internet and searched for some kind of programming language for Windows. I found C++ and got started
with some simple tutorials on the web, after fiddling around with C++ for a while I wanted to buy a book so that I could learn more.
Unfortunately our local bookstore didn't have the C++ book I wanted but they did have a book on this new language that had just come out: C#
For the next 3 years I worked on various projects for myself, with no other learning aids apart from my single C# book and Google.
Over that time I became very familiar with the .Net framework and I could throw together pretty much anything. It's a shame then that when
I went to university I had to change over to C++. It's not all bad however because C++ gave me more fine grained control over the hardware
than .Net ever could as well as access to DirectX and OpenGL so I could really start making some cool games, and with my knowledge of classes
and programming with C# I was up to speed in C++ in no time. I still continued with C# at home along side the C++ at the University though, because
while C++ allowed more fine grained control over everything it took an age to make tools and other useful stuff which only took me minutes with the
The Middle Years
When I say middle, it's not really the middle, it's more just my time at University. If there's one thing going to University didn't teach
me, it was how to code. How to make a game? Perhaps, but I due to my undying thirst for knowledge I always seemed to be one step ahead.
For example, the University course moves towards DirectX but the previous month I had already started working with DirectX because I wasn't
particularly enjoying OpenGL and everything DirectX seemed so much more attractive. Or when the course turned to look at XNA, I'd already
been all over that when looking into Silverlight and WPF. This isn't to say that the course was bad, I'd say it was pretty excellent. There's
also no replacement for getting proper experience with something when you have to work in a group to produce some project. I also gained a lot
of confidence in my own abilities during my time at Uni; previously I didn't have anybody to talk to about programming or have anything to
really compare my skills to, and it was great being around other people who had the same passion.
I think it was also around this time that I decided I wanted a website for myself. So I made one, and not in plain old HTML either, I wanted to use Flash.
So I made an entirely flash based website, which I conveniently then got to use for one of the university courseworks. If I'm honest it wasn't that great,
but I did learn how to do lot's of fancy stuff in Flash and Action Script. Like communicating with a database so that people could post comments or chat.
I'd love to be able to show a demo of this Flash masterpiece but unfortunately it was lost in the Mass Accidental Deletion of the My Documents folder back
in '07 when I was testing some remote access pc software I was working on - I never did figure out how that happened.
In case you are wondering I was able to recover almost everything that was deleted, but the flash website was not one of them. Since then I've not had
the heart to make a proper website and I've never been particularly interested in web development, yet here we are now, with a brand new website
that has real content and everything!
Over the last 4 years at University I have completed a lot of courseworks and in every one I've tried to add something special to it, to make it
stand out. For example in one early coursework I had to produce a 2D scene with a car that had transparent windows, wheels and lights. Simple right?
I of course took it one step further, I put the 2D cars into a 3D scene viewed from the front (so it looked 2D, but you got some proper perspective
on the cars in the distance) I added in some lighting and a timer so that it went from day to night and at night the cars lights came on, and finally
I learned all about named pipes so that the C++ 2D scene application could talk with a C# tool that you could use to add new cars into the scene (with
the colour of you choice) from outside the main application. It was a little over the top and I'm pretty sure I never got any extra marks but I thought
it was pretty cool. There's many more examples of the strange and wonderful things I've added to my courseworks over on the Portfolio
My course was a sandwich which rather than being filled with lettuce and bacon, meant that my 3rd year was spent on work placement. It was especially daunting
because I didn't end up going to a company in Liverpool (where I live) but I ended up working for Eutechnyx in Gateshead, where I met many strange and wonderful
people. I learned quite a bit while on placement, not necessarily directly related to programming but it was very different working on the floor with 20 other
people that working in my usual group of 2-4 at Uni. Whilst on placement I also had the pleasure of being introduced to Python which I had to use heavily
in my main area of development, I quite enjoy using Python for little scripts and whatnot but It's always bothered my how relaxed Python is with anything you tell
it to do. For example it's perfectly valid to define a function, and then assign a variable to that function definition as though it was a class.
For the duration of my course I was slowly building up a game engine, predominantly to help with graphics and models but in my final year for my dissertation I
decided to look into writing a physics engine that I could add to my game engine. I'd not thought about putting real physics into any of my games and demos
before so the whole topic was almost completely new to me, of course I was familiar with the maths used in a physics engine but as it turns out I had no idea
how I would actually go about implementing any of this maths to do any kind of physics simulation. After a year and a lot of research later though and I now have
perhaps my greatest and most useful creation, a fully working 3D physics engine.
Well having finished University I've had a lot more time to work on my own projects and I've been keeping myself busy. I've continued development of my game engine
and upgraded the physics engine with some classes for vehicle simulation. You can see demos of before and after I added a few special joints for classes for vehicle
simulation between the two projects Racer and RPM on the Portfolio
page. I have also turned my focus to this website, which at this point has been rather hastily put together using PHP but I plan to move it over to ASP.Net to make
it a little easier for myself to develop.
The next step for me is to find some kind of employment where I can put my skills to use and earn myself some money at the same time. So if you're reading this and
you think that I can help you, then shift on over to the Contact page and get in touch!