Saturday, May 24, 2008

UIUC Senior Project

This project carried over my two final semesters at the University of Illinois, as a senior project in conjunction with a business interested in exploring 3D gaming as a learning tool. To satisfy their curiosity, our group of 4 used the Torque Game Engine, along with Autodesk Maya for modeling purposes to model part of the business complex and create a prototype learning tool and first person game for both teaching an escape route, as well as providing some small sample of what it might be like to be within the building when it was on fire.

The modeling work was rather extensive, and mostly handled by other members of the group. In general, the work for the project was rather extensive as well. However, by April we were more or less finished, and the client was by all rights satisfied with what we had accomplished. In all honesty, I'm not sure he had initially thought we would end with a completely working prototype. As four full-time university students with no outside help, completing a full 3D videogame of sorts seemed both then and now to be a monumental task. Thankfully, we had a great, motivated group.


There are a number of ongoing activities that go into a project like this: from the seemingly endless and sometimes irrelevant administrative reports, requirement specifications, and detailed documentation, to the modeling of a large portion of a building, to finally the actual coding of things like smoke and program flow, the placement of objects like fire extinguishers, and the constant reassessment of what features belong in the game, and which might be better left out. This final point had an atypically large role in our project. A few of us had made small videogames before it, but out of the four of us not one had any experience working on a 3D game. We didn't know what to look for, or what to expect to some extent. We made this clear to the client, however, and thankfully were able to overcome it with some flexibility on his part.

My favorite accomplishment of this project is probably that we finished. But beyond that, I'm pretty happy with how some of the stuff I put together worked out: Those light blue arrows on the edge of the screen that point the player in the direction of the exit are mine, both programmatically and Paint Shop Programmatically. The smoke effect is something I figured out as well, as is the annoying fire alarm which mercifully none of us can hear. (it is extremely annoying, I'm not going to lie.)

I also made those subpar tables obscured by smoke on the right, not that that was much of an accomplishment.


As mentioned in brief above, we used GarageGames Torque in the creation of this game. Despite our inexperience with actually making 3D games, it seemed clear from the start that mucking around with low level things like lighting effects and collision detection would only give us an extra degree of difficulty towards finishing the project. Torque has lighting tools built in, as well as collision detection and particle effects. All of these things came in handy immensely. Of course, an otherwise helpful tool like Torque wouldn't be complete without a plethora of frustrating shortcomings, some of which forced us to modify parts of the project. However, by and large it proved to be a boon.

One final, slightly odd note about this project. You may have noticed that after referring to them as "a business" and "the client", I have not referred to the company we made this prototype for. That is due to an NDA they required us to sign at the start of the project, stating among other things that we would not mention their company in relation to this game, so as to keep their videogame related research a secret, I suppose. It seems pretty bizarre, but I'm not one to judge. In any case, that agreement also prevents me from posting the game here. It's theirs, though for only internal use.

(This last fact is not a big deal. While I'm proud of the game, etc, it's ultimately a learning tool and not much of a fun game. The two aren't necessarily mutually exclusive, but for this game they were.)