top of page
Search

User Interface (UI) and Shop design in Mega Dimension Ripper 9000

  • jacquesj9871
  • May 9, 2025
  • 2 min read

How we used layout and randomization to make an enjoyable upgrade shop and general UI.  


Upgrades are an essential element of many “roguelike” games.  Over the course of Mega Dimension Ripper 9000’s development we considered different options for its upgrade system.  First, we thought about having a currency that would be gained based on how well you did throughout the level. You could then spend that currency to buy upgrades with varying prices depending on how powerful the upgrade was. However, we were concerned that one player would be able to get a good upgrade, allowing them to dominate the game and prevent other players from gathering much money to get their own upgrades.  


Next, we pondered having a shop with four upgrades shared by all players where each upgrade could only be chosen by one player. However, we rejected this concept as too competitive since Mega Dimension Ripper 9000 is meant to be a cooperative game.  


The design we all agreed on was to have a different shop for each player with four randomized upgrades in each, allowing each player to make their own builds without other players interfering. One issue with this system is that one player could get a selection of good upgrades while another has ones that are not as appealing. We decided that this was an acceptable compromise. To implement this system, we used a data table containing all the upgrades in our game.  To populate each shop, we randomly choose four different upgrade IDs. We first check to make sure there are no duplicate upgrades and then retrieve the upgrade from the data table at the row matching the upgrade ID.  




Our implementation of the shop’s user interface features a modular design using an Unreal Engine widget that handles everything for a single player, so we don’t have to duplicate the same code for every player. This design was also used inside of our player select and main gameplay UI. 




In conclusion, we used modular widgets, data tables, and other features of Unreal Engine to implement a dynamic upgrade shop.  Through this system, our upgrades break up the chaotic nature of the gameplay, making players’ choices matter and impacting how they play the game. 

-Cody Jantzen

 
 
 

Comments


bottom of page