MODERN MEDICINE

MODERN MEDICINE logo PRIZM GAMES logo

Modern Medicine is a procedurally generated, cross-platform multiplayer horror adventure with a branching storyline, released on Roblox in 2024 and supported through 2025. It has reached over 1,200,000 play sessions.

As the sole programmer and founder, I designed and implemented all core technical systems, including procedural generation, AI-driven enemies, player systems, multiplayer networking, in-game economy, and backend infrastructure. I also built custom tools to support the team, enabling efficient creation of procedural content and streamlining workflows. Leveraging open-source libraries where appropriate, I helped craft a game that delivers a novel, immersive, and replayable experience in collaboration with our level designer and artist.

Over a two-year development cycle, I led our remote team of three through weekly meetings to align goals, refine designs, and maintain steady progress. This flagship project showcases my expertise in Luau, Roblox Studio, AI systems, procedural generation, designer tooling, and remote team leadership, while demonstrating my ability to deliver polished, innovative gameplay in a collaborative, creative environment.

PLAY NOW CODE SAMPLE


Trailer


At a Glance:

Each section gives a brief overview its topic. There is a button that links to a page with more details about the given topic after most sections.


Gameplay Loop

Modern Medicine takes place in an abandoned hospital overrun by Dr. Thompson’s failed experiments. The game begins in the ICU, where players must stabilize a patient under pressure. A sudden power outage forces a critical decision: restore power in the Maintenance room or retrieve key research notes from Dr. Thompson’s office. Players navigate procedurally generated hallways to reach their chosen objective while avoiding wandering monsters, collecting essential items, and solving a unique puzzle to complete the cycle.

After completing the first two cycles, the hospital regenerates seamlessly, creating a fresh procedural layout for subsequent objectives. Players then advance to the experimentation wing, facing escalating challenges and uncovering the hospital’s dark secrets. The gameplay culminates in a final, high-intensity sequence where players sprint to the Experimentation Laboratory, pursued by nearly every monster encountered throughout the game.

A room with illuminated blue tiles that sequentially turn off to form a path.

Back to top


AI

AI is the backbone of Modern Medicine’s gameplay loop. Players encounter a variety of monsters with escalating difficulty as they navigate procedurally generated hallways and puzzle rooms. The AI combines A* pathfinding, behavior trees, and raycasting for vision to create responsive, dynamic behaviors that adapt to player actions.

A custom region system tracks player location to control AI behaviors and game effects, preventing players from exploiting mechanics by hiding. For example: if a player hides in a room, the AI will wander away instead of camping the door, and if a player lingers too long, a hunter spawns to apply pressure and keep gameplay tense. These systems ensure encounters remain challenging and emergent throughout the game.

Below is a gallery showing short demos of each primary monster in the game. Click on a GIF to enlarge and observe the AI in action.

AI AGENT DESIGN IN DEPTH

Back to top


Procedural Generation

Modern Medicine builds on procedural world generation concepts popularized by games like LSPLASH’s Doors, which link prefabricated rooms linearly. In contrast, Modern Medicine expands the concept, creating a non-linear, sprawling environment where rooms are connected by randomly generated hallways and can have multiple entrances and exits. This design produces a more maze-like, immersive, and replayable experience for players.

The procedural generation system uses Perlin Worm Tunneling to carve authentic, winding hallways, while individual rooms are generated recursively by combining modular elements and sections. Each room also generates its own unique biome, influencing the hallways that connect to its doorways. This approach ensures that every playthrough feels distinct, visually varied, and dynamically challenging.

An aerial view of a bunch of rooms connected by snaking hallways
A top-down view of a procedurally generated map. The different colors above the hallways denote biomes.
A large hallway with tile checkered floor, flickering lights, and missing drop down ceiling tiles.
A view of the Operating Room hallway biome.
PROCEDURAL GENERATION IN DEPTH

Back to top


GUI & PLAYER SYSTEMS

CLIPBOARD

To create the most immersive experience possible, gui elements which would traditionally clutter the screen are relocated to the player’s clipboard item. The toolbar, stamina indicator, and health bar are the gui elements which are usually visible and still displayed on the player’s screen. Story dialogue and new objective notifications are also occasionally displayed.

A clipboard
HUD elements displayed on the player’s clipboard.
The player ruuning through hallways, using items.
The player sprinting, healing, and using the toolbar.
Text being typed onto the screen.
The dialogue and objective gui (playback is 1.5x the recorded speed).
LOBBY

The lobby has several gui systems. The main shop gui is the most complex. It allows the player to view and purchase items with both Robux (Roblox’s currency) and RVU’s (custom premium currency). All guis in the game also feature cross-platform support. They can be navigated on any device supported by Roblox.

A gui shop.
GUI & PLAYER SYSTEMS IN DEPTH

Back to top


Infrastructure & Tools

Open Source Libraries

Several open source libraries and plugins helped make MODERN MEDICINE possible:

  • Knit simplifies communication across the client-server boundary and provides structure to the codebase.
  • Rojo improves my workflow.
  • RbxUtil is a powerful library of utility modules.
  • ProfileService makes working with data stores easier.
  • BTreesV5 is a gui-based behavior tree builder.
The Knit logo
Tools

There are many custom built tools that help with every part of the project, from level design to simplifying the code base

  • The region system is generated alongside the map at runtime. It is used for everything imaginable, from controlling the sounds the player hears to monster targeting systems and progression tracking.
  • The linear interpolation module is more advanced and offers more flexibility than Roblox’s Tween library. Some unique features are the ability to tween an object to a moving target, and to adjust tween speed based on the distance of an independent, moving object.
  • The level building system streamlines the construction of new hallway and room assets. It was designed and redesigned to give the level designer the most powerful tool possible without sacrificing on simplicity and ease of use.
  • The generic door system simplifies the construction of door assets and unifies door behavior throughout the game. It was designed with the level designer in mind, and provides a quick and easy solution to constructing new doors without needing to program anything.
  • The sound effect part system was paramount in designing the game’s immersive, atmospheric atmosphere. We used this system to define when, where, how, and which sounds play in the procedurally generated world.
  • The light flickering system is based off Quake’s light flickering system. It allows light patterns to be defined and executed from just a string of characters.
A player collecting an oxygen container.
The oxygen tank is pulled towards the player that collected it as the player strafes to the side.
A single wall with a unique design that features a doorway
A doorway for the experimentation biome. This is used to connect the hallways to various the various rooms.
Lights flickering in the medicine floor hallways.
Lights flickering in the hallway.
INFRASTRUCTURE & TOOLS IN DEPTH

Back to top


Backend

Data

The majority of the backend system uses ProfileService to streamline player data storage. ProfileService is used to confirm and verify transactions, store player statistics (like wins), and keep track of player items between runs (like currency and skins).

A green shield icon.
The RVU boost is a developer product which increases the amount of premium currency the player can earn in a run.

The backend system also utilizes ordered data stores outside of ProfileService to keep track of top-performers in the game and display them in the lobby. A basic data store is also used to keep track of players who have bought the “Name in the Game” gamepass, which randomly selects player avatars from a pool to display in the game (similar to the old Prison Architect Name in the Game DLC).

A leaderboard showing the top 20 players with the most coins collected.
A picture of the coins leaderboard which is located in the lobby.
Analytics

After the launch of the game, development was data-driven. Throughout the game, there are analytics hooks which record player progress throughout funnels in the game. Each week post-launch, we analyzed this data to identify drop of points within our gameplay loop and focused on improving those sections of the game. By doing this, we were able to improve every aspect of the game and massively improve our player onboarding experience.

A leaderboard showing the top 20 players with the most coins collected.
Tutorial funnel analytics for September 2024.
BACKEND IN DEPTH

Back to top