Portfolio

Escherreal

- Escherreal is a single player 2D/3D platforming puzzler in which the player takes on the roll of M.C. Escher's not so brilliant or graceful nephew Raffi. Throughout Raffi's experience, he utilizes an object called the mirror marble which allows him to flip gravity, and a special pair of glasses called the infinispecs. The infinispecs provide Raffi with the incredible ability to flatten the world, and traverse it as if it was indeed flat.

I acted as the lead programmer on this team, consisting of a total of 5 programmers, 3 artists, and 7 producers/designers. I had my hands in every single aspect of this game, but my largest contributions went to the character controller and the modification to the physics simulation, as well as the development of our metrics tracking system, and a collection of rendering techniques to include a toon shader, and a portaling system.

Download Source



Data Driven Game Engine

- This engine currently acts as a foundation for extending the development of a game in a data driven format. The engine is a contained hierarchy leveraging composite abstract objects to provide the necessary relational contexts that systems, as well as entities need within a game engine. The advantage of this generic system is that anything from an actual in game entity, to entire modular systems can be swapped out and moved around with no tight coupling. All of the data in the engine is provided via an  XML parsing system implemented using Expat, which interfaces with the factory creation system within the engine to populate the engine, as well as tie XML scripted actions to entities. The engine does not currently contain any rendering or audio systems.
Download Source


Sparse Voxel Octree Raytracing [WIP]

- Sparse voxel octress are something I became interested in when investigating the concept of volumetric rendering that is often seen in non realtime particle effects, and more specifically the medical industry for CT and resonance imaging. This project is my first approach at developing a sparse voxel raytracer, forcing myself to utilize only CPU based algorithms. I felt these limitations would provide me with a good learning experience with optimizing high performance applications, as well as help me understand the limitations we face when we don't leverage the massively parallel capabilities of GPU's. The scene is being rendered at an interactive framerate using raytracing and slab tests to generate a vector field of positions, which are then rendered via instancing. With further time, I would like to explore texture mapping, as well as the challenge of transparency.
- Updated 24 June 2013. Migrated over to entirely new DirectX 11 back end. Download Source

Motorola 68000 Breakout


- This was one of the first games I ever developed, and I loved every second of it. This is a clone of the classic Atari game Breakout, and it was written in entirely Motorola 68000 assembly language. The opportunity to develop this game provided me with the bridge between hardware, and software. The world of C and C++ have never looked the same since. This game contains kinematic physics as well as collision detection, strategic redrawing of a complex bitmap image (as opposed to a solid color), and a simulated seven segment display to track score and display it to the player.
Download Source



TCP Messaging Client/Server


- This is a client server application package that was written in C#, and implements multithreading to provide asynchronous transmission and receipt of data via TCP. I wrote a partial Open Sound Control implementation for this project, and took my first leap into the pleasant new world of WPF.
Download Source


Xbox Star Wars Schmup

- This was a game developed over the period of about three weeks. It was initially written for the windows platform using an OpenGL rendering back end. After developing the game with another programmer David Brett over two weeks, we were given a final week to port the entire project over to the original Xbox platform. My role on this project consisted of providing a platform independent layer for the game to work with when rendering, and accessing user input. This made the task of porting from OpenGL 3.0 to DirectX 8.0 a substantially easier process, and quite feasible for only a single week. I also developed the player control and shooting systems, as well as integrated Box2D physics.



The Decision


"The Decision" was a game, or rather more of an interactive story that I put together with a few other people over a period of two weeks. It follows a silent and neutral individual that gets dragged along with his problematic girlfriend, until the evening ends in murder. This game was developed using Unity 3D 3.5, and was my first experience with the prototyping tool. I must say I love the convenience of it, but I don't feel that I learned nearly as much from any of my Unity projects. The "works out of the box" or "prepackaged" feel of it is fantastic for rapid prototyping though. This game was made using 2D sprites for the characters, and many of the interactive objects, while leaving the world itself 3D.









Blacksmith Blast


Blacksmith Blast was a multiplayer game developed for the Android platform over a period of two weeks. I developed this game together with another programmer, a designer, and two artists. This game featured asynchronous gameplay, where the objective of each round was to build a structure out of a limited selection of materials you had, and then send your built structure to your opponent. Your opponent (and likewise yourself) would then take shots at each others structures, in attempt to destroy it, and eventually the enemy players blacksmith forge. My role on this project consisted of developing the networking back end that the game ran on, as well as the systems to support game state changes (shooting/building/waiting), and the user interface. The networking was all built using the native android Bluetooh SDK, chosen for its reliability in comparison with the local WIFI.


Hellemental


Hellemental was a two player game developed over two weeks with a team of two artists, and two designers. This game was essentially a fighter, with the difference being that you engaged in indirect combat rather than directly punching and kicking your opponent. Each round the player would pick up orbs located on the stage, granting them the power of up to 2 of the 4 available elements (earth, wind, fire, ice). The unique part about this was the ability for all elements to interact with each other to form unique behaviors. For instance, throwing fire on ice would produce a cloud of steam, obscuring the stage. Wind would cause fire to spread, and fire itself would ignite blocks of earth, which could spread to each other if they ever made contact. Ice would freeze an opponent if hit directly, or produce a slippery surface if it hit the platform. All of this made for a fun and emergent gameplay experience.






Terminal Velocity

Terminal Velocity was a two week rapid prototype built using Adobe Flash. I acted as the only programmer on a team consisting of myself, two artists, and two designers. This was also the first game I had ever made. Terminal Velocity was a two player competitive game where the goal was to collect as many balloons as possible to slow your descent before hitting the ground. The fun shows up when you notice there is a conveniently large number of baseball bats, anvils, and sticky bombs at your disposal to interfere with the other players agenda. On top of that, a large number of rogue birds and inconveniently placed aircraft will cut away at your current balloon collection. The more balloons you have, the safer your landing will be at the end.






No comments:

Post a Comment