"Megaman Shooter Online"
PC Tech demo game
About...
Megaman Shooter Online is very simple 2D head to head shooter That is networked through a LAN. Play as the famous Capcom's Megaman to blast your opponent away. I used SDL as my graphical and thread API.
Features
My Role
Multi threading became a necessity when receiving and sending data simultaneously, however the challenge was to prevent reading overwriting data. I resolved this by making a Mutex like lock.
Megaman Shooter Online is very simple 2D head to head shooter That is networked through a LAN. Play as the famous Capcom's Megaman to blast your opponent away. I used SDL as my graphical and thread API.
Features
- LAN game play
- Fast multiplayer action
My Role
- Network and game-play programmer
- Win-sock TCP/IP connection
- peer to peer / Authoritative Host
- Key encryption for safe and fast cycles
- GUI design and implementation
- BIT packed optimization for network use.
- Thread Safe structure
- Game logic
Multi threading became a necessity when receiving and sending data simultaneously, however the challenge was to prevent reading overwriting data. I resolved this by making a Mutex like lock.
Sample Code
"BassWings"
An Art Institute Game Wizards Production Game
About...
BassWings is an arcade style, flight rail shooter with an audio twist, where you pilot through a dense Urban City while fighting through a gauntlet of an invading enemy ships. The player will have the ability to select any song from their .MP3 library to play in the game. The color of the city lights, and the density of the buildings will change depending on the tempo of the song selected to play for that level. The enemies will generate in time to the music as well, giving the player the ultimate control in the pace and difficulty of each level. The main goal of the game is to successfully fly through each level while racking up as many points as possible.
Features
My Role
Challenges
"Many" is the appropriate word to describe being project lead in a production team, I addressed problems sooner than later.
Problem: Collision detection
Resolve: Collision check optimization
Problem: Dynamically creating and destroying bullets
Resolve: Bullet pool allocator
SampleCode
BassWings is an arcade style, flight rail shooter with an audio twist, where you pilot through a dense Urban City while fighting through a gauntlet of an invading enemy ships. The player will have the ability to select any song from their .MP3 library to play in the game. The color of the city lights, and the density of the buildings will change depending on the tempo of the song selected to play for that level. The enemies will generate in time to the music as well, giving the player the ultimate control in the pace and difficulty of each level. The main goal of the game is to successfully fly through each level while racking up as many points as possible.
Features
- Arcade style Flight Controls
- Use your own Sound Track to play the game
- 2 player Co-op
- You set the pace of the Music
- Full Controller Support
- Mac/PC support
- .mp3 files
My Role
- Project Lead
- All Game logic, Character controller , Xbox Input Code
- Custom Shaders that interpolated to the music
- Monitoring Website, Facebook, Twitter and other social media
- Leading SCRUM meetings with artist and other team members
- Preparing a kick-starter campaign
Challenges
"Many" is the appropriate word to describe being project lead in a production team, I addressed problems sooner than later.
Problem: Collision detection
Resolve: Collision check optimization
- Doto many non static collidable objects that their scale was being constantly manipulated by amplitude waves and frequency, Unitys default collision detection became expensive to use. I resolved it by activating the building box colliders when we entered a city block(Fixed Dimensions), then doing a mesh collision detection check when inside the building box colliders. After I left a city block/or have not entered one I would turn off all the colliders. Simply put it, 3 checks one after the other; 1:N city blocks - > 1: N Buildings (Box Colliders) - > 1:1 Building (Mesh Collision).
Problem: Dynamically creating and destroying bullets
Resolve: Bullet pool allocator
- We noticed a spike drop at a benchmark test that indicated a loss in a performance do to instantiating new bullets and destroying them on the heap in addition to a uncontrolled dynamic garbage collection being called by the engine. I resolved this by pre allocating all the bullets that we will ever need in the scene and then recycling these objects to a standby mode till they are ready to be reactivated again.
SampleCode
|
|
|
"Battle Tactics"
An Engine Scripting Tech Demo for IOS/Android Platform and PC
About...
Battle Tactics is a very simple mash up of the social popular mobile game "Words with Friends" and Nintendo's Advance Wars. Players logged in to the game, made an account, and upload their actions in this turn based game. This was my earliest experiences using the Unity engine. I extended the assignment by making a Youtube video demonstrating the games features.
Features
My Role
Challenges
We ran into a problem with a rare occurrence with an infinite loop within the one of the Astar While loops, We resolved it by sprinkling debug logs within all the loops and then read the crash dump log to locate the problem.
Problem: Astar* Traversing the same path
Resolve: Resting FGH scores on Nodes
Sample Code
Battle Tactics is a very simple mash up of the social popular mobile game "Words with Friends" and Nintendo's Advance Wars. Players logged in to the game, made an account, and upload their actions in this turn based game. This was my earliest experiences using the Unity engine. I extended the assignment by making a Youtube video demonstrating the games features.
Features
- Point and click
- play at your convenience
- make an account
- SQL Data base
My Role
- Game play programmer on client side
- A* Star implementation
- 3D modeler and animator
- Touch Input
Challenges
We ran into a problem with a rare occurrence with an infinite loop within the one of the Astar While loops, We resolved it by sprinkling debug logs within all the loops and then read the crash dump log to locate the problem.
Problem: Astar* Traversing the same path
Resolve: Resting FGH scores on Nodes
- The Player Character could not re traverse a previous path. After stepping into the traversed path and mapping the values on paper we saw that the neighbors nodes score values did not reset after it was traversed. I resolved it by resetting the values after the path was built.
Sample Code
About...
A simple mini game where you control colored Capcom's Megaman X to either duck or jump away from incoming enemies. This game is inspired by Microsoft game "Fusion Frenzy", Twisted System, mini game. This was 48 hour independent challenge to create a game from scratch. Using the Unity's 4.3 update with their new 2D engine support.
Features
Challenges
This Assignment had a learning curve element added to the limited time window. My first time using Unity's mecanim in addition to using the new 2D update and 2D tool kit. The overall challenges was more or less to sync animations to the game to logic influences.
Problem: Syncing Jumping
Resolve: Animation Curve
Sample Project
A simple mini game where you control colored Capcom's Megaman X to either duck or jump away from incoming enemies. This game is inspired by Microsoft game "Fusion Frenzy", Twisted System, mini game. This was 48 hour independent challenge to create a game from scratch. Using the Unity's 4.3 update with their new 2D engine support.
Features
- Android 4.0 and higher
- Fast responsive action
- Simple, fast and fun
- fully functional and optimized ready for Mobile use
- Project Lead
- Used Unitys animation Mechanim and 2D collision
- used 2D tool kit (assest store tool)
- Android Tested with a Samsung S4.
Challenges
This Assignment had a learning curve element added to the limited time window. My first time using Unity's mecanim in addition to using the new 2D update and 2D tool kit. The overall challenges was more or less to sync animations to the game to logic influences.
Problem: Syncing Jumping
Resolve: Animation Curve
- I needed to sync the jump animation length to the length of the jump. I used the built in Animation Curve system to set the the climax of the jump animation to the peak of the transformation curve, allowing me to manipulate the game object in local/animation space, while abstracting the logic code in tangent to the game in world space.
Sample Project
"Nebula"
a PC/ Xbox360 game
About...
Nebulas is a simple 3rd person survival shooting game. Where you must survive waves of enemy Robots. Nebula was 4 week group project consisting of 1 programmer and 1 artist.
My Role
Tech art was a challenge having objects not being exported properly, Resolve it by communicating the problem effectively to the artist and in addition I parented the 3D models to an empty game object and re centered it to the origin and aligned it properly.
Problem: Enemies Look direction
Resolve:
Nebulas is a simple 3rd person survival shooting game. Where you must survive waves of enemy Robots. Nebula was 4 week group project consisting of 1 programmer and 1 artist.
My Role
- Project Lead
- AI Agents
- my own implementation of a Flocking algorithm
- 3rd person Character Camera
- All Game Logic
Tech art was a challenge having objects not being exported properly, Resolve it by communicating the problem effectively to the artist and in addition I parented the 3D models to an empty game object and re centered it to the origin and aligned it properly.
Problem: Enemies Look direction
Resolve:
"Star Wings"
PC & xbox 360 game
About...
This game is tribute to the legendary Star Fox 64 game. It is a 3D rail flight shooter. You must survive against a gauntlet of enemy ships, lasers, and asteroids. You are StarWing fighter and you are earth's last defense.
Features
My Role
Challenges
My first time working in 3D space. I exercised my trigonometry skills, to go between matrix spaces and calculated distances. Also first attempt using a particle system and post processing effects.
Problem: Crosshair Movement
Resolve: Translate between several spaces
Sample Project
This game is tribute to the legendary Star Fox 64 game. It is a 3D rail flight shooter. You must survive against a gauntlet of enemy ships, lasers, and asteroids. You are StarWing fighter and you are earth's last defense.
Features
- Xbox controller and PC input support
- Rumble Feature
- Health and ammo system
- Spectacular effects
- 14 levels of difficulty
My Role
- Independent console coding project
- 360 controller support
- Difficulty increases as long you play
- Particle system support
- Post processing - Bloom
Challenges
My first time working in 3D space. I exercised my trigonometry skills, to go between matrix spaces and calculated distances. Also first attempt using a particle system and post processing effects.
Problem: Crosshair Movement
Resolve: Translate between several spaces
- Simulating StarFox movement along with shooting. The Crosshair is far away from the ship. however the user moves the crosshair(NOT the ship, the ship just moves to and looks at the crosshair). I had to translate matrixes into several different spaces such as camera space and apply my directions with my weights and the translate them back to world space to simulate screen space movement along with rotation.
Sample Project
"Blue Wings"
2D PC & xbox360 game
About...
This game is a tribute to Bizarre Creations Geometry Wars . You play as young dragon-ling who has to fight against a horde of evil dragons. Race the clock to survive.
Features
Challenges...
Creating my own a 2D flip algorithm and then extending it by reading more complex sprite sheets. I had problems with collision not being accurate so drew a debug box that encapsulated the player to visually show the collision box while I was testing.
Problem: Analog stick input sync to the animation
Resolve: Dividing a circle by 8 parts then offsetting the slices by a fixed amount.
Sample Project & Sample Code
This game is a tribute to Bizarre Creations Geometry Wars . You play as young dragon-ling who has to fight against a horde of evil dragons. Race the clock to survive.
Features
- Intense Action
- Race against the clock
- Fast paced
- several different enemies
- 3 different fire attacks; Single, Rapid, Tri- shot
- Independent console coding project
- 360 controller support, Both Analog joy sticks, rumble support
- Difficulty increases as long you play
- responsible for All animations
- health regeneration
- AI behaviors
Challenges...
Creating my own a 2D flip algorithm and then extending it by reading more complex sprite sheets. I had problems with collision not being accurate so drew a debug box that encapsulated the player to visually show the collision box while I was testing.
Problem: Analog stick input sync to the animation
Resolve: Dividing a circle by 8 parts then offsetting the slices by a fixed amount.
- Reading the joystick to determine which dragon sprite animations ( 8 direction sprite animations) I should use. I resolved it by using the function Atan2(), to get the raid-ans of the input and then converting the angle to degrees , then subtracting it by a range over 45 degrees. angle = angle - 22.5f / 45. And finally comparing it to all 8th s of 360 degrees then subtracting or adding the 22.5f offset... Its like 22.f degree cone inside a 45 degree cone. making a circle out of 8 of them. IE: angle < 45 + 22.5.
Sample Project & Sample Code
"Janitor Game"
2D PC Game
About...
This is tower defence game. You play as a Janitor in a laboratory. While cleaning in a regular routine, an accidental spill has mutated the aggressive creatures which they are trying to escape. It is your duty to use your array of cleaning supplies to ward them away from leaving the laboratory.
Features
Challenges...
My earliest experiences with XNA and state machines. I had the pleasure working with a classmate on this assignment. Any problems that arose we were able to resolve it together rather quickly.
Sample Project
This is tower defence game. You play as a Janitor in a laboratory. While cleaning in a regular routine, an accidental spill has mutated the aggressive creatures which they are trying to escape. It is your duty to use your array of cleaning supplies to ward them away from leaving the laboratory.
Features
- A*star pathfinding
- Pixel Detection
- several different and Unique enemies
- Array of Weapons to ward off enemies
- Team project
- Difficulty increases as long you play
- Game Manager, Animation Manger, Input Controls
- Weapon Bonus VS Enemies Weakness Comparisons
Challenges...
My earliest experiences with XNA and state machines. I had the pleasure working with a classmate on this assignment. Any problems that arose we were able to resolve it together rather quickly.
Sample Project