Portfolio
Instructions:
Each gallery below contains images of the games that I have worked on. It is in a slide gallery and when you click on the image it will open up the image in a overlay window with a description of the image. Under each gallery is notes about the game, my involvement, and the source codes for the game. It also has downloadable content to try the game out. Take a look and enjoy.
Mini Maze
Game Notes
Game Idea
This game was simply meant as a means to practice using ascii characters and assembly code to generate a small maze game. My implementation uses ASCII characters and reads the input directly from the keyboard. The map itself is static, however the colored squares are randomly assigned each time the game executes.My involvement
I created this game myself, using examples from the textbook listed below as reference. From start to finish, it probably took about 4 hours to complete.Directions
To run the game, just download and unzip the files into a local folder. Then execute maze.exeTo move around the avatar, use the ADSW keys for (left / right / down / up) movement And the goal is to move from lower left, to upper right ... while gaining the most points.
Technologies Used
- Microsoft Visual Studio 2008 Pro (C++ & Assembler)
- Irvine 80x86 Assembler libraries
Game Resources
Source Codes
Download Game
x86 assembler ascii game (~ 65 kb)References
BooksIrvine, K. (2006). Assembly Language for Intel-based computers. New Jersey, Pearson Prentice Hall
Little RPG
Game Notes
Game Idea
This was intended to be a simplified 2.5D role playing game.The idea was to use available 2d isometric art to create a simple role playing game with randomly generated content. Each time the game starts, it randomly rolls up the offense, defense and hit point values for the player, the enemy Orc and any randomly spawned mushroom-men. I was unable to complete the entire design in the time allotted : however, the game still functions in its current state. The original intent was to add a choice of avatars to the player … such as the typical rogue, warrior or mage classes. Currently, the game is using the mage avatar which included animations for casting spells.
My Involvement
I created this game while taking a 2d game design course. Rather than stick with a simple 2d grid style, I opted to attempt to make a 2.5D style using Isometric tiles. This means the tiles are shifted roughly 45 degrees, giving the appearance of 3 dimensions. This turned out to be a lot more work than a simple 2D map would have been.There was so much more to consider when drawing the tiles. And it made it difficult to determine which x and y map location the player was actually within since the tiles overlap each other as they are drawn.
I wrote all the code including the Isometric Tile Engine myself, using the DirectX and Isometric programming books are references. The art assets came from "Reiniers Free Tilesets" website and included; moving limbs, built in shadows and animations for walking, spell casting and dying.
Game Directions
How to install and run
- Download the zip file from the game resouces
- Extract the contents to your desktop
- Navigate into the directory
- Double click on littleRPG.exe file
How to Play
- Arrows Keys control player
- Space Bar casts fireballs
- NumKey "0" casts healing spell
- ESCape exists the game
How to Score
- Destroy Bush(es)
- Destroy Mushroom will also sometimes spawn a "Mushy Man"
- Destroy Mushy Man restores players full health and mana
- Destroy Orc knocks out the orc for awhile, but a new one will spawn
Game Resources
Download Game
Little RPG release.zip (3.8mb)You may need to install DirectX 9.0 SDK runtime found here
Technologies used
- Microsoft Direct X SDK (March 2009)
- Microsoft Visual Studio 2008 Pro (C++)
Source Codes
- Game Loop C++ source code
- header file for main game loop
- C++ source code headers for csprite class
- C++ source code for csprite class
Refernces
Art Assetshttp://reinerstileset.4players.de/englisch.html
Books
Harbour, J. S. (2007). Beginning Game Programming, Second Edition. Boston: Thomson Course Technology.
Pazera, E. (2001). Isometric Game Programming with DirectX 7.0. Roseville,CA: Prima Tech.
2942
Game Notes
Game Idea
This started out as a simple 2d game for the Westwood College Summer Games competition. The idea was to have (3) different views; Space, Solar System and Planet views.The goal was to cleanse all the infected planets and systems, by destroying the giant aliens that are spawning the infection. These boss creatures resemble a jelly fish and change colors as they take damage. Just before dying they turn red.
My Involvement
For the summer games contest, our team started with (3) programmers and (2) artists. We had 9 weeks to design and complete the project. Half-way through the project, we lost the lead programmer (and all his code changes) and one of the artists. The team was struggling to complete the project.In the end, I was responsible for about 90% of the programming work on the project itself -- but wasn't willing to see it fail. I put aside a large amount of time to recover the project – and it was a success.
We came in 2nd place for the summer games competition -- which won us each a free license for the new Torque 3D game engine. (Torque 3D)
Game Directions
How to play
- "+" when docked at a sun or planet (yellow ring appears when docked) ... "zooms" you into that sun/planet view.
- "-" "escape" from the current view to the next higher view ... or in space, teleports you back to "base" NOTE: It also HEALs the player ship when doing so - hence its the "escape" feature.
- Spacebar or Left Mouse Button fires main gun (bottom, orange meter under player shows the reload cycle of main gun)
- Control or Right Mouse Button fires the alt gun (missiles or torpedo)
- Switches Main Gun to : Plasma Blaster
- Switches Main Gun to : Dual Pulse Laser
- Switches Main Gun to : Auto Cannon
- Switches Alt Gun to : Missiles
- Switches Alt Gun to : Torpedoes
"Status" readouts
Under the players ship are the following "health bars":- Shields
- Armor
- Hull
- Solar Power
- Gun Reload/Recycle Meter
- Total Hit Points
- Solar Power
- Gun Reload/Recycle Meter
Game Resources
Game Download
2942DirectX 9.0 SDK runtime
Technologies Used
- Microsoft Direct X SDK (March 2009)
- Microsoft Visual Studio 2008 Pro (C++)
Source Codes
I created most of the engine code myself, using C++ and Microsoft DirectX 9.0 -- and the textbook (listed below) as reference.- Main game loop source code.
- Main game loop headers.
- Sprite class source code.
- Sprite class headers.
- Ship class derived from sprite source code.
- Ship class headers.
References
BooksHarbour, J. S. (2007). Beginning Game Programming, Second Edition. Boston: Thomson Course Technology.
Fantasy RTS
Game Notes
Game Idea
This is a real time strategy game, which uses the Torque 3D Game Engine (TGE v1.5.2) In addition, I have merged many updates into the code base -- as well as merging the content from the "RTS Starter kit".This allowed me to quickly protoype my game idea - since we were only given 9 weeks total to come up with and build our game ideas for class. Here is a link to My Initial Game Design Document to give some idea of what was planned. There were to be (2) sides to the game ... the classic "orcs vs humans" style.
My Involvement
I worked alone on this project, first creating a rough plan for what I wanted to build. After developing a plan it was applied to the project in an accelerated schedule to meet the class deadline (9 weeks total).Over the course of the project, I was able to integrate many new features aside from those in the core game. Some of these included;
- Rotate buildings - ability to rotate building with mouse wheel, when placing them to be built
- New units - added code and models for new avatars in game including; giant rat, swordsman, warrior woman, ogre and shaman.
- Animated buildings - added code to utilize the animations built into the buildings for each side. These include "under construction", "idle" and "destroyed" animation sequences. None of this worked "stock".
- Fireball magic - created scripts and code which allow the shaman to hurl a fireball which does are effect damage.
- Overland map - this required scripting and code changes to implement. Includes full fog of war functionality and ability to send "pings" to other players which are visible on map.
- Scoring system - rather than use the stock "kill counter" system, I created a new scoring system which tracks such things as number of units created, damage done, damage taken (per unit or total) as well as units lost / killed.
- Placement of buildings - updated the stock code to allow placement of (7) different buildings types (for each side).
- In-game resources - like a classic RTS game, this includes resources such as stone, gold and trees for the player to harvest.
- Enemy AI - created enemy AI functions via scripting, to automate their build & harvest processes as well as ability to find valid targets to attack and respond to damage taken.
- Right click targeting - like classic rts games, if you have a unit selected and right click ; it will determine whether to walk to that location, attack that target or collect that resource -- based on unit type and location clicked.
Game Directions
How to play
Game Resources
Game Download
Fantasy RTS Demo In addition, you may need to install the DirectX 9.0 SDK runtimeTechnologies Used
- Torque Game Engine (TGE 1.5.2)
- Microsoft Direct X SDK (March 2009)
- Microsoft Visual Studio 2008 Pro (C++)
- Torsion IDE (for Torque Script & debugging)
Source Codes
-
Client Scripts
- Torque script defining datablocks for buildings. Client UI
- Torque script defining datablocks for the game user interface
- Torque script defining datablocks for the main menu user interface Server Scripts
- Load all the extra models and their animations
- Sample archer unit
- Function for placing buildings Server Script Resources
References
BooksFinney (2007). 3d Game Programming All In One, Second Edition. Boston: Thomson Course Technology.
Big Hunt
Game Notes
Game Story
It's the year 2942 and humans have expanded into the outer reaches of space. A small space station patrols this entire area of space. Recently, communication was lost to all of the colony planets. Investigation lead to the realization that hostile alien race has moved in and taken control of our planets. They have infected (34) different planets and are attacking anyone who comes near them. The story starts as the player leaves space port.Game Idea
This is a 2D space shooter game, kind of like asteroids and inspired by the "Bugs" found in popular science fiction like Starship Troopers or "Ender's Game". The player's avatar (ship) starts off in the SPACE view – which shows all of the stars. The player can move close and enter a star system which changes it to the SOLAR SYSTEM view. From there, the player can move around amongst the planets and when close to a planet can "dock" with it and land on the planet. This changes it to the PLANET view. The PLANET view is where the boss bugs can be permanently killed. However, the boss goes through (8) gradual color shifts before it is fully destroyed. When it is finally killed, the players score goes up and the planet is flagged is "cleaned". When all the planets in a system are "cleaned" – the entire system is marked as cleaned and enemy ships will no longer spawn there. In total, there are (8) solar systems infected with ALIEN BUGS. Each infected system contains 2-6 planets, which each contain a BOSS BUG and his minions. To clear the infection, the boss bug on each planet needs to be destroyed. When all planets in a system are cleared, the system is no longer infected.My Involvement
First of all, it should be noted that this game is a re-make of my previous 2942 game. It makes use of both SDL and OpenGL APIs – for true cross platform compatibility. The goal was to convert a game former written for Windows and convert it to something capable of running on other platforms. Since I personally had written most of the code for the 2942 project, it offered to be the lead programmer and project manager for this. We created this game for a game porting class assignment. Since we had a small team, we split the work up amongst (3) programmers:- Dylan Vance re-worked the graphics libraries, creating a generic front end that would access either Direct X or SDL APIs based on global flags
- Robert Pash re-worked the sound functions, to make use of SDL APIs
- Jeff Yaskus (myself) re-worked the Timer functions, to use SDL rather than DirectX calls. Also, further extended the graphics to support SDL + OpenGL graphics calls, to make use of the higher 3D functions to rotate 2D objects. I also handled all of the core game mechanic updates, including changes to make use of the new cross-platform sound and graphics APIs
Game Directions
How to play
The arrow keys are used for movement.- Left and Right arrow keys change the direction of the ship.
- Up and Down arrow keys are used to accelerate or decelerate the spacecraft.
- Numbers 1-3 select the primary weapons and 4-5 select alternate weapons
- "-" (minus) key takes the player up one "view"; planet —> system,system —> space
- "+" (plus) key is used to enter a system or planet; space —> system or system —> planet
How to score
The scoring system is keeps track of the number of shots fired, number of misses and hits. In addition, the over-all progress is based off the number of planets that have been cleared versus the total number to clear. For the player to win, they must successfully defeat the bosses on all infected planets. As it's a casual game, there is no Lose condition. When the player's ship would be destroyed – instead, it re-spawns at the starting location. Perhaps a difficulty setting could be included for those who want more of a challenge.Game Resources
Game Download
- Big Hunt Windows 32-bit version
- Big Hunt Linux SDL version
- You may need to download and install the DirectX 9.0 SDK runtime
Technologies Used
- Microsoft Direct X SDK (March 2009)
- Microsoft Visual Studio 2008 Pro (C++)
- GCC/G++ (open source C++ compiler used for Linux OS build)
- SDL APIs (for timers, graphics and sound effects)
- OpenGL API (supported via SDL function calls)
Source Codes
References
BooksHarbour, J. S. (2007). Beginning Game Programming, Second Edition. Boston: Thomson Course Technology.
Pac Man AI
Game Notes
Game Idea
This small 2D game was created to test and understand simple AI and gameplay akin to the classic PACMAN. Rather than do another re-make of pacman itself, I opted to create something more original. Since it was intended for kids, I opted to change the avatar to a cute bunny rabbit and the dots to carrots. I also replaced the power dots with yummy red apples, to encourage the rabbit to eat healthy.My Involvement
I created this game while taking a course on Game AI programming. Rather than start from scratch, I was able to reuse some of my code from the littleRPG project. The main goal was to tests and demonstrate the basic AI states which include; SPAWN, CHASE, EVADE and (re)SPAWN. In addition, I implemented A* pathfinding to allow the ghosts to navigate around the maze effectively.Game Directions
How to install and run
- Download and unzip the game into a new folder
- Navigate to the whatsupdoc.exe and run the file.
- It may also require for you to download and install DirectX 9.0 SDK runtime
Controls
- W - up
- A - left
- S - down
- D right
Game Play
Eating the carrot "dots" scores you 1 point. Eating an apple turns the ghost into large carrots that you are able to eat. The ghosts will flee for a short time while the player's speed is increased. The game is over when the rabbit has no lives left.Game Resources
Game Download
What's Up Doc Download for the executable gameTechnologies Used
- Torque Game Engine (TGE 1.5.2)
- Microsoft Direct X SDK (March 2009)
- Microsoft Visual Studio 2008 Pro (C++)
- Torsion IDE (for Torque Script & debugging)
Source Codes
References
BooksHarbour, J. S. (2007). Beginning Game Programming, Second Edition. Boston: Thomson Course Technology. Bourg, D. M., & Seemann, G. (2004). AI for Game Developers. Sebastopol: O'Reillly Media Inc.
Outdoor Survival
Game Notes
Game Idea
"Imagine for a moment, that you are the sole survivor of a small plane crash. You have no idea where you are exactly and at the moment are just glad to be alive. However, there are no roads or people within sight. Using only the clothes on your back and your wits – you must survive long enough to be rescued or find your way back to civilization."It started with the idea of creating a semi-natural environment where the player can learn the important aspects of survival. In a split from the traditional (cliché) first-person genre, the game is not about gunning down bad guys. Instead, the player must stay alive in the wilds while trying to find their way to safety. The will need to manage the following concerns; heat or cold, thirst and hunger. In addition, there is no map or compass to guide them so they also need to use basic navigation skills to determine the direction they are going.
My Involvement
This is a game idea that I have been building upon for the last couple years. I used it as the basis for a game documentation course, which helped create a good amount of game design details.I then partnered up with another student to make a prototype using the general game idea. Since we only had ~8 weeks to complete the work, I simplified the design greatly so we would have reasonable chance of completing it. As such, this version is a very rough prototype which is missing much of the intended content.
However, we were able to get some of the basic mechanics working and design environments to continue to tweak and test the mechanics better. This includes a frozen mountainside, dense woodlands and a desert environment. We used the Torque 3D Game engine to create this prototype which included both source code and torque Script additions. Since I have a license for the engine, I personally handled all of the changes to the engine Source code. My team mate, George, was a big help with creating the desert level, adding level-specific startup scripts and getting in-game sound working. I created the (2) mountainous levels using actual Google-Earth height map data, which turned out to be challenging because of the different scales involved.
Over the course of 8 weeks there was a lot of work to be done. Between George and myself we split up the tasks that needed to be done to meet the class deadline.
The following is what George worked on:
- Created Desert Level
- Level Specific startup scripts (torque script)
- Added functions to control THIRST checks
- Added functions to control HUNGER checks
- Added functions to control HEAT checks
- Setup functions to query the Day/Night cycle objects in each level
- Added new splash screen for CREDITS
- Added camera controls to follow the plane as it crashes
- Game Design Document & Project Plan
- Created Crash site Level
- Created Wilderness Level
- Tweaked functions to control THIRST checks
- Tweaked functions to control HUNGER checks
- Tweaked functions to control HEAT checks
- Created logic to consume WATER by standing in water tiles
- Created logic to consume FOOD when player runs over mushrooms or cactus
- Added new GUI elements and functions to make a persistent SCORE board
- Created scripts to animate the plane crash scene
- New trigger to prevent players from walking off the map (ZONE WALL trigger)
- New trigger to load the next level (LOAD LEVEL trigger)
- New trigger to acknowledge the player has reached the exit area (EXIT AREA trigger)
Game Directions
How to install and run
- Download the installer
- Double click on OutdoorSurvival.exe
- Follow the prompts to install the game
- Approve any updates needed for DirectX (it will download them automatically)
- Click on the game shortcut it creates on desktop
How to play
Game Start up- Start up the game
- Set you video options (under options/settings menu)
- Select a level to start
- Move around: Arrow keys, WASD keys, or game controller
- Jump: Space bar
- Punch: Left Mouse to punch something in front you
- Sprint: Holding the Left Shift will cause player to sprint foward
- Score slider bar - Shows the current overall score
- Temperature Bar - Current amount of body heat. Try to keep it in the middle. Too much or little will cost health damage
- Thirst Bar - Current degree of thirst. It starts at 0 on the left and goes up, reducing health as it rises.
- Hunger Bar - Current amount of hunger. Starts at 0 and goes up. Reduces health as player gets more hungry.
Key to keep in mind is that in Real Life you have (3) hours before cold could kill you, (3) days before thirst kills you and (3) weeks before you die from hunger. So the bars are listed in order of importance.
- Too hot - Night time will get cold and cool you down or find water and stand in it
- Too cold - The day heats up towards NOON and sprinting will generate a little heat
- Thristy - Find water and stand in it. It is assumed that you are drinking when in the water
- Hungry - Eat a cactus or mushroom to provide food and a small amount of water
Game Resources
Game Download
Outdoor Survival 98mbTechnologies Used
- Torque 3D professional game engine
- Microsoft Direct XSDK (June 2010)
- Microsoft Visual Studio 2010 Pro (C++)
- Torsion IDE (for Torque Script & debugging)
Source Codes
Art Datablocks WeaponsReferences
Web siteshttp://www.garagegames.com/community/forums http://www.garagegames.com/community/resources
Books
Finney (2007). 3d Game Programming All In One, Second Edition. Boston: Thomson Course Technology.