Overview
As an undergraduate at Central Washington University, I undertook many individual and
team projects related to game development. Here is a collection of my work over the past
four years including my presentations, games, competition entries, and demos. Each program
listed presented me with unique challenges and some even required me to create everything
from the sprites to the music. My experience has benefited me both by teaching me the
discipline of short deadlines and presenting me with challenging tasks.
How To Run Python/Pygame
The examples I present below coded in Python/Pygame require two necessary installations.
Here are the two installation files required to run the Python/Pygame applications.
How To Run Nintendo DS/GBA
The homebrew roms I posted below require an emulator to play them without the hardware.
I personally use No$Gba as it runs both Nintendo DS and Gameboy Advance games without many flaws.
Here is a direct link to the No$Gba emulator that I use.
Presentations
Python/Pygame Games & Demos
C++ Games & Applications
NDS/GBA Games & Demos
| Presentations | |
|---|---|
| How to Build Your Own Tetris 101 | [ Download ] |
| In this presentation, I cover how to program Tetris in a manner that is user-friendly, and adheres to good coding standards. I put a number of detailed descriptions of my interpretation of the classic game including timing mechanisms, piece construction, and playability. | |
| Central Washington University SOURCE 2006 | [ Download ] |
| The presentation given to the Central Washington University's SOURCE in 2006. This presentation was given to a group of around 30 people, including professors and SOURCE commitee members. The presentation was titled Game Programming Optimization. I was presented with a recognition of excellence by Dr. Schwing and the Computer Science Department at Central Washington University for my presentation. | |
| Security & Ethical Hacking #1 | [ Download ] |
| The first security presentation given to the ACM members of Central Washington University. This presentation was an introduction to how beginning hackers learn to get into the trade. Each topic is presented and discussed in a matter of attack then defense. | |
| Security & Ethical Hacking #2 | [ Download ] |
| The second security presentation. This talk introduced more advanced methods of security intrusion and analyzing. This includes NMAP scanning, IP sweeping, Netcat, and a brief overview of exloits and shells. Each topic was presented with information for attack and defense, and included methods of stopping potential hackers. | |
| Security & Ethical Hacking #3 | [ Download ] |
| The third security presentation. This talk overviewed how to crack encrypted passwords and hash files. This includes John the Ripper's methods of MD5, MD4, and DES encryption. This talk also covered several other advanced methods of encryptions, windows key loggers and how to prevent them, and root-kits including IRC bots. | |
| Security & Ethical Hacking #4 | [ Download ] |
| The fourth security presentation. This talk was purely hardware and presented a few ways of exploiting hardware and using it to a hacker's advantage. The first, and one of the most important pieces of knowledge, was the cracking of WEP and WPA on modern routers. This is very important because it still applies to today's standards. The next topics included: bluetooth snarfing, magnetic strip reading for < $5, RFID reading and writing, console hacking, and arcade building. | |
| Python/Pygame Games & Demos | |
|---|---|
| Pyweek #4 Entry: Death Tower | [ Download ] |
|
|
| The fourth pyweek attempted. For this challenge, I made a gauntlet style game which I originally planned to have an RPG element mixed into the action, but due to time constraints essentially made a gauntlet clone. Although I was very proud of the code and organization that went into this entry, the other judges did not share the same opinion. | |
| Pyweek #3 Entry: Urban Ninja | [ Download ] |
|
|
| The third pyweek attempted. This was my first real attempt at making a game in a week, and my results were very satisfactory. I managed to come up with all of the graphics, a decent gameplay concept, and a game that I could not beat my first time. This game scored very well with the judges and took 5th place in the solo competition. | |
| Pyweek #1 Entry: Aero Hazard | [ Download ] |
|
|
| My very first attempt at entering a coding competition. The first mistake when it came to this game was trying to do all of the code and graphics in two days. I was on vacation during the time of the competition, which left me with less than three days to complete the task. I managed to make a very small demo but nothing more than that. | |
| Physics Demo - Drift Test | [ Download ] |
|
|
| A rather simple physics demo showing a triangle attempting to drift while moving and turning. The controls are simple: use the arrow keys to move the triangle and attempt to drift back and forth across the screen. | |
| Game Demo - PyInvaders | [ Download ] |
|
|
| One of my first attempts at recreating an old class, a space invaders clone with jungle animals to represent the "python" theme. The enemies get faster as they go down, although the demo does not do much but look like space invaders. | |
| Tetris Clone | [ Download ] [ Win32 Exe ] |
|
|
| The very first true game I ever created without any tutorials or help. I wrote this purely from scratch with the knowledge of how to create images and set a frames per second timer in Pygame. This was a big challenge for me, as I had never made anything but academic projects up to this point. | |
| Bresenham Line & Circle Demos | [ Download ] |
|
|
| A small Bresenham example showing how to make circles and lines with pygame and surface arrays. This demo was important for understanding how to draw circles and lines in situations where only pixel alteration is provided. | |
| Space Breach - Arkanoid Demo | [ Download ] |
|
|
| Another small example of my efforts to recreate famous arcade classics such as Arkanoid and Breakout. This demo was created partially from well known "pong" tutorials, and I also wished to incorporate the extra features of Arkanoid. Level loading was another challenge presented by this recreation. | |
| Plasma Zangief Graphical Demo | [ Download ] |
|
|
| I have always been fascinated by the old school C++ graphical demos that would run on very old machines. I found an excellent example of a "plasma" demo through google, and wanted to see if I could recreate it in Python/Pygame using the surface array capabilities. As python uses a different set of loops than C++, I asked for help on the #pygame IRC channel to get a better grasp on how to do massive looping without slowing down the Python engine. | |
| C++ Games & Applications | |
|---|---|
| Bullet Dodger: Particle Engine & Shooter Demo | [ Download ] |
|
|
| Originally created as one of my first C++/SDL applications, Bullet Dodger is a simple vertical shooting demo using a particle engine to disperse a random number of explosive sprites. The bullets flying out of the cone of the ship are also randomly generated in a spray detailed in the SOURCE presentation. | |
| Genetic Monsters: Genetic Mutations Research Project | [ Download ] |
|
|
| A project completed by me and another student, Loren Harris. This project was for my CS 457 - Computational Intelligence class, and demonstrates how genetics can be passed on between "monsters" and change the overall population. Each component of the monster corresponds to an attribute such as vision, defense, and speed. Some combinations are stronger, but can quickly be wiped out if a mutant occurs from a randomly mutated gene. This project also challenged me to create an isometric playing field on which the monsters moved around on, and how to deal with dynamic monster creation using the SDL image library. | |
| Network Mame Launcher v0.2 | [ Download ] |
|
|
| A very small project I did for a fellow arcade enthusiast by the name of Legacy Adv. He requested a program that could launch his copy of M.A.M.E. from another computer on the same network. Essentially, he would use a small tablet computer to tell the master computer which game to launch, thus a network mame launcher program began. I used this project to emerse myself into the WinSock2 library and understand how TCP/IP connections worked. After much trial and error, I had a fully working program that would launch M.A.M.E. with close to no network traffic. | |
| NDS/GBA Games & Demos | |
|---|---|
| Star Pilot Horizontal Shooter (GBA) | [ Download ] |
|
|
| The first Gameboy Advance application I created that used sounds based on the hardware sound kit supplied. This was also a nice way to test the look up table (LUT) arrays built into the library, and to try out having "waving" bad-guys. As this was one of my earlier demos, it took me quite a while to understand how to put each piece together, including the sprites, background, and sounds. | |
| Xmas Demo (GBA) | [ Download ] |
|
|
| Originally created to be entered into the Gamedev.org christmas competition, this short demo was a way for me to experiment with collisions between moving objects. By passing velocity from one body to another, I gave the effect that your sumo was "bumping" the opponent. This idea could easily be translated into a wide-scale game using the simple velocity transfer system. | |
| Velocity Physics Demo (GBA) | [ Download ] |
|
|
| A very simple bouncing ball demo, used to try an idea presented to me by my oldest brother, Zak Arntson, in which you use hex values to represent digits. In this way, you can use such a value as 0x00010001 to represent a 1.1 velocity, or 0x008000F to represent a velocity value of 128.16. This also optimizes the amount of space needed for the numbers as it eliminates the dreaded DOUBLE and FLOAT. | |
| Simple Background Palette Demo (GBA) | [ Download ] |
|
|
| An experiment with directly manipulating the palettes contained in a 256 color background. It simply revolves the colors 0-255 in a circle and the effect is the end result. | |
| Santa's Sick Day (Nintendo DS) | [ Download ] |
|
|
| The beginning of a Dr. Mario clone on the Nintendo DS, intended to include Wifi and online capabilities. This demo shows the pills moving down and connecting to the playing field. It also eliminates pills when they connect, although the connected pills do not drop as the original Dr. Mario pills do. | |