I have been captivated by computers since my dad got his Tandy 1000 in 1990-91 (don't know the exact date). Fascinated by the opportunities it provided and what it could do my passion for them only grew as I got older. One of the most pivitol moments in my childhood came in Winter 1992 (I don't remember the exact date). At the time my dad was stationed at an Air Force Base in Japan, where there was a small computer store, called the Computer Corner just to the left of the BX's (Base Exchange) main entrance. My dad and I would always stroll through, ususally very quickly as I just tagged along not really looking for anything. On this day however, on one of the Packard Bell machines there was a line of people eager to play a game (never seen that previously). Instantly I was engrossed into the gameplay as you were able to "walk" through this virtual world. No more were you stuck in a side scrolling manner as Mario had been. This game I would later find out was called Wolfenstein 3D. I remember walking away after my dad came back to go back home telling him how neat it was. At this moment I realized I wanted to make those types of games and change the world as id software had done.
While not making games as I originally intended all those years ago, I believe I am currently just an idea away from changing the world. Below is the story of my path of how I got to where I am today.
In 1995, while other elementary kids were playing the latest Super Nintendo and PlayStation games, I wrote my first QBasic game called, Shoot a Rama
, a text based basketball game. It really didn't do much other than simply display text and allow you to enter options for which type of basketball shot to shoot. Back then, I was 9 years old, didn't understand variables, let alone variable assignments so no matter what you entered it did whatever it was scripted to do. I made several sequels, learned the
command along the way and didn't actually program it with any sort of logic until December 1999 with the release of Shoot a Rama 2000
that used my 2D VGA engine, called GORE
(Available on Git Hub here
In 1996 and into 1997 I started diving into Visual Basic 3.0 (in the Fall of 97 moving to 5.0). Using the examples that came with it I started learning the basics of UI design and making visual programs, a big change in comparison to the text only QBasic games I had done previously.
It was also in 1997 that I first envisioned myself creating my own company, being big into Lucas Arts games at the time I came up with Jarred Arts
along with a Microsoft Paint logo:
Logo of my ficticious company dated 7/9/1997
Late in 1997 after making the move from Japan to Germany (losing everything on my hard drive unfortunately from 1996/1997 outside of a few items I had backed up onto floppy disks), I started using my newly found Visual mentality to make visual games. One of the first I came up with was Defiance: The Great War (8/10/1997):
The idea behind this game was for me to really dive into graphics programming (at 12 years old nonetheless) and make the next big game similiar to the then popular Descent gaming series. As expected, the realization of the enormity of this undertaking I took a step back and instead went down the more "static 2D" graphics route, starting with Imperial Assault
in November 1997. As the name suggests it was a Star Wars themed game with graphics done me in Microsoft Paint.
Splash screen for Imperial Assault dated 7/9/1997
Screenshot from Imperial Assault
Also late in 1997, Quake II debuted and forever changed my future. Shortly after purchasing Quake II, my dad bought 2 Diamond Monster 3D (3Dfx Voodoo) PCI graphics cards so we could experience it in all it's hardware accelerated OpenGL glory. I vividly remember walking around the corner of E1M1 to the long hallway and firing the Blaster, watching the glow of the blast light up the corridor until hitting the door at the end of the hallway. Much like how Wolfenstein changed my world when I was 7, Quake II did so again at 12, in a much larger way (I just didn't realize it at the time).
In 1998 continuing with my visual push I was big into emulators and thought it would be cool to "port" those old QBasic games with an interpreter, called gameGUY
(a play off of Nintendo's portable gaming console of the time). At the time this was above my abilities, but the idea didn't fade. 10 years later on October 5th, 2008, I wrote the interpreter, but never released it due to some bugs and lack of time. On, January 7th, 2012, I fixed the bugs, enhanced it a bit and am now releasing it with all of the original Shoot a Rama
games. There were several more QBasic games I wrote between 1995 and 1998, but I haven't been able to find them, maybe one day.
Download gameGUY for Win32 here
. You'll need to have .NET 4 installed, if you don't have it, click here
. Or you can get it from Windows Update.
Time passed by and I started getting into 2D Graphics and 3D Animation using TrueSpace 3 as it had come with my dad's Permedia 2 graphics card (Diamond FireGL 1000).
Star Trek: Experience rendered in TrueSpace 3 - February 1999
Around this time I also started really developing my programming skills. Summer of 1998 for my 13th birthday, I got a 12mb Diamond Monster 3D II Voodoo 2 graphics card. Along with it a desire to learn 3Dfx's proprietary API called Glide. At the time 3Dfx was the king of 3D graphics and I never thought within 2 years they would gone so I wanted to get in early with the API. I started learning 3D graphics principles such as texturing, single passs multi-texturing (thanks to my Voodoo 2), lighting and other basic concepts. Although my GLIDE skills would never be used after this summer, the concepts translated well the following 2 summers when I got into OpenGL programming and Quake II modding. In Spring 1999 I started really diving into C, C++ and going beyond what I had done for some many years in Visual Basic during 1999. Actually creating things from scratch in Visual Basic, C and C++ was a huge leap forward in 1999. By 2000, I started really diving in OpenGL in both C++ and Visual Basic, even ported Lesson 10 of NeHe's OpenGL Tutorials, Loading and Moving through a 3D World
to Visual Basic.
Screenshot of my website from 2/27/1999
By February 2000, I was teaching myself 3ds max r2, learning the basics of keyframe animation, spline and box based modeling, texturing and rendering techniques like ray-tracing. Little did I know, 3ds max would become a staple of my life for the next 3.5 years.
Following my move from Germany to Virginia, I started deep diving into 3ds max and started my path down compositing with Adobe After Effects. In High School, there was a group of fellow students who needed some cool explosions laid over some footage. Having never done that before, I had the harsh reality of only having a 300mhz Celeron to do rendering. January 2001 I upgraded to a 1ghz Athlon and to this day, have not gone back to Intel.
Between March 2001 and June 2003, I created 7 three minute 3D animations for a nation wide competition all done with 3ds max, compositing in Adobe After Effects and edited in Adobe Premiere (download links will eventually be made available).
My Desk circa 2002
My Website circa May 2002
In between all of the 3D animation work I continued both paths of web development and game programming. On the web development side I started using Perl and PHP in 2002 with PHP Nuke and several other Content Management Systems (CMSs) - though none filled every need I had. Prior to graduating High School in June 2013 I decided to spend the summer learning PHP and MySQL to the point where I could create my own CMS with flexibility and performance in mind. By the end of August 2003 I achieved a very early version of what would become this blog using PHP and MySQL, I would later call it bbXP
On the game programming front, I continued to spend nights and weekends throughout High School bettering my C++ skills and deep diving into OpenGL. The highlight was creating my own level format along with curved surface support and dynamic lighting, all the while running at over 100fps at 1024x768@32bpp on a GeForce 2 MX/1.4ghz Athlon.
With my move to Maryland for college, I found myself with a ton of time on my hands when not in school/doing homework. Fall of 2003 into Spring 2004, I started diving into nVidia's Cg shader language running against the GeForce 4 ti4400 I had in my system at the time. I had come up with a product called imgFX
, which I was making as a Photoshop like program, but using all hardware accelerated functionality exposed through OpenGL and Cg (interesting it took Adobe several more years to add even basic hardware accelerated functionality to Photoshop). I also continued my path down game development, migrating to using SDL
instead of writing platform specific window handling for my OpenGL games. Along the way in 2005, I got my C++ code to a point I wanted to release it under the name Infinity
In 2006 I got my "big break"
into the industry and began developing professionally for Vision Multimedia Technologies, a small PHP/.NET Development shop out of Towson, Maryland. As fate would have it, in Spring 2007 I was brought onto a new project that was largely C# - my life would never be the same again. After wrapping up the PHP aspect I was originally going to do on that large project, my boss asked if I would be interested in learning C# and working on the project. Having previously only messed with Visual Basic .NET briefly a summer or two before I was eager to dive in. Checked out a "Learn C# in 21 Days" book from the library and spent all of my after hours diving into the language for the next 2 weeks. By August 2007 I was writing C# as well as I could in PHP - a feat I was very proud of.
More to come on my C# Journey, vintage computer restoration and passion for never settling for "good" or "great".