Dee Goes Nutz - Independent Team Project, C++

Dee Goes Nutz - (Sophomore year, mid-2006)

Download alpha version 0.2 -- (Download d3dx9_25.dll here if you need it)
The game was never fully finished, and as such there is no victory condition after the 7th level, also there are still some bugs, such as money slowing down the player and an invisible boss. It is meant as a demo, not a full version game.

Dee Goes Nutz was the first major game I worked on in a team outside of school. Our intent was to make a "Smash TV" type of top-down shooter game. We ended up getting the invitation to present our game at the TieRockies convention in Colorado in 2006. The presentation was to show what 3 sophomore students could do in 3 months on their spare time between work and school. Considering where we were at in our education we came away from the project pretty happy. We got to try some stuff in the game that we had never done and had not been taught yet in school.

Important features:
Custom scripting -
- Ability to set the images for everything in the game through script.
- Abilty to setup level sizes, difficulty, number of enemies, type of enemies.
- Ability to set what the enemies actually do, whether or not they fire at you, how fast they move.

A.I. - This game was our first attempt at enemy A.I. Another teammate and myself didn't have a whole lot of time to work on A.I. However bots included: Wandering, aiming, and visual ranges.

Collision detection
- I was responsible for creating the collision detection, which I coded entirely from scratch. Looking back on it, 2D collision detection is reletively easy for me now, but it was a great learning experience early on. Collision is based on types. Collision does not occur between enemies, which saves cycles. In fact, the player is checked against all enemies, and then each enemy is detected against each bullet.

Matrix rotations
- Part of aiming the bots and player required rotating our sprites. We decided to make all of the sprites flat 3D shapes and forego using so-called "sprites" altogether. We'd originally planned on making the game perspective 2.5D, however we decided to move to a full 3D project which was promptly interrupted by our Mentorship opportunity. Credit of rotations and aiming goes partially to all team members, but mostly to Randall Furino.

Recursive maze creation and solution algorithm - In order to make levels random size and place doors in random locations I had to create an algorithm that created a dungeon of rooms, then went room to room randomly connected them with doors. After every room was complete I used a recursive pathfinding algorithm to check if there was a definite path through the level.

Custom link lists - We were having issues getting our compiler to accept the STL linked lists, so I decided it would be a good time to get some extra practice with pointers and lists. It turned out to be very very good practice. Every player, enemy, powerup, weapon, and bullet in the game is derived from a parent "Object" class. Using a list of all objects the game can easily check collisions as it needs.


Other team members:
Randall Furino ( Programming, code, design, artwork)
Jason Yegge (Code, design)
Dan Wolfis (Some code, Design)