Jump to content
  • Advertisement
Sign in to follow this  
  • entries
  • comments
  • views


Sign in to follow this  


Hey all!

Welcome to my first real post in what I hope will become an inspiring journey of progress through the morass that is game development. Or, at the very least, a somewhat entertaining journey through the morass that is procrastination. In any case, let's run through the basics:

Who am I?

My name is Matt Billock. I live in Chicagoland in Illinois, I spend my days writing code for slot machines, and my nights as a graduate student at DePaul University, finishing up a master's degree in Computer Graphics and Animation. I am not a great coder, but I try. I've always wanted to work in games, and have taken every opportunity that's come at me to learn how to make games. The problem, however, was that starting in the early days I had an unhealthy focus on the graphics side of things, being more concerned with bringing up a window and drawing pretty pictures than actual functionality. I'm hoping to change that over time.

What am I working on

At the moment, I've embarked on a quest to create a quasi-complete game framework. I'm not thinking anything insanely huge like torque or ogre, but more something that I can use and combine into my own side projects and games. As I work on this, I'll be steering the project towards a simple driving game centered on pizza delivery, but that focus won't come for several more months, at least. I still have a significant amount of work to do on the basic engine architecture, not to mention needing some actual focus in terms of targeted API and system. For the moment, though, I'm doing everything in C++, using OpenGL, targeting the PC realm. Over time, as my experience grows, this may change (most notably to DirectX and D3D), but for the time being I'll stick to what I know.

What am I starting with?

I'm starting with a set of code that, at first glance, was an unruly warren of methods and classes, with a heavy approach on the procedural side. Below is a screenshot from the first thing that I wrote using some of this code:

More info at http://www.mattbillock.com
Adventures in Evil Stick Land

As I have matured as a coder, I've moved far beyond the coding skills demonstrated by the fairly-simple 3d RPG shown above, but I still look back with both pride and fondness on this code, as it was the first 3D project I completed on my own. It is, however, long overdue for an overhaul.

As time has elapsed, the code base has evolved. I spent about two years working on other stuff, mostly due to the rigors of my Master's, but around last year I got the opportunity to pull out that old code base, dust it off, and give it another go. This was thanks to one of my more recent classes, which was focused on animation. I had the opportunity to add a bit more object orientation to this new code, as well as incorporate a simplistic mesh structure and a 3ds model loader. The code was still kind of ugly, due to the effort I put in for the assignment, but the result was all that mattered. For that project I implemented a helicopter simulator in C++, using fake physics and allowing for joystick input.

screenshot of helicopter simulator pending, need to locate a good screenshot

Overall, while technically lightyears ahead of the original code for the 3d RPG, this simulator still suffered from Really Ugly Syndrome, or RUS for short. I spent some time working on it a bit over the next few months, but without the impetus of a project there wasn't as much motivation as I would have liked. I was able to make a lot of improvements, though - especially to the model loader which, in the helicopter simulator, was unable to load materials or models with multiple objects successfully.

The next project I worked on helped me to grow the code base by leaps and bounds. It was for a seminar course that was focused on advanced lighting, but otherwise was wide open in terms of work target. I partnered up with a fellow classmate, forced my burgeoning code base on him, taught him how to work with it, and we pounded out some good stuff. See below:

A day-night simulator
From Dusk 'til Dawn

This is a day-night cycle simulator, with moving shadows and transitioning light and sky. The goal was to do it in real-time, with a target FPS of 32 (which we hit on the demo machine - the above is from my significantly underpowered laptop). It's written in Visual Studio 2005, so it includes the .NET framework (only because I can't get the IDE to not compile the framework in), and uses GLUT for window management. It's from this point that I am starting, working on making the code as abstract as possible.


I understand that there are already dozens of projects on the web doing what I hope to do, and many of them are much better than I can ever hope to make mine. That won't stop me from doing it anyway. The end goal of all of this is to make myself a better game developer, and if reinventing the wheel does it, then so be it. If all else fails, I'll still have a pretty hefty code base to show off in interviews and the like.

Where am I headed now?

My current task is to decouple all of the API-specific stuff from the general interface, making it a more object-oriented kind of environment. And let me tell you - there are some really ugly hacks necessary to use vanilla GLUT in an object-oriented environment. The current class I'm taking (my last, w00t!) is another seminar course with a final project, based around real-time optimizations and shader programming - for the next three months or so, it'll be my goal to incorporate the stuff I learn in this class into my code base, and hopefully do it in such a manner as to not make it overly challenging to abstract the code base to DirectX or to remove the GLUT code. Time will tell how successful I'll be, but you can be sure I'll do my best to post my results here for accountability.

Oh, and in case you're wondering, I'm hoping to make the pizza delivery game be my final project for this course. I don't envision it being complex enough (in terms of graphics requirements) to meet the requirements, nor do I delude myself into thinking I can finish the sheer amount of work necessary for that undertaking, but I do plan on moving the code base closer to this end result through modification of the existing day-night simulator, which I will be using as a test app for my framework for the time being.

In any case, I'm out for now.
Sign in to follow this  


Recommended Comments

Original post by TANSTAAFL
So, you work at WMS?

Yeap, been there about a year. So far it's a great place to be

Share this comment

Link to comment
You got some interesting stuff there. Gonna give your evil stick man land a whirl in a sec.

Welcome to Journal Land as well.

Share this comment

Link to comment
Original post by shadowcomplex
You got some interesting stuff there. Gonna give your evil stick man land a whirl in a sec.

Welcome to Journal Land as well.

Thanks for the welcome!

Share this comment

Link to comment
Looks like you have some good experience and a good goal and path set a head of you. Good luck to you and welcome.

Share this comment

Link to comment
Welcome to journal land. You've certainly got something interesting to read about. Looking forward to read more.

Share this comment

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!