Portfolio
Here you will find some of my projects (programming, papers, and presentations) of the past and present.
Programming
Artemis Chronicle – July 2008 to May 2009
Artemis Chronicle is an action/adventure game for the PC and Xbox 360. It was built in C# using Microsoft XNA. The game is built on top of our in-house engine, NitroX. Some of the current features include:
- Multi-threaded architecture
- Advanced shader effects and lighting
- Advanced AI (pathfinding, goal based hierarchy, perception, FSMs)
- Animation blending
- High level FX systems (point-sprite and billboard)
- Physics integration
- Game state management
- Advanced tool set (level editor, artist tools)
Team Website: Chimera Game Studios
Video 1 Overview:
The player must defeat the Eyes of Hades, and restore Apollo’s light. The Eyes are initially sleeping, and must be woken by striking the Bell of Apollo. Once awoken, the encounter begins.
The main Eye only becomes vulnerable when its’ minions have been disabled. The minions each shoot a different color laser. The minion Eyes are only vulnerable to fire of the same color as their current laser attack (red, green, blue).
Once the Eyes have been knocked out, the path of light becomes unobstructed. The player then proceeds to light the torches all the way up to the top of the cathedral, until Apollo’s light has been restored.
The player then uses Apollo’s light to strike the Bell of Apollo, which puts an end to the Eyes for good.
Video 2 Overview:
The gameplay is split into ‘islands’, where progression to the next island requires the collection of a red crystal, and it’s insertion into a shrine. Each island shows off a different element of gameplay:
Island #1 is largely an introduction. Basic character locomotion is shown, as well as many of the technical features of the engine: graphical effects (shaders, animations, particles, shadows, etc) and physics.
Island #2 shows off a puzzle aspect of the game, and illustrates some of what can be done with the arrow mechanic.
Island #3 shows off the combat and AI systems (pathfinding, collaboration, goals, and behaviors).
Tools:
There were a bunch of tools I developed for this project, with screenshots below. See this post for a complete discussion of the tools.
Finite State Machine (AI) Framework – Feb. 2008
A simple FSM Framework and example application, based on ideas presented in “Programming Game AI by Example” by Mat Buckland.
Depth of Field Effect – Dec. 2007
A flexible, GPU-based depth of field module built on top of the OGRE 3D engine. Uses GLSL.
World of Warcraft Addons – Nov. 2007
- WoWSlang – an in-game WoW dictionary, with definitions of commonly used terms and acronyms.
- WoWCalc – an in-game calculator.
Procedural Clouds – Nov. 2007
A procedurally generated, real-time, GPU-based cloud module, written on top of the OGRE 3D engine. Cloud formation, movement, lighting and layers. One version was also done in pure OpenGL/C++. Both implementations make use of GLSL.
Portals – Oct. 2007
A portal system, similar to that found in Half Life 2: Portal. Utilizes multiple viewports to achieve the effect. Implemented on top of the OGRE 3D engine.
E-Cookbook 1.0.0b – Jun. 2006
An electronic recipe organizer written in Python. Search, sort, print, and organize your recipes, as well as many other useful features. This project has an official Sourceforge project page. wxPython is used for the interface, and PySqlite for the database backend. Windows/Mac OS X supported.
E-Cookbook is an electronic cookbook or recipe organizer. It will replace the old tattered cookbook in your kitchen. Easily decide on something to make for dinner, or see what you can make based on the ingredients in your refrigerator.
Java Bytecode IDE – Jan. 2006 – May 2006
An Integrated Development Environment (IDE) for writing Java Bytecode programs, using C++ and wxWidgets. Some features:
- Full-featured text editor with tab support.
- Assembler to translate bytecode into instruction-level code.
- Multi-threaded debugging, with support for breakpoints and line-by-line debugging.
SOM Demos – Nov. 2005 – Dec. 2005
Self-Organizing Map demo applications (as described in the SOM paper in the Papers section). SOM_Color is an application that learns to recognize and classify colors. SOM_Image is an application that can do the same for images, using various image classification algorithms. Both are written in C#.
Gaming Engine – Nov. 2004 – Mar. 2005
Initial steps towards a C++ gaming engine, featuring:
- OpenGL and DirectX 9 rendering support
- .3DS file format loading
- Camera systems
- Performance profiler
- Memory tracker
- Logging capabilities
Robot Gems – 2003
A Sokoban clone written in C++ and OpenGL. In the game, you are a robot. Your goal is to push gems, which are scattered around the map, on to certain designated areas.
Papers
Realistic Real-time Skies – December 15th, 2007
A description of a GPU-based real-time sky method, which includes procedural clouds, sky dome mesh generation, and lens flare calculations.
>> Download <<
H5N1 Simulated Outbreak – May 2nd, 2006
A simulated outbreak of Avian Influenza (aka Bird Flu or H5N1). This paper discusses the design, implementation, and conclusions of a computational model (written in Mathematica) that simulates an outbreak of Bird Flu on the population of the United States.
>> Download <<
Kohonen Self-Organizing Maps – December 15th, 2005
This paper introduces the Artificial Intelligence concept of neural networks – specifically, Self-Organizing Maps (SOMs). It discusses the SOM algorithm and introduces two SOM application implementations (both of which are available for download from this site).
>> Download <<
PHP Manual – May 5th, 2004
A manual for the PHP programming language.
>> Download <<
Presentations
Half-Life 2: Empowerment Through Portals – December 20th, 2007
For a Game Design Workshop class, my partner and I were tasked with adding a new feature to an existing game. This is what we came up with. Our presentation was selected to be presented at the “2007 USC School of Cinematic Arts Student Showcase“.
>> Download <<
Virtual Environments – April 29th, 2006
A presentation I gave at Wittenberg University, showing some of the things I accomplished while working at the Ohio Supercomputer Center for a summer internship. The project was titled: “Evaluating Elicited Anxiety in a Simulated Environment“.
>> Download <<