Why Crash BASIC Exists
A language built on passion, not profit
For Wizards, Not Developers
You're not here to build enterprise software. You're here to make cool things.
No frameworks. No build systems. No dependency hell. Just open your browser and start creating.
Born from Nostalgia
QBasic was my first programming language. Modern tools forgot what made old school BASIC programming fun.
Crash BASIC remembers. That moment when you typed your first PRINT statement and saw text appear on screen? We're bringing that classic BASIC experience back for a new generation of game programmers.
The Ironic Name
"Crash" BASIC is actually designed to not crash. The name is tongue-in-cheek.
A safe language for learning and creating. We can't promise perfection, but we're building something you can trust.
Free Forever
The Crash BASIC IDE is free. Always will be. Your creativity shouldn't have a paywall.
Crash BASIC Arcade is a paid service for sharing your creations with the world. That's how we keep the lights on while keeping the tools free.
Crash BASIC Features
Everything you need for web game development with classic BASIC syntax
Make Games, Not Software
Built-in sprite sheets, animation, and graphics commands. Just start creating.
- Sprite sheets with LOADPNG
- Frame-based animation
- LINE, CIRCLE, POLYGON, PSET
- Modern canvas rendering
Behaviors & Patterns
Define reusable sprite behaviors. Chain them into patterns. AI made simple.
- BEHAVIOR blocks for sprite AI
- PATTERN chaining
- GHOST, SOLID, SPEED modifiers
- No complex state machines
Hardware Sprites
Real sprite management with ENABLE, SET, and MOVE. Classic game development made modern.
- ENABLE SPRITE system
- SET SPRITE with positioning
- MOVE SPRITE with patterns
- Automatic collision detection
Map Editor
Visual tile map creation with integrated IDE tooling. Design levels, not data files.
- Visual tile placement
- FOR MAPDATA iteration
- Multi-layer support
- Integrated in the IDE
Multi-Layer Graphics
Compose scenes with multiple layers, parallax scrolling, and frame buffering.
- CREATE LAYER for composition
- RESET LAYERS for scenes
- BEGIN/END FRAME buffering
- Per-layer scrolling
Mutations
Runtime geometry manipulation. Bend, twist, orbit, oscillate - dynamic visual effects.
- Orbit and oscillate effects
- Decay animations
- Shape manipulation
- Procedural visuals
Collision System
Built-in collision detection with boundary regions and sprite-to-sprite checks.
- FOR COLLISIONS loop
- Boundary regions
- Sprite collision events
- No physics engine needed
Mobile Touch Input
Make mobile games with TAP$ and DRAG$ functions. Works in any browser.
- TAP$ for touch coordinates
- DRAG$ for swipes
- Works on mobile browsers
- No special setup needed
Multi-Threading
Timers and threads for responsive game loops without callback spaghetti.
- CALL TIMER for scheduling
- CALL THREAD for background
- BEGIN LOCK/END LOCK
- Thread-safe by design
Retro Audio
Sound effects and music with custom instruments that reproduce the sound of old school systems.
- MP3 and WAV support
- Custom instrument definitions
- PLAYMUSIC for soundtracks
- Chiptune PLAY command
No Setup Required
Professional IDE in your browser. Monaco editor, syntax highlighting, debugging.
- Monaco editor built-in
- Syntax highlighting
- Integrated help
- Just open and create
Custom Types & Saves
QBasic-style types with modern JSON serialization for game saves.
- TYPE...END TYPE
- Dynamic Object types
- SERIALIZE$/DESERIALIZE$
- Easy save/load
Get Started with Crash BASIC
Begin game development in minutes - no experience required
Open Your Browser
No downloads. No installs. No dependencies. We recommend Chrome for the best experience, but Safari works too.
Write BASIC Code
Type PRINT "Hello" just like in QBasic. Same classic syntax, modern results.
See It Run
Press F5. That's it. Your creation comes to life.
Share Your Game
Publish your web game to the Arcade for others to play!
Version 1.4.7
Latest features and improvements
Behaviors & Patterns
- BEHAVIOR blocks for sprite AI
- PATTERN chaining
- GHOST, SOLID, SPEED modifiers
- Reusable animation sequences
Hardware Sprites
- ENABLE SPRITE system
- SET SPRITE positioning
- MOVE SPRITE with patterns
- Sprite collision detection
Map Editor
- Visual tile map creation
- FOR MAPDATA iteration
- Multi-layer map support
- Integrated IDE tooling
Mutations
- Runtime geometry manipulation
- Orbit, oscillate, decay
- Bend, twist, animate shapes
- Dynamic visual effects
Recent Updates
- Collision System: FOR COLLISIONS loop with boundary regions and sprite detection
- Retro Music: Custom instrument definitions and PLAYMUSIC for old school game soundtracks
- State Management: EVENT and SET STATE commands with INSTATE$ function
- Custom Cursors: SET CURSOR command with hotspot positioning
- Mobile Touch: TAP$ and DRAG$ functions for touch-based games