Projects

Spider-Man Unlimited (Gameloft) (Feburary – July 2015)

Spider-Man Unlimited
A screenshot of Spider-Man Unlimited’s action phase.

A free-to-play endless-runner made by Gameloft NYC, for iOS, Android, and Windows Phone. My major responsibilities on the project included build / UI optimization, and gameplay and UI programming. Late in the project, I fleshed out our UI library to allow support for Flash’s shared libraries, allowing us to share button and sprite icons across the game’s many flash files, streamlining the art process and lowering our in-game texture memory footprint. I also worked heavily on prototypes for a couple of different game modes, and helped maintain an external C# / WPF tool for uploading event and in-game shop templates.

Spider-Man Unlimited is available for free to try out on all supported mobile devices. Additionally, you can watch the Spider-Man Unlimited trailer here: YouTube


Cars: Fast as Lightning (Gameloft) (Fall 2014 – January 2015)

Gameloft: Cars Fast as Lightning
A screenshot of Cars: Fast as Lightning‘s town “Tycoon” mode.

A free-to-play “tycoon” and racing game made by Gameloft NYC, for iOS, Android, and Windows Phone. I worked on this project as a programming intern, and my responsibilities were mainly debugging gameplay / UI-related issues. I also prototyped the “Daily Bonus” system released in Update 3, and did the code-side calculation and implementation of the “current track XP” indicators on the world map and track maps.

Cars: Fast as Lightning is available for free to try out on all supported mobile devices.


Slot-Car Racing Prototype (Fall 2014)

RacingDemo Screenshot
A screenshot of the slot-car racing prototype.

During my Fall 2014 internship at Gameloft NYC, I worked on a small slot-car racing prototype / sandbox built off the existing graphics engine we were using for the other projects. The demo consisted of a player-controlled car and three AI-controlled vehicles racing around a fixed path, each of which could control their acceleration and position in the “lane”. The AI cars each had different behavior, with one trying to always stay directly in front of the player, another trying to “draft” behind the player to get a boost, and the other using simple rubber-banding to stay near the player at all times. In addition, I implemented quadtree-based collision detection to make a number of dynamically populated objects become translucent when in contact with the player’s car.


Focal Length – FIEA Capstone Project (Spring – Summer 2014)

UDK Camera Tool
A screenshot of Focal Length’s camera animation tool in UDK.
fl_hud
An example of the HUD in an early UE4 build of Focal Length.

A “capstone” game made by 20 members of FIEA’s Cohort 10, and the chief project of the FIEA Master’s in Interactive Entertainment curriculum. Built using Unreal Engine 4 (and Unreal Development Kit in pre-production), Focal Length is an innovative take on the first-person shooter genre, having you take the part of a news cameraman to capture an alien invasion on film firsthand.  One of my early tasks on this project was making an in-engine camera animation tool in UDK in pre-production, allowing producers to define animation paths by setting keyframes, play back the results in real-time, and save the results to a config file.  Afterward, I helped port this tool to the final UE4 project and made it work with UE4’s Matinee system, as well as programming the C++ backbone of the functionality for creating objectives, achievements, and score bonuses in UE4’s Blueprints system.  During full production, my main responsibilities were implementing and polishing the UI flow, particuarly in the heads-up display and end screens, as well as continuing development on the objectives / metrics tracking system and handling the projectiles and tracking behavior of the tanks and alien ships.

You can see video of the game in its final form here: YouTube.


Mario Bros. Classic PC / XBOX clone (November – December 2013)

mariobros_1
The beginning of the first stage.
mariobros_2
One of the game’s bonus stages.
mariobros_3
Things really heat up later on…

A very accurate clone of Mario Bros. Classic (NES) developed by myself and co-student Dan Hertzka as the final project for FIEA professor Tom Carbone’s Programming I class.  The game was built in two weeks, and used Tom Carbone’s simple C/C++ and GLFW-based rendering framework and the FMOD framework for audio.  The game was built to run on PC or the original XBOX. My main contributions to the project include FMOD integration, PC-side input, audio and drawing utilities, aggregation and loading of level data, determining enemy spawn times, and setting up the HUD elements and bonus levels.  I also tweaked the player and enemy physics values to make the game play as identically to the original as possible.  You can download the finished game here, or watch a playthrough of the first several levels here on YouTube.


Data-Driven Game Engine & DirectX 11 Framework (Spring – Summer 2014)

Some sample XML expressions.
Some examples of XML expressions parsed in by my engine.

This C++-based engine is the end product of FIEA professor Dr. Paul Varcholik’s Programming II and III classes. I completed the data-driven game engine part of it last semester, and it basically uses a number of common software programming patterns (Factory, Observer / Mediator, etc.) to allow for dynamic population of various entities through XML, as well as a bit of rudimentary XML “behavior” scripting. Our class pooled together these behaviors (mostly flow control statements like iffor, switch, and the like) and consolidated them into a single game engine, which we then used to create a Towerfall-like multiplayer game for the Prog II final (you can see more on that below).  My specialized behavior was an expression parser that allowed for arithmetic, comparison, and assignment operations to be done on any integer, floating-point, or string types in the XML-based entity hierarchy (with automatic conversion when possible).  During the summer semester, our class will be extending our game engines to include a DirectX 11-based rendering framework.


Tile16 Level Map Editor (May 2014)

tile16_screen
A screenshot of the Tile16 Level Map Editor.

A simple Windows Presentation Foundation application I made that allows the user to load and save maps of level tiles chosen from a tilemap of 256 16×16 tiles. This simple interface allows the user to add or remove tiles in rectangular regions by clicking and dragging on the right side, and the graphics displayed can easily be switched out by loading a different tilemap. I plan on continuing work on this and a related project in the near future.  You can download the Tile16 Level Map Editor here.


TowerPaul (Towerfall: Ascension Clone) (April 2014)

towerpaul
The first level of TowerPaul, with relatively even ground.
towerpaul2
A more asymmetrically designed level.

A group project done by the 16 members of FIEA’s Cohort 10’s programming track as the final project of Paul Varcholik’s Programming II class. This game aimed to use a C++-based, data-driven game engine to create a similar experience to the 4-player battle royale mode in Towerfall: Ascension. As part as the XML system we used to dynamically load entities and behaviors into the game, I designed an “expression” behavior that could do assignment, arithmetic and comparison operations on constants or data anywhere in the entity hierarchy. I and co-student Sean Lambdin were responsible for serializing level-layout data generated by an external tool and integrating the resulting XML into our game’s loaded XML, as well as creating the game’s audio manager class using the FMOD framework.


Divide & Conquer (Spring 2014)

divide-and-conquer
A screenshot of the game at the time of its final presentation.
divide-and-conquer_retro
An early form of the game with a retro style.

Divide & Conquer was made by a seven-student team for FIEA professor Tom Carbone’s GameLab class, and aims to help master the skills of factoring integers through entertaining 2-player, turn-based combat. The game was developed using the free version of Unity 2D 4.3.4 for networked PCs. I was the lead gameplay programmer on the project, defining the core single-player game loop and integrating it with co-student Max Brickel’s networking code to form the multiplayer game logic.  I was also responsible for all graphics / UI programming, as well as putting together everything but the networking logic in the prototype and alpha versions.  You can download the game at the following links: Final, Alpha.  In addition, FOX 35 Orlando did a news bit on the game on September 8, 2014; you can view the broadcast here.


IA4 Image Converter (December 2013)

test_inverted test
A test image, before and after conversion (w/real transparency)

test_t_inverted test_t
A test image, before and after conversion (w/checkered transparency)

A simple executable that, given a 32-bit ARGB or 24-bit RGB bitmap image, outputs a 32-bit ARGB bitmap compatible with Super Smash Bros. Brawl‘s “IA4” image format.  As IA4 images are simply what appears in-game, but with the intensity and opacity values of each pixel swapped, images from the game’s data can also be converted to how they appear in-game by running the same algorithm to swap the intensity and opacity values back.  You can download the program here.


Word-List Generator (May 2013)

A simple program that, given a lexicon file called “dictionary.txt” in the same directory, outputs all words that fit one or a combination of parameters given by the user. For example, “l+4 bbeg” prints a list of all words in the lexicon that have length 4 or greater and start with the string “beg”.  You can download the program here.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s