UnitySwarms

UnitySwarms (GitHub Here) is a project for a directed study under Maria Hybinette at the University of Georgia.

The purpose of the project is to create an optimized Unity3D plugin (so it's written in c#) that will add swarm behavior functionality that works in both a 3D and 2D space. Currently the code is based off of the "Flocks, Herds, and Schools: A Distributed Behavioral Model" paper by Craig W. Reynolds.

While this project is currently in progress, I have integrated a variety of different features to the original algorithm including the algorithm described in the "Social Potentials for Scalable Multi-Robot Formations" paper by Tucker Balch and Maria Hybinette. Essentially, it makes the boids align in a crystallized geometric fashion.

UGARouters

The UGARouters Mobile App (GitHub Here) is a team-based project for my Human Computer Interaction - CSCI 4800 course at the University of Georgia.

The purpose of this project is to create an Android-based (java) application that allows a user to map the most efficient series of transit routes from point A to point B on the University of Georgia campus.

We have successfully designed and implemented the layout along with its basic functionality. The next step to completion is to write the code that handles the logic behind mapping the most efficient routes. Given the problem, it will likely involve a search algorithm such as A*. However, given a lack of time available in the semester, this goal is on indefinite hold.

Image Pending

YouDrive (GitHub Here) is a team-based project for my Software Engineering - CSCI 4050 course at the University of Georgia.

The purpose of the purpose of the project is to create a Java Server Page driven online car rental system website that interacts with a MySQL database.

The project is now completed with everything mostly working. A few kinks and bugs are apparent here and there, and not all of the interface stuff is "pretty", but it works. It worked well enough for the A. :)

Stranded

Stranded (Playable Here) (GitHub Here) is a Unity3D game project created for my Game Programming - CSCI 4070 course at the University of Georgia.

The idea behind the game is that you (the player) are a space traveler who has crash landed on a strange and barren world. Your goal is to create a shelter and turn on a distress beacon before it is too late.

In terms of features, your oxygen meter runs out over time, and there is a full day-night cycle. When it becomes night, aliens come in from a distance and attempt to attack and kill you. Of course, there are a series of collectibles littered across the world that aide you in your fight for survival.

A* Demonstration

This A* demonstration (Playable Here) (GitHub Here) is an actionscript FlashPunk-based application that demonstrates in real time how a number of search algorithms work. It was written for my Game Programming - CSCI 4070 course at the University of Georgia.

The demonstration allows you upload custom map text files that represent walkable areas and non-walkable obstacles. Then, you can click on any walkable tile and the game will automatically start visually going through the process of creating shortest-distance pathway to the goal.

To load a map file (Examples here) press the "L" key after loading the demonstration in your browser. Press WASD or arrows to move around. Q and E keys speed up or slow down animation speed. 1-5 keys select different heuristics. F, G, and H keys show F, G, or H costs. N key disables the display of costs.

Ninja Platformer

Ninja Platformer (Playable Here) (GitHub Here) is an HTML5 ImpactJS-based 2D sidescrolling ninja game written for my Game Programming - CSCI 4070 course at the University of Georgia.

This small game lets the player play as a ninja (obviously). The goal of the game is to get to the end of the level without dying 3 times. If you do, you get kicked back to the map screen.

The game itself has only one type of enemy known as the Amazonian warrior princess. You can press the space bar to attack with your blade, and the arrow keys move you around. The game features wall-climbing abilities as well as the ability to die from a high fall.

Galaga Clone

Galaga Clone (Playable Here) (GitHub Here) is an HTML5 based Galaga "clone". It was written for my Game Programming - CSCI 4070 course at the University of Georgia.

This small game lets the player play as a spaceship who has to fight agains a series of other randomly generated spaceships. If the player gets to the end of the stage, they have to battle a lengthy battle with a boss known only as The Nyan Cat.

To control your ship, you use the arrow keys to move around. The space bar allows you to shoot lasers. There are occasional powerups that appear on the screen that improve your ship's abilities in some fashion (firing speed, number of shots, and firing power).

UDPTraceroute (GitHub Here) is a Java based application that runs on the command line. It was written for my Computer Networks - CSCI 4760 course at the University of Georgia.

This application is a rewrite of the traceroute command available on a number of operating systems. It lets a user specify a web address and then figures out and displays the network path in which packets take on course to the given web address.

WebProxy (GitHub Here) is a Java based proxy server that runs on the command line. It was written for my Computer Networks - CSCI 4760 course at the University of Georgia.

This simple application creates a multithreaded proxy server that reroutes all web traffic through it. It allows a user to specify a specific port to listen on, and then does all the magic of proxy servers behind the scenes.

Minecraft A* Mod (Video Here) (GitHub Here) is a Minecraft modification written for my Introduction to Artificial Intelligence - CSCI 4550 course at the University of Georgia.

The purpose behind the mod is to add a speed-optimized A* algorithm to the game Minecraft. This mod allows the player to press a key on the keyboard that turns on the algorithm. The algorithm then takes over for the player and starts walking to some pre-specified point on the map. The mod can currently handle jumping and walking by simple obstacles, but generally breaks if there is a wall that is higher than than the player can jump in the way (with no other alternative solution).

A series of optimizations were performed on the algorithm, most if not all described in the linked youtube video. Generally, though, if the player is in a wide open space then the mod accounts for that and start to generate path nodes which cover much larger areas. This reduces the amount of overall node calculations, but allows for a less-than-perfect path to be found.