Submitted to the entertainment track primarily

Inspiration

We were inspired to create a movement based dueling game because we are big fans of games such as overwatch, apex legends, and titanfall 2. With that that being said, we created Duelinator with a strong emphasis on movement with mechanics that resemble our favorite games.

What it does

Players will join Duelinator and be put into a free for all session in a unique map that is tailored towards the movement mechanics. Players start out with a pistol, katana, and a grappling ability. The katana allows players to dash in the direction they're looking in, and the katana also has a parry ability which will block the user from an incoming attack. The pistol does 25 base damage taking a total of 4 body hits to eliminate an opponent. Hits that land on the head will instantly eliminate the opponent.

How we built it

We built this using Roblox Studio which uses the Luau scripting language. We utilized local and server scripts to separate client-side actions from server-side game logic. We relied on RemoteEvents and BindableEvents to manage communications between systems like the combat, movement, and abilities. We created viewmodels for a more immersive first person experience, and used animations to make actions feel more dynamic. We designed the map and mechanics together so the grappling hook, katana movement, and pistol combat all work smoothly in a fast-paced environment

Challenges we ran into

  • Properly displaying the viewmodels onto player's client was very difficult as we had to line the models up perfectly.
  • Showing a different animation to other players (because the viemodels are invisible to other players) was very difficult because we had to make separate animations.
  • Learning all the Vector math for the grappling system was very difficult to figure out and get working.
  • Creating the hit registration for the guns did not work properly at first due to a knowledge gap in knowing what raycasting is.
  • Retaining aerial velocity after grappling into the air was almost non-existent, this was solved by applying an extra force after the player detaches from the grapple.
  • Synching up UI information alongside player input was difficult as there were certain conditions we had that did not properly transfer over easily.

Accomplishments that we're proud of

  • Learning a vast majority of the Roblox Studio Game Engine within 24 hours and pushing out a playable game was definitely a commendable feat.
  • The movement is snappy and fast-paced, exactly how we wanted it to be.
  • The hit sounds are satisfying and feel rewarding after every elimination and parrying.
  • The screen UI syncs up great with the ability cooldowns and looks great as well.

What we learned

  • Learned about Bindable and Remote Events, and how we can utilize them to communicate between different scripts.
  • Learned about how we can use viewmodels to create an Illusion of a first person experience, and displaying a different animation to other players since other players cannot see the viewmodel.
  • Learned how to create simple animations with Roblox's Animation Editor and imported them to our game.
  • Learned how we can use raycasting to detect any object/model in front of the player.
  • Learned how we can create Screen UI's to display useful information during the game.
  • Learned about the basic implementation required for movement such as wall bounces, dashes, and a rudimentary grapple system.
  • When modeling the viewmodels, we learned that we should not use weldconstraints to weld the parts together because we cannot animate it. Instead we had to use Motor6ds.

What's next for Duelinator

  • Polishing the animations so they're not completely bare bones.
  • Adding more immersive effects when performing abilities.
  • Adding a bigger variety of weapons to use.
  • Adding a best of 5 game mode where you can versus one other player.
  • Creating new maps with more unique textures and layout.

Built With

  • luau
  • roblox
  • robloxstudio
Share this project:

Updates