Game Programmer

Spellbound Spire

Spellbound Spire is an immersive VR Journey taking place in a magical 12th-century Islamic influenced al-Andalus tower. Within Spellbound Spire you use your magical gloves to solve puzzles to traverse the tower. Throughout the tower, corruption has spread which will disable your gloves and destroy objects. Your goal is to reach the top of the tower to remove the corruption and return the peace.

The game uses room-scale movement and non-euclidian level design and gameplay. We are a team of 20 students developing the game over the course of a year, we have taken on the challenge to innovate within VR using room-scale movement and non-euclidian design and gameplay while creating a high-quality game.

Duration:

February 2020 - June 2020

Team Size:

14 Designers, 6 Programmers, 5 Artists, and 1 Producer

Roles:

Tool Programmer · Gameplay Programmer · QA

Engine:

Platforms:

Technologies:

Enhancing and providing Unity Editor Tools

To help designers and other team members with the production of this game I made myself responsible for improving the content creation workflow based on bottlenecks reported by team members.

For performance I helped with providing a quick occlusion zone placement, the tool ensured configurations were correct and within performance borders. Our project also collects data from analytics, I provided an automatic upload routine using web requests and Google Drive V3 API.

As content creation speed was often low due to multiple problems I provided a tool that highlights and lists portal connections. And to take the workload of Visual Artists I provided a simple material UV scaling functionality.

Build pipeline and Quality Assurance

When I joined there was no continuous build process setup, so I took the responsibility to establish this. By using Jenkins I provided three automatic build configurations, Each build was pushed towards our Steam project using SteamWorks.

Any process failing, such as building asset validation will trigger a Discord webhook with provided details. The same system would be used whenever any error appeared during a release build, allowing the team to gather problems post-release too.

Our team struggled with assets/prefabs and scene configurations. By implementing asset tests there was a method to test for designers/visual artists to see whether their scenes met the requirements. Automatic testing is also performed as validation.

Assisting the team where needed

In between making new tooling functionality, I am always wanting to help others where needed to move the project forward. This can range from assisting with writing gameplay functionality, resolve asset configuration errors, clean up scenes and improve the builds.

For the game, I helped to implement the vision fading to black when moving the head inside walls/objects, helped level designers by having VR hand functionality be available in a non-VR setup, and removing unnecessary dependencies.

As a programmer I participated in meetings, peer programming, reviewing to-be-submitted code, and helped others with debugging. Help the feature team as a scrum master and held standups, retrospectives, and communication with leads.

Keep the quality of builds high

As the person being responsible for the build pipeline process and quality assurance I felt a lot of pressure making sure the build quality was high. This was made difficult as the moment I joined the team, there was no build process or quality assurance set by the team or actively enforced.

Prefabs were not actively used and models were directly taken from the assets folder, creating many unique gameplay bugs due to everyone manually applying different components. To solve this problem a big cleanup was required and team members were given instructions by others and me to keep the scenes clean.

Since this was not directly enforced from the beginning of the project, a lot of time was lost in re-configuring/remaking scenes, sometimes from the ground up.

Running behind on Tools/QA

When I joined the team there was no continuous build process or anything quality assurance in place to help the team develop the game faster. Key features such as error reporting, broken builds, and automatic asset/unit testing were also lacking.

As such many features had to be implemented in a short span of eight weeks, leaving little room for setting up robust systems. I prioritized getting the continuous build process set up with Jenkins and Steamworks and provide many workflow tools to speed up the development.

Many post-release analytic features such as reporting errors and crashes were developed to make sure the release phase and gathering relevant data from users will go smoothly to fix problems and provide new content.

Contact me!

Website created by Jesse Roffel.