High School #
I began my software engineering journey in High School and had my eyes opened to what would become a very productive and fulfilling career.
High School Decisions and First Programs #
I first began seriously thinking of what I would be doing for a living post high school when I was 16 (10th grade with two years to spare). Like most young people my initial thoughts were a bit ambitious and quite vague. When I was very little my first thoughts were that I wanted to be an astronaut, but a rather strong fear of heights put that idea to bed quite early.
And with that change in "plans" I knew I enjoyed computers a lot. Growing up in the later 90s and early 2000s meant I was able to interact a lot with computers when computing wasn't nearly as user friendly and abstract as it is today. I had broken, and fixed, my own computers on more than one occasion, and since so many people in my life seemed baffled by them it felt like a good opportunity to pursue and fun.
My junior year in High School I wound up taking calculus and the teacher required us to use the rather advanced (for the time) TI-84 calculator on tests, homework, and in-class assignments. These calculators were primitive compared to today's smart phones, but they were fully programmable with their own version of Basic .
A version of Basic that my teacher did not mind us using to write programs to help us on tests...
So I figured out how to write some simple programs that would be helpful on tests and distributed them with the rest of the class. This covered things like implementing Newton's Method . This was a very limited environment in which to program, but it really got me thinking...
First "Real" Programs #
My first programs on the Ti 84 were very limited and simple things, but they made me start wondering what else may be possible and what else may be possible in a PC based environment (that supported undo/redo for example) and with languages that were more advanced and complex.
This led me to Dev C++ , C, and the Allegro game programming library . Because what nerdy teenager in the early 2000s wasn't interested in video games and creating their own?
The most memorable of these creations (excluding my super simple initial command line apps) were a pair of very simple and very incomplete games.
Tank Chaser #
This application was my first real foray into Graphics programming, C, and graphics creation in Gimp . The code is very primitive as you might imagine, with all of it in one 650ish line file. I definitely would not write it the same way now.
The binary still runs even on a modern Windows 11 machine and the Readme.txt file in the binaries zip contains a bit of a time capsule into what I was thinking and where I was taking the project. Even back then I was planning out my projects.
I don't recognize it all; it may as well as have been written by someone else, but to be fair it has been a long time since I touched it and I barely understood what a pointer was at the time.
This does have some neat little tidbits in it though that even today I find very amusing:
- Sound effects
- An actual game loop for one of the game modes
I remember being very pleased with myself showing this off to my classmates, and I also remember them being equal parts baffled, confused, and not very impressed.
Space Shooter #
Basic Allegro Version - Windows Binary - Source Code
Allegro Open Layer Version - Windows Binary - Source Code
The Basic Allegro Version was built with its logic tied to the its framerate, and it doesn't use VSync so I don't recommend going past the menus.
The Open Layer version runs better on modern hardware but has some audio glitches that result in unpleasant sound behavior.
I grew up in the age of the SHMUP ; from various versions of Raiden in the arcades to many gaming sessions with friends playing Captain Skyhawk on the NES and eventually the SNES port of Strike Gunner . So I decided I wanted to make my own SHMUP.
I created two versions of this application; one using standard Allegro which is software rendered (which I knew wouldn't scale well at all) and one using Open Layer which provides 2d hardware accelerated rendering capabilities on top of normal Allegro (the advanced version). A significant portion of the graphics in this version are procedurally generated resulting in smooth explosions and other nicer effects.
These applications were also my first foray into 3d graphics creation with Blender . The spaceship on the title screen and the player spaceship sprite were both created in Blender.
A few more high points:
- Some actual architecture; code is divided amongst features across multiple files.
- Both versions load attacker wave information from file.