Gwent Design A Card Contest Entries

So lately I've been playing a lot of Gwent. I've been a fan of card games forever, having dabbled with Magic:The Gathering, Hearthstone, Scrolls, SolForge, among many others. Gwent's "play a card a turn" and limited draw mechanics make resource management, bluffing and sequencing very important, and I've found myself absorbed enough in the game to have climbed to a top 20 position on the global ranking leader board.

Recently, The Gwentlemen's Club, a group of high ranking Gwent players, held a design a card competition. The challenge was to design a card that would appeal to each of the Timmy, Johnny and Spike player archetypes (as defined by Magic: The Gathering's Mark Rosewater). The Gwentlemen also wrote an article about the player archetypes, with examples on how they applied in Gwent.

I had a lot of fun designing the cards for this competition, and my Johnny entry was even picked as the winner. I thought it would be nice to show the cards I made here, as well as some of the thought processes that went into making them.

I tried to create the 3 cards as a set that would have cards that would appeal to the separate archetypes, while still having a coherent theme, mutual synergies and references to the Witcher 3 game. The theme I chose was Vampires, and I riffed on the existing Regis card and its theme of transformation.

Timmy card:

Dettlaff. Silver, Melee, 6. Epic.
Vampire. When weakened by a Special Card you played or a unit on your side of the battlefield, transform into The Beast of Beauclair. "Betrayal by a loved one can turn even the most gentle of souls into a savage beast"

​The Beast of Beauclair. Silver, Melee, 13. Epic.
Vampire. "You will come to Tesham Mutna and explain all. If you do not, I will raze Beauclair to the ground. This I promise you."

(This card is the simplest of the cards I chose to make. The number 13 was chosen both for its high strength to appeal to the Timmies, and for its supernatural connotations )

Johnny card:

Orianna: Silver, Ranged, 2. Legendary.
Vampire. Spawn 2 Orphaned Child units on random rows. After 2 turns, transform into Orianna: Higher Vampire. "Wolves asleepin' midst the trees, Bats all aswayin' in the breeze"

Orphan Child. Bronze, Agile, 1. Legendary.
Human. When removed from the battlefield, add 1 strength to all your Vampire units. "Lady Orianna took care of us! She took us off the street, brought us sweets, sang to us! Leave her be!"

Orianna: Higher Vampire: Silver, Ranged, 4. Legendary.
Vampire. Remove 2 strength from 2 non-Gold units. "I never said I helped these children out of the kindness of my heart"

( As is befitting of a Johnny Card, this card is complicated, narrowly powerful, and requires going deep into Vampires to get maximum value.)

Spike card:

​The Unseen Elder. Gold. Agile. 6. Epic.
Vampire, Ambush. Ambush: When a revealed unit appears on this row, destroy it and absorb its strength. Remove an amount equal to this unit's strength from an opposing unit. "The Unseen Elder despises guests"

(Best used when predicting a spy card from the enemy, but still flexible enough to be triggered by smart placement of your own units while creating significant value. Allows Spikes to feel like they've outsmarted the opponent through clever plays. Unfortunately since Ambush is purely an Scoia'tael mechanic right now the mind-game aspect of this card does suffer a bit when playing outside of Scoia'tael )

Aside from the obvious perk of the Orphan Child units giving strength to all three cards, there are also some cool combos you can pull off when playing these cards together. You can have Orianna:Higher Vampire hit Dettlaff so he transforms for extra strength. If the enemy correctly predicts The Unseen Elder and refuses to play a spy into him, you can either get lucky with the Orphan Child spawn from Orianna into The Elder Titan's row for value, or you can play Dettlaff into him to take out basically any gold unit on the opponent's side.

The cards also all reference events that happen in the Blood and Wine expansion, for extra appeal to the Vorthos lore fans.

Titanfall 2

Titanfall 2 is the follow up to 2014's Titanfall. It is a First Person Shooter that features acrobatic, double-jumping, wall-running Pilots and giant mechanized robots called Titans. New to the series this time is a full blown single player campaign, which has received high praise from game critics. No less lauded is the multiplayer component, which retains the fast-paced, adrenaline pumping action the series is known for, while adding substantial depth and a vast array of weapons and abilities for players to unlock.

As a designer at Respawn Entertainment, I helped design and implement in script many core gameplay systems:
- Pilot Rodeo
- Pilot/Titan Melee
- Pilot Boosts
- Weapon and abilities
- First Person spectating

In addition, I helped with the post-launch DLC update plans for the game, contributing to:
- Cosmetic microtransaction items, e.g. Prime Titans
- Anti-cheat Server Loadout validation systems

The following trailer shows off some the Prime Titan DLC work I did, in a remastered version of Angel City, a map I did scripting work on in the first Titanfall.

Titanfall 2 is available on PS4, XBox One, and PC.

In March 2017, I also gave a talk at GDC about the design of Rodeo from Titanfall 1 and 2. It is freely available for viewing on the GDC Youtube channel.


Titanfall is a First Person Shooter that features acrobatic, double-jumping, wall-running Pilots and giant mechanized robots called Titans. Players start off on the ground as Pilots and earn credit towards their own Titan as the match progresses. The Titans are summoned out of orbit and come slamming down onto the battlefield through the titular Titanfall.

As a designer at Respawn Entertainment, I helped design and implement in script many core gameplay systems:
- Pilot Melee (Jump Kick, Neck Snap abilities)
- Titan Melee (Titan Punch, Titan Termination abilities)
- Pilot Rodeo
- Titan Dome Shield
- Pre-match Dropship Insertion sequence
- Post-match Dropship Evacuation sequence

One of the goals of Titanfall was to bring a more cinematic experience (akin to what you'd normally find in a single-player campaign) to online multiplayer. To that end, I also helped script:

- Angel City and Fracture E3 demo level-specific cinematic scripting
- Hero character Visual Display Unit announcement system (Sara telling you your Titan is ready, etc )
- Titan OS Announcements
- AI Grunt Chatter system
- Music system

You can see an in-game demonstration of many of the systems I worked on in the following trailer for Angel City, made for Gamescom 2012. It also features Angel City, one of the levels I helped script:

Post-launch, we've also committed to supporting Titanfall with constant updates. In addition to general bug-fixes, I was chiefly responsible for the new game modes, Marked For Death and Wingman Last Titan Standing, as well as the Titan OS Voice customization packs.

Titanfall is available on XBox One, XBox 360 and PC.


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.

Click here to download Crystalline from Digipen's servers (Note that this version does not have Kinect enabled, see note below for more information)

Crystalline is my second year game project at DigiPen Institute of Technology, and is shipped in 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

Kinect version:
Although the shipped version of Crystalline supports Kinect controls, we made the decision to not include them in the final product. There are several reasons for this, but the main ones are:
1. Noticeable control input latency, especially on laptops/older computers.
2. It became tiring after about 5 minutes of waving your hands around.
3. Controls were less precise than mouse/keyboard controls, and made the later levels more frustrating than fun.

However, if you're interested to try it out, I've made the Kinect enabled version of Crystalline available for download here.

Note that you'll also need Microsoft's Kinect for Windows SDK Beta Version 2 installed. At the time of developing Crystalline, the official Kinect for Windows SDK had not been fully released, hence we used the Version 2 Beta. We also developed with the Xbox 360 Kinect plugged into a PC, so we can't guarantee that the PC version will work.

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