Portfolio
ORIGINAL PROJECTREAL-TIME · MULTIPLAYER / GAMEPLAYFIVEM · 2026
RHYTHM GAME / MULTIPLAYER

NN Guitar
Hero.

I developed a five-lane multiplayer rhythm minigame with a custom chart editor, persistent leaderboard and audio synchronized between players. The project combines a React interface, Lua logic, SQL persistence and state synchronization.

FiveMLuaMySQLReactTypeScript
Open demo

Problem, objective
and implementation.

01 / Problem

Local precision in a shared experience

Gameplay requires immediate feedback for the musician, while the audience needs to hear the same performance at the correct time and position.

02 / Objective

Gameplay, content and multiplayer

Deliver a five-lane minigame with controller support, a custom editor, catalog, leaderboard and shared performances.

03 / My contribution

From editor to server

I developed gameplay and the editor in React/TypeScript, Lua client/server integration, audio synchronization and leaderboard persistence.

Key features

What the system delivers.

  • Five-lane gameplay
  • Taps, holds and chords
  • Keyboard and gamepad
  • Editor with undo/redo
  • Persistent leaderboard
  • Shared proximity audio
Technical decisions

How risks were addressed.

FrontendOne model for different inputs

Keyboard and controller feed the same note judgment, combo and visual feedback flow.

Server-sideValidated sessions and scores

The server controls start and end, validates musician, entity and position, and accepts scores only under the resource’s rules.

ChallengeDifferent clocks, one performance

Gameplay uses the musician’s local player, while the audience starts audio at the elapsed time calculated by the server.

From song selection
to the final note.

The demo brings together gameplay, the song catalog and the editor used to create and calibrate charts.

Project preview
Lanes, notes, combo and multiplier

The demo shows the original interface in Brazilian Portuguese.

Local precision,
shared state.

The project separates immediate feedback, content creation, multiplayer synchronization and server authority. Select a layer to explore the details.

01 / Rhythm and visual feedback

Gameplay / React

The highway processes five lanes, taps, holds and chords through a shared keyboard and controller input model. Scoring starts at 50 points per hit, deducts 8 per miss and applies combo and multiplier.

  • Scoring, hold and input functions covered by isolated tests
  • Keyboard and gamepad preferences persisted by the interface
  • Visual feedback derived from each note’s judgment
Lanes
5
Scoring
50 base / −8 miss
Input
Keyboard + gamepad
ReactTypeScriptViteVitest