CSE360 Honors Project: "Swarm"

By Walton Dell
Fall Semester 1999
Last Updated: June 25, 2006

Key Points:
  • Programmed in Visual C++
  • Uses MS DirectX 7.0 API, and the user must have DirectX version 7 installed on their system.
  • Note: The game is NOT available for download.
Things NOT designed by Walton Dell:
  • Uses example animation code from the DirectX 7 Software Development Kit (SDK), including image of rotating donut.  Let me repeat, I did not design the red rotating donut.
  • Note: I did not use any code from the "Donuts" game in the SDK, just from a small animation example that includes the same donuts.
  • Includes a space image, courtesy of NASA.

Things designed by Walton Dell:

  • A large portion of the code is by me.  All the "hit detection" code, all the character AI (artificial intelligence) code, and more is written by me.
  • I did design the blue spaceship and the evil, donut-making creature (not seen in the screenshot).

Things I did NOT have time to add (yet!):

  • There are no sound effects.
  • There is no music.
  • The game has no ending.
  • The game does not have multiple levels.
  • I would have liked to have added additional creatures.

The Characters:

  • The blue spaceship is the human-controlled player.  See controls below.
  • The red donuts are called "hunters".  They will pick a random location on the screen, then they will head straight for that location.  When they get there, they will pick a new location and repeat.  Hunters can be destroyed by bullets.
  • The ugly multicolor creature is called a "chaser".  (Not seen in the screenshot.)  The chaser will move toward the human player and every once in a while it will create a new hunter (red donut).  If the chaser is hit by a bullet, then it will "hyperspace" to a new location on the screen.
  • The bullets are fired by the spaceship and are also considered a type of "character".  The bullets accelerate upward.

The Controls:

  • Press space to fire a bullet.  Do not hold down space or press it too rapidly.  If you do, your gun will overheat and you will have to wait for it to cool down before firing more bullets.  It is also possible for a bullet to hit a recently fired bullet causing both to be destroyed.
  • Press the arrow keys to move the spaceship.
  • Press escape (ESC) to end the game and return to Windows.
  • Press ALT+TAB to switch back to Windows with the game still running.

Almost Real Screen Shot:

Note:  I was not able to take a real screen shot, so I created this composite image.  The game only supports 256 colors, though.  Also, there is now a new character that creates the donuts.  Other than those things, this screen shot is accurate.


UML Class Diagram:


  • This diagram is not complete.  Some of what is missing is:  There is an AddHunter() method in the Environment class, which the chaser will call regularly.  Physics now includes "size", for calculating hit detection.  There is much more that is not on this diagram.

  • Environment contains an array of players.

  • "Player" class must be subclassed, and each subclass must provide "Update()" and "Contact()" methods.

  • Update() method is called on Environment once per frame, which in turn calls Update() for each player.

  • If a player comes in contact with another player, then the environment class will call Contact() for both players, with the other player as the parameter.

  • Even bullets are considered players.  If a bullet comes in contact with a "hunter", it will change the hunter's "alive" status to false.

Copyright © 1999-2006 by Walton Dell

wdell.com Home Page Walton Dell's Software School Projects by Walton Dell Computer Support (Tutorials and more!) Glossary of computer terminology Music Video Games Fun Stuff Humor Links to other web sites Search wdell.com or the entire web! Contact Walton Dell
Web Site: wdell.com