Today I checked out the Unity engine and did one of the getting started tutorial projects and I was pretty impressed what I was able to do with no prior experience in a couple of hours.

When I was little I wrote a bunch of short Basic scripts (basic text input, reply with type loops, making random pitched sounds) the only useful one I can recall was for alphabetizing lists of words, which was a reoccurring homework assignment for some reason. I also read a number of variances on the Learn C in 21 Days which all covered basic concepts like loops, arrays and such.

Comic Credit Abstruse Goose

Comic Credit: Abstruse Goose

Despite that I never really got past printf('Hello World');. I also recall some confusion trying to use the old Borland compiler with books focused on newer IDE's. I never really knew how to move on from that point and start working with libraries to really be able to do something.

The pinnacle of my early programming experience culminated when I purchased the Black Art of 3D Game Programming: Writing Your Own High-Speed 3D Polygon Video Games in C. I knew I was probably lacking the requisite skill in C but I was confident I could work though it.

I was wrong. After reading a little about the virtues of mode 13h (320 x 320) because each dimension was the same and didn't require offsetting I hit the brick wall that was the 2nd chapter, writing VGA drivers in assembly (because any the OS was using were much too slow). It might as well have told me to go start digging up sand to melt down and pour into my own circuit boards.

The Roll-a-ball Project Tutorial was a huge difference. I was really impressed that within a few hours and about 10 lines of C# how I could have something resembling a 3d game going and how much work the engine handles with things like physics and lighting and camera angles. Once I was finished building was a super simple process and I had a ton of platform options to deploy to. I just selected the webplayer and out came two files, the .unity3d file and an html document to handle loading the player. I know for a fact I spent more time with various autoexec.bat configs for xms and ems and loading the mouse into himem just trying to get some old games to run.

Granted theres a lot to be said for really understanding how something works on all levels instead of having everything abstracted away under engine and OS layers but I learned to accept a while back that I was no John Carmack and that it is better to make something you can then not to do anything at all.

Here is the link to the game running in the webplayer. You will need to install the unity webplayer if you don't have it.

Here is the github link