// Techidemic //

Gameplay Programmer

Unity3D - C#

This game was made in five weeks with a team of five people. I was the lead programmer, and had several large responsibilities for this project. The largest of them includes the locomotion system, pipe programming/design, distance meter, and special effect design.

The most difficult and fun aspect of this was figuring out the best way to have the avatar move along set pipes in any six cardinal directions and with four rotational options. For the movement along the pipes, I used simple lerping for straight pipes, and for bending pipes, created a 2D Bezier curve between the ends and middle of the pipe, and (s)lerped along them. For the rotation around the pipes, I used 90 degree changes with Quaternion values of the virus, relative to the tangent of the pipes. After determining the turn, the virus slerps in the proper direction. I also used a floating camera that follows the avatar comfortably and adjusts FOV based on speed/movement.

Downloads:
PC Download
OSX Download


// The Unobtanium Factor //

Gameplay Programmer

Unity3D - C#

This game followed Techidemic, and was once again a five week project with a five person team. I was the lead programmer, responsible for a majority of features. I created a seed-based randomized planet generator, spaceship locomotion in space and on planet surfaces, enemy interaction, and the GUI seen in space mode.

The first large feature to tackle was creating an infinite planetscape that moves with the player and is based on a seed, akin to worlds in Minecraft. In game, the "chunks" of planets have their size determined by the culling distance of the camera, and from then on, a 3x3x3 group is instantiated around the player. Every time the player nears the edge of one, it depopulates behind it and instantiates a new set of planets in front. Each set of planets is randomly created around the center point of a chunk, distributed via Spiral Method (see my StackOverflow question and info here), and given random distance from center, rotation, atmosphere, and texture.

For the movement on planets, I used a transform algorithm from the simple cartesian movement of the space locomotion to polar coordinates on the surface. The player's ship, enemies, and missiles are all bound to the surface and move via polar-to-cartesian movement. The GUI seen in space that shows 2D representations of 3D objects nearby was done using camera-to-object rays and a magical thing called math! Overall, a fun, tough project but I ended up learning a bunch.

Downloads:
PC Download
OSX Download


// Spartan Villa //

Gameplay/Tools/GUI Programmer

Unity3D - C#

This game was made while employed for the Michigan State GEL Lab, as a project funded by MSUFCU. The game involves house building, finances, tenants, and other educational and fun events. I started as one of two programmers on the project, and built tools for a dynamic tile system. As the project developed, I worked a lot on GUI using NGUI, a C# Unity GUI system. I also worked on minor financial systems, avatar movement/interaction, and further tile placing/effects systems.

To see more screenshots, information, and to play the game, visit the GEL Lab Spartan Villa page.