Game Design:

spaceInvadersTitle

Space Invaders: The Bizarro Dimension

Role: Individual

Space Invaders: The Bizarro Dimension is a top-down shooter resembling the original Space Invaders, created individually. Similarly to the original Space Invaders, you shoot aliens, but there are a number of twists that make this game extremely different from the original.

I only had two weeks to develop this project, but I had a lot of ideas going into it. This project piggybacked off of some previous assignments for a class, so I had the foundation for the code already.

I wrote a project proposal detailing the story, the aesthetics, and some overall features of the game. I also drew some rough sketches showing the game layout. As I worked on the project, I documented my progress in the form of a journal. I recorded what I worked on each day and my methodology for everything I did. I also kept a list of outside references and assets that were pulled and modified for this project.


blindJumping

Blind Jumping

Role: Programmer, Level Designer, Enemy Designer

Blind Jumping is a 3D platformer created in a group of 3, where you can't see anything except for what's immediately in front of you and you have to navigate through the game using sound. I was mainly the programmer for it, but I also handled enemy and level design.

We had about 9 weeks to develop this project. We started with an idea for creating a game that would somehow link audio with colors so that different sounds/pitches produce different colors and vice versa. However, we struggled to design an actual game around that, so we simplified it by making a platformer where the player is blind and they navigate with sound effects.

Admittedly, we made up most of our ideas on the fly. The level design, the enemy design, and even the horror aesthetic weren't even conceived of in the planning phase of the game. However, we got by thanks to scrum and good task management through Trello. We had a paper prototype of the concept and we wrote a retrospective for each sprint detailing what we did, what we struggled with, and what lessons we learned.


discovery1 discovery2

Discovery

Role: Individual

Discovery is a complete adventure made in a Legend of Zelda quest editor called ZQuest.

I had high ambitions for this project, as I wanted to expand out from creating a single dungeon and create a full Zelda adventure on the same scale as the original Legend of Zelda. This was only my second project on the ZQuest engine too, so I still had a lot to learn about the engine as I worked on this.

Before I started developing this quest, I drew a paper map that showed the overall layout of the world, showed the intended locations of multiple different entities, paths, and dungeons, and showed the critical path that the player should follow to beat it. I received a lot of feedback on this design and the item locations in the final project are a little different from the paper map to better fit the gameplay.

The quest contains a narrative that serves as the backstory and the primary motivator for the quest. The dialogue from NPCs also give the player hints about where to go or what items they need. Progression in this quest is tied to the items, as many areas can only be accessed with specific items. Several items that can be found in the quest are also optional and they merely serve to help the player beat the game more easily. Most of these optional items can be found in areas that the player doesn't have access to when they pass by them for the first time. This rewards exploration and paying attention to the environment.

I have a playlist of videos showcasing my progress with the project.

hypercalcemia

Hypercalcemia

Role: Programmer

I worked in a group of 6 to create an endless-scrolling top-down shooter in the vein of classic arcade games. I was the only programmer for this project, but the project was very simple to develop. I used my knowledge of transferring data from one scene to another to create a leaderboard, which enhances the arcade aesthetic that we were going for. I didn't face any major challenges during this project.


worldView

World View

Role: Gameplay Programmer

I worked in a group of 4 to create a unique arcade-style twin stick shooter. Two of us were programmers. I worked on the gameplay itself and the teammate worked on the menus. I was already very familiar with programming in Unity, so I wanted to incorporate some features that I was unfamiliar with, such as camera manipulation outside of simple panning and controller support. The controller support in particular was the biggest challenge for me to overcome for this project because I had to program the player controls around it.


lightGameplayOne

Light: Lite

Role: Programmer

For this game, I experimented with Unreal Engine to create a unique gameplay system for the game. I worked in a group of 5 to create a first-person puzzle game. Three of us were programmers, and my role as one of those programmers was to program the main mechanic of the game, which was preventing the player from moving outside of light, making them only able to navigate within it. This was a challenge to program because I used concepts that I wasn't familiar with, such as raycasting, to factor in obstacles and walls. Now that I learned how raycasting works, I will use it even more in future projects when necessary.


cbbaTitle

Crescent Beast's Balancing Act

Role: Gameplay Programmer

I worked in a group of 5 as one of the two programmers and we used Unreal to make the game. We used GitHub as our repository for this project, even though GitHub is not well-suited for Unreal. Thanks to prior knowledge and experience, we split up our work so none of us worked on the same files at the same time. This minimized the amount of merge conflicts and it kept the project running smoothly.


cultistTitle

Cultist Farm

Role: Programmer

I worked in a group of 6 as one of the three programmers and we used Unity to make the project. For every Game Jam before this one, I organized my work with the other programmers by saying what parts of the project we work on. However, for this one, we discussed the code's architecture before actually programming it. We organized the class hierarchy and utilized advanced coding features such as interfaces for encapsulation. We unfortunately spent too much time on the planning phase to develop some of it, but we didn't run into any issues with what we worked on thanks to that planning.

wizzrobe1 wizzrobePapermap

Wizzrobe Wonders

Role: Individual

Wizzrobe Wonders is a small adventure made in a Legend of Zelda quest editor called ZQuest.

Since The Legend of Zelda was particularly famous for its puzzles, I wanted to focus on that for this project. This was my first project with this game engine and I had 5 weeks to make it, so I wanted to start small with a side quest and a dungeon.

Before I started developing this quest, I drew a paper map that showed the overall layout of the dungeon, showed the intended locations of every item, door and enemy, and showed the critical path that the player should follow to beat it. I received a lot of feedback on this design and the layout in the final project is a little different from the paper map to better fit the gameplay.

I have a playlist of videos showcasing my progress with the project.


discovery1 discoveryPapermap discoveryPacingMap

Discovery

Role: Individual

Discovery is a complete adventure made in a Legend of Zelda quest editor called ZQuest.

I had high ambitions for this project, as I wanted to expand out from creating a single dungeon and create a full Zelda adventure on the same scale as the original Legend of Zelda. This was only my second project on the ZQuest engine too, so I still had a lot to learn about the engine as I worked on this. However, I had 7 weeks to work on this instead of 5, so I had a little bit of extra time to develop it.

Before I started developing this quest, I drew a paper map that showed the overall layout of the world, showed the intended locations of multiple different entities, paths, and dungeons, and showed the critical path that the player should follow to beat it. I received a lot of feedback on this design and the item locations in the final project are different from the paper map to better fit the gameplay. I also drew a pacing map to give a rough visualization of the pacing of the game relative to when the player takes on the dungeons.

The overworld was separated into 9 different sections to give it a lot of variety, and I worked on 1 or 2 of those sections each week. I set up the overall layout of the overworld and the dungeons first and then I went back and polished them afterward. I had a rough idea of what I wanted the story to be like from the outset, and I wrote the finer details as I worked on the project. The dungeons were the only part of this map design that I made up as I went. I wanted to keep them shallow so I could focus more on the overworld, but I made them more interesting as I worked on the project and learned new things about ZQuest.

I have a playlist of videos showcasing my progress with the project.


honorsTitle honorsDoc1 honorsDoc2

Honors for Valor

Role: Designer

This Game Jam was unique in that it was 24 hours long instead of 48 and we worked on a card game instead of a video game. Because of this, I was able to focus on game design since programming wasn't involved. I worked in a group of 9, and all of us knew each other since we worked on the same production studio project. The card game that we ended up developing was a deck-building card game, where we gather cards and build up our decks in order to gather medals and win. I contributed to a number of aspects about our game, such as overall card balance, game flow, and game mechanics, all of which were written and documented on white boards.

Much of the focus for our discussions were on the implications of the mechanics. Since this was a card game about Veterans Day and the army, we wanted to respect them without glorifying tragedy or war. We also tried to avoid possible negative implications, such as buying medals instead of earning them. Much of the overall game design revolved around avoiding these.

You can view our presentation on the project here.


In Game Design Workshop II, we did a research paper on a genre of our choosing to determine what makes a good game in said genre. This includes research on the games themselves and the marketing. This is my paper on fighting games.


In the Level Design class, we discussed the 20 rules of Level Design and why they are important for designing levels. We also discussed different games that either use or don't use these rules. This is my analysis of the 20 rules.


In the Advanced Level Design class, we had weekly discussions about level (and game) design in different genres. In these discussions, we discussed our opinion of the genre, what we feel defines a "good game" in the genre, and some good and bad examples of the genre. This is a compilation of my analyses for 10 different genres.

Light: Lite

Role: Programmer

Light: Lite is a first-person puzzle game created for a 48-hour Game Jam.

A short Design Document was created for the project that also served as a checklist for implementing different features into the game.


Knock-Out Arcade

Role: Programmer

Knock-Out Arcade is a 2D fighting game made in Game Maker Studio 2 with the Game Maker language.

I was a programmer for this project, but I created multiple documents to explain how the mechanics I programmed work and why I programmed them the way I did. This helped the lead and the designers understand how the mechanics worked and how they could be used in the moment-to-moment gameplay.

I specifically made documents for the Rush Cancel mechanic and Smooth Criminal, a gimmick for Jay. They mostly focus on the code, but there are sections at the beginning of the documents that detail their designs.


Portal 2 Level Editor Tutorial

Role: Level Designer

This is a tutorial video for Portal 2's level editor, showcasing how to use the tools to make levels and puzzles. This also provides some insight into mods to add more content for level creation. I specifically showcased a mod called BEE2.


Discovery

Role: Individual

Discovery is a complete adventure made in a Legend of Zelda quest editor called ZQuest.

I wrote a short Pre-Production Document detailing what this project would be and what would be in it. It also establishes the scope of this project, which is massive for an Advanced Level Design project.

uprooted

Uprooted

Role: Programmer

Uprooted is a puzzle platformer created in a group of 10 for a 48-hour Game Jam. You play as a tree that wants to restore nature to places that have largely abandoned it, such as cities and factories.

Four of us were programmers for this game, so we divided the work based on how much experience we had with using Unreal. One team member was very experienced with the engine while the rest of us just started learning it. So, we divided the work as so: I worked on the core mechanic of the game, which was growing roots through the ground, one person worked on level design and importing art assets, another person worked on the UI, and the experienced programmer worked on everything else.

Since we were all programmers, we helped each other by giving tips on how to program a feature or to exchange tasks whenever someone is finished with their part of the development. We also had trouble with setting up a repository for the game, so we had to pass around a flash drive and manually merge all of our work that way, which also means we frequently told each other what exactly we worked on so each merge would go smoothly.

In the end, we successfully built the entire game before the deadline.


koa

Knock-Out Arcade

Role: Programmer

Knock-Out Arcade is a 2D fighting game made in Game Maker Studio 2 with the Game Maker language.

This was a Production Studio project, meaning it was a student-run project pitched for other students to work on in a class. Different students get onboarded across semesters, and I was onboarded as a programmer during the project's second semester running.

During my time working on the project, I quickly established myself as a teammate that was dedicated to make the project as good as possible with the time I had to work on it. I communicated frequently with the project lead, the designers, and the other programmers to get a firm grasp of the overall vision of the project and what needed to be done.

Even though I wasn't classified as a lead in the project, the other programmers often came to me for help on their tasks and I helped them. Rather than doing the tasks for them, I taught them the best ways for them to do their tasks and gave them a starting point to work off of whenever they got stuck.


cursedMenTitle

The Cursed Men and The Stolen Princess

Role: Programmer

The Cursed Men and The Stolen Princess is a 2.5D RPG made in Unreal using Blueprints. Its main gimmick is how it emphasizes on translating between English and Spanish.

This was a Production Studio project, meaning it was a student-run project pitched for other students to work on in a class. Different students get onboarded across semesters, and I was onboarded as a programmer during the project's first semester running.

Since I usually work on gameplay and player controls, I wanted to focus on different aspects of the project this time around. I created the dialogue system and set up the quest system. The data for both of these are held in data tables and spreadsheets, allowing designers to fill information easily.

I kept frequent contact with the rest of the team through weekly standups to update our progress. Whenever someone started to fall behind, we tried to help them in order to stay on schedule.


Game Programming:

Flying Eyeing

flyingEyeing flyingEyeingGameplay

Flying Eyeing is a quick arcade-like game created individually. You play as a flying eyeball designed like a B-Movie monster and you attack humans. Some of them will fire at you with guns to stop you too.

Flying Eyeing was created in Unity using C# as the scripting language.

The art is entirely consisted of 2D sprites and a shader was used for the grayscale screen to make it look like a B-Movie.

Download and play it here.

Uprooted

uprooted uprootedGame

Uprooted is a puzzle platformer created in a group of 10. You play as a tree that wants to restore nature to places that have largely abandoned it, such as cities and factories.

Uprooted was created in Unreal using Blueprints as the scripting language.

Despite being made in Unreal, the art entirely consists of 2D sprites.

Click this link to download and play it.

The Flow of Time

flowOfTime flowOfTimeGameplay

The Flow of Time is a quick top-down shooter.

The game includes a main menu and a credits page. Players can also exit the game anytime.

The game containns a tutorial level that teaches the player the controls and the intricacies of the time manipulation mechanic. The main game is a simple boss battle that has to be won within ten seconds.

After completing the game, players are presented with a congratulations screen. If they lose, they are sent to a lose screen and are given the option to retry the boss fight.

Click this link to download and play it.

UFO Attack

ufo ufoGameplay

UFO Attack is a flying shooter that takes place in space.

The game includes a main menu and a controls page that informs the player of the control scheme. Players can also exit the game through the main menu.

The game contains a scene where the player is informed of the enemy they face and what they must do to take it down. The main game has the player fly a blue ship, shooting the purple turrets that guard the big golden ship as well as red enemy ships.

After completing the game, players are presented with a flashy scene of the golden ship exploding and then are presented the win screen. The win screen changes depending on how much health the player has when they win. If they lose, they are sent to a lose screen and are given the option to retry the game.

Click this link to download and play it.

Vitamin Deficiency

vitamin vitaminGameplay

Vitamin Deficiency is a top-down rougelike created by a group of 4. In this game, you play as a farmer, shooting mutated vegetables that are causing havoc.

Inheritance was used to create the enemies. There is a base class that all enemy classes are children of, which contains shared information such as max health, move speed, different AI states, and different functions to perform for each state. Specific methods are overridden to make each type of enemy attack and move differently.

The bosses are a unique case in that they have different phases depending on how much health they have. As such, they have their own state machines determining which phase they are currently in, and that dictates their AI patterns and attacks.

All animations for each enemy is handled by Unity's built-in animation system. The animations themselves are hand-drawn by me and are imported into the project as sprite sheets. This gives me control over each animation with how quickly they animate and it allows me to use animation events to manipulate their AI so they smoothly change from one state to another.

Click this link to download and play it.

Light: Lite

lightGameplayOne lightGameplayTwo

Light: Lite is a 3D first-person puzzle game created for a Game Jam.

To prevent the player from moving outside of light, a Blueprint actor was created for a spotlight source. This Blueprint actor uses raycasting to measure the player's location in relation to the spotlight. This also allows obstructions to block the ray and limit the size of the light and the amount of space the player can walk.

This code was written to be modular as well so it can be used in items. There are certain items in the game that emit light and can be carried around. These dynamically changes where the player can walk, and this creates more possibilities for puzzles.

Click this link to download and play it.

Talisman of Ethshar

talismanTitle talisman

Talisman of Ethshar is a puzzle game created by a group of 5. It's themed around the world of Ethshar from the open-ended series of fantasy stories by Lawrence Watt-Evans. To solve the puzzles, you draw lines to connect dots in particular patterns in a single stroke to create talismans.

While my team and I were working on this game, we got to a point where the game worked fine but it didn't look appealing. We were supposed to be constructing magical talismans, but instead, it just looked like we were connecting dots.

To solve this issue, I did two things to add the magical appeal to the game. The first thing that I did was add particle effects to show that the talismans emitted magic when drawn correctly. The second thing that I did was change the color of the lines that were drawn once the talisman was correctly drawn to show that the ink used to draw the lines has magical properties too, and they were activated once the talisman was drawn correctly.

These additions helped to establish that the player was creating something magical, which was the intended theme of this game.

Click this link to play it.

Knock-Out Arcade

koa koaGameplay

Knock-Out Arcade is a 2D fighting game made in Game Maker Studio 2 with the Game Maker language. I helped development for this project as a programmer when it was pitched to Production Studio.

When I was working on this project, one of our main goals was to properly implement projectiles. Only one character at the time had a projectile and it was hard-coded. If we wanted multiple characters to use projectiles, it would be difficult to implement that because of this issue.

One of the previous programmers developed a character editor with C# to streamline character creation for the designers, so I started there with the implementation. I programmed an extension for the program that reimplements a lot of its code to allow designers to create projectiles. I added a lot of unique data for the projectiles that specifies how they would function too.

Once the character editor was done, I worked on the game itself to implement all of that new data. One of our biggest issues at this point was that hitstop was global, meaning both players would pause for a bit if anyone got hit, not just the player that got hit. This would be detrimental to the overall game flow with projectiles, so our project lead, Ryland Kealey, fixed that for me as I worked on the projectiles.

This new implementation of projectiles is far more robust and flexible than before, and it makes it much easier for designers to implement them.

Click this link to download and play it.

Blind Jumping

blindJumping

Blind Jumping is a 3D platformer where you navigate through a platform level by using sound, since your vision is obscured, and it is hard to see what is ahead.

Blind Jumping was created in Unity using C# as the scripting language.

The game utilizes a variety of different sounds, as well as Unity's 3D sound settings and features, to direct or misdirect players through the level. The different sounds help players identify things and the 3D sound features help players locate things without seeing them.

Download and play it here.

The Cursed Men and The Stolen Princess

cursedMenTitle cursedMen

The Cursed Men and The Stolen Princess is a 2.5D RPG made in Unreal using Blueprints.

This was a Production Studio project, meaning it was a student-run project pitched for other students to work on in a class. Different students get onboarded across semesters, and I was onboarded as a programmer during the project's first semester running.

The dialogue and the quest system utilize data tables to organize the data and make it easy for designers to insert new data into them. Each data table has different structures to organize the data. Separate spreadhseets outside of the project can be downloaded as comma-separated values (.csv) and inserted into the game as data tables for these systems.

Click this link to download and play it.

Knock-Out Arcade

koa koaGameplay

Knock-Out Arcade is a 2D fighting game made in Game Maker Studio 2 with the Game Maker language.

This was a Production Studio project, meaning it was a student-run project pitched for other students to work on in a class. Different students get onboarded across semesters, and I was onboarded as a programmer during the project's second semester running.

During my time working on the project, I quickly established myself as a teammate that was dedicated to make the project as good as possible with the time I had to work on it. I communicated frequently with the project lead, the designers, and the other programmers to get a firm grasp of the overall vision of the project and what needed to be done.

Even though I wasn't classified as a lead in the project, the other programmers often came to me for help on their tasks and I helped them. Rather than doing the tasks for them, I taught them the best ways for them to do their tasks and gave them a starting point to work off of whenever they got stuck.

Click this link to download and play it.

The Cursed Men and The Stolen Princess

cursedMenTitle cursedMen

The Cursed Men and The Stolen Princess is a 2.5D RPG made in Unreal using Blueprints.

This was a Production Studio project, meaning it was a student-run project pitched for other students to work on in a class. Different students get onboarded across semesters, and I was onboarded as a programmer during the project's first semester running.

Since I usually work on gameplay and player controls, I wanted to focus on different aspects of the project this time around. I created the dialogue system and set up the quest system. The data for both of these are held in data tables and spreadsheets, allowing designers to fill information easily.

I kept frequent contact with the rest of the team through weekly standups to update our progress. Whenever someone started to fall behind, we tried to help them in order to stay on schedule.

Click this link to download and play it.