I’m a Game Design major at RIT focusing primarily on gameplay programming and engine design. My strongest skills are in programming, specifically C++ and C#. While I am predominantly a programmer, I have also taken classes in design and asset production for games. All of the projects currently on this site have been created in classes, and they represent the best of my ability at the time of their creation. My languages and tools page contains a list of skills I possess which would pertain to game creation. Thank you for your time and i hope you enjoy my site.
C# is the programming language I've spent the most time with. I've used it for a year and a half and continue to make use of it in projects today. I've used it in multiple contexts, just in Visual Studio, with both Windows Forms and Monogame, and most recently I used it in Unity within their scripts.
C++ is the language I've been using most recently. I started learning it in my programming class this semester and after learning the basics of it's syntax and pointers, we moved onto using it in combination with the OpenGL graphics API. We've been creating small experiments in it and by the end of the semester will have created a pool simulation using it.
Java was the first programming language I ever used. I had taken some college classes during high school to get my feet wet and I loved it. The biggest thing I've done with it is created a mod for Minecraft in it. I haven't used it much since then, except in the context of Processing, but I still feel I could pick it back up fairly quickly.
Processing is a Java-based graphics programming language. It is designed for you to be able to quickly prototype graphics programs, and we used it to create a few basic games and implement a range of steering behaviors. We then took the techniques we learned in 2D and took them into 3D with Unity.
Microsoft Visual Studio has been my main IDE since semester 1. I used it to learn C# and used it with both Windows Forms and Monogame. I've also used to to create my Imagine RIT project. Most recently I've been using it this semester to learn C++ and learn more about Visual Studio to create small programs with OpenGL.
I have had a fair amount of experience using the Unity development engine now. I started using it a year and a half ago to create simple 3D scenes and steering behaviors and proceeded to create 2 games in it this semester and teach a one week course in unity mobile development over the summer at Digital Media Academy.
I have been working with OpenGL for about a year now. We started last semester with simple 2D shape drawing and user input. This semester we expanded our knowledge to 3D shapes, lighting, and texturing. We used glew to interface with OpenGL and created a game using it, which you can see in detail on my projects page.
I just learned DirectX this previous semester. I'm about as familiar with DirectX as I am with OpenGL, as it is just another way to do the same thing. I understand the concepts and basics of a 3D graphics pipeline and now I know how to do it specifically with DirectX.
I spent a semester in a 3D modeling class learning Maya. I'm not the best at 3D modeling, I'm not much of an artist, but Maya makes it easy to create nice looking models. I've created a few individual projects as well as a big team project, exporting Maya models into Unity to create a level to explore.
I'm no artist but Photoshop is a very nice program. I learned the basics a while ago and have been using it for project assets ever since. I've used it for animation as well as static image creation, most of the images on this site are created or at least downsized using Photoshop. I've kept up and keep learning new techniques.
I used Monogame for the biggest team project I've worked on, a platformer for our final project in my second C# class. It's a good system to create games in, but not the best I've used. The project ended up not coming out very well, partly because of scheduling issues as well as some GitHub problems but it was a good learning experience.
A 2D conversion of Splatoon, created in Canvas
A 3D endless runner, created using DirectX
An Audio Visualizer, created in Canvas
J3llo-Shot, an action platformer/katamari damacy hybrid created in Unity
Tussle! is a quick-playing card-based fighting game
Toaster Wars is a top-down schmup game created from scratch in OpenGL
Lamia Vittas, a platformer created in Monogame.
Rupee Catcher, a simple game created in OpenGL.
Tanks, a recreation of a retro game in Windows Forms.
A cave created in Maya and placed in Unity.
Flatoon is a competitive multiplayer game inspired by Splatoon, created in a browser environment using Canvas. It's a 2D top-down game where you move around the screen, painting the canvas and squishing other players. At the end of each round the amount of canvas covered by each person is tallied and the winner is whoever has covered the most space on the screen.
I created the base game engine. I used a gamepad api to control the characters with gamepad input. I implemented a player class involving everything a player entity woud do, as well as collisions for all players. I designed and implemented the scoring animation at the end. I designed the game state system to switch between states. I also implemented the sound system based on work done in class.
CyberRun is a simple infinite runner game created in DirectX. This game was created in my Game Graphics Programming class and as such it wasn't meant to showcase my game creation skills, but rather how well a group could create and understand different types of graphical effects using DirectX shaders.
While the project as a whole was focused mroe on graphics, my main focus was on the gameplay. I created the infinite part of the infinite runner, spawning platforms, obstacles, and collectibles ahead, and deleting them as they went off screen behind. I also created the jumping and ducking mechanics, as well as the very basic hit detection for obstacles and collectibles.
The class as a whole taught me a lot about graphics engines and DirectX, but the project specifically taught me a fair amount about game optimization. As we didn't want the gameplay itself to be too complex I found a lot of ways to create simple gameplay simply. I've been making games for 3 years now and this game was a proof of concept of sorts that I could create a simple but full game quickly and efficiently.
I created the basic visualizer, setting up the basic interface to have canvas pull the notes from the song and interpret them into the visualizations we put on screen. My major contribution to the project was the Undertale songs; Arachnophilia and Oase de Dans. Undertale is a game that holds a very special place in my game collection and I dedicated my time on the project to created visual homages, still based on music, to two of my favorite characters.
J3llo-Shot is an action platformer where you eat your enemies an grow in size, inspired by katamari damacy. This game was created in 5 weeks for my Game Design class. You played as a small jello cube that ate other jello pyramids. Our game ended up being a small tutorial level and a rather more difficult than intended second level, but we had intended for it to be a lot more than it turned out.
I was the main programmer. By this I mean that I did all of the programming for the game excluding UI and Menu programming. I did all of the player and enemy programming, collision detection and resolution, and really just created all of the gameplay itself.
Don't have 1 programmer on your team. I love to program and so I thought that it would be fine if I took on all of the programming work. It was not. The game ended up being playable but buggy, and a large amountof the workload was put on me and my team mates had very little to do. I now truly know why there are so many programmers on game development teams.
Tussle is a card-based fighting game that I made in 5 weeks for my Game Design class. It is currently very simple; each player gets a deck of attacks and blocks and a set of combos based on the players they choose. Games typically last about 5 minutes.
Our group didn't have distinct roles for this group, so we all just worked on what needed done and threw ideas for balancing and extra features around. My biggest contribution to the project was that I designed the cards themselves.
I learned that it is possible to make a solid card-based fighting game. We went into this project with a lot of warnings about similar games that took too long or were boring but we were able to make ours work.
Toaster wars is a top-down schmup game, in the style of gradius or touhou. You play as a toaster ship and shoot at slices of bread, turning them into toast. We consider this a work in progress and would like to build it as right now we have very basic enemies, a player, and no working collisions between them all.
My part of the game was the gameplay programming. I was responsible for coding up the ship architecture classes, the player and enemies, the projectiles and collectibles, and how all of these things would interact. I was able to get all of the ideas into the game but we could not get collision detection working and as such nothing really happened in the game.
I learned to manage my time. The class I created this project for was difficult and had a lot of time-consuming assignments and the project just kind of fell by the wayside, meaning we ended up throwing this together on the last day. The project was a good experience overall because I definitely learned a lot about lower level graphics programming with OpenGL and just how much stuff has to go into basic gameplay.
Lamia Vittas is a failed platformer that me and a group of classmates tried to create for a class final. The concept was based on the game Giana Sisters’ switching mechanic. We had a vampire who turned into a cat and vice versa. It didn’t go very well because of scheduling reasons and issues with Github, but it was still a good learning experience about what can go wrong when designing a game.
I was mostly a back-end programmer, working on a lot of the engine design as we had to build this game from the ground up. I worked on the physics, the player interaction, object interaction, and collision detection. I also helped out in small areas with the rest of my team but I focused mostly on the game’s engine.
I learned from this project that you can never underestimate a project as big as designing a game from the ground up. We ran into a lot of procrastination and scheduling conflicts that led to late milestones and shoddy work, and right at the end we had a computer issue that caused us to lose most of our code. I learned that you need to plan, communicate, and work well in advance of when you think you’ll need to
Rupee Catcher is a simple game I created in OpenGL to experiment with animation and user interaction in anticipation of the upcoming pool simulation I’m creating for class. The game is simple; Rupees fall, you catch them. If they fall to the bottom of the screen you lose a life, lose all lives and the game is over. While it is very simple now I’m hoping to improve on it in the future.
This was a one person project, and as such I did all of it. I coded the animations and created the artwork and the system to draw it. I created the points system and the code that registered when the rupee was caught or if it was lost. I was coder, artist, and producer for this project.
This project taught me a fair amount about OpenGL and how it drew shapes as well as how it took input. I messed around with both drawing and user interaction, and worked on my skills as a general games programmer by creating a game instead of just a fancy widget.
Tanks is a recreation of a retro tanks game in Windows Forms, my first experience with creating anything resembling a real game. The game is a two-player tank game, both tanks controlled by keyboard input. It can take different maps created in text docs that the program will read and display. The tanks collide with the walls and won’t go out of the screen. The first player to take out the other player wins.
As this was a one person project I did all of the work for this project. I did all the art for myself as well as created the default map which I based off of the first stage of pacman. The design of the windows I created using Windows Forms’ WYSIWYG editor and then I coded the actual game in C#.
This is the project where I first learned what it was like to make something like an actual game. I learned what it was like to create assets, write the engine, create the levels, and then put it all together in a nice package. I was very happy with the result and this project really solidified my want to make games.
This was a final project for my 3D Asset Production class. A group of 4 classmates and I worked on a simple level which we created all assets for in Maya and then imported them all into Unity which we used to let the user walk around and explore our world. It was a 5 week project and we created and textured all the models, planned out the world, and created a fun place to explore.
My main role in this project was to create the basement models. We each took a room and created all of the models and our plan was to then unwrap and texture each of them ourselves but because of how certain things turned out I ended up creating a lot of extra models for around the landscape and sent them off to a teammate to unwrap and texture.
This was my first big team-based art production project. It was interesting to see how something could go from a concept to a model to a texture to an object in your game world. I also learned that I’m better at 3D modeling than 2D art but I also learned that I definitely don’t want to do asset production and I’ve been concentrating on programming ever since.