Inspiration

Our inspiration comes from party video games like WarioWare, Super Mario Party, and Overcooked, where the focus is on fast-paced multiplayer mayhem and hilarious moments that keep everyone entertained. We wanted to capture the essence of these titles by infusing Manic Monday with the same spirit of frantic fun.

What it does

With Manic Monday, we aimed to deliver a fun and wacky experience that is different from any other Roblox game. Players get to race against the clock and each other in a series of challenges that capture the life of a typical weekday. From navigating a cluttered house to find keys, to traversing a maze to get the groceries you want, each mini-game offers its own unique twist on everyday activities, ensuring non-stop fun for players of all skill levels.

Key Kickoff: You're late to work! As you rush out the door, you realize your keys are missing! Feel the panic as you scramble to find the right colored key before you're late for work.

Freeway Frenzy: There’s traffic on the freeway! Zoom by other cars and trucks to get to your destination in time. Will you make it there safely before getting pushed out by other vehicles?

Market Mayhem: You need to eat dinner tonight! Find the groceries you need before the time runs out. The supermarket is a maze of aisles and shelves, so make sure you take the right turns to cut your time!

Dish Duty: Time to clean up! You’ll bend physics and battle distractions as you tackle a mountain of dirty dishes. The lights will start flickering, and plates will be scattered everywhere.

How we built it

The project was split into five distinct parts to be split amongst the members of our group. We had four separate minigames and the task of splicing each minigame together.

Key Kickoff: The software had to control the client-side and server-side conflicts of picking up the key. The key spawn locations are randomized for the server while the individual color key needed is unique for each player. The task of ensuring the door only opens client-side and with the correct key was implemented using a RemoteEvent that triggers when the key collides with the door. We spent some time designing a unique and well-thought-out design for the house the minigame would occur in.

Market Mayhem: The items for each player were handled by a global hashmap to store the user ID as the key and the client-side items as the value. The items scattered around the grocery store remove items off the players’ list by updating the client-side GUI and global hashmap.

Freeway Frenzy: This minigame features a top-down driving simulator, changing the camera perspective through the script to follow the cars rather than the player. This camera change posed challenges such as the input affecting both the cars and players unintentionally. These were solved in clever ways such as boxing away the players’ actual characters to ensure the unintended movements wouldn’t affect the game.

Dish Duty: The minigame uses a ray cast to pick up the dishes, detecting where the player is looking and clicking to simulate holding a plate. Additionally, this minigame allows the player to toggle the faucet and clean the dirty dishes, removing the “dirty” decal. It also counts the number of successfully cleaned dishes and updates the client-side GUI.

The final task was to incorporate every minigame together to make one seamless, playable game. This was done by instantiating a new instance of each minigame and then removing it when the game was over. In between games, players are sent to the lobby and each minigame has functions to teleport players in. It resets player values that were changed such as movement speed and awards players their deserved points for winning/losing.

Challenges we ran into (and how we solved them)

During this Game Jam, one of our main hurdles as a team was finding an idea that ticked all the boxes: a unique take on the theme, fun to play, and easy to execute as a cohesive team. After hours of brainstorming, we decided to create multiple fast-paced mini-games that would come together as one game. We divided into subgroups, each responsible for a different minigame, making the workload more manageable.

Key Kickoff: We encountered challenges when attempting to randomize the spawn locations for each key while ensuring that no two keys spawned in the same location. To address this, we implemented a solution where we manually designated ten random spawn locations and randomized their order to ensure equal probability in key distribution. Moreover, we faced difficulties in assigning random key colors to each client and ensuring that their key color corresponded to the door they needed to unlock. We solved this by creating multiple key spawn locations corresponding to invisible objects and using a remote event to randomize the player’s assigned key color.

Freeway Frenzy: One challenge we tackled was uncertainty about the duration of the racing game. Manually laying out road tiles would've been a tedious task. So, we devised an infinite generator to create the environment as the cars drive dynamically. Another challenge we faced was replicating. To overcome this, we used the "UnreliableRemoteEvent" object which sent data faster than regular events. Because there are no security checks, it’s good for data that isn’t critical.

Market Mayhem: An issue we faced was with creating unique individual player shopping lists. The solution we came up with was writing a module script that held a global hashmap of the data for all the players. Another issue we had was finding good assets that fit within the game. We ended up having to tear apart a lot of these premade assets included in Roblox Studio and put them together to make it look how we wanted.

Dish Duty: We were confused on how to simulate the collision between sink water and plates, a crucial aspect for determining if a dish had been washed. After some research, we devised a solution involving an invisible "block" moving within our client-side ReplicatedStorage. When the plate touches this block triggered by the faucet lever, a collision is detected. Another obstacle was restricting players to first person. We developed a custom script that automatically adjusts the player's camera distance. We made the game fun by incorporating distractions like flickering lights, quirky physics, and scattering dishes around the room.

Accomplishments that we're proud of

Overall: Many of us had little to no game development experience. After 24 hours of exhausting work, we were able to learn how to 3D model in Roblox Studio, code in Luau, and work together as a team to create an amazing project!

Specifics:

  • Scripts for seamless transitions and animations between minigames, including player attribute resets and individual spawn assignments.
  • Innovative problem-solving, such as button clicking behind invisible blocks and dynamic environment generation.
  • Although Roblox gave us a lot of options to choose from, we wanted the flexibility of creating our assets. Enhancing our creativity, these handcrafted assets alone took us a long time to 3D model.
  • Creative design elements, such as setting the lobby in a "Big Ben" style building and connecting it to the theme of "Time is running out"
  • Group determination and teamwork, with everyone committed to completing the project within a tight timeframe, fueled by determination and plenty of Yerba Mate!

What we learned

Learning how to 3D model in Roblox Studio was one of the technical skills that we learned. After watching countless YouTube tutorials and using online resources, we learned the basics of anchoring, welding, union, and more. Since all of us used different resources and learned different things, we were eventually able to teach each other.

In addition to 3D Modeling, we learned how to code in Luau. Since the people on our team had various degrees of programming knowledge, we were able to bridge this gap by having the more experienced programmers teach the less experienced ones. We were all able to take away some fundamentals of programming in Roblox, such as client-side versus server-side scripting, event handling, and creating and using functions.

Besides from technical skills, we also learned valuable collaborative problem-solving skills. We leveraged each other's strengths to tackle challenges. When we encountered an issue, we helped each other debug by collaboratively troubleshooting until we found a solution.

What's next for Manic Monday

We feel like Manic Monday has the potential to become a viral sensation among the Roblox community. It has fast-paced gameplay and relatable scenarios that everyone would love. Our next steps involve building upon this momentum. We plan on adding more elements to our game such as power-ups and boosts, expanded multiplayer modes that could involve teamwork, and a single-player story mode.

Built With

  • luau
  • roblox
Share this project:

Updates