Thursday, March 18, 2010

J1N Games

Jason Kim's Personal Journey Into Game Development

Archive for the ‘Video Game Work’ Category

Dino Space Shooter in C++ and DirectX9

Posted by Jason On September - 29 - 2009


Above is the Flash ActionScript3 Playable Demo version but is missing features that the DirectX/C++ verison has!
Flash Source Here

This was a personal project for me to learn more about DirectX

It is a simple 2D space shooter where you use the mouse to control the player ship.

The 2D artwork is done by my girlfriend Heather Dugger.
The Music was created by me.

The Full Game and Source Code can be downloaded Here:
[Dino Space Shooter Release v 1.0] (the game)
[Dino Space Shooter Source v 1.0] (the source code)

To Run Game:
Requires: Windows, DirectX 9 August 2007 Redistributable
[DirectX 9.0 August 2007 Redistributable]

To Compile Code:
Requires: DirectX 9 August 2007 SDK
[DirectX 9.0 August 2007 SDK]
Requires: FMOD Sound API
Fmod Sound

This game shows my knowledge of:
2D vectors/math/translations/rotations/etc.
2D collision
2D Sprite Drawing in DirectX
2D Alpha Blending
2D Page Flip Animations
C++ Classes,Structs,Standard Template Library type DirectX initilization and callbacks
Windows Input/Screen
FMOD Sound API

Update : Added Sound, Player Animation, Full Working Release

Improvements I would like to make later on:
A Boss Enemy
Better Collision Detection
Particles

Metalocalypse: Dethgame – XBLA / PSN

Posted by Jason On September - 28 - 2009
Metalocalypse

Metalocalypse

Metalocalypse: Dethgame is an unreleased game for Konami and Cartoon Network.  This game revolves around the Cartoon Network “adult swim” IP “Metalocalypse” and is Developed by Frozen Codebase LLC.  I worked on this game for 9 months until being laid off.  The game was to be for Xbox 360 Live Arcade and the Playstation 3 Network.

This game was developed with the Vicious Engine.

My main responsibilities were:
-Enemy AI code
-Cinematics Scripting
-Gameplay Systems (Finishing Moves/Objects/Combat Systems)
-Music Mini Game Code (Guitar Hero Clone)
-Engine Code
-Design (Combat/Music Mini Game/Finishers/Enemy AI)
-System Code Xbox360 / PS3 (checkpoint saving, PS3 load/build,  Guitar Controls interface with Engine)

The game itself has two main parts, one is a Brawler where you take control of one of the “roadie” members of Dethklok the band in Metalocalypse, a “Klokateer”.  The other mode is where you play as the band Dethklok from Metalocalypse in a Music Mini Game much like Guitar Hero.

The Brawler Part:
My main responsibility on this part was the Enemy AI.  Here I created a system I called the “Gentlemen’s Rule” system where each enemy approaches the player and initiates combat in a 1 on 1 manner, instead of all enemies swarming the player and killing him instantly.  This way we focus on “Fun AI” instead of “Good AI”.  Each other enemy that is not engaged in combat in a 1 on 1 manner then instead waits in the background for their turn.  This is the “Gentlemen’s Rule” where the player will fight 1 person then move on to the next, without any of the other enemies interfering.  However on higher difficulties, enemies are also coded to take “Cheap Shots” at the player if his back is turned, or sometimes two or more attackers will approach the player.  For obstacle avoidance for my Enemy AI, I had them cast 3 rays out from their center sort of like a fork, so they could see what was ahead of them.  If they saw something in front of them (an obstacle) they would turn left or right (coin flip) and try to navigate around said object.  Enemies also interacted with each other, such as side stepping around each other, circle strafing the player if they are waiting their turn in the “Gentlemen’s Rule”, walking backwards away from the player when he has a weapon, and some different enemy types enemies dislike each other often hitting each other to get the person out of their way.

The other main part of the brawler part of the game was our Finisher System.  We had several combat finishers, environmental finishers, and weapon finishers.  Each was my responsibility, because the enemy and the player had to be in correct states.  The player could do certain cinematic “finisher” kills to the enemy in hand to hand combat, or with an environment object such as a “wall spike” or with a weapon such as a “chainsaw”.   Each of these parts was my responsibility to make sure they worked correctly.

The Music Mini Game:
I shared responsibility on the music mini game with another programmer, and our main goal was to create a good clone of “Guitar Hero” but not an exact copy to avoid copyright infringement.  This is the section of the game were you play as the band “Dethklok” from Metalocalypse the Cartoon Network show.  Here we had to show the brand of the IP the strongest and I was responsible for setting up certain cinematic moments in the music mini game when playing.  I was also responsible for the integration of guitar controllers for our engine.  Interestingly enough simply plugging in a guitar controller into the Xbox returns a simple “Guitar is plugged in” enumeration in c++, however for the PS3 no such guitar enumeration exists, only a product number and id number, which causes problems for things like the “Aerosmith Guitar Hero Controller” because that controller registers as the same product number/id number as a regular dualshock.   So we had to overcome certain issues like that.   I was also responsible for setting up the note-tracks for the music mini-game which was fed into our engine as a csv file.  I also implemented the local multiplayer for the music mini game.

Here is a preview from San Diego Comic Con of the game:
Destructoid: Full Preview of Metalocalypse!

Sandy Beach – Wii Ware

Posted by Jason On September - 28 - 2009
Sandy Beach

Sandy Beach

Sandy Beach is a Wii Ware Game Developed by Frozen Codebase LLC for Konami.
Sandy Beach @ Nintendo.com

I was one of two programmers on this project at Frozen Codebase.  We were basically responsible for everything.  The game was made with the Vicious Engine and completed in 5 months, the first shipped project I was on from beginning till end.  Sandy Beach is currently available in the US and Japan.  Europe release is TBD.
My main responsibilities were:
-Vicious Engine Code Changes/Management/Extension, Integration of AI Live Move tools into Engine
-Gameplay code, Player Controls, Camera Code, AI Code
-System code (Saving/Loading/Wii Homebutton/Wii Ware menu)
-Build system (Wad for Wii Ware), Use of Codewarrior, Wii SDK, Devkit updates, Localization, Wii Ware Online Manual
-Nintendo Wii Lot Check requirements, Nintendo Ware use (Banner File Creation/Icon File)
-Game Design, System Design, Planning, Project Management

I am credited as Programmer on this game.

Main Game modes:

Free Play:
The regular mode of Sandy Beach is a simple free mode where you can build sand castles without hassle on the beach.  The way the system worked was much like Legos.  Our team decided upon this style of design because we didn’t have the manpower or time/resources for a physics system to simulate sand, so we simply masked the building of a sand castle by emulating “lego” blocks that can be placed on a grid.

Crab Battle:
Originally this mode was supposed to be simply a timed mode where you tried to build the best castle you could in a time limit and then a tidal wave comes and destroys your castle.  I felt this was a really poor idea, so I suggested a mode that was similar to a Tower Defense style game where you could place cannons on your sand castle and defend it from incoming crabs.  Our producer told us that since it was not in the budget or schedule we would have to do this mode on our own time.  So the artist at the time made me a single cannon and a crab, and over the weekend on my own time I was able to create this mode.  ”Crab Battle” mode is now hailed as the “best” part of this game, even if it was scored low by reviewers.

Zombie Wranglers – Xbox 360 Live Arcade

Posted by Jason On September - 28 - 2009
Zombie Wrangler

Zombie Wrangler

Zombie Wranglers @ Xbox.com

An Xbox 360 Live Arcade Downloadable Game for Sierra Online, developed by Frozen Codebase.
After Sierra was bought out by Activision, the game was delayed from its original release date in 2008 till 2009 .

This game features 1-4 player coop, and is an action oriented game about catching / defeating zombies

The engine used for this game was the Vicious Engine ( http://www.viciousengine.com/ )

I was a programmer for 1~2 weeks on this project before moving teams within Frozen Codebase
I am listed in the credits as Special Thanks

I did gameplay related code, such as:
-Items spawnning from trees, mailboxes, garbage cans.
-Melee combat tweaks
-Weapons code
-Ambient items in world code
-Powerups code
-UI work
-Enemy Hit Reactions Code

Screwjumper – Xbox 360 Live Arcade

Posted by Jason On September - 28 - 2009
Screwjumper

Screwjumper

Screwjumper @ Xbox.com

Screwjumper was an Xbox 360 Live Arcade game for THQ and developed by Frozen Codebase LLC.

For the 360 part of this game, I am listed in the credits as special thanks for QA help.


For the PC part of this game, I am listed as a Programmer.

My task was to make the PC port of this game:
-Porting game to PC (360 code to PC code)
-Gameplay updates (New multiplayer mode, code updates, gameplay updates)
-Integrating with www.instantaction.com API
-AI updates, UI updates, various Engine updates to code

The game was to be for www.InstantAction.com however was taken down from the site after being on it during its beta run.  Thus it was cancelled.

AC-130: Operation Devastation – PC

Posted by Jason On September - 28 - 2009
AC-130

AC-130

AC-130 @ THQ Valusoft

AC-130 is a Simulation Game for the PC for THQ Valusoft and is developed by Frozen Codebase LLC

I am credited as Special Thanks on this game.
I provided Voice Acting and QA for this game while at Frozen Codebase LLC.

Planet 12 – PC (cancelled)

Posted by Jason On September - 28 - 2009
Planet 12

Planet 12

This was a project for Garage Game’s www.InstantAction.com developed by Frozen Codebase LLC
The game was announced but never completed past Beta Phase.

The game was a 2D sidescrolling multiplayer deathmatch/capture the flag/control point game.  It was based upon the much loved “Soldat” (http://www.soldat.pl/en/)
It featured player classes, different weapon loadouts, game modifiers, server hosting, lobbies, special weapons and abilities, and more!

I was one of two programmers on this project.  My responsibilities were: Weapons Code, Multiplayer Code, Server Lobby Code, Player Code, Integration with Instant Action API, Class Abilities Code,  UI work.

Youtube video of gameplay coming soon!

Spacehogs – Xbox 360 XNA School Project

Posted by Jason On September - 28 - 2009
Spacehogs

Spacehogs

Spacehogs was an Xbox 360 XNA School Project for my CSE 682 Procedural Animations Class at The Ohio State University, in 2007.  The class was a survey of computer animation algorithms and techniques; interpolation, path following, quaternions, object deformations, forward/inverse kinematics, rigid body dynamics, particle systems flocking, autonomous behavior, and L-systems.  I was on a team of 5 people total, my responsibilities were: Player Control and Movement, Enemy Monsters, Weapons (Laser and Tractor Beam), and Boss Monster.

Full Source Download Here: Spacehogs!

School Website: http://accad.osu.edu/~jkim/

Procedural Aspects:

Spherical Linear Interpolation

Spherical Linear Interpolation

For the player ship orientation in our game, it was represented as a Quaternion matrix, and we used Spherical Linear Interpolation to animate our ship tilting left and right and up and down.  Using XNA’s built in Quaternion objects and SLERP we were able to accomplish our goal of procedurally animating the player spaceship for moving.  I was responsible for implementing the player controls, movement, and making sure they “felt” good.

An Example Video: http://j1n.org/classes/682/quaternion.wmv

Monster AI

Monster AI

Boss Monster AI

Boss Monster AI

The Monster AI is a simple follow prey-predator algorithm that uses the player’s position and simply allows the enemies to follow the player.  The regular enemies were programmed to try and crash “kamikaze” style into the player ship causing damage, while the boss monster shoots homing fireballs at the player.  I was responsible for implementing the Enemy AI for the game.

Example Video http://j1n.org/classes/682/monsterchase.wmv

Laser Beam

Laser Beam

Tractor Beam

Tractor Beam

The Laser and Tractor beam were some of the weapons we created for our XNA game.  We fired a ray into 3d space and used spherical collision to detect if the ray fired from the position of the player intersects with a target object.  I was responsible for the implementation of the Laser and Tractor beam.  The Laser would destroy objects such as asteroids/enemies, while the Tractor beam could push/pull objects towards the player.

Example Video: http://j1n.org/classes/682/lastertractorbeams.wmv

Garfield Bowling – Mobile Phones

Posted by Jason On September - 28 - 2009
Garfield Bowling

Garfield Bowling

Garfield Bowling

Garfield Bowling

Garfield Bowling is a Bowling Game for Mobile Phones by Centerscore Inc.

I am credited in this game as Special Thanks.
I was a Summer 2003 Intern at Centerscore Inc.

My duties were:
-QA, Bug Testing, Data Entry
-Learning Brew C++ for Mobile Phones
-Creating a Benchmark Program for Mobile Phones
-Learning SCRUM / Agile Development

CS Video Poker – Mobile Phones

Posted by Jason On September - 28 - 2009
CS Video Poker

CS Video Poker

CS Video Poker

CS Video Poker

CS Video Poker is a Video Poker Game for Mobile Phones by Centerscore Inc.

I am credited on this game as Special Thanks.
I was a Summer 2003 Intern at Centerscore Inc.

My duties were:
-QA, Bug Testing, Data Entry
-Learning Brew C++ for Mobile Phones
-Creating a Benchmark Program for Mobile Phones
-Learning SCRUM / Agile Development