Pick Your Game 🎮
🚀Shooter
🏃Platformer
⬇️Dodge
🧱Breaker
🦕Runner
🐦Flappy
👾Invaders
🏓Pong
🐍Snake
☄️Asteroids
⚔️Roguelike
🏎️Racing
🐸Hopper
🥊1v1 Fighter
🧩Puzzle
🎵Rhythm
🗼Defense
🔮Pinball
👆Clicker
🃏Memory
🌊Wave Survival
✨ Start from an example
Speed & Physics ⚡
200 🐰
Paint tiles above solid (purple), hazard (red), or erase. Hit ▶ Run to play your level.
Theme & Story 🎨 📖 Story
Save & Share ● Auto-saved
More tools (click to expand)
How Blueprints Work
Each card shows the real code powering your game. Drag a slider the green numbers update live. No restart needed!
🚀
Move System
Rotate & thrust
LIVE
if (LEFT)  player.rotate(-190)
if (RIGHT) player.rotate(+190)
if (UP)    player.thrust(200)
Rotation Speed190
Thrust Power200
The ship rotates left/right using angular velocity, then thrusts forward. High thrust = fast but hard to control!
🔫
Shoot System
Fire bullets forward
LIVE
if (SPACE pressed) {
  bullet = spawn(player.x, player.y)
  bullet.speed = 540
  cooldown = 180ms
}
Bullet Speed540
Fire Cooldown (ms)180
Every SPACE press (after cooldown) spawns a bullet pointed in the ship's direction and launches it. Lower cooldown = rapid fire!
🏃
Run System
Left & right movement
LIVE
if      (LEFT)  velocityX = -200
else if (RIGHT) velocityX = +200
else            velocityX = 0
Run Speed200
Velocity is set directly each frame. Release both keys → instantly stop. Try a very high speed for ice-skate physics!
⬆️
Jump & Gravity
Physics-based jumping
LIVE
gravity = 600

if (UP pressed AND on ground) {
  player.velocityY = -450
} // gravity does the rest
Gravity600
Jump Force450
Low gravity = floaty moon jump. High gravity = heavy thud. Try gravity 200 + jump 300 for super bouncy!
⬇️
Dodge & Collect
Left/right only
LIVE
if      (LEFT)  player.x -= 250
else if (RIGHT) player.x += 250

// 70% hazards, 30% ⭐ stars
every(800ms) → spawn item
Dodge Speed250
Spawn Delay (ms)800
Player only moves left and right. Stars give points. Enemies end the run. Speed of falling items increases as your score grows!
🧱
Paddle & Ball
Breakout physics
LIVE
// Move paddle
if (LEFT/RIGHT) paddle.x ± 300

// Ball bounces automatically
if (ball hits brick) {
  brick.destroy()
  score += 5
}
Paddle Speed300
Points Per Brick5
The ball bounces off walls and ceiling. Hit the paddle to keep it alive. Clear all bricks to advance ball speeds up each wave!
🦕
Auto Runner
Endless obstacle leap
LIVE
// Player auto-runs right
if (SPACE/UP AND on ground) {
  player.velocityY = -450
}
// Obstacles scroll left
obstacle.velocityX = -220
Jump Force450
Obstacle Speed220
The runner auto-moves. Press SPACE or UP to leap over incoming obstacles. Score goes up the longer you survive!
🐦
Flap & Gravity
Tap to fight gravity
LIVE
if (TAP pressed) {
  bird.velocityY = -450
}
// gravity = 600 pulls it down
Flap Force450
Gravity600
Each tap gives an upward kick. Gravity constantly pulls the bird down. Too much gravity = very hard! Too little = floaty.
👾
Invader Formation
Move, descend, shoot
LIVE
every(700ms) formation moves
if (edge hit) descend 18px
random enemy fires every
  1100ms
Enemy Speed150
Fire Interval (ms)1100
The formation sweeps side to side, stepping down when it hits the wall. Fewer enemies = they speed up automatically!
🏓
Pong Physics
Ball & AI paddle
LIVE
// Player: UP / SPACE moves paddle
paddle.speed = 300

// AI tracks ball Y
ai.speed = 150

// Ball bounces off paddles & walls
Paddle Speed300
AI Speed150
First to 5 points wins a round! Use the Tune tab → AI Difficulty to switch between Easy / Normal / Hard / Unbeatable.
🐍
Snake Grid
Grow, don't bite yourself
LIVE
every(160ms) snake moves 1 cell
if (eat food) {
  length++ // don't pop tail
  speed += 4ms faster
}
if (wall or self) game over
Start Speed200
The snake moves one grid cell at a time on a fixed timer. Higher speed setting = shorter delay between moves = trickier!
☄️
Asteroid Split
Rotate, thrust, shoot
LIVE
if (SPACE) → bullet at 540 speed
// 3 sizes: large→medium→small
large=10pts medium=20pts small=30pts
Bullet Speed540
Thrust Power200
Asteroids wrap around the screen. Each one you shoot splits into two smaller ones — small ones are worth the most but hardest to hit!
👾
Enemy Spawner
Timer-based spawning
LIVE
every(1100ms, do:)
  enemy = spawn(randomX, top)
  enemy.fallSpeed = 150
Spawn Delay (ms)1100
Fall Speed150
A game timer fires every N ms and drops an enemy at a random X position. Drag the slider — the timer updates instantly while the game runs!
⚔️
Twin-Stick Rooms
Real-time BoI style
REAL-TIME
// WASD = move, Arrow keys = shoot
if (enemies == 0) {
  doorGrp.clear()  // open door!
}
if (player.x > doorX) {
  _nextRoom()     // fade & load
}
Starting HP3
Enemy Density3
Real-time twin-stick action. WASD to move, arrow keys to shoot. Kill all enemies to open the door on the right. Walk through to the next room. Enemies shoot back on floor 2+!
🏎️
Car Physics
Rotate-thrust steering
LIVE
if (LEFT)  car.steer(-155)
if (RIGHT) car.steer(+155)
if (UP)    car.thrust(600)
if (SPACE) car.nitro()  // ⚡×3
Car Speed320
Rotation-based steering + manual thrust physics. Off-road slows you down. ⚡ Boost pads give a 2s nitro surge. 🛢️ Oil slicks cause a spin-out. 🏁 Start/finish tile counts laps.
🗺️
Track Painter
Draw your own circuit
LEVEL
🛣️ Road  — asphalt surface
🚧 Wall  — barrier (bounce)
🏁 Start — start/finish line
⚡ Boost — speed pad +65%
🛢️ Oil   — spin-out zone
Use the Tilemap editor in the Level tab to paint a circuit. Leave it blank for the built-in oval. The CPU follows the centre of your road tiles automatically.
🐸
One-Way Bounce
Doodle Jump physics
PHYSICS
// Only bounce when falling DOWN
if (player.body.velocity.y > 0)
  player.setVelocityY(-BOUNCE);
// Camera only scrolls UP
camY = Math.min(camY, player.y - GH/2);
The core trick: collide handler fires both ways, but only launch the player when they're moving downward. Camera follows upward only so you can't go back.
🪄
Platform Types
Normal · Moving · Spring · Crumble
DESIGN
// Crumble: destroy on bounce
if (plat.getData('crumble'))
  plat.destroy();
// Spring: extra launch height
velY = -BOUNCE * 1.6;
Toggle Moving Platforms, Crumble Platforms, and Spring Platforms in the Custom tab. Platform density controls how far apart each platform spawns.
👊
Combo System
Chain hits for multipliers
MECHANIC
// Combo resets after 2.2s idle
if (hit) {
  combo++;
  score += 100 * combo;
  comboTimer = 2200;
}
Punch enemies quickly to chain your combo. The multiplier grows with each hit but resets if you pause too long. Boss enemies appear every 3 waves and deal splash damage!
🌊
Wave Spawner
Escalating enemy waves
ENEMIES
// Each wave: count += 2, speed += 15
const wave = { count: 4 + waveNum * 2,
  speed: 60 + waveNum * 15,
  hp: 1 + waveNum };
// Heavy: slower, 3× HP, 1.5× bounty
Grunts move fast and die in one hit. Heavies are slower but take multiple punches. Bosses appear at wave 3, 6, 9… with a visible HP bar.
📦
Sokoban Push Logic
One crate, one space ahead
LOGIC
// Can only push if space beyond is clear
if (tile[nx][ny] === 'crate') {
  if (tile[nx+dx][ny+dy] !== 'wall')
    pushCrate(nx,ny,dx,dy);
  else return; // blocked
}
Classic Sokoban rules: you can push ONE crate at a time, only if the cell behind it is free. Crates on targets turn green. Push all crates onto targets to win!
🎵
Note Timing Windows
PERFECT / GOOD / MISS
TIMING
// Distance from hit line
if      (dist < 18) judge('PERFECT', 100);
else if (dist < 36) judge('GOOD',    50);
else              judge('MISS',     0);
Hit notes as they reach the glowing target line. PERFECT (±18px) scores 100pts and builds your combo multiplier. Miss too many notes and it's game over — configure the limit in the Rhythm Options panel. Use the Music Sequencer to create your own patterns!
🗼
Tower Placement
Grid snapping · path check
BUILD
// Press T, click grid to build
if (onPath) { reject(); return; }
gold -= 50;
towers.push({col, row, range:120});
Press T to enter placement mode, then click any non-path cell to build a tower for 50 gold. Towers auto-shoot the closest enemy in range. Earn gold by clearing waves!
🏹
Auto-Targeting
Nearest enemy in range
AI
// Fire every 900ms if enemy in range
enemies.forEach(e => {
  const d = dist(tower, e);
  if (d < range) target = e;
});
if (target) shoot(target);
Each tower scans all enemies every 900ms and fires a bullet at the nearest one within its 120px range ring. Bullets travel at 220px/s and deal 1 damage. Watch the path to position towers effectively!
🔮
Flipper Physics
Angle · kick · spring-back
PHYSICS
// Z/← = left  ·  X/→ = right
if (leftDown)
  lfAngle = Math.max(lfAngle-450*dt, -28);
else
  lfAngle = Math.min(lfAngle+450*dt,  28);
// Active flip → strong upward kick
ball.setVelocity(kickX, kickY);
Each flipper has a pivot and an angle that swings up when the key is held, then springs back. A manual line-segment collision check determines if the ball is touching the flipper — if active, a strong upward kick is applied based on where along the flipper the ball lands.
💥
Bumper Burst
Score · flash · velocity boost
SCORE
// Ball hits bumper → burst away
const spd = Math.max(
  curSpd + 200, 400);
ball.setVelocity(
  (dx/dist)*spd,
  (dy/dist)*spd);
score += bumper.pts; // 100–200
Bumpers use Phaser arcade physics collision. On contact, the ball's velocity is directed away from the bumper centre — and always boosted to at least 400px/s so it never gets stuck. Hit all three top targets in a single ball to earn a 2000pt bonus!
🏆
Score System
Points on events
LIVE
onCollide(bullet, enemy) {
  enemy.destroy()
  score += 10
}
Points Per Kill10
Arcade physics checks every frame if two objects overlap. When they do: destroy both, add to score, update display.
How It Works
Open the Workshop above → create your art → click 🕹️ Send to Game Maker → it auto-imports here! Or use the buttons below to pull from a tool you already used.
Player Sprite
No sprite
Using default ship
Import your pixel art or character to replace it.
No custom sprite loaded
🎭 Built-in Sprites — click to use as player sprite
🎨 Quick Sprite Editor 8 × 8 pixels · supports animation frames
FRAMES:
Paint each frame. Multi-frame = animated walk cycle in-game. Right-click to erase.
Enemy Sprite
Default
Using default UFO
Replace enemies with your own pixel art or character.
No custom enemy loaded
Bullet / Projectile
Default
Using default ball
Replaces all bullets, balls & projectiles.
No custom bullet loaded
Tile / Block (platforms, pipes, obstacles, bricks)
Default
Using default block
Used for platforms, pipes, obstacles & bricks.
No custom tile loaded
Background Image
Default
Using style setting
Stretches to fill the game canvas behind all other elements.
No custom background loaded
Level Map (Platformer only)
No level imported
Design in Level Designer, click Save, then import here.
Using built-in default level
Game Audio
Open SFX Studio above → pick a sound → click 🕹️ Send to Game Maker → then hit ⬇ Studio on any slot below to assign it.
Master
Sound Effects
Shoot, jump, hit, score
Pitch Randomisation
Varies each SFX pitch slightly feels more organic
Background Music
Chiptune loop
50%
Sound Pack
Sound FX Slots
🔫 Shoot
⬆️ Jump
💥 Hit/Die
Score
🌟 Level Up
💀 Death
Power-up
🏆 Victory

Tap a card to expand its options. Only options that affect your current game type are shown.

Colour Theme
🔤 Game Font
🎨 Emoji Theme
Changes the colour palette and emoji sprites across the entire game
🌌 Parallax Backgrounds
Parallax Layers
3 scrolling depth layers (Platformer, Runner, Flappy, Racing)
🌦️ Weather
Player
100%
Difficulty
Normal
World
Screen Shake on Hit
Camera rumble when damaged
CRT Scanline Effect
Retro TV scanlines + vignette overlay
📖 Story & Messages
Text shown on the intro screen, victory screen, and game-over screen
👾 Enemy Behaviour
Classic — enemies drop straight down at set speed.
💀 Boss Fight
Summon a powerful boss enemy at a score threshold
500 pts
20 HP
🪙 Collectibles & Shop
Power-ups drop randomly from enemies (20% chance). Tap to collect.
⚡ Speed = fast for 8s · 🛡 Shield = blocks 1 hit · 🧲 Magnet = attracts coins · ✨ 2× Score = double points for 10s
✨ Particles & Effects
🎆 Particle Presets
Levels:
🏅 Achievements
Add up to 4 goals that pop up when players reach them.
Shooter Options
12
Enemy Zigzag
Enemies swerve side to side
Boss Waves
A boss spawns every 500 pts
Player Settings
3
Tints the player sprite
Camera & Feel
Combat Settings
1.5s
Time window to build a combo streak
500
HUD & Display
💻 Custom Script
Write Phaser 3 JS that runs inside your game. Define onCreate(scene) and/or onUpdate(scene) — all globals are available.
Quick Insert — click to add snippet to editor:
Available inside your functions: scene.actor — player sprite  ·  scene.score — current score
scene.hazards — enemy group  ·  scene.scoreText — score label
liveConfig.speed — player speed  ·  liveConfig.gravity — gravity
gameState.lives — lives  ·  showToast('msg') — toast
showVictory(score) — trigger win  ·  showGameOver(score) — end
⚡ Event Rules
Event Nodes make things happen during your game — no coding needed!
Tap 🟢 WHEN to set trigger. Tap 🔴 THEN to set action.
No rules yet!
Add one below — try "When score reaches 500 → Show message"
— run game to see rules fire —
Creative Workshop Design your sprite, build your level, craft your sounds — click 🕹️ Send to Game Maker inside any tool and it auto-imports!
Create → Build → Play!
JV Engine · Ready
Build your arcade game.
No code needed.
21 genres · Custom art · Share with one link
1 Pick a genre
2 Hit ▶ Run
3 Tweak & share
🛡 Shield 💎 ×2 Score ⚡ Speed
📱 Landscape gives more room — or just keep playing!
🕹️
My Arcade Game
Tap or press Space to start!
GAME OVER
Score: 0
Enter Your Initials
🕹️ Made with JVDesignStudio.com
LEFT
RIGHT
⚠️
Game crashed
Try simplifying your code or switching genre
🚀 SHOOTER
Controls: LEFT/RIGHT rotate · UP thrust · SPACE shoot
Shortcuts: R Run  S Save  F Fullscreen  1-5 Tabs
🎯
Mission: Hit Run then open the Blueprints tab — tweak the green numbers and watch the game update live!
🕹️
Welcome to the Arcade Game Maker!
Build your own arcade game in minutes — no coding needed. Let's do a quick tour!
Choose a Trigger
Tap an option to select it