Inspiration

Ricochet is inspired by your classic top-down shooter games with a twist—the bullets ricochet off walls and obstacles! We wanted to create an exciting 1v1 shooter that combines fast-paced action with strategic use of the environment. The goal was to make a game that’s easy to pick up but offers endless possibilities for skilled gameplay.

What it does

In Ricochet, players face off in a 1v1 top-down arena. Player's start at opposite ends of arena and try to hit each other with their laser gun. BUT WATCH OUT! the laser bullets will also bounce off walls and other objects. The aim is to outmaneuver and outsmart your opponent, using ricocheted bullets and strategic movement.

Features of this game include

  • randomly spawned power-ups that enhances your speed
  • obstacles that can shield you and block bullets
  • a timer that adds points for every 10 seconds you stay alive in the game
  • respawn after death for continued rounds
  • day to night map

Players score points by hitting the other player with a bullet or by outlasting them, and the first player to 100 points wins!

How we built it

To program Ricochet we used Lua and Roblox Studio Libraries. Lua is a lightweight, high-performance scripting language designed for embedding in applications, making it ideal for game development due to its flexibility, speed, and ease of integration with game engines like Roblox Studio.

Accomplishments that we're proud of

We’re proud of creating a creative game that can be deployed and played using Lua. The ricochet mechanic, is fun and adds a dynamic layer to the combat that forces players to think about their surroundings. We’re also proud of the power-up system, particularly the visual feedback (glow effect) that makes the speed boost feel exciting. In addition the overall game creates a fun competitive atmosphere that we’re really happy with.

Challenges we ran into

  1. Bullet collision detection: Ensuring accurate ricochet mechanics and bullet-object interactions to account for precise angles and speeds.

  2. Network synchronization: Handling multiplayer elements in Roblox Studio, such as syncing player positions, actions, and bullet trajectories in real-time

  3. Performance: Maintaining smooth gameplay while managing multiple physics interactions (bullets, characters, ricochets) on the server and client side

What we learned

In addition to familiarizing ourselves with Lua as a language, we learnt valuable lessons:

  1. Designing UI elements that are functional and keep the user in mind to enhance gameplay. 2.Problem solving and debugging: working through bugs and refining mechanics in the game
  2. Collaboration and communication: communication is key

What's next for Ricochet

Ricochet can easily be turned into a multiplayer game which would add to the intensity and enjoyment of the game with multiple enemies and more bullets to ricochet. Other features can also be implemented such as power up shields, leaderboards with multiplayer, and more game maps.

Built With

  • chatgpt
  • lua
  • robloxstudio
Share this project:

Updates