Here are a bunch of projects I've created throughout my college career. Most of these projects had very general requirements like simply using a certain library.
Projects
Fighter Engine
The fighting game engine is my current project. The goal of this project is to create a fighting game from scratch. "From scratch" meaning building as much as possible myself. This is because it helps me understand different parts of the system and really internalize what each part of game development requires.
This was initially built using xna for an independent study course at RIT. Later, I built a different version of it using an entity component system in C++ and OpenGL. I then rebuilt it into its current state using monogame.
It uses an entity component system, with a central "Game Object" class surrounded by many components which add their functionality to the object.
This game serves to fulfill my passion for game creation and to keep my skills fresh.
Unfortunately, it isn't in a playable or showable state. I can only discuss the design of the system.
OpenGL Tech Demo
The C++ OpenGL entity component system is downloadable here.
Pressing 1, 2, or 3 toggles different tech displays.
1 displays 3D separating axis theorem.
2 displays a bezier curve.
3 displays 4 cubes that move in sync with each other.
i/k - Move Camera forward and back
j/l - Rotate Camera around center
z - Pause/Start
ESC - Quit
You can use the following controls on 1:
WASD - Move the block
Space + Q or E - Rotate the block
Toggle between Quaternion and Matrix Rotation - 9
You may use the following controls on 3:
WASD - Move the objects
WASD + Space - Shear the objects
Please remember because this was effectively a tech demo, it was never meant for public use. If there are bugs, it's because this was created in 10 weeks and not given ample time to fix everything.
Toobz
This game is playable if you have DirectX 10 or greater installed on your machine. Simply download the file and run the exe. Sometime this game starts and the menu isn't displaying. If this is the case, you can either restart the program until it works or you can hit Down and A or Down and Enter to access another menu. It is best played with an Xbox 360 controller. It also has several bugs but is in a mostly playable state.
Toobz was possibly the most difficult project I've worked on. Developed in 10 weeks, It's a 3D Shoot 'Em Up game inside of a tube built in DirectX 10. I worked on this with a team of 6 people, named in the credits of the game. I was the Project Lead on this game, making sure everything got finished.
The goal we set out with for this project was to make a playable game that shot out lots of pretty colors. I think we succeeded with this goal. The point was to be flying through a wormhole, dodging obstacles and shooting bad guys, all the while seeing pretty colors everywhere.
My largest contribution to this was the design of the Tube. The Tube is composed of segements of tori and cylinders strung together end to end. I created a torus by calculating its vertices and percentage of a circle to go around. Another part of my contribution was the calculation of the center of the tube relative to the player. In order to make the player move around a tube, that player most know where the center of that torus is in order to rotate around it. So part of my challenge was connecting each of the ends of the tubes together but also to known where the center was at all times. I was also responsible for the design of the level and a good portion of the game idea.
Steampunk Genie
This game is playable if you have DirectX 10 or greater installed on your machine. Simply download the file and run the exe.
Steampunk Genie represents possibly the finest piece of work I've created in college. A beautiful platformer, developed over 10 weeks, with plenty of functionality and well written, clean code. I wish I'd spent more time on this project because it really is a testament to what I can do. For this game I worked as co-designer and secondary level designer with Graham Berger. Our physics engine was designed by Alex Glade and our particle system was designed by Philip Moccio. I worked on graphics programming, general programming, design, and art. The art is completely mine excluding the background. The particles, animation, character, are all my creations.
This Website
This website is a fun side project that I've always wanted to do. I've had the knowledge to make it for a while now, but I haven't had the time to do it. Being out of school gave me ample amounts of time to make it work.
This site was built to allow me to log into it, and create and modify content at will. It stores data in a mySQL database and tracks sessions for this purpose.
I use jQuery and Javascript to create posts and animate their shrinking and expanding. I use php to access the database and modify and retrieve data.
If you have any recommendations for this site, please use one of the various ways to contact me on the Contact Me page and let me know.
Capture the Flag in Unity
This can be run in browser if you have Unity3D web player. In order to close this simulation simply minimize the window using the arrow button in the top right corner.
Controls are WASD and mouse to move and look around.
So this project is a successor to the previous project. We were required to create a 3D world using the steering behaviors previously indicated plus several more. So I chose Capture the Flag again because I had a good idea. One of the requirements for the project was to have an avatar that could fly around the world and look at what was going on. I decided to use the avatar as a player in the capture the flag game.
This has all the steering behaviors from the 2D version but also adds in leader following. So leader following happens when a flag gets captured. All the teammates available will huddle around the flag bearer and escort him to safety. Another behavior that's cool to watch happens right from the start: Both teams group up and will sneak over to the other side, right outside of the defender's tether range, and then rush the flag.
Unfortunately, this version is definitely slightly buggier than the previous version. The flag collision doesn't work very well, and oftentimes the flagbearer will drop the flag. The other problem is, occasionally the bearer will drop the flag, and then all his teammates will try to grab it. Leaving a giant mass of flag seekers just staring at a flag.
Soul Search Records
www.soulsearchrecords.com
I built this website based off the designs of the previous web designer, who had left the website broken. I cleaned up the code and in many cases redesigned it.
Capture the Flag in Flash
This can be run in the browser assuming you have Adobe FlashPlayer installed on your machine. In order to close this simulation simply minimize the window using the arrow button in the top right corner.
Capture the Flag is a project for a class called Programming for Digital Media, created in several weeks. The requirements were to use several AI steering behaviors to create a world. Well I did create a world, but I really wanted it to be a game, so the end product is what you see above: a game of capture the flag.
So you've probably stared at this for a good couple of minutes now, wondering what the heck it is. Well an explanation is in order for a lot of the behaviors.
The first thing that happens is when the game starts, all the players are separated into attackers and defenders. Attackers and defenders change roles depending on the distance from the flag and have different behaviors based on what role they are playing.
Behavior 1: Defenders have a tether to their flag but seek any opposing aggressor on their side of the map.
Behavior 2: Attackers seek the flag and avoid the opposing defenders.
Behavior 3: All players are tethered to the center of the map in order to prevent them from leaving.
Behavior 4: Unaligned Collision Avoidance. They don't run into their teammates.
Behavior 5: They seek their own base once tagged (ignores unaligned collision avoidance).
So this was a really fun project but also really frustrating. I really enjoyed making the guys move around and play without any user interaction, but it was very frustrating because of all the balancing required to see where the players are supposed to go. It still isn't perfect either. Sometimes the players run off screen, and sometimes the defenders twitch and have no idea where to go. But overall it's pretty well balanced.
Xanthus Equine Rescue Website
I've been on a web design kick recently and I've created another website alongside my own. This one is for Xanthus Equine Rescue.
The site is fairly simple in design. I started with a default template from Dreamweaver and iterated on the colors and formatting until it turned out looking professional.
I learned about the nivo image slider while creating this and implemented it seamlessly. I also learned how to integrate facebook into a site more effectively.