Catalog
github/game-engine

github

game-engine

Expert skill for building web-based game engines and games using HTML5, Canvas, WebGL, and JavaScript. Use when asked to create games, build game engines, implement game physics, handle collision detection, set up game loops, manage sprites, add game controls, or work with 2D/3D rendering. Covers techniques for platformers, breakout-style games, maze games, tilemaps, audio, multiplayer via WebRTC, and publishing games.

v1.0Latest
New~1.6kUpdated Jun 26, 2026

Game Engine Skill

Build web-based games and game engines using HTML5 Canvas, WebGL, and JavaScript. This skill includes starter templates, reference documentation, and step-by-step workflows for 2D and 3D game development with frameworks such as Phaser, Three.js, Babylon.js, and A-Frame.

When to Use This Skill

  • Building a game engine or game from scratch using web technologies
  • Implementing game loops, physics, collision detection, or rendering
  • Working with HTML5 Canvas, WebGL, or SVG for game graphics
  • Adding game controls (keyboard, mouse, touch, gamepad)
  • Creating 2D platformers, breakout-style games, maze games, or 3D experiences
  • Working with tilemaps, sprites, or animations
  • Adding audio to web games
  • Implementing multiplayer features with WebRTC or WebSockets
  • Optimizing game performance
  • Publishing and distributing web games

Prerequisites

  • Basic knowledge of HTML, CSS, and JavaScript
  • A modern web browser with Canvas/WebGL support
  • A text editor or IDE
  • Optional: Node.js for build tooling and local development servers

Core Concepts

The following concepts form the foundation of every web-based game engine.

Game Loop

Every game engine revolves around the game loop -- a continuous cycle of:

  1. Process Input - Read keyboard, mouse, touch, or gamepad input
  2. Update State - Update game object positions, physics, AI, and logic
  3. Render - Draw the current game state to the screen

Use requestAnimationFrame for smooth, browser-optimized rendering.

Rendering

  • Canvas 2D - Best for 2D games, sprite-based rendering, and tilemaps
  • WebGL - Hardware-accelerated 3D and advanced 2D rendering
  • SVG - Vector-based graphics, good for UI elements
  • CSS - Useful for DOM-based game elements and transitions

Physics and Collision Detection

  • 2D Collision Detection - AABB, circle, and SAT-based collision
  • 3D Collision Detection - Bounding box, bounding sphere, and raycasting
  • Velocity and Acceleration - Basic Newtonian physics for movement
  • Gravity - Constant downward acceleration for platformers

Controls

  • Keyboard - Arrow keys, WASD, and custom key bindings
  • Mouse - Click, move, and pointer lock for FPS-style controls
  • Touch - Mobile touch events and virtual joysticks
  • Gamepad - Gamepad API for controller support

Audio

  • Web Audio API - Programmatic sound generation and spatial audio
  • HTML5 Audio - Simple audio playback for music and sound effects

Step-by-Step Workflows

Creating a Basic 2D Game

  1. Set up an HTML file with a <canvas> element
  2. Get the 2D rendering context
  3. Implement the game loop using requestAnimationFrame
  4. Create game objects with position, velocity, and size properties
  5. Handle keyboard/mouse input for player control
  6. Implement collision detection between game objects
  7. Add scoring, lives, and win/lose conditions
  8. Add sound effects and music

Building a 3D Game

  1. Choose a framework (Three.js, Babylon.js, A-Frame, or PlayCanvas)
  2. Set up the scene, camera, and renderer
  3. Load or create 3D models and textures
  4. Implement lighting and shaders
  5. Add physics and collision detection
  6. Implement player controls and camera movement
  7. Add audio and visual effects

Publishing a Game

  1. Optimize assets (compress images, minify code)
  2. Test across browsers and devices
  3. Choose distribution platform (web, app stores, game portals)
  4. Implement monetization if needed
  5. Promote through game communities and social media

Game Templates

Starter templates are available in the assets/ folder. Each template provides a complete, working example that can be used as a starting point for a new project.

Template Description
paddle-game-template.md 2D Breakout-style game with pure JavaScript
2d-maze-game.md Maze game with device orientation controls
2d-platform-game.md Platformer game using Phaser framework
gameBase-template-repo.md Game base template repository structure
simple-2d-engine.md Simple 2D platformer engine with collisions

Reference Documentation

Detailed reference material is available in the references/ folder. Consult these files for in-depth coverage of specific topics.

Reference Topics Covered
basics.md Game development introduction and anatomy
web-apis.md Canvas, WebGL, Web Audio, Gamepad, and other web APIs
techniques.md Collision detection, tilemaps, async scripts, audio
3d-web-games.md 3D theory, frameworks, shaders, WebXR
game-control-mechanisms.md Touch, keyboard, mouse, and gamepad controls
game-publishing.md Distribution, promotion, and monetization
algorithms.md Raycasting, collision, physics, vector math
terminology.md Game development glossary
game-engine-core-principles.md Core design principles for game engines

Troubleshooting

Issue Solution
Canvas is blank Check that you are calling drawing methods after getting the context and inside the game loop
Game runs at different speeds Use delta time in update calculations instead of fixed values
Collision detection is inconsistent Use continuous collision detection or reduce time steps for fast-moving objects
Audio does not play Browsers require user interaction before playing audio; trigger playback from a click handler
Performance is poor Profile with browser dev tools, reduce draw calls, use object pooling, and optimize asset sizes
Touch controls are unresponsive Prevent default touch behavior and handle touch events separately from mouse events
WebGL context lost Handle the webglcontextlost event and restore state on webglcontextrestored
Files15
15 files · 346.4 KB

Select a file to preview

Overall Score

88/100

Grade

A

Excellent

Safety

92

Quality

88

Clarity

87

Completeness

85

Summary

A comprehensive skill for building web-based games and game engines using HTML5 Canvas, WebGL, and JavaScript. Provides starter templates for 2D/3D game development, step-by-step workflows, reference documentation covering game architecture, physics, collision detection, control mechanisms, and publishing strategies. Covers frameworks like Phaser, Three.js, Babylon.js, and A-Frame.

Detected Capabilities

file readcode documentationreference materialeducational contenttemplate provisionframework guidancealgorithm explanationarchitecture guidancephysics simulation referencecollision detection patterns

Trigger Keywords

Phrases that MCP clients use to match this skill to user intent.

build web gamegame engine developmentcanvas graphicsphysics simulationcollision detectiongame loopsprite animationgame publishinglevel designgame controls

Referenced Domains

External domains referenced in skill content, detected by static analysis.

aframe.iocdn.babylonjs.comcdnjs.cloudflare.comdeepnight.netdeveloper.mozilla.orgdeveloper.playcanvas.comdoc.babylonjs.comgithub.comhashlink.haxe.orghaxe.orgjs.leapmotion.comldtk.iomedium.commozdevs.github.ioorb.enclavegames.comthreejs.orgwinter.devwww.gamedev.netwww.gameindustrycareerguide.comwww.shadertoy.comwww.w3.org

Use Cases

  • Build a 2D platformer from scratch using Canvas and vanilla JavaScript
  • Create a Breakout-style paddle game with collision detection and scoring
  • Develop a 3D game using Three.js or Babylon.js with lighting and models
  • Implement a maze game with device orientation controls for mobile
  • Design game levels using LDtk and integrate with Heaps game engine
  • Set up multiplayer game synchronization using WebRTC or WebSockets
  • Optimize game performance with rendering pipelines and physics simulation
  • Publish web-based games across multiple platforms and distribution channels
  • Implement game controls for keyboard, mouse, touch, and gamepad input
  • Build a complete game engine with entity systems, collision detection, and game loops

Quality Notes

  • Exceptional breadth of coverage: 14+ supporting reference files covering every major aspect of web game development from basics to advanced techniques
  • Well-organized file structure with clear separation between templates, references, and assets
  • Every template includes complete, working code examples with step-by-step explanations
  • Core principles documented clearly (game loop, physics, collision, input) before diving into framework-specific implementations
  • Multiple framework options provided (Phaser, Three.js, Babylon.js, A-Frame) allowing developers to choose the right tool
  • Strong pedagogical approach: starts with fundamental concepts, then builds up to complete projects
  • Comprehensive reference material on game publishing, monetization, and promotion strategies included
  • Edge cases and troubleshooting documented (canvas blank, poor performance, touch issues, WebGL context loss)
  • All referenced external domains are legitimate, well-established game development resources (MDN, GameDev.net, DeepNight, official framework docs)
  • Supporting files are substantial and complete (250+ KB of reference material); skill is genuinely self-contained
Model: claude-haiku-4-5-20251001Analyzed: Jun 26, 2026

Reviews

Add this skill to your library to leave a review.

No reviews yet

Be the first to share your experience.

Use github/game-engine in your dev environment

Command Palette

Search for a command to run...