{
  "schemaVersion": "1.0",
  "item": {
    "slug": "game-engine",
    "name": "Game Engine",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/jhauga/game-engine",
    "canonicalUrl": "https://clawhub.ai/jhauga/game-engine",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/game-engine",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=game-engine",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "assets/2d-maze-game.md",
      "assets/2d-platform-game.md",
      "assets/gameBase-template-reop.md",
      "assets/paddle-game-template.md",
      "assets/simple-2d-engine.md",
      "references/3d-web-games.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/game-engine"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/game-engine",
    "agentPageUrl": "https://openagent3.xyz/skills/game-engine/agent",
    "manifestUrl": "https://openagent3.xyz/skills/game-engine/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/game-engine/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Game Engine Skill",
        "body": "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."
      },
      {
        "title": "When to Use This Skill",
        "body": "Building a game engine or game from scratch using web technologies\nImplementing game loops, physics, collision detection, or rendering\nWorking with HTML5 Canvas, WebGL, or SVG for game graphics\nAdding game controls (keyboard, mouse, touch, gamepad)\nCreating 2D platformers, breakout-style games, maze games, or 3D experiences\nWorking with tilemaps, sprites, or animations\nAdding audio to web games\nImplementing multiplayer features with WebRTC or WebSockets\nOptimizing game performance\nPublishing and distributing web games"
      },
      {
        "title": "Prerequisites",
        "body": "Basic knowledge of HTML, CSS, and JavaScript\nA modern web browser with Canvas/WebGL support\nA text editor or IDE\nOptional: Node.js for build tooling and local development servers"
      },
      {
        "title": "Core Concepts",
        "body": "The following concepts form the foundation of every web-based game engine."
      },
      {
        "title": "Game Loop",
        "body": "Every game engine revolves around the game loop -- a continuous cycle of:\n\nProcess Input - Read keyboard, mouse, touch, or gamepad input\nUpdate State - Update game object positions, physics, AI, and logic\nRender - Draw the current game state to the screen\n\nUse requestAnimationFrame for smooth, browser-optimized rendering."
      },
      {
        "title": "Rendering",
        "body": "Canvas 2D - Best for 2D games, sprite-based rendering, and tilemaps\nWebGL - Hardware-accelerated 3D and advanced 2D rendering\nSVG - Vector-based graphics, good for UI elements\nCSS - Useful for DOM-based game elements and transitions"
      },
      {
        "title": "Physics and Collision Detection",
        "body": "2D Collision Detection - AABB, circle, and SAT-based collision\n3D Collision Detection - Bounding box, bounding sphere, and raycasting\nVelocity and Acceleration - Basic Newtonian physics for movement\nGravity - Constant downward acceleration for platformers"
      },
      {
        "title": "Controls",
        "body": "Keyboard - Arrow keys, WASD, and custom key bindings\nMouse - Click, move, and pointer lock for FPS-style controls\nTouch - Mobile touch events and virtual joysticks\nGamepad - Gamepad API for controller support"
      },
      {
        "title": "Audio",
        "body": "Web Audio API - Programmatic sound generation and spatial audio\nHTML5 Audio - Simple audio playback for music and sound effects"
      },
      {
        "title": "Creating a Basic 2D Game",
        "body": "Set up an HTML file with a <canvas> element\nGet the 2D rendering context\nImplement the game loop using requestAnimationFrame\nCreate game objects with position, velocity, and size properties\nHandle keyboard/mouse input for player control\nImplement collision detection between game objects\nAdd scoring, lives, and win/lose conditions\nAdd sound effects and music"
      },
      {
        "title": "Building a 3D Game",
        "body": "Choose a framework (Three.js, Babylon.js, A-Frame, or PlayCanvas)\nSet up the scene, camera, and renderer\nLoad or create 3D models and textures\nImplement lighting and shaders\nAdd physics and collision detection\nImplement player controls and camera movement\nAdd audio and visual effects"
      },
      {
        "title": "Publishing a Game",
        "body": "Optimize assets (compress images, minify code)\nTest across browsers and devices\nChoose distribution platform (web, app stores, game portals)\nImplement monetization if needed\nPromote through game communities and social media"
      },
      {
        "title": "Game Templates",
        "body": "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.\n\nTemplateDescriptionpaddle-game-template.md2D Breakout-style game with pure JavaScript2d-maze-game.mdMaze game with device orientation controls2d-platform-game.mdPlatformer game using Phaser frameworkgameBase-template-reop.mdGame base template repository structuresimple-2d-engine.mdSimple 2D platformer engine with collisions"
      },
      {
        "title": "Reference Documentation",
        "body": "Detailed reference material is available in the references/ folder. Consult these files for in-depth coverage of specific topics.\n\nReferenceTopics Coveredbasics.mdGame development introduction and anatomyweb-apis.mdCanvas, WebGL, Web Audio, Gamepad, and other web APIstechniques.mdCollision detection, tilemaps, async scripts, audio3d-web-games.md3D theory, frameworks, shaders, WebXRgame-control-mechanisms.mdTouch, keyboard, mouse, and gamepad controlsgame-publishing.mdDistribution, promotion, and monetizationalgorithms.mdRaycasting, collision, physics, vector mathterminology.mdGame development glossarygame-engine-core-principals.mdCore design principles for game engines"
      },
      {
        "title": "Troubleshooting",
        "body": "IssueSolutionCanvas is blankCheck that you are calling drawing methods after getting the context and inside the game loopGame runs at different speedsUse delta time in update calculations instead of fixed valuesCollision detection is inconsistentUse continuous collision detection or reduce time steps for fast-moving objectsAudio does not playBrowsers require user interaction before playing audio; trigger playback from a click handlerPerformance is poorProfile with browser dev tools, reduce draw calls, use object pooling, and optimize asset sizesTouch controls are unresponsivePrevent default touch behavior and handle touch events separately from mouse eventsWebGL context lostHandle the webglcontextlost event and restore state on webglcontextrestored"
      }
    ],
    "body": "Game Engine Skill\n\nBuild 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.\n\nWhen to Use This Skill\nBuilding a game engine or game from scratch using web technologies\nImplementing game loops, physics, collision detection, or rendering\nWorking with HTML5 Canvas, WebGL, or SVG for game graphics\nAdding game controls (keyboard, mouse, touch, gamepad)\nCreating 2D platformers, breakout-style games, maze games, or 3D experiences\nWorking with tilemaps, sprites, or animations\nAdding audio to web games\nImplementing multiplayer features with WebRTC or WebSockets\nOptimizing game performance\nPublishing and distributing web games\nPrerequisites\nBasic knowledge of HTML, CSS, and JavaScript\nA modern web browser with Canvas/WebGL support\nA text editor or IDE\nOptional: Node.js for build tooling and local development servers\nCore Concepts\n\nThe following concepts form the foundation of every web-based game engine.\n\nGame Loop\n\nEvery game engine revolves around the game loop -- a continuous cycle of:\n\nProcess Input - Read keyboard, mouse, touch, or gamepad input\nUpdate State - Update game object positions, physics, AI, and logic\nRender - Draw the current game state to the screen\n\nUse requestAnimationFrame for smooth, browser-optimized rendering.\n\nRendering\nCanvas 2D - Best for 2D games, sprite-based rendering, and tilemaps\nWebGL - Hardware-accelerated 3D and advanced 2D rendering\nSVG - Vector-based graphics, good for UI elements\nCSS - Useful for DOM-based game elements and transitions\nPhysics and Collision Detection\n2D Collision Detection - AABB, circle, and SAT-based collision\n3D Collision Detection - Bounding box, bounding sphere, and raycasting\nVelocity and Acceleration - Basic Newtonian physics for movement\nGravity - Constant downward acceleration for platformers\nControls\nKeyboard - Arrow keys, WASD, and custom key bindings\nMouse - Click, move, and pointer lock for FPS-style controls\nTouch - Mobile touch events and virtual joysticks\nGamepad - Gamepad API for controller support\nAudio\nWeb Audio API - Programmatic sound generation and spatial audio\nHTML5 Audio - Simple audio playback for music and sound effects\nStep-by-Step Workflows\nCreating a Basic 2D Game\nSet up an HTML file with a <canvas> element\nGet the 2D rendering context\nImplement the game loop using requestAnimationFrame\nCreate game objects with position, velocity, and size properties\nHandle keyboard/mouse input for player control\nImplement collision detection between game objects\nAdd scoring, lives, and win/lose conditions\nAdd sound effects and music\nBuilding a 3D Game\nChoose a framework (Three.js, Babylon.js, A-Frame, or PlayCanvas)\nSet up the scene, camera, and renderer\nLoad or create 3D models and textures\nImplement lighting and shaders\nAdd physics and collision detection\nImplement player controls and camera movement\nAdd audio and visual effects\nPublishing a Game\nOptimize assets (compress images, minify code)\nTest across browsers and devices\nChoose distribution platform (web, app stores, game portals)\nImplement monetization if needed\nPromote through game communities and social media\nGame Templates\n\nStarter 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.\n\nTemplate\tDescription\npaddle-game-template.md\t2D Breakout-style game with pure JavaScript\n2d-maze-game.md\tMaze game with device orientation controls\n2d-platform-game.md\tPlatformer game using Phaser framework\ngameBase-template-reop.md\tGame base template repository structure\nsimple-2d-engine.md\tSimple 2D platformer engine with collisions\nReference Documentation\n\nDetailed reference material is available in the references/ folder. Consult these files for in-depth coverage of specific topics.\n\nReference\tTopics Covered\nbasics.md\tGame development introduction and anatomy\nweb-apis.md\tCanvas, WebGL, Web Audio, Gamepad, and other web APIs\ntechniques.md\tCollision detection, tilemaps, async scripts, audio\n3d-web-games.md\t3D theory, frameworks, shaders, WebXR\ngame-control-mechanisms.md\tTouch, keyboard, mouse, and gamepad controls\ngame-publishing.md\tDistribution, promotion, and monetization\nalgorithms.md\tRaycasting, collision, physics, vector math\nterminology.md\tGame development glossary\ngame-engine-core-principals.md\tCore design principles for game engines\nTroubleshooting\nIssue\tSolution\nCanvas is blank\tCheck that you are calling drawing methods after getting the context and inside the game loop\nGame runs at different speeds\tUse delta time in update calculations instead of fixed values\nCollision detection is inconsistent\tUse continuous collision detection or reduce time steps for fast-moving objects\nAudio does not play\tBrowsers require user interaction before playing audio; trigger playback from a click handler\nPerformance is poor\tProfile with browser dev tools, reduce draw calls, use object pooling, and optimize asset sizes\nTouch controls are unresponsive\tPrevent default touch behavior and handle touch events separately from mouse events\nWebGL context lost\tHandle the webglcontextlost event and restore state on webglcontextrestored"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/jhauga/game-engine",
    "publisherUrl": "https://clawhub.ai/jhauga/game-engine",
    "owner": "jhauga",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/game-engine",
    "downloadUrl": "https://openagent3.xyz/downloads/game-engine",
    "agentUrl": "https://openagent3.xyz/skills/game-engine/agent",
    "manifestUrl": "https://openagent3.xyz/skills/game-engine/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/game-engine/agent.md"
  }
}