Jason Skillman

Game Programmer | VR Developer | Technical Artist

Mythgrove: Festival of Yew

Unity Game

Project Manager & Lead Unity Programmer
Team Size: 7

Description:
Mythgrove is a rogue-like dungeon crawler where the player can go dungeoneering with their friends. The player discovers a secret forest with a dungeon entrance and soon realizes that the legends of the yearly spirit dungeon festival is real. The player is the only human in this festival and has to attend the sport of dungeoneering to enhance their fame and experience. Through a series of diverse dungeon terrains, the player will have to rely on their skill in battle to enhance their weapons to prove their worth in the festival. This was our senior project capstone project and had a total of 20 weeks of development time.

My Contribution:
My largest contribution towards this project was that I was the project manager and drove the overall design and development. I setup an Agile workflow for my team and stayed on top of our weekly sprints. Regarding the programming aspect of the project I was in charge of working on the procedural dungeon generation which was the original core design of how the player progressed through the game. The dungeon would  be made up of a series of rooms which the generator would then stitch together. I also worked on creating the different monster AI. Every monster had to be networked across our server so that the player could fight them with friends. Each monster would also have many complex states like idle, chase, attack, death, etc. I also worked on the main menu, post-processing, lighting, level design, controller support, creating custom shaders and various bug fixes.

Challenges:
• I had to manage a team of seven while still meeting project deadlines.
• Team was forced to working remotely instead of the usual peer to peer workflow.
• Worked very closely with the design team to sync the game functionality with the design aspect.
• Both design and programming had to be iterated many times over.

May 2020 - September 2020

Check it out on Itch.io

Release Trailer

Game Design Document

This is the original game design document that was created throughout the development process. This is a great document for seeing the overall ideas of the entire team over the 20 week development process. This document contains concept art, prototyping, ideas, cut features, post mortem and the final product.

View Document

Procedural Dungeon Generation

One of the core features we decided to have for this game was to create a procedural dungeon. We wanted the player to get a new experience every time they entered. Each room would have multiple variations and be placed randomly around in any order. The dungeon also had to be networked so that every client was in the same exact dungeon.

How does it work?
I solely developed this mechanic using my own custom design which I called the room builder. After thorough planning I decided to build the rooms using a tree diagram. One room would act as the root which would eventually branch off into other rooms. This entire process is repeated over and over using recursion to create the entire layout of the dungeon. Each room stores a set of build points which determine where the next room should be placed and the direction it should be facing. The room builder also has an interface for selecting the minimum and maximum rooms that need to be created. If the room builder fails to meet its required specs the tree is wiped and another room tree is created. At the end of the building process every dead end is filled in with a wall and each room is then activated, spawning all of the interactable elements like the monsters and collectables.
Overall Impact:This was a core feature for our game and had a huge impact on it. It would have taken the design team weeks to hand paint different room layouts and stick them together. This tool saved the entire team a lot of time due to the fact that it could create an unlimited amount of rooms.

Challenges and how I overcame them:
I have learned quite a lot about taking on such a tough challenge and explored new regions in procedural generation. The largest problem that I would run into was detecting if a room was colliding with another room. This was a common issue during the alpha stage of this tool. The main issue was that the rooms would not correctly give feedback on when they would be colliding with anther room. After diving deeply into this problem I found that Unity uses AABB colliders under the hood and for some reason their position was not being updated correctly. After getting the reference of the colliders and manually updating the position of the AABB colliders the collision detection started working again and I was able to finish the tool.

Below I added screenshots of the tool and my thinking process while it was in development.