Processing:
Pong Game

Role: Sole Programmer
What is it: A programming exercise used to become familiar with the Processing programming language.
How it works: Using keyboard input, 2 players can control the paddles to play a classic game of pong. Simple collision detection affects how the ball reacts to paddle movement.
Skills Used: Collision and movement detection, sound libraries
Challenges: As this was a project used to better understand the Processing programming language, the project was full of challenges. Movement and collision detection provided the greatest challenge, mainly getting the ball to rebound of the paddles in a semi-logical manner.
Other Information: I did this project at the beginning of the course. While the professor was showing the class how to use basic loop statements, I was implementing keyboard inputs and sound libraries. This allowed me to excel in the course and play a lead role in assisting other students with their code in our final project.
View Game and Source: Pong Game and Source Code
Music visualization

Role: Beat Detection, Software Lead
What is it: A music visualization program with chat functions and can be manipulated with the Wii Remote controller.
How it works: Using the Minim sound library, the program interprets the sound waves and beats and displays and manipulates shapes on screen. Using a chat client, users can change or add additional shapes on the display. With a Wii Remote, a user can control the camera views, zoom levels, and add or remove objects.
Skills Used: Sound and 3D Graphic Libraries, beat detection, object manipulation
Challenges: Our biggest challenge in this project was combining all the different parts of the program into one piece. Each person was coding on their own hardware, and we had to scrap one part of the project when we discovered it was not compatable with the Operation System it was to be presented on.
Other Information: Using the knowledge previously gained by personal research I was able to quickly lay the foundations of the beat detection for this project and train another team member in its use. This enabled me to aid other team members struggling with their code to ensure a timely completion of a successful project.
View Game and Source:Music Visualization Program and Source Code Note: There is an issue getting the 3-D library to load properly on this site. The code is availabe for review and works in Processing 1.0.9
Abstract Clock

Role: Sole Programmer
What is it: An abstract clock with an alarm and a changing background.
How it works: Using your computers system time, the clock updates every second. The top bar is hours, the middle bar minutes, and then seconds at the bottom. The background image changes for morning, afternoon, evening, and midnight. Hard coded into the program is an alarm clock that plays sound at a pre-set time.
Skills Used: System timing, Sound libraries, image manipulation
Challenges:This project was the first time that I had dealt with getting time data and turning it into useable data. After a bit of research the project went smoothly.
View Game and Source: Abstract Clock and Source Code
C++
Software Development Project (Accounting Program and Documentation)

Role: Lead Programmer, Project Manager
What is it: This is a banking application that I helped write with my 4-person team for a Software Engineering Principles course. The purpose of the project was to take us through the phases of the Software Development Lifecycle and produce a completed program with documentation.
How it works: Based of the requirements gathered, this program acts as a simple ATM-style banking program. The program uses a text file to store data, which the program uses to identify users. The administrator can add and remove user accounts. Users can deposit or withdraw from their account, view balances, or change their passwords.
Skills Used: Team management, file input/output, vectors, Software Engineering principles
Challenges: The most difficult part of this project was about halfway through the course two of our team mates disappeared. I stepped up as the Project Manager and with the cooperation of the other active member, was able to complete the project and meet all of its requirements by our deadline.
Other Information: Going into the project I was the most experienced programmer on the team so I took the role of Lead Programmer. When our acting Project Manager and another member stopped participating I let the remaining team member take on the lead programming role while I took care of the management side of the project. I was able to be a mentor and helped him complete the remaining code, while ensuring that all other aspects of the project were properly completed as well.
Abstract Data Type Sorting

Role: Sole Programmer
What is it: Functions for various vector sorting of Abstract Data Types in Vectors
How it works:The main program runs each of the sorts included (Bubble, Exchange, Insertion, Selection, and Shell) and lists the times used to sort in ascending and descending results.
Skills Used:Abstract Data Types, Vectors, Data Sorting
Challenges: This project was an introduction to sorting methods, and as such it took a bit of time and research to figure out the proper algorithms for each sorting type.
Project Source Code: Sorting Function Source Code
D&D Power Calculator and Die Roller

Role: Sole Programmer
What is it: A program that calculates attack and damage rolls for a Dungeons and Dragons 4th Edition game. The program was designed specifically for a character that I was playing so it only supports a select number of the available abilities.
How it works: Pulling character abilities from a separate text file, the program lists the available abilities to choose from. Using the file data, the program completes all the required computations needed and returns the value. A random number generator is used for dice rolls values.
Skills Used: Class structures, file input/output, switch statements
Challenges:The biggest challenge I had in this program was keeping my functions simple enough to work for all of the available powers, yet complex enough to not require an excessive number of them to run. I initially just coded each power individually, but found that I was re-writing the some code over and over so I separated them in to attack, damage, and power functions.
Other Information:This program also functions as a basic die roller supporting all standard die types.
Source Code: Power Calculator Source Code
Games:
NeverWinter Nights Game Mod

Role: Sole Programmer, scripter writer
What is it: A NeverWinter Nights game mod. Using the provided Aurora Toolset, I created several levels for custom video game content. Using the provided game and community graphic models, I created several game levels using custom scripts and original dialogue.
How it works: Using the game engine and Aurora Toolset provided with Bioware’s NeverWinter Nights video game, I was able to create my own game levels and storyline. All of the actions and triggers in the levels, as well as quest and item tracking was scripted using the engines scripting language. Using a cinematics library I was also able to script my own cut scenes to fit with the game.
Language: NeverWinter Nights Script (modified C++)
Skills Used: Model importing, Sound importing, scripting, creative writing.
Challenges: My biggest challenge here was a script that relied on several triggers in a game level, as well as data passed from a different area. I could not get a script to work properly under certain conditions, and found the problem to be that I had used the same model with its default resource id in several locations.
Nintendo GameCube Game

Role: Co-creator
What is it: A bumper-boat style soccer game designed for 4 players on the Nintendo GameCube console.
How it works: The two teams try to get the ball into the goal on the opposite side of the screen using their boats and other objects to direct it with. A simple physics and collision system provide the feeling of driving an actual bumper boat and the balls reaction to the various objects. Pinball style bumpers are used for additional difficulty.
Language: C/C++
Skills Used: Graphics, Animation, and Sound Libraries, collision detection, controller support.
Challenges: Our professor provided us with the functions that needed to be used to create games in the GameCube SDK, but little to no information on how they needed to be implemented. We spent a lot of time researching and testing before being able to fully create our game.
Other Information: The game was initially meant to be a multiplayer racing game, but we had a difficult time coming up with a good steering system. It was also difficult to make a well defined track with our limited resources and time constraints. After testing out our steering and collision system one day, we joked that it felt like driving bumper boats. With our deadline quickly approaching, we decided to change the game from car racing to what you see now.
Gameplay Video: Boats in Action
View Source Code: GameCube Source Code
Web Design:
Liz’s Art Gallery

Role: Sole Creator
What is it: A website to showcase the artwork of an Artist
Skills Used: HTML, CSS
Challenges: This was my first time using CSS so I had to do a lot of research and testing. The site has undergone several versions until both the artist and I were happy with the layout.
Other Information: The PHP contact form was a pre-made template, customized by me to fit the site’s layout and needs.
www.lizsartgallery.comThe Hill’s Nest

What is it: A family website with user forums and a photo gallery.
Skills Used: HTML, CSS
Challenges: Customizing the photo gallery templates to match the main website was the most difficult part of this project. The templates were separated in to several files, sometimes requiring the JavaScript files to be edited.
Other Information: The photo gallery and forums were made available through the web hosting company. I installed and customized them to fit the site requirements.
www.hillsnest.com