Crystalline is a First Person Puzzle-Platformer which features a pair of force-beams, one which propels the player around the environment, and one which attracts objects towards the player. Players will use these powers to sneak by enemy robots, smash turrets against the walls, rip doors off hinges, and solve engaging puzzles.

Crystalline features a task-based engine created from scratch, Bullet Physics to power realistic interaction with the environment, usage of Google Sketchup as a level editor, and complex AI that actively seeks out and chases the player. The Crystalline engine also features fully functional Kinect controls.

Crystalline is my second year game project at DigiPen Institute of Technology, and is expected to ship May 2012. It is made by Team Awesome Possum, a group of second year Masters' students as programmers joined with several artists.

Team Awesome Possum is comprised of:
John Calsbeek: Tech Director, Graphics Programmer
Michael Myers: Physics Programmer
Fanny Paola Vadillo Herrera: AI Programmer
John Yednock: Tools Programmer
Chin Xiang Chong: Designer, Producer, Gameplay programmer
Yi Liang Siew: Artist
Erik Miles: Artist
Ian Hampton: Additional art assests
Jeremy Kings: Music

Adaptive Resonance Theory-based Recommendation System

This is my graduate project for my Artificial Intelligence class at Digipen. It uses Adaptive Resonance Theory (ART) to create a recommendation system. Specifically, in this case, a survey was created with a list of 20 chocolates, and respondents were asked to rate each chocolate from 0-10, 0 meaning never tried, 1 meaning tried but disliked, and 10 being tried and liked a lot. The recommendation system takes the survey data, clusters users with similar chocolate tastes together, and tries to make a recommendation to users for chocolates that other people with similar tastes have liked.

The implementation itself is based on M Tim Jones' chapter on Adaptive Resonance Theory in AI Application Programming from Charles River Media. It does however have 2 specific enhancements: the ability to cope with non-negative integral vectors as input (as opposed to just binary vectors) and the ability to group people into hyper-clusters. Although this system in particular is meant to recommend chocolates to respondents of a survey, the techniques and code involved are generic enough that it should be applicable towards other uses.

Click here to download the source for Adaptive Resonance Theory-based Recommendation System. The code is written in C#

Kinect Gesture Recognition

This is a demonstration for Kinect gesture recognition using a Dynamic Time Warping algorithm. For my full-year game project at Digipen, I'm currently planning on integrating Kinect controls, so this is an important proof-of-concept to see what can be done.

The framework is heavily modified from its original source provided by Rhemyst and Rymix from . Specifically, I've upgraded the functionality of the code to be able to recognize gestures in 3D (previously only limited to 2D), and also to specify particular joints to be used when recording gestures. In addition, I've also greatly increased the efficiency of the core DTW algorithm by rewriting the loops such that unnecessary operations like deep copying, then reversing the input sequences are now unnecessary.

Choosing resolution to be 480p and full-screening it is highly recommended!

Change log:
31 October 2011:
- Changed format of gesture file (Removed the "@" sign from the gesture name. We now use "@" in a line by itself to denote that the following line is the name of the gesture).
- Significantly improved efficiency of DTW by rewriting the loops that do the calculation. We no longer need to reverse the input, nor deep copy it when entering the DTW function. Apparently I was not thinking too hard when I blindly copied what the original source was doing :P This will probably be the final update I have for this project.

26 September 2011: Initial Upload

Click here to download the source for Kinect Gesture recognition. The code is written in C#, and requires:
Windows 7
Kinect SDK
Visual Studio 2010
XNA Framework (Only because I am too lazy to write my own Vector class! :P)
Decently fast computer


Elsia is the first game I worked on. Created from August 2005 - December 2005 as part of the CIS300 course at Cornell, Elsia is a 2D platformer that features asymmetric cooperative gameplay. One player controls the main character Spike via the keyboard, and another controls the fairy character Friday through the mouse.

I served as the Team Lead and Designer for the game, which meant my duties were designing the game mechanics, levels, and managing the production of the game by setting and adjusting milestones, dealing with team conflicts, etc. I didn't actually do any coding for the game as I was already handling 2 other programming courses that semester, but that allowed me to concentrate more on the design and production issues in developing a game. It is interesting to see the contrast in level design between Elsia and my later game, Leshy. Elsia has the honor of being selected as a highlighted game for the Game Design Initiative at Cornell (GDIAC)

Elsia was made by:
Jeremy Awon: Tech Lead
Nolan Leung: Programmer
Eric Tobis: Programmer
Nate Burba: Programmer
Brenda Chen: Artist
Chin Xiang Chong: Team Lead, Designer

Click here to download the executable for Elsia
Please Note: Unfortunately, the game was written with a dependency on DirectDraw, which is now deprecated. If you install an old version of DirectX (9.0c, click here to download) the game should work fine, otherwise it is likely that the game will not work for you, especially if you're running Windows 7 and have the latest DirectX drivers installed.


Leshy (former title: Quicksilver Blaze) is a 3D 3rd person platformer, where you play a ball with the ability to grow and shrink. It was developed as a Master's game project at Digipen over January - May 2011 by Team Radioactive Dodos. Leshy was also awarded Best Master's Technology and Best Master's Game in the 2011 Digipen Game Awards.

I am the Designer of the team, which means my responsibilities are chiefly in design of levels, gameplay mechanics, and general feel of the game. In addition to design, my programming contributions to the game so far have been implementing the behavior for environmental objects such as checkpoints and moving platforms/objects, level editor functionality, the HUD, the 2 time attack modes and general bug fixes.

Team Radioactive Dodos are:
Fanny Paola Vadillo Herrera - Producer
Malte Skarupke - Technical Lead
Andrew Friedland - Physics Lead
Chin Xiang Chong - Designer

September 25 2011 - Update to Version 1.21
1. Minor graphical and difficulty tweaks.

September 03 2011 - Update to Version 1.2
1. Some tweaks to level in light of PAX Playtesting. Difficulty of jumping set-pieces was lowered, some extra check points added.
2. Fixed springs playing sounds when they were not supposed to.

Aug 12 2011 - Update to Version 1.1.3
Final build before PAX Playtesting!
Added extra diagnostic checks: warning message will show if OpenGL drivers are not up to date/graphics card cannot handle Leshy.

May 29 2011 - Update to Version 1.1.2
1. Slight adjustments to level
2. Added missing sound effect for old style derez zones.

May 28 2011 - Update to Version 1.1.1
1. Slight adjustments to level
2. Arrow no longer changes color when reaching advanced area

May 26 2011 - Update to Version 1.1.
1. 2 new set pieces in level, slight adjustment of some previous set pieces.
2. Cut down loading time in half
3. Use Windows' common documents folder instead of user's personal documents folder.
4. Miscellaneous behind-the-scenes engine improvements.

April 26 2011 - Initial Release

Click here to download the installer for Leshy from Digipen. Source code for the game is available on request for purposes of code samples for employment!

Texture, Bump and Environment Mapping

This project is taken from a Graphics class. It demonstrates some basic graphical techniques through shader programming, namely texture mapping, bump mapping and environment mapping. OpenGL and GLSL is used.

The code is based off a framework by Gary Herron, and uses OpenGlut. Recommended files to use as code samples are the shaders, shader.vert and shader.frag.

Click here to download Texture, Bump and Environment Mapping sample (Visual Studio 2010)