Stickman moshing Website Development

Maret 07, 2026

Metal Concert Simulator: Simulasi Moshing dan Wall of Death dengan HTML Canvas dan JavaScript

Simulasi visual berbasis web dengan teknologi HTML5 Canvas dan JavaScript. Salah satu implementasi dengan nama Metal Concert Simulator – Wall of Death Pro, sebuah simulasi interaktif yang menampilkan kerumunan penonton yaitu stikman konser metal dengan button moshing, circle pit, hingga wall of death yang berfungsi untuk memberikan intruksi.

Artikel ini akan membahas bagaimana kode tersebut bekerja, teknologi yang digunakan, serta konsep pemrograman di balik simulasi crowd physics.

baca juga artikel lainnya :

Apa Itu Metal Concert Simulator?



Metal Concert Simulator adalah aplikasi berbasis browser dengan tema suasana konser metal secara visual. Dalam simulasi ini terdapat:

  • Band di atas panggung

  • Ratusan penonton

  • Gerakan moshing

  • Wall of death dengan collision effect

  • Sistem level dan mode interaktif

Semua elemen divisualisasikan menggunakan HTML5 Canvas dan JavaScript.

Teknologi yang Digunakan

Simulasi ini dibangun menggunakan teknologi web standar:

1. HTML5 Canvas

Canvas digunakan sebagai media rendering untuk menggambar:

  • Karakter penonton

  • Stage dan background

Canvas memberikan kontrol penuh terhadap pixel dan animasi.

Kode inisialisasi canvas:

const canvas = document.getElementById('canvas'); const ctx = canvas.getContext('2d');

2. JavaScript Animation Loop

Animasi berjalan menggunakan fungsi:

requestAnimationFrame(animate);

Fungsi ini memastikan animasi berjalan smooth dengan refresh rate optimal.

Kode Loop untuk gerakan stikman:

function animate() { ctx.fillRect(0, 0, width, height); crowd.forEach(p => { p.update(); p.draw(); }); requestAnimationFrame(animate); }

3. Object Person

Setiap penonton direpresentasikan sebagai object Person:

class Person { constructor(x, y, type) { this.x = x; this.y = y; this.vx = 0; this.vy = 0; } }

Class ini memiliki method:

  • draw() → menggambar karakter

  • update() → mengupdate posisi

  • say() → menampilkan dialog

Sistem Crowd Physics

Simulasi menggunakan konsep physics sederhana:

Velocity (kecepatan)

this.vx += force; this.vy += force;

Friction

this.vx *= 0.85; this.vy *= 0.85;

Collision avoidance

if (distSq < 144) { this.vx -= dx * force; this.vy -= dy * force; }

Ini membuat crowd tidak saling bertumpuk.

Mode Simulasi

Simulator memiliki beberapa mode utama:

1. Idle Mode

Penonton berdiri santai.

mode = "idle";

Digunakan saat konser baru dimulai atu button chill ditekan .



2. Circle Pit Mode

Penonton berlari membentuk lingkaran.

this.applyCircle(centerX, centerY, 220);

Efek ini menciptakan gerakan berputar realistis.




3. Double Pit Mode

Dua circle pit terpisah.

this.applyCircle(centerX - width/4, centerY, 160);

Digunakan untuk simulasi crowd yang lebih kompleks.




4. Wall of Death Mode

Crowd terbagi menjadi dua sisi.

let targetX = centerX - gap;

Setelah collision:

p.vx += force;

Crowd bertabrakan di tengah.



5. Riot Mode

Gerakan chaos acak:

this.vx += (Math.random() - 0.5) * force;

Mensimulasikan kerusuhan crowd.



Sistem Level

Simulator memiliki sistem level:

let lvls = { mosh: 1, double: 1, chill: 1, riot: 1 };

Level mempengaruhi:

  • Kecepatan gerakan

  • Intensitas chaos

  • Power circle pit

Sistem Rendering Karakter

Karakter digambar menggunakan primitive Canvas:

ctx.arc(this.x, this.y, 3, 0, Math.PI * 2); ctx.lineTo(this.x, this.y + 4);

Karakter terdiri dari:

  • Kepala

  • Badan

  • Tangan

Dengan animasi beat effect:

Math.sin(Date.now() * 0.015)

Sistem Dialog Dinamis

Karakter dapat berbicara:

this.say("MOSH!");

Dialog muncul di atas karakter.

Contoh dialog yang di terapkan:

  • MOSH!

  • OPEN THE PIT!

  • ANARCHY!

  • GO!!!

Inisialisasi Crowd

Simulator membuat:

  • 5 band members

  • 400 crowd members

for(let i=0; i<400; i++) { crowd.push(new Person(...)); }


Efek Flash Collision



Saat wall of death collision:

flash = 12;

Render flash:

ctx.fillStyle = rgba(255,255,255,flash);

Memberikan efek impact visual.

Responsive Design

Canvas otomatis resize:

window.addEventListener('resize', resize);

Simulator berjalan di:

  • Desktop

  • Mobile

  • Tablet

Kode tersebut berfungsi untuk menerapkan visual yang bisa di buka di beberapa layar.

Keunggulan Simulator Ini

Beralih untuk menjelaskan keunggalan simulator ini antara lain:

  • Pure HTML, CSS, JavaScript

  • Physics simulation realistis

  • Smooth animation

  • Interactive control

  • Lightweight

Konsep yang Digunakan

Simulator ini mengimplementasikan konsep:

Object Oriented Programming

Menggunakan class Person

Animation Loop

Menggunakan requestAnimationFrame

Physics Simulation

Velocity, friction, collision

State Machine

Mode idle, mosh, riot, wall

Real-time rendering

Potensi Pengembangan

Simulator ini bisa dikembangkan menjadi:

  • Game browser

  • Visual demo physics

  • Interactive art

  • Game engine prototype

  • Crowd Bot simulation

Fitur tambahan yang bisa dibuat:

  • Sound integration

  • 3D version

  • Multiplayer

  • Real physics engine

Kesimpulan

Metal Concert Simulator adalah contoh implementasi dari:

  • HTML5 Canvas

  • JavaScript animation

  • Crowd physics simulation

Tanpa menggunakan library tambahan, simulator ini mampu menciptakan pengalaman visual interaktif yang kompleks dan realistis.

Simulator ini membuktikan bahwa browser modern mampu menjalankan simulasi real-time dengan performa tinggi hanya menggunakan JavaScript.