Pages

Monday, August 10, 2015

Skylanders: Trap Team

Skylanders is a "toys to life" video game series published by Activision. The core gameplay mechanic involves placing toy characters on the “Portal of Power” accessory (a device that reads the character’s tags through NFC) and playing as that toy character in game. The gameplay is similar to other action role playing games like diablo but it requires a much lower level of execution.

Skylanders: Trap Team was the fourth installment in the Skylanders franchise and my first AAA game post graduate school. My role as a character gameplay designer was to implement playable character powers with a proprietary scripting language. I worked on five trap master and six mini skylanders (each with three abilities and a branching upgrade tree). My work required me to work closely with animators, visual effect artists, sound effect artists, and gameplay programmers.

Despite being the most junior member of the team I strove to create the most fun, powerful, cohesive, and complex characters in the game. I created three of the top eight selling characters including the two most popular characters outside of the initial starter pack characters. Our studiohead also took notice of my work when he wrote, the following in an interview, "Thank you. We had a new designer this year, and he wanted to prove to us how great he was, and he built this one, and it has got so many powers it was almost like stop putting all these powers in him. But, I like this guy a lot [the rather bulky looking Lion, Wildfire]. He's definitely for if you like 'rawr' a lot; he's the high end of that." Additionally, I gave a talk about my character work with the character design team at the 2015 Activision Summit at GDC.
Wildfire is a fire type Skylanders that pulls in enemies with fire chains before destroying them with devastating shield and flame attacks.

Ka-Boom is a ranged fire Skylander that wields a cannon. He can blast enemies from afar or use his cannon jump to quickly get in the middle of the battle.
Gusto_Promo.jpg (950×974)
Gusto is an air type Skylander that excels at mid-range combat with boomerang attacks. Gusto can also swallow enemies and spit them out as projectiles.



Krypt_King_Promo.jpg (589×603)
Krypt King is an undead Skylander that debilitates enemies with swarms of locusts and ghostly sword strikes.

Knight Mare is a dark type Skylander manipulates darkness and creates clones of her enemies to aid her in battle.






















Sunday, December 14, 2014

Starcraft: Broodwar Terran AI Bot


Project Overview:

My team and I sought to create a Starcraft Brood War bot capable fo competing agaisnt human opponents and be entered in international Brood War Ai competition. Implementing artificial intelligence in an RTS games like Starcraft is particularly challenging due to lack of perfect information. Fortunately, we were able to work with BWAPI, an API developed to assist individual in developing their own AI bots for Starcraft Brood War.

We focused primarily on natural agent based learning model with the following features:


  • Low-level individual swarm like intelligence
  • Mid-level squad leaders that would be assigned smaller objectives
  • Base commander in charge of building units, researching tech, determining where to place buildings, and expansions
  • A higher state based commander giving orders to the squad leaders and base commander

Implementation:
We used potential fields to determine unit movement. Potential fields are a mapping that allows our units to exhibit natural and intelligent movement. The fields were set up in with diminishing radii around other units. The strength of said field was determined by the relative strength and weakness of those units. As potential fields alone may cause a unit to end up in local maxima, pheromone trails are used to deter units from following paths they have already explored by creating a local potential field in terrain they recently visited.


Pheromone Trails

Best target targeting with attack cool downs
Potential fields with targeting


For our macro strategy, a base commander determined the proper expansion, tech, and unit creationg. A priority queue for building units/buildings and researching new tech/abilities, was constructed that could adjust based on the state of the match.

Friday, December 21, 2012

Realistic Grass Simulation



Abstract from our paper:

This document is a report on our project for realistic grass rendering. The idea is based on Edward Lee’s thesis paper on Realistic Real-Time Grass Rendering and Rendering grass with Instancing using Direct X* 10 by Anu Kalra. The main motive is to understand Anu Kalra’s project in detail and improve upon it by creating realistic grass using methods detailed in Edward Lee’s paper.

Full Paper

Scrapyard



What is Scrapyard:
Scrapyard is a casual fighting game where customization and use of the environment are essential to success. Players control one of four quirky animals in customizable mech suits and brawl it out Super Smash Bros style. Starting a game is easy and players of any skill level can immediately jump in and start having a blast. With tons of zany customization options for your mech and a diverse set of dangerous and destructible stages, there is no end to the fun!

My Role on the Team:
As a game designer on the team with a background in competitive fighting games and programming one of my roles on the team was to work directly with the programmers to design and test game mechanics. Our game's similarities to the Super Smash Bros series allowed me to explain how things like artificial intelligence, fast falling, turning, momentum, directional influence, super armor, etc work in Smash and how we can improve upon it.
One of our major design pillars is that Scrapyard should be an enjoyable experience for both hardcore fighting game veterans and people who have never played a fighting game. As a result, I spent much of my time on the team working with a custom hitbox tool made by one of our engineers. Using the tool, I was able to specify the hit boxes on the character models where players may be struck and the attack boxes where their attacks could land. It's important to use hitboxes in a fighting game for performance since using 3d collision with complex models is computationally expensive.
Using a separate tool built by our engineers, I was able to iterate on things like the damage each move deals, animations speed, knockback values, spawning projectiles, air velocity, ground velocity, etc.
Scrapyard's Website

Vega Soft-Body Physics Game Demo

Vega Soft-Body Physics Simulation running in GGE (Ogre3D) from Erik Frimodig on Vimeo.

In this project, we integrated Professor Barbic's Vega Library for mesh deformation into the Gamepipe Game Engine (GGE). At first we did mesh deformation in Ogre with a vertex buffer and a simple cube in the GGE. After this proof of concept, we focused on gameplay, performance, and integration with the GGE. The final product consists of a mesh converted to the vega file format that reacts to the ball being thrown at it. The ball is shot from the center of the camera, which rotates around the model via keyboard input. Upon being hit, we apply a physics force to the model which deforms the collection of vertices around the point of collision. The model resets after a period of time. After completing the demo, we ran Intel Vtune Amplifier to test for performance with multiple threads for the purpose of future projects possibly using parallel processing. Unfortunately, the maximum frame rate for the test mesh was achieved with 4 internal force threads and 2 solver threads. Increasing the thread count slows down the frame rate.

Global TD

Global TD is a multiplayer tower defense game for an iPhone that uses Google Maps API.

The main challenge here was to use Google Maps API (UI View) with Cocos 2D(Eagle View) (ex. retrieving way points from Google Maps and converting them into the cocos 2D coordinate system, adjusting aforementioned points when zooming or panning). Also creating Server - Client network architecture.

As the team lead/game designer, my job involved designing the game, gameplay programming, assigning tasks for both the art and programming team, and presenting the game during presentations.

Friday, October 21, 2011

Murder Mansion





Murder Mansion is a four player board game I designed with three other USC students in my CTIN 488 course. The slide show above succinctly goes over the rules but the basic premise and feel of the game can be described as a survival mystery game mixed with hidden roles. Each player is assigned a role at the start of the game based on the deck of cards they randomly chose at the start of the game. Three of the decks are the same (non-killers) and the last deck is the killer's deck. Non-killers must make their way to the exit on the board while trying to discover the identity of the killer or they could attempt to kill the killer player. The player with the killer role can win by killing off the other players.

Monday, January 31, 2011

World of Pokemon Slide Show

Phone_Demo.MOV


This is a video of one of the earlier implementations of World of Pokemon. It's a game written for the android phone. The UI has been updated since this video has been made. In the video, we're showing the use of the accelerometer. At around 31 seconds into the video, the camera on the phone is angled upwards triggering the spawn of flying type Pokemon in the upper portion of the screen.

World of Pokemon Emulator Demo


This is a video of one of the earlier implementations of World of Pokemon. It's a game written for Android phones. The UI has been updated since this video has been made. In the video, we're showing the application in the Android emulator. Some of the features covered include: touching Pokemon on a camera overlay, battle scene, menu, list of items, list of pokemon, and pokemon description.