Back to projects

Personal creative-coding project

Blade Rhythm

A timing-based browser game connecting player input, game state, visible feedback and increasing difficulty in vanilla JavaScript.

Blade Rhythm gameplay with player, enemy and timing zone
The playable arena combines timing feedback, health states, keyboard input and increasing difficulty.

Problem

Create a small game where timing, state changes and controls form one understandable loop.

Target users

People familiar with casual browser games and keyboard or button controls.

My contribution

Game concept, frontend, JavaScript logic, interface states and responsive adjustments.

Technologies

HTML, CSS, JavaScript, DOM, keyboard input

01

Project concept

The project began as a focused JavaScript exercise: an enemy moves, the player reacts, and the game updates health, combo, difficulty and visible feedback.

Clear goal

React when the enemy reaches the valid timing zone.

Deliberate scope

A small playable loop rather than a full game or custom engine.

02

Interaction and visual direction

Visible timing zones, health values and direct feedback help the player understand each result while the fantasy-inspired arena gives the small prototype a distinct character.

01

Enemy movement

A timer moves the enemy and creates the timing window.

02

Player input

The attack button or Space checks the current position.

03

State update

Health, combo and difficulty change from the result.

04

Visible feedback

The interface reports the outcome before the next cycle.

03

Implementation and challenges

Vanilla JavaScript keeps the game loop explainable. The hardest part was keeping timers, restart behaviour, player state and responsive controls in sync.

Timer lifecycle

Restart clears previous timers before a fresh loop begins.

Two control modes

Buttons and keyboard input use the same underlying actions.

Difficulty state

Pressure increases without changing the core rules.

Responsive arena

Status values and controls remain usable on smaller screens.

04

Testing and reflection

Automated checks cover restart timers, keyboard controls, enemy attacks and reachable timing zones. External playtesting is still a planned next step.

Status: Planned โ€” external playtesting has not yet been completed.

Planned test details

Objective and participants

Test with 3โ€“5 first-time players whether they understand the goal, controls and difficulty changes without moderator instruction.

Tasks

  1. Explain the game goal.
  2. Attack successfully and use healing.
  3. Restart the game.
  4. Explain the difficulty change.

Observe and measure

Record completion, critical errors, assistance, hesitation, wrong turns and comments about timing and controls.

Pending evidence

Findings and resulting changes remain pending until external playtests are completed.

What worked well

The project connects interaction logic and visible state instead of only styling a static interface.

Biggest challenge

Keeping movement, attacks, restart and feedback from creating duplicate state.

What I would improve

Run first-time playtests and refine any controls or timing feedback that cause hesitation.

Next project

PlayNext

AI decision product ยท React and TypeScript