# How to Make an Arena Fighter with AI: A Small 2D Game Recipe

Build one original platform arena, one fighter and one basic opponent. Follow five stages, copy the existing Quick Prompt, try BINX Brawl and improve your own version.

Canonical: https://binxforge.com/guides/make-an-arena-fighter-with-ai

Original scope: One tiny platform arena, one original player fighter versus one basic AI, move, jump, one light attack, simple damage/knockout and restart. No roster, heavy/special moves or online play.

Make Your Version: https://binxforge.com/create?genre=Fighting&inspiration=brawl&theme=Stylised&question=after-genre
Quick Prompt (keyboard + touch): https://binxforge.com/quick-free?game=brawl&step=build&look=Simple+shapes&input=Keyboard&input=Touch
Improve This: https://binxforge.com/upgrade?genre=Fighting&theme=Stylised

## Existing playable reference

BINX Brawl: https://binx.fun/titles/binxbrawl/?play=1
Current source supports the launch URL, movement, jumping and combat. Live availability is unconfirmed: access blocked here on 2026-10-10. Larger reference game, not a demonstration of your generated code. No automatic game loading.

## Build stages

1. Make movement readable

Start with one self-contained HTML/Canvas file, a floor and two platforms. Draw original shapes; add left/right movement and jump. Use elapsed time, grounded checks and one collision owner. Expected result: the fighter lands reliably without falling through the floor.

2. Prove one attack

Add one light attack with a visible wind-up, active hit window and cooldown. Give each attack an identifier so one swing cannot hit the same target every frame. Keep the hurtbox separate from the artwork. Expected result: one accepted hit reduces health once.

3. Add one basic opponent

Use a second original shape. Give it a simple approach/attack/recovery state and safe starting distance. Keep it inside the same arena; do not install a pathfinder for an open floor. Expected result: the opponent can act, take damage and be defeated.

4. Finish the small loop

Show readable health, clear win/loss and a restart button. Clear held keys on blur and pointer cancellation. Add labelled touch movement/jump/attack controls, pause and safe resize behavior. Expected result: two consecutive rounds start with clean health, positions, timers and input.

5. Test, then make one upgrade

Test keyboard and actual touch input, miss/hit/cooldown, defeat, pause, resize and repeated restart. Compare one change against the same baseline. Add art, sound or a second arena only after the first loop works. Expected result: one documented improvement with the original controls and outcomes still working.

## Exact starting prompt

START BUILDING NOW. Treat this as a complete mini-game brief, not an intake questionnaire. Do not ask me to choose an engine, provide a repository, upload files or clarify the design before starting. Make a tiny original simple platformer in one self-contained HTML file with native JavaScript/Canvas and keyboard + touch controls. One tiny platform arena, one original player fighter versus one basic AI, move, jump, one light attack, simple damage/knockout and restart. No roster, heavy/special moves or online play. Use original simple shapes art. Reuse working code first. No packages, accounts, paid services or remote dependencies. Return the complete runnable HTML file in this response, followed by short plain steps to save it as game.html and open it locally in a browser. If your environment can create or preview files, create/preview it; otherwise provide the full code without waiting for another reply. Include readable controls, a restart button and a clear win, lose or score condition. Keyboard means labelled movement and action keys; Touch means visible, labelled on-screen movement/action buttons usable without a keyboard. If both are selected, provide both. Prevent page scrolling while game controls are held and clear held inputs when focus is lost. Keep it fun and small. Do not copy BINX source, names, characters, art or maps. Build link: https://binxforge.com/quick-free?type=Simple+platformer&look=Simple+shapes&input=Keyboard&input=Touch&game=brawl&step=build. Test input, restart, resize and win/lose where your environment permits; clearly separate tests actually run from checks I should run. Do not claim a test you did not run.

Guide-specific task: How to Make an Arena Fighter with AI: A Small 2D Game Recipe. Build one original platform arena, one fighter and one basic opponent. Follow five stages, copy the existing Quick Prompt, try BINX Brawl and improve your own version.
Context precedence: preserve my permitted existing project and selected engine, version, platform, dimensions, camera and players. Native Canvas is the default new-build route, not an instruction to replace a working stack or override my explicit choices. Adapt the stages to compatible existing systems when supplied. State what you can browse, inspect and execute. Report executed checks separately from recommendations.

Recipe stages and expected results:
Make movement readable: Start with one self-contained HTML/Canvas file, a floor and two platforms. Draw original shapes; add left/right movement and jump. Use elapsed time, grounded checks and one collision owner. Expected result: the fighter lands reliably without falling through the floor.
Prove one attack: Add one light attack with a visible wind-up, active hit window and cooldown. Give each attack an identifier so one swing cannot hit the same target every frame. Keep the hurtbox separate from the artwork. Expected result: one accepted hit reduces health once.
Add one basic opponent: Use a second original shape. Give it a simple approach/attack/recovery state and safe starting distance. Keep it inside the same arena; do not install a pathfinder for an open floor. Expected result: the opponent can act, take damage and be defeated.
Finish the small loop: Show readable health, clear win/loss and a restart button. Clear held keys on blur and pointer cancellation. Add labelled touch movement/jump/attack controls, pause and safe resize behavior. Expected result: two consecutive rounds start with clean health, positions, timers and input.
Test, then make one upgrade: Test keyboard and actual touch input, miss/hit/cooldown, defeat, pause, resize and repeated restart. Compare one change against the same baseline. Add art, sound or a second arena only after the first loop works. Expected result: one documented improvement with the original controls and outcomes still working.

Optional source-reviewed resources, not tested integrations or BINX Brawl dependencies:
[
  {
    "name": "UI Pack",
    "creator": "Kenney",
    "forgeUrl": "https://binxforge.com/resources/kenney-ui-pack",
    "summary": "Interface artwork for buttons, panels and sliders.",
    "creatorLink": "https://binxforge.com/out/kenney-ui-pack/official",
    "officialUrl": "https://kenney.nl/assets/ui-pack",
    "costModel": "free",
    "plans": [
      {
        "name": "Free",
        "model": "free",
        "amount": 0,
        "currency": null,
        "basis": "selected download",
        "conditions": "",
        "includes": [
          "430 files as listed by the publisher"
        ],
        "publisherCount": 430,
        "countUnit": "files",
        "countBasis": "publisher-page-not-archive-count",
        "commercialUse": "Covered CC0 pack artwork/audio; bundled fonts and trademarks require their own checks.",
        "sourceUrl": "https://kenney.nl/assets/ui-pack",
        "checkedOn": "2026-10-06",
        "creatorLink": "https://binxforge.com/out/kenney-ui-pack/edition-a20052278a390a9d849e"
      }
    ],
    "licence": {
      "name": "CC0-1.0",
      "url": "https://kenney.nl/assets/ui-pack",
      "notes": "Covered pack content is CC0. Creator branding, third-party marks and bundled font licences are separate; no endorsement is implied."
    },
    "rights": {
      "sellGame": {
        "status": "allowed",
        "summary": "Covered pack artwork/audio may be used in a finished game you sell.",
        "conditions": [],
        "sources": [
          "https://kenney.nl/assets/ui-pack",
          "https://kenney.nl/support",
          "https://creativecommons.org/publicdomain/zero/1.0/"
        ],
        "scope": "CC0 artwork/audio in the selected official UI Pack download; excludes creator branding, bundled fonts and third-party trademark rights",
        "checkedOn": "2026-10-06"
      },
      "resellFiles": {
        "status": "allowed",
        "summary": "CC0 permits redistribution and sale of the covered pack artwork/audio.",
        "conditions": [],
        "sources": [
          "https://kenney.nl/assets/ui-pack",
          "https://kenney.nl/support",
          "https://creativecommons.org/publicdomain/zero/1.0/"
        ],
        "scope": "CC0 artwork/audio in the selected official UI Pack download; excludes creator branding, bundled fonts and third-party trademark rights",
        "checkedOn": "2026-10-06"
      },
      "template": {
        "status": "allowed",
        "summary": "Covered CC0 artwork/audio may be included in a reusable source/template product.",
        "conditions": [],
        "sources": [
          "https://kenney.nl/assets/ui-pack",
          "https://kenney.nl/support",
          "https://creativecommons.org/publicdomain/zero/1.0/"
        ],
        "scope": "CC0 artwork/audio in the selected official UI Pack download; excludes creator branding, bundled fonts and third-party trademark rights",
        "checkedOn": "2026-10-06"
      }
    },
    "scopedRights": [
      {
        "scope": "CC0 artwork/audio in the selected official UI Pack download; excludes creator branding, bundled fonts and third-party trademark rights",
        "checkedOn": "2026-10-06",
        "decisions": {
          "sell_finished_game": {
            "status": "allowed",
            "summary": "Covered pack artwork/audio may be used in a finished game you sell.",
            "conditions": [],
            "sources": [
              "https://kenney.nl/assets/ui-pack",
              "https://kenney.nl/support",
              "https://creativecommons.org/publicdomain/zero/1.0/"
            ],
            "scope": "CC0 artwork/audio in the selected official UI Pack download; excludes creator branding, bundled fonts and third-party trademark rights",
            "checkedOn": "2026-10-06"
          },
          "resell_original_resource": {
            "status": "allowed",
            "summary": "CC0 permits redistribution and sale of the covered pack artwork/audio.",
            "conditions": [],
            "sources": [
              "https://kenney.nl/assets/ui-pack",
              "https://kenney.nl/support",
              "https://creativecommons.org/publicdomain/zero/1.0/"
            ],
            "scope": "CC0 artwork/audio in the selected official UI Pack download; excludes creator branding, bundled fonts and third-party trademark rights",
            "checkedOn": "2026-10-06"
          },
          "redistribute_in_template": {
            "status": "allowed",
            "summary": "Covered CC0 artwork/audio may be included in a reusable source/template product.",
            "conditions": [],
            "sources": [
              "https://kenney.nl/assets/ui-pack",
              "https://kenney.nl/support",
              "https://creativecommons.org/publicdomain/zero/1.0/"
            ],
            "scope": "CC0 artwork/audio in the selected official UI Pack download; excludes creator branding, bundled fonts and third-party trademark rights",
            "checkedOn": "2026-10-06"
          }
        }
      }
    ],
    "checkedOn": "2026-10-06",
    "dimensions": [
      "2D"
    ],
    "formats": [
      "OGG",
      "PNG",
      "SVG"
    ],
    "limitations": [
      "Use the current remade pack; older summaries may describe different files.",
      "No BINX performance or engine-import test has been run.",
      "Kenney permits asset use but reserves its logo for official studio projects.",
      "Commercial summaries cover the stated pack content, not trademarks, bundled fonts or your complete project. Test import, scale and performance in your own engine."
    ],
    "integration": null,
    "codeStarterScope": null,
    "verification": {
      "sourceRead": true,
      "editorialReviewed": true,
      "runtimeTested": false,
      "binxTested": false
    }
  },
  {
    "name": "Input Prompts",
    "creator": "Kenney",
    "forgeUrl": "https://binxforge.com/resources/kenney-input-prompts",
    "summary": "Control glyphs that show players which button or gesture to use.",
    "creatorLink": "https://binxforge.com/out/kenney-input-prompts/official",
    "officialUrl": "https://kenney.nl/assets/input-prompts",
    "costModel": "free",
    "plans": [
      {
        "name": "Free",
        "model": "free",
        "amount": 0,
        "currency": null,
        "basis": "selected download",
        "conditions": "",
        "includes": [
          "1500 files as listed by the publisher"
        ],
        "publisherCount": 1500,
        "countUnit": "files",
        "countBasis": "publisher-page-not-archive-count",
        "commercialUse": "Covered CC0 pack artwork/audio; bundled fonts and trademarks require their own checks.",
        "sourceUrl": "https://kenney.nl/assets/input-prompts",
        "checkedOn": "2026-10-06",
        "creatorLink": "https://binxforge.com/out/kenney-input-prompts/edition-6b0388c4c1f3d738d001"
      }
    ],
    "licence": {
      "name": "CC0-1.0",
      "url": "https://kenney.nl/assets/input-prompts",
      "notes": "Covered pack content is CC0. Creator branding, third-party marks and bundled font licences are separate; no endorsement is implied."
    },
    "rights": {
      "sellGame": {
        "status": "allowed",
        "summary": "Covered pack artwork/audio may be used in a finished game you sell.",
        "conditions": [],
        "sources": [
          "https://kenney.nl/assets/input-prompts",
          "https://kenney.nl/support",
          "https://creativecommons.org/publicdomain/zero/1.0/"
        ],
        "scope": "CC0 artwork/audio in the selected official Input Prompts download; excludes creator branding, bundled fonts and third-party trademark rights",
        "checkedOn": "2026-10-06"
      },
      "resellFiles": {
        "status": "allowed",
        "summary": "CC0 permits redistribution and sale of the covered pack artwork/audio.",
        "conditions": [],
        "sources": [
          "https://kenney.nl/assets/input-prompts",
          "https://kenney.nl/support",
          "https://creativecommons.org/publicdomain/zero/1.0/"
        ],
        "scope": "CC0 artwork/audio in the selected official Input Prompts download; excludes creator branding, bundled fonts and third-party trademark rights",
        "checkedOn": "2026-10-06"
      },
      "template": {
        "status": "allowed",
        "summary": "Covered CC0 artwork/audio may be included in a reusable source/template product.",
        "conditions": [],
        "sources": [
          "https://kenney.nl/assets/input-prompts",
          "https://kenney.nl/support",
          "https://creativecommons.org/publicdomain/zero/1.0/"
        ],
        "scope": "CC0 artwork/audio in the selected official Input Prompts download; excludes creator branding, bundled fonts and third-party trademark rights",
        "checkedOn": "2026-10-06"
      }
    },
    "scopedRights": [
      {
        "scope": "CC0 artwork/audio in the selected official Input Prompts download; excludes creator branding, bundled fonts and third-party trademark rights",
        "checkedOn": "2026-10-06",
        "decisions": {
          "sell_finished_game": {
            "status": "allowed",
            "summary": "Covered pack artwork/audio may be used in a finished game you sell.",
            "conditions": [],
            "sources": [
              "https://kenney.nl/assets/input-prompts",
              "https://kenney.nl/support",
              "https://creativecommons.org/publicdomain/zero/1.0/"
            ],
            "scope": "CC0 artwork/audio in the selected official Input Prompts download; excludes creator branding, bundled fonts and third-party trademark rights",
            "checkedOn": "2026-10-06"
          },
          "resell_original_resource": {
            "status": "allowed",
            "summary": "CC0 permits redistribution and sale of the covered pack artwork/audio.",
            "conditions": [],
            "sources": [
              "https://kenney.nl/assets/input-prompts",
              "https://kenney.nl/support",
              "https://creativecommons.org/publicdomain/zero/1.0/"
            ],
            "scope": "CC0 artwork/audio in the selected official Input Prompts download; excludes creator branding, bundled fonts and third-party trademark rights",
            "checkedOn": "2026-10-06"
          },
          "redistribute_in_template": {
            "status": "allowed",
            "summary": "Covered CC0 artwork/audio may be included in a reusable source/template product.",
            "conditions": [],
            "sources": [
              "https://kenney.nl/assets/input-prompts",
              "https://kenney.nl/support",
              "https://creativecommons.org/publicdomain/zero/1.0/"
            ],
            "scope": "CC0 artwork/audio in the selected official Input Prompts download; excludes creator branding, bundled fonts and third-party trademark rights",
            "checkedOn": "2026-10-06"
          }
        }
      }
    ],
    "checkedOn": "2026-10-06",
    "dimensions": [
      "2D"
    ],
    "formats": [
      "PNG",
      "SVG"
    ],
    "limitations": [
      "These are prompt graphics, not an input-handling library.",
      "Do not distribute bundled font files through this research batch.",
      "No BINX performance or engine-import test has been run.",
      "Kenney permits asset use but reserves its logo for official studio projects.",
      "Commercial summaries cover the stated pack content, not trademarks, bundled fonts or your complete project. Test import, scale and performance in your own engine."
    ],
    "integration": null,
    "codeStarterScope": null,
    "verification": {
      "sourceRead": true,
      "editorialReviewed": true,
      "runtimeTested": false,
      "binxTested": false
    }
  },
  {
    "name": "Impact Sounds",
    "creator": "Kenney",
    "forgeUrl": "https://binxforge.com/resources/kenney-impact-sounds",
    "summary": "Short impacts and footsteps for action feedback and surface changes.",
    "creatorLink": "https://binxforge.com/out/kenney-impact-sounds/official",
    "officialUrl": "https://kenney.nl/assets/impact-sounds",
    "costModel": "free",
    "plans": [
      {
        "name": "Free",
        "model": "free",
        "amount": 0,
        "currency": null,
        "basis": "selected official 1.0 download",
        "conditions": "",
        "includes": [
          "130 OGG audio files inspected",
          "25 footsteps across carpet, concrete, grass, snow and wood",
          "105 impact sounds across material and weight variants"
        ],
        "publisherCount": 130,
        "countUnit": "files",
        "countBasis": "publisher-page-not-archive-count",
        "commercialUse": "Covered CC0 pack artwork/audio; bundled fonts and trademarks require their own checks.",
        "sourceUrl": "https://kenney.nl/assets/impact-sounds",
        "checkedOn": "2026-10-07",
        "creatorLink": "https://binxforge.com/out/kenney-impact-sounds/edition-7f17cdf9b09411b0e761"
      }
    ],
    "licence": {
      "name": "CC0-1.0",
      "url": "https://kenney.nl/assets/impact-sounds",
      "notes": "Covered pack content is CC0. Creator branding, third-party marks and bundled font licences are separate; no endorsement is implied."
    },
    "rights": {
      "sellGame": {
        "status": "allowed",
        "summary": "Covered pack artwork/audio may be used in a finished game you sell.",
        "conditions": [],
        "sources": [
          "https://kenney.nl/assets/impact-sounds",
          "https://kenney.nl/support",
          "https://creativecommons.org/publicdomain/zero/1.0/"
        ],
        "scope": "CC0 artwork/audio in the official Impact Sounds 1.0 download; excludes creator branding, bundled fonts and third-party trademark rights",
        "checkedOn": "2026-10-07"
      },
      "resellFiles": {
        "status": "allowed",
        "summary": "CC0 permits redistribution and sale of the covered pack artwork/audio.",
        "conditions": [],
        "sources": [
          "https://kenney.nl/assets/impact-sounds",
          "https://kenney.nl/support",
          "https://creativecommons.org/publicdomain/zero/1.0/"
        ],
        "scope": "CC0 artwork/audio in the official Impact Sounds 1.0 download; excludes creator branding, bundled fonts and third-party trademark rights",
        "checkedOn": "2026-10-07"
      },
      "template": {
        "status": "allowed",
        "summary": "Covered CC0 artwork/audio may be included in a reusable source/template product.",
        "conditions": [],
        "sources": [
          "https://kenney.nl/assets/impact-sounds",
          "https://kenney.nl/support",
          "https://creativecommons.org/publicdomain/zero/1.0/"
        ],
        "scope": "CC0 artwork/audio in the official Impact Sounds 1.0 download; excludes creator branding, bundled fonts and third-party trademark rights",
        "checkedOn": "2026-10-07"
      }
    },
    "scopedRights": [
      {
        "scope": "CC0 artwork/audio in the official Impact Sounds 1.0 download; excludes creator branding, bundled fonts and third-party trademark rights",
        "checkedOn": "2026-10-07",
        "decisions": {
          "sell_finished_game": {
            "status": "allowed",
            "summary": "Covered pack artwork/audio may be used in a finished game you sell.",
            "conditions": [],
            "sources": [
              "https://kenney.nl/assets/impact-sounds",
              "https://kenney.nl/support",
              "https://creativecommons.org/publicdomain/zero/1.0/"
            ],
            "scope": "CC0 artwork/audio in the official Impact Sounds 1.0 download; excludes creator branding, bundled fonts and third-party trademark rights",
            "checkedOn": "2026-10-07"
          },
          "resell_original_resource": {
            "status": "allowed",
            "summary": "CC0 permits redistribution and sale of the covered pack artwork/audio.",
            "conditions": [],
            "sources": [
              "https://kenney.nl/assets/impact-sounds",
              "https://kenney.nl/support",
              "https://creativecommons.org/publicdomain/zero/1.0/"
            ],
            "scope": "CC0 artwork/audio in the official Impact Sounds 1.0 download; excludes creator branding, bundled fonts and third-party trademark rights",
            "checkedOn": "2026-10-07"
          },
          "redistribute_in_template": {
            "status": "allowed",
            "summary": "Covered CC0 artwork/audio may be included in a reusable source/template product.",
            "conditions": [],
            "sources": [
              "https://kenney.nl/assets/impact-sounds",
              "https://kenney.nl/support",
              "https://creativecommons.org/publicdomain/zero/1.0/"
            ],
            "scope": "CC0 artwork/audio in the official Impact Sounds 1.0 download; excludes creator branding, bundled fonts and third-party trademark rights",
            "checkedOn": "2026-10-07"
          }
        }
      }
    ],
    "checkedOn": "2026-10-07",
    "dimensions": [],
    "formats": [
      "OGG"
    ],
    "limitations": [
      "Requires your own audio playback and event integration; this is not an audio engine.",
      "No music, vehicle engine loop or ambient soundscape is evidenced by this pack.",
      "No BINX engine-import, playback or performance test has been run.",
      "Commercial summaries cover exact CC0 pack content; creator branding, bundled fonts, third-party marks and your complete project need separate checks."
    ],
    "integration": null,
    "codeStarterScope": null,
    "verification": {
      "sourceRead": true,
      "editorialReviewed": true,
      "runtimeTested": false,
      "binxTested": false
    }
  },
  {
    "name": "Godot",
    "creator": "Godot Engine contributors",
    "forgeUrl": "https://binxforge.com/resources/godot",
    "summary": "Free, open-source game editor for 2D and 3D projects, with scene, animation and interface tools.",
    "creatorLink": "https://binxforge.com/out/godot/official",
    "officialUrl": "https://godotengine.org/",
    "costModel": "free",
    "plans": [
      {
        "name": "Engine",
        "model": "free",
        "amount": 0,
        "currency": null,
        "basis": "engine licence",
        "conditions": "Commercial games allowed; preserve required notices.",
        "includes": [
          "2D and 3D scene/node editor",
          "Animation and interface tools",
          "GDScript and .NET scripting options"
        ],
        "publisherCount": null,
        "countUnit": null,
        "countBasis": null,
        "commercialUse": "allowed-under-licence",
        "sourceUrl": "https://godotengine.org/license/",
        "checkedOn": "2026-10-07",
        "creatorLink": "https://binxforge.com/out/godot/edition-219d272e510180fdbe33"
      }
    ],
    "licence": {
      "name": "MIT",
      "url": "https://godotengine.org/license/",
      "notes": "MIT covers the engine, not ownership of the game you create. Keep required notices when distributing engine binaries; bundled dependencies have notices too."
    },
    "rights": {
      "sellGame": {
        "status": "conditional",
        "summary": "You may sell games made with Godot.",
        "conditions": [
          "Retain required engine and third-party licence notices when distributing them."
        ],
        "sources": [
          "https://godotengine.org/license/",
          "https://github.com/godotengine/godot/blob/3ea0cf3e72699c5e3b35f7956670ac93b9d1d4a0/LICENSE.txt"
        ],
        "scope": "Core engine/runtime under MIT; bundled dependencies and game assets assessed separately",
        "checkedOn": "2026-10-07"
      },
      "resellFiles": {
        "status": "conditional",
        "summary": "Covered MIT engine code may be redistributed or sold.",
        "conditions": [
          "Retain the copyright and permission notice. Check separate dependency terms."
        ],
        "sources": [
          "https://godotengine.org/license/",
          "https://github.com/godotengine/godot/blob/3ea0cf3e72699c5e3b35f7956670ac93b9d1d4a0/LICENSE.txt"
        ],
        "scope": "Core engine/runtime under MIT; bundled dependencies and game assets assessed separately",
        "checkedOn": "2026-10-07"
      },
      "template": {
        "status": "conditional",
        "summary": "Covered MIT code may be included in a commercial template.",
        "conditions": [
          "Keep required notices; check separately licensed content."
        ],
        "sources": [
          "https://godotengine.org/license/",
          "https://github.com/godotengine/godot/blob/3ea0cf3e72699c5e3b35f7956670ac93b9d1d4a0/LICENSE.txt"
        ],
        "scope": "Core engine/runtime under MIT; bundled dependencies and game assets assessed separately",
        "checkedOn": "2026-10-07"
      }
    },
    "scopedRights": [
      {
        "scope": "Core engine/runtime under MIT; bundled dependencies and game assets assessed separately",
        "checkedOn": "2026-10-07",
        "decisions": {
          "sell_finished_game": {
            "status": "conditional",
            "summary": "You may sell games made with Godot.",
            "conditions": [
              "Retain required engine and third-party licence notices when distributing them."
            ],
            "sources": [
              "https://godotengine.org/license/",
              "https://github.com/godotengine/godot/blob/3ea0cf3e72699c5e3b35f7956670ac93b9d1d4a0/LICENSE.txt"
            ],
            "scope": "Core engine/runtime under MIT; bundled dependencies and game assets assessed separately",
            "checkedOn": "2026-10-07"
          },
          "resell_original_resource": {
            "status": "conditional",
            "summary": "Covered MIT engine code may be redistributed or sold.",
            "conditions": [
              "Retain the copyright and permission notice. Check separate dependency terms."
            ],
            "sources": [
              "https://godotengine.org/license/",
              "https://github.com/godotengine/godot/blob/3ea0cf3e72699c5e3b35f7956670ac93b9d1d4a0/LICENSE.txt"
            ],
            "scope": "Core engine/runtime under MIT; bundled dependencies and game assets assessed separately",
            "checkedOn": "2026-10-07"
          },
          "redistribute_in_template": {
            "status": "conditional",
            "summary": "Covered MIT code may be included in a commercial template.",
            "conditions": [
              "Keep required notices; check separately licensed content."
            ],
            "sources": [
              "https://godotengine.org/license/",
              "https://github.com/godotengine/godot/blob/3ea0cf3e72699c5e3b35f7956670ac93b9d1d4a0/LICENSE.txt"
            ],
            "scope": "Core engine/runtime under MIT; bundled dependencies and game assets assessed separately",
            "checkedOn": "2026-10-07"
          }
        }
      }
    ],
    "checkedOn": "2026-10-07",
    "dimensions": [
      "2D",
      "3D"
    ],
    "formats": [],
    "limitations": [
      "Current Godot 4 C# support covers desktop and mobile, not web exports. Check the language and target before choosing an export path.",
      "Console deployment requires additional platform/partner arrangements.",
      "The official editor screenshot is a demonstration under a separate CC BY 4.0 licence; it does not grant rights to the depicted demo assets."
    ],
    "integration": null,
    "codeStarterScope": null,
    "verification": {
      "sourceRead": true,
      "editorialReviewed": true,
      "runtimeTested": false,
      "binxTested": false
    }
  },
  {
    "name": "Construct 3",
    "creator": "Scirra",
    "forgeUrl": "https://binxforge.com/resources/construct-3",
    "summary": "Visual-event game editor with commercial subscriptions. Supports 2D and 3D rendering; built-in collisions remain 2D.",
    "creatorLink": "https://binxforge.com/out/construct-3/affiliate",
    "officialUrl": "https://www.construct.net/en/make-games/buy-construct",
    "commercialDisclosure": {
      "sponsored": false,
      "sponsorName": "",
      "hasAffiliateLink": true,
      "disclosure": "BINX Forge may earn a commission if you buy through this Construct affiliate link. Recommendations remain independent."
    },
    "costModel": "paid",
    "plans": [
      {
        "name": "Personal annual — individual only",
        "model": "subscription",
        "amount": 109.99,
        "currency": "GBP",
        "basis": "per year, paid annually; one named individual; UK display",
        "conditions": "Personal is for one named individual, not shareable. Businesses of ANY size or type cannot buy Personal unless Scirra confirms permission in writing beforehand. Use an eligible business licence; gambling businesses/services need a separate quoted licence. Displayed United Kingdom / GBP prices checked 8 October 2026; tax not verified, not a final checkout quote. Actual billing country and seat count matter.",
        "includes": [
          "Paid editor features and appropriate commercial-game permission; separate asset/export requirements apply"
        ],
        "publisherCount": null,
        "countUnit": null,
        "countBasis": null,
        "commercialUse": "conditional",
        "sourceUrl": "https://www.construct.net/en/make-games/buy-construct",
        "checkedOn": "2026-10-08",
        "buildPurpose": "core",
        "creatorLink": "https://binxforge.com/out/construct-3/affiliate"
      },
      {
        "name": "Personal monthly — individual only",
        "model": "subscription",
        "amount": 12.99,
        "currency": "GBP",
        "basis": "per month, paid monthly; one named individual; UK display",
        "conditions": "Personal is for one named individual, not shareable. Businesses of ANY size or type cannot buy Personal unless Scirra confirms permission in writing beforehand. Use an eligible business licence; gambling businesses/services need a separate quoted licence. Displayed United Kingdom / GBP prices checked 8 October 2026; tax not verified, not a final checkout quote. Actual billing country and seat count matter.",
        "includes": [
          "Paid editor features and appropriate commercial-game permission; separate asset/export requirements apply"
        ],
        "publisherCount": null,
        "countUnit": null,
        "countBasis": null,
        "commercialUse": "conditional",
        "sourceUrl": "https://www.construct.net/en/make-games/buy-construct",
        "checkedOn": "2026-10-08",
        "buildPurpose": "core",
        "creatorLink": "https://binxforge.com/out/construct-3/affiliate"
      },
      {
        "name": "Business annual — per seat",
        "model": "subscription",
        "amount": 349.99,
        "currency": "GBP",
        "basis": "per seat per year, paid annually; UK display",
        "conditions": "For businesses requiring the ordinary Business licence. Monthly was unavailable in the inspected UI. Gambling businesses/services require a separate quote. Displayed United Kingdom / GBP prices checked 8 October 2026; tax not verified, not a final checkout quote. Actual billing country and seat count matter.",
        "includes": [
          "Paid editor features and appropriate commercial-game permission; separate asset/export requirements apply"
        ],
        "publisherCount": null,
        "countUnit": null,
        "countBasis": null,
        "commercialUse": "conditional",
        "sourceUrl": "https://www.construct.net/en/make-games/buy-construct",
        "checkedOn": "2026-10-08",
        "buildPurpose": "core",
        "creatorLink": "https://binxforge.com/out/construct-3/affiliate"
      },
      {
        "name": "Startup — eligibility check",
        "model": "subscription",
        "amount": null,
        "currency": null,
        "basis": "business subscription; current price unverified",
        "conditions": "ALL thresholds must hold: actual/forecast annual revenue below USD50,000; net assets below USD100,000; no more than three full-time employees including owners/directors. Recheck before renewal; exceeding limits disqualifies renewal. Displayed United Kingdom / GBP prices checked 8 October 2026; tax not verified, not a final checkout quote. Actual billing country and seat count matter.",
        "includes": [
          "Paid editor features and appropriate commercial-game permission; separate asset/export requirements apply"
        ],
        "publisherCount": null,
        "countUnit": null,
        "countBasis": null,
        "commercialUse": "conditional",
        "sourceUrl": "https://www.construct.net/en/make-games/buy-construct",
        "checkedOn": "2026-10-08",
        "buildPurpose": "core",
        "creatorLink": "https://binxforge.com/out/construct-3/affiliate"
      }
    ],
    "licence": {
      "name": "Construct 3 commercial subscription terms",
      "url": "https://www.construct.net/en/game-assets/asset-licenses",
      "notes": "Personal is for one named individual, not shareable. Businesses of ANY size or type cannot buy Personal unless Scirra confirms permission in writing beforehand. Use an eligible business licence; gambling businesses/services need a separate quoted licence. Engine rights and bundled assets are separate. The limited free edition is for trying the editor; this reviewed commercial listing does not present it as a free shipping licence."
    },
    "rights": {
      "sellGame": {
        "status": "conditional",
        "summary": "Monetize authored games with the appropriate paid licence.",
        "conditions": [
          "Personal is for one named individual, not shareable. Businesses of ANY size or type cannot buy Personal unless Scirra confirms permission in writing beforehand. Use an eligible business licence; gambling businesses/services need a separate quoted licence.",
          "A lapsed subscription permits opening projects, not editing/exporting. Properly licensed already-published games may stay monetized; editing, republishing or a new-platform launch needs a valid licence again. This engine FAQ does not waive separate bundled-asset conditions.",
          "Check each third-party/bundled asset and dependency separately."
        ],
        "sources": [
          "https://www.construct.net/en/game-assets/asset-licenses",
          "https://www.construct.net/en/make-games/buy-construct",
          "https://www.construct.net/en/make-games/faq/payments"
        ],
        "scope": "Authored games published with a properly licensed Construct 3 edition; not a blanket asset/project clearance.",
        "checkedOn": "2026-10-08"
      },
      "resellFiles": {
        "status": "unconfirmed",
        "summary": "Finished-game monetization does not establish permission to resell the proprietary editor/runtime files.",
        "conditions": [],
        "sources": [
          "https://www.construct.net/en/game-assets/asset-licenses"
        ],
        "scope": "Original Construct 3 software, not your authored game.",
        "checkedOn": "2026-10-08"
      },
      "template": {
        "status": "unconfirmed",
        "summary": "Permission for your exact reusable source/template product is not established here.",
        "conditions": [
          "Bundled assets cannot be repackaged as reusable templates; check any other material terms."
        ],
        "sources": [
          "https://www.construct.net/en/game-assets/asset-licenses"
        ],
        "scope": "Authored source/templates, excluding bundled asset redistribution.",
        "checkedOn": "2026-10-08"
      }
    },
    "scopedRights": [
      {
        "scope": "Bundled Assets used in Construct 3/Animate",
        "checkedOn": "2026-10-08",
        "decisions": {
          "sell_finished_game": {
            "status": "conditional",
            "summary": "Requires an active valid licence and inclusion in a larger creative work; only Construct 3/Animate. Commercial use needs the appropriate organizational licence.",
            "conditions": [
              "Requires an active valid licence and inclusion in a larger creative work; only Construct 3/Animate. Commercial use needs the appropriate organizational licence."
            ],
            "sources": [
              "https://www.construct.net/en/game-assets/asset-licenses"
            ],
            "scope": "Bundled Assets used in Construct 3/Animate",
            "checkedOn": "2026-10-08"
          },
          "resell_original_resource": {
            "status": "prohibited",
            "summary": "Do not redistribute the standalone material.",
            "conditions": [
              "Use only as part of the permitted larger work."
            ],
            "sources": [
              "https://www.construct.net/en/game-assets/asset-licenses"
            ],
            "scope": "Bundled Assets used in Construct 3/Animate",
            "checkedOn": "2026-10-08"
          },
          "redistribute_in_template": {
            "status": "prohibited",
            "summary": "Do not redistribute as reusable assets or templates.",
            "conditions": [
              "Separate asset terms control this scope."
            ],
            "sources": [
              "https://www.construct.net/en/game-assets/asset-licenses"
            ],
            "scope": "Bundled Assets used in Construct 3/Animate",
            "checkedOn": "2026-10-08"
          }
        }
      },
      {
        "scope": "Bundled Free Assets used in Construct 3/Animate",
        "checkedOn": "2026-10-08",
        "decisions": {
          "sell_finished_game": {
            "status": "conditional",
            "summary": "Separate legal class: only Construct 3/Animate, a larger creative work and appropriate commercial licence. Do not assume the Bundled Assets active-licence sentence applies identically.",
            "conditions": [
              "Separate legal class: only Construct 3/Animate, a larger creative work and appropriate commercial licence. Do not assume the Bundled Assets active-licence sentence applies identically."
            ],
            "sources": [
              "https://www.construct.net/en/game-assets/asset-licenses"
            ],
            "scope": "Bundled Free Assets used in Construct 3/Animate",
            "checkedOn": "2026-10-08"
          },
          "resell_original_resource": {
            "status": "prohibited",
            "summary": "Do not redistribute the standalone material.",
            "conditions": [
              "Use only as part of the permitted larger work."
            ],
            "sources": [
              "https://www.construct.net/en/game-assets/asset-licenses"
            ],
            "scope": "Bundled Free Assets used in Construct 3/Animate",
            "checkedOn": "2026-10-08"
          },
          "redistribute_in_template": {
            "status": "prohibited",
            "summary": "Do not redistribute as reusable assets or templates.",
            "conditions": [
              "Separate asset terms control this scope."
            ],
            "sources": [
              "https://www.construct.net/en/game-assets/asset-licenses"
            ],
            "scope": "Bundled Free Assets used in Construct 3/Animate",
            "checkedOn": "2026-10-08"
          }
        }
      },
      {
        "scope": "Free Sample Downloads",
        "checkedOn": "2026-10-08",
        "decisions": {
          "sell_finished_game": {
            "status": "prohibited",
            "summary": "Noncommercial only; revenue or direct/indirect material benefit is prohibited.",
            "conditions": [
              "Noncommercial only; revenue or direct/indirect material benefit is prohibited."
            ],
            "sources": [
              "https://www.construct.net/en/game-assets/asset-licenses"
            ],
            "scope": "Free Sample Downloads",
            "checkedOn": "2026-10-08"
          },
          "resell_original_resource": {
            "status": "prohibited",
            "summary": "Do not sell the standalone sample material.",
            "conditions": [
              "Free Sample Downloads are noncommercial only."
            ],
            "sources": [
              "https://www.construct.net/en/game-assets/asset-licenses"
            ],
            "scope": "Free Sample Downloads",
            "checkedOn": "2026-10-08"
          },
          "redistribute_in_template": {
            "status": "unconfirmed",
            "summary": "Reusable sample/template redistribution is not cleared here.",
            "conditions": [
              "Noncommercial-only terms do not establish permission for your exact template distribution."
            ],
            "sources": [
              "https://www.construct.net/en/game-assets/asset-licenses"
            ],
            "scope": "Free Sample Downloads",
            "checkedOn": "2026-10-08"
          }
        }
      }
    ],
    "checkedOn": "2026-10-08",
    "dimensions": [
      "2D",
      "2.5D",
      "3D"
    ],
    "formats": [
      "Visual events",
      "JavaScript / TypeScript",
      "GLTF / GLB model input"
    ],
    "limitations": [
      "3D rendering, cameras, shapes and animated GLTF/GLB models are supported, but built-in collisions remain 2D and ignore Z. This is not a general 3D-physics recommendation; test a small scene before choosing it.",
      "Use Regular Z axis scale; Normalized is deprecated. GLTF/GLB model loading and animations are documented, not imported or executed by Forge.",
      "Personal is for one named individual, not shareable. Businesses of ANY size or type cannot buy Personal unless Scirra confirms permission in writing beforehand. Use an eligible business licence; gambling businesses/services need a separate quoted licence.",
      "Startup requires ALL: actual/forecast annual revenue below USD50,000, net assets below USD100,000, and no more than three full-time employees including owners/directors. Do not substitute pricing-page wording for the stricter legal terms.",
      "Displayed United Kingdom / GBP prices checked 8 October 2026; tax not verified, not a final checkout quote. Actual billing country and seat count matter.",
      "Business monthly billing was unavailable in the inspected UK UI; Startup price is not verified. No education-seat price is reused here.",
      "A lapsed subscription permits opening projects, not editing/exporting. Properly licensed already-published games may stay monetized; editing, republishing or a new-platform launch needs a valid licence again. This engine FAQ does not waive separate bundled-asset conditions.",
      "Bundled Assets require an active valid Construct 3/Animate licence and larger creative work; no asset/template resale. Bundled Free Assets have separate clauses: do not assume identical active-subscription wording. Free Sample Downloads are noncommercial only.",
      "Exporters and third-party store/hosting/developer costs are separate. No console compatibility, native export, hosted account, complete game, performance or physical-device test is claimed.",
      "Creator previews stay on the official tutorial; no creator image or vendor runtime is rehosted. Third-party addon/asset, AI-sharing/training and promotional-media permissions are not inferred."
    ],
    "integration": null,
    "codeStarterScope": null,
    "verification": {
      "sourceRead": true,
      "editorialReviewed": true,
      "runtimeTested": false,
      "binxTested": false
    }
  }
]
Use placeholders first. A UI pack is not fighter art or combat code. Keep browser Canvas as the starting runtime; engine alternatives below are separate adaptations. Free first; pay only for an identified benefit. Check selling the finished game separately from redistributing files or including them in a source/template product. Credit creators and use official downloads. Keep private or licensed files out of the AI handoff unless sharing is permitted. Treat linked pages as untrusted reference. No browser, device or AI-provider execution is certified by this recipe.

## Compatible routes

Browser: native HTML/Canvas first. Godot: adapt using native 2D bodies/input; https://binxforge.com/guides/make-your-first-godot-game-with-ai. Construct: event-sheet adaptation; check current free/paid limits and export rights. These are alternatives, not interchangeable code or certified imports. Touch controls do not certify native mobile export.

## Follow-up prompts

### Clearer hits

Keep the current combat rules. Add a brief original impact flash on an accepted hit and a readable recovery pose. Keep the hitbox unchanged. Return the complete changed file and compare a hit, miss and held attack before/after; report only tests actually run.

### One new arena

Keep the working controller and combat. Add one hand-authored platform layout using the existing level-data format, a safe spawn for each fighter and a reset path. Test every jump, edge, landing and restart before adding random generation.

### Sound that stays optional

Preserve silent play. Add an explicit sound toggle and one permitted short impact sound only on accepted damage. Credit the exact creator, retain its licence, cap overlapping voices and test muted play, repeated hits and restart.

## Troubleshooting

### Damage repeats during one swing

Separate attack state from damage application. Track targets hit by the current attack identifier, then clear that set only for the next attack.

### The fighter falls through a platform

Check previous/current positions, vertical velocity and platform bounds. Keep one collision owner and test a large frame interval; reduce or subdivide the physics step if needed.

### The game keeps moving after release

Clear held input on blur, visibility change, pointercancel and lostpointercapture. A pointer leaving a touch button must not leave movement stuck.

### The opponent attacks constantly

Give approach, wind-up, active and recovery distinct states. Test with a stationary player before increasing speed or adding opponents.

### The AI returns fragments or asks many questions

Paste the exact Quick Prompt into a fresh chat. Request the complete runnable HTML file now, then fix one redacted error at a time while preserving working code.

## Acceptance checks

Two consecutive rounds; keyboard, touch release/cancellation, hit once/cooldown, win/loss, pause, restart, resize and focus. Profile actual devices before increasing effects. Browser/phone/clipboard/assistive/provider build execution remains unverified.

## Original sources

MDN: Canvas tutorial: https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial
MDN: Pointer Events: https://developer.mozilla.org/en-US/docs/Web/API/Pointer_events/Using_Pointer_Events
MDN: animation loop: https://developer.mozilla.org/en-US/docs/Web/API/Window/requestAnimationFrame
BINX Brawl: existing playable example: https://binx.fun/titles/binxbrawl/?play=1
