Pages

Showing posts with label USC. Show all posts
Showing posts with label USC. Show all posts

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

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.