Hi, I am

Jason

Chin.

Lead Gameplay Programmer

Other published work

This showcases my older porfolio work. These projects are somewhat dated now but still show an interesting progression throughout my game development career. This is not necessarily a representation of my current abilities.

Snowy Mountain

C++ | OpenGL 3.3 | Personal project | 2017

OpenGL 3.3 3D rendering engine

  • 3D object importer
  • Ambient, diffuse, specular lighting
  • Multipass cascaded shadow mapping with directional and point lights
  • Hardware accelerated dynamic particle system
  • FXAA
  • Depth of field (with Bokeh)
  • Bloom
  • HDR filmic tonemapping
  • Dynamic skybox
  • Lens flare
  • GUI for full customisation

Vici

C++ | Cocos2d-x | Personal project | 2015

A local multi-player RTS game designed for smartphone devices. Players play on each side of a single device, building structures and taking command of units to defeat the opposing castle, whilst defending their own.

  • Each player has an area of 5x3 in front of their castle to construct buildings.
  • Three types of buildings: a tower, a barracks and a church.
  • Six types of unique units for each side, each with unique characteristics (e.g. range, melee, splash damage, raising the dead, healing etc.)
  • Units move on a fixed lane to the opposing teams and attack other units and buildings automatically.
  • Game is designed to en-capture the spirit of local competitive play, strategic planning and resource management.

Mega Man Demo

C++ | SDL, OpenGL | Personal project | 2012

2D platformer engine

  • Recreation of Cut-man level from Megaman (NES 1987) using C++, SDL and OpenGL.
  • Entity and component based 2D engine, with custom rendering, collision and animation system.
  • Deterministic game loop, using a fixed update loop with variable interpolated rendering.
  • Custom DAME design tool integration.
  • Data driven using XML.
  • Controls: (Move) - Directional keys/wasd, (Jump) - Space/c/k, (Shoot) - x/j, (Reload Level) - F5, (Debug decrease/increase health) - -/+

Musical Mines

C++ | SDL | Solo game jam | 2010

Rhythmic Minesweeper

  • Minesweeper.
  • Metronome sweeps across minefield, vertically and horizontally.
  • Each flag placed and click on the field plays a sound, it's sound is based on where it is on the board.
  • AI can be turned on to sweep the field automatically, in sync to the metronome.
  • Fully coded in a weekend.
  • The music is procedurally generated based on the land discovery and flag placements.

SudoKuest

C# | XNA 3.1 | University individual project | 2008

This project was completed as my University final year project and was designed to run on both the PC and Xbox360 through the XNA architecture.

RPG Campaign - Players start by choosing a name and distributing attribute points to their character. They then proceed around a network map of destinations to further the story, complete quests, buy/sell items and fight AI enemies. Enemies are placed in between destinations and bumping into them will trigger a fight.

Fighting is based on a competitive game of Sudoku on a single grid. Each number a player correctly fills in results in their opponent taking damage. An incorrect placement renders the player unable to move. At certain levels, they also learn spells that can cause damage, heal or freeze their opponent. The number of damage, HP, MP and regenerative abilities is based on their attributes and buffing items they have. Other items can be used to heal HP or MP.

Puzzle mode - This is where players can play a normal game of Sudoku with a wide range of difficulty settings. The Sudoku grid is then randomly generated. Difficulty is based on the complexity of the techniques used to solve the puzzle and how many possible placements there are in each step. There is a wide range of options for the player whilst solving the puzzle:

  • 'Pencil' allows them to enter in possible candidate number for a cell
  • Show/hide all the possible candidates for all the cells
  • Show/hide the errors they have entered
  • Provide a hint
  • Solve the puzzle
  • Zoom in or out

Multiplayer modes - They can play in a competitive Sudoku fight either in local multiplayer or over the network. For network multiplayer, a player must set up as a host and another can select to join that session. It also supports VoIP and is fully integrated into the Windows Live and Xbox Live systems. It also supports cross-platform network multiplayer.

The project incorporates some important features:

  • A very efficient random generation of solvable Sudoku grids
  • Human techniques to solve and rate how hard a Sudoku grid is
  • A fully featured story and puzzle mode
  • Local multiplayer
  • Fully integrated Microsoft Live cross-platform network multiplayer
  • Xbox360 and Windows compatibility with both game controller and keyboard input
  • Beautiful graphics and art
  • Full music and sound effects

* All art and design was done by me except for the character art (Joe Madureira) and item and spell icons (Blizzard from Warcraft III). Sound effects was taken from Soundsnap.com and music is from the The Last of the Mohicans OST, Shadow of the Colossus OST and artist Daduk.

NOTE: Due to a problem in XNA 3.1, the XNA 3.1 SDK and Visual C# 2008 Express Edition is required to run it. It will crash otherwise. The unfortunate loss of the data files means that I am unable to recompile it under that latest SDKs to fix this problem.

Dice Wars

C++ | OpenGL | Personal Project | 2008

Based on the original turn-based strategy Flash game Dice Wars.

It is a simplified version of the board game Risk, where the goal is to control every territory of the map. The map is divided into 25-32 territories, which is randomly divided between 8 players at the start of the game. A random number of dice (representing forces) is evenly distributed to each territory. Each player then decides whether to gain more territory by attacking neighbours or hold to replenish forces.

When a player decides to attack another territory, the dice they have on the attacking territory is rolled and the total is accumulated. The same occurs for the defending territory and if the attacker has a greater total then the defender, then they invade that territory. The number of dice between the territories is then split, with one die remaining on the original attacking territory and the remaining dice on the new territory. If the attack is not successful, then the number of dice on the attacking territory is reduced to one. Dice is replenished at the end of a turn and the number is determined by the player's largest collection of adjacent territories, and is distributed randomly.

Unique to my implementation of Dice Wars is a fully built random map generator and varying levels of AI. A player/computer selection screen has not yet been implemented but to show the different range of AI, the players are divided as follows: Purple (Human player), Red, Pink and Blue (Easy AI), Green and Yellow (Medium AI), Orange and Teal (Hard AI).

For this project I used a custom API developed by a colleague, based on imitating the functionality of the iPhone handset. It uses a modified version of OpenGL to handle the graphics.

Features:

  • Detailed random map generator
  • An intelligent AI with a range of difficulties
  • Colourful and detailed graphics
  • Touch screen input controls
  • Press 'Q' to generate a new map

The Diplominator AI

Java | University group project | 2008

Diplomacy is a strategic board game where players compete to dominate a map, with a strong emphasis on negotiation. The Diplominator bot was designed to be a negotiating agent to succeed in a game by forming allies to make the best strategic moves possible.

This was a group university project where I was one member in a team of five. My main responsibilities were:

  • Initial design and implementation for base strategy (not yet involving any negotiation)
  • Designing how the bot uses negotiating information to adjust it's priorities.
  • Forming information from it's decisions to send to the server.
  • The bot performed well in press 0 (no negotations) and press 10 (simple negotations) games.
12 Titles
Published
14 Years
Developer experience
9 Platforms
Developed for

Contact and Resume

Get in touch

Additional details and references are available on request.

Resume:

Download

E-mail:

jason.chin4 [at] gmail.com

LinkedIn:

View Profile

Address:

London, UK