Thursday, December 15, 2011

GDD110 Portfolio

Since I'm primarily interested in programming, but still enjoy game design, my portfolio will include a number of programs that I have written, several of which are games. Everything included in this post is meant for Option 7 of the GDD110 final portfolio assignment.

#1) Arena Shooter

The following game was made in 4-6 hours. The purpose of this was to start and finish a short, simple computer game using Game Maker with a limited amount of time. The game is complete and functional, but has a number of design flaws.

The game does not use any images for its graphics, nearly everything is made with simple circle- and line-drawing functions that are built into Game Maker's programming language.

The major problem is with the gameplay. There are several different enemies that the player fights, and most of the player's time is spent running away from the smallest type, which chases the player relentlessly when it gets within a certain distance. The other enemies are little more than distractions, something to avoid running into while fleeing from the little guys. The max number of each enemy in the game is determined by the player's score, and the game checks every few seconds to see if the number of enemies is below the max. If it has, it will spawn however many are missing in random locations across the screen. This ensures a constant supply of the small chasers, which in turn prevents the gameplay from changing significantly.


Download Arena Shooter v1.0.exe

#2) Square SHMUP

The name sums up the entire game - it's a simple scrolling shooter with graphics made out of red squares.

Scrolling shooters are relatively easy to design and program, which makes them an ideal project for beginners. I started a number of scrolling shooter games during middle school and high school, and this is the most recent. The result, although incomplete, is a functioning game with passable gameplay. Although the graphics are very simplistic, I was very pleased with the game's appearance.

One of the game's biggest issues is the lack of a level structure. When I programmed this game, I wasn't interested in designing levels. So instead of following a previously designed level structure, the game will randomly spawn enemies every few seconds. The pool of enemies from which the spawner chooses grows with each wave. But this is very repetitive, and won't remain interesting for very long. To make this work, I would need to make the game very fast-paced, provide a large assortment of enemies to fight, and create a more sophisticated system for randomly spawning enemies.

Download SHMUP.exe

#3) Text-Based Minesweeper

This is a small project I made because I was interested in using text to replace a GUI. Minesweeper seemed perfect for this: it was a simple game that I could easily implement in Java and the UI is essentially a grid, which can easily be represented with command line text.

This game is the end result, but it still has two small issues: the user can choose a mine on their first attempt and the user has to press enter to confirm each action. Other than that, it's a fully functional, text-based version of Minesweeper. In keeping with my creative titles, the game file is called "TextSweeper".


Download TextSweeper Files

#4) The Same Game

The Same Game, like Minesweeper, is a simple game that can be found all over the internet and packaged with some operating systems. It goes by a variety of names, and there are many variations of it: Poppit!, Gravity Tiles, SameGNOME, etc. Again like Minesweeper, the game uses a simple grid layout, and has very simple rules governing its behavior. This is why I decided to try adapting the classes that I wrote for Textsweeper to create the Same Game. It was even easier than I had anticipated, and this is the result.

Download SameCHAR Files

#5) Other Java programs

I have also included several short Java programs that are not necessarily game-related, but some can be used in games. Each of these was written for a computer science class taught at Quinnipiac.

Bucket Sort - This is a very short program that implements a sorting algorithm called Bucket Sort. When the program is run, it will randomly generate a list of numbers, print the list, sort it, and print the sorted list (on the command line).


GCD - This program contains implementations of two algorithms for finding the greatest common denominator of a pair of numbers (Euclid's algorithm and the consecutive integer algorithm), but its primary purpose is to measure the number of operations performed during each algorithm's execution. This is important when determining an algorithm's efficiency.

Guess - This program implements a binary tree, which is used to learn how to play a twenty questions-like game with the user. It begins with a single question and two answer, and asks the user to think of some object. It then asks its question, makes a guess, and is usually wrong. Whenever it turns out to be wrong, it asks the user for a question that can distinguish between the answer it gave and the object that the user was thinking of. It adds this information to its tree, and will slowly accumulate knowledge with every game it plays.

Guess uses an additional class called TreeNode, which must be downloaded and compiled with it before it can run:

Download TreeNode.java

1 comment:

  1. There's one problem that I forgot to include in my description of Square SHMUP. The version uploaded here and used for the demonstration was modified to cycle through the enemies in survival mode faster. This will result in an error sometime past the 3 minute mark when the game tries to spawn a non-existent enemy.

    ReplyDelete