Haven
Educational Live-Service MMO
Gameplay & Systems Programmer
Jun 2024 – Aug 2024
Tools Used:
HTML/CSS/JS, Node.js, Strapi, Grouper, GitHub
Background: This is a game developed by 20 students and faculty at the University of Chicago that ran live for a month to be played by new students during orientation.
THE PROJECT
Haven is a multimedia role-playing game for first-year students that is designed for orientation to the University of Chicago, and forming connections with other students before arrival on campus. The game offers pathways focused on storytelling, puzzle solving, and social interaction. Additionally, it is designed to help students develop skills in free expression and engagement with diverse perspectives.
– official Haven promotional blurb distributed by the University of Chicago
Over the summer after my second year of college, I had the opportunity to work as a programmer on Haven, a new web-based online multiplayer game developed internally at the University of Chicago to orient new students and acquaint them with the University’s principle of free expression. The game was developed over the course of three months, running live online with over 1,000 players (~60% of the incoming class) during the third month with a few major content updates and many hotfixes being pushed throughout August. Haven features a text-based narrative of over 130,000 words, 47 puzzles and minigames split between singleplayer and multiplayer, live chats based on in-game location, an achievement system of collecting stickers, and many more features. The platform of Haven was built from the ground up to fit the project’s needs and includes a REST API, user database, sockets, and many other robust technical systems.
Haven uses a Disco Elysium-like narrative window that appears within each location for interacting with the story.
Players of Haven could chat with one another in the same room to collaborate on puzzles or discuss topics brought forth in the narrative. The developers roleplayed as TAs and professors at Haven Academy when interacting with players!
THE PROCESS
Early in the summer, my role primarily involved backend setup and programming—prototyping a schematic for our user database, setting up our authentication system, writing API endpoints, and so forth. However, as Haven progressed, my duties shifted to include more gameplay implementation for puzzles (frontend + backend programming), code reviewing, creating tooling, managing access, and more. Below I have listed high-level descriptions of my contributions to Haven, divided by category. Please feel free to contact me for further details about any of these contributions!
Backend + Systems Programming
Designed and implemented Haven user database with Strapi. Edited schematics as new needs arose and monitored live version of database to correct errors with players’ data.
Integrated UChicago’s Okta single sign-on, allowing users to register for Haven with their student credentials.
Developed endpoints for Haven’s REST API to update and manage user progress, as well as requests to third-party APIs such as Discord and Instagram for users to connect their social media profiles.
Gameplay Programming
Programmed game logic and visuals for a variety of puzzles and minigames that appear throughout the game, including some that are multiplayer/synchronous.
Developed functionality for reading and writing player data depending on their interactions with puzzles.
Implemented a pathfinding algorithm for generating random maps in the Mouse Maze Lab puzzle.
Tooling, Documentation, and Leadership
Created tools such as a level editor for one puzzle and a user stats dashboard for the entire team to monitor players’ progress and engagement
Code reviewed, edited, and merged pull requests from both student and faculty team members
Onboarded puzzle designers to standard programming workflows in the second half of the project timeline.
Wrote and edited documentation on workflows for GitHub, Grouper, and our REST API.
Provided general troubleshooting and assistance to the entire team.
Admin + Access Management
Used SSH/SFTP to deploy updates and edit data on live server hosting the game (was the only student developer on the team with SSH/SFTP access to server)
Managed list of authorized Okta users using Grouper (was the only member of the entire team with admin access to the authorization group)
Contributed to establishing moderation guidelines of in-game chat for preventing harassment and spam.
I created an admin dashboard for Haven displaying information from our user database about how many people were playing the game and what progress they were making.
Players could add one another as friends to share contact information and see when each other are online in-game (contact information in this screenshot blurred for privacy)
I implemented a pathfinding algorithm for the Mouse Maze Lab, a rotation-based minigame on a grid, to dynamically determine whether randomly generated maps had a solution.
One puzzle I programmed was inspired by The New York Times’ “Connections” game, but players had to find 16 key words throughout the narrative that would be used to solve the puzzle.
THE RESULT
Judging by the number of incoming students Haven reached and the impact it had on the orientation process, Haven was even more successful than anyone on the team imagined. There are plans to re-run Haven for a wider University audience, as well as live releases in future years’ orientations. Personally, working on Haven allowed me to grow my skillset immensely, both as a programmer and also as a team member and leader. Haven is the largest project I have ever worked on, and the production experience I earned as a developer of it has proven invaluable, especially working on the game during the live release. I am incredibly proud of what I and the entire Haven team created, and I am excited that it will hopefully be part of the orientation experience at the University of Chicago for years to come.
There is not currently a static version of Haven open to the public for me to provide a link to, but this may change in the future, as the game is being submitted for some awards. I will update this page if anything changes, but for now, please feel free to reach out for more information!
Each island of Haven featured its own visual and thematic style, representing the four disciplines of humanities, social sciences, natural sciences, and arts.