Godot Genre Platformer logo

Godot Genre Platformer

Community
thedivergentai
godot-genre-platformer

Expert blueprint for platformer games including precision movement (coyote time, jump buffering, variable jump height), game feel polish (squash/stretch, particle trails, camera shake), level design principles (difficulty curves, checkpoint placement), collectible systems (progression rewards), and accessibility options (assist mode, remappable controls). Based on Celeste/Hollow Knight design research. Trigger keywords: platformer, coyote_time, jump_buffer, game_feel, level_design, precision_movement.

Overview

Publisherthedivergentai
RepositoryGD-Agentic-Skills
Skill namegodot-genre-platformer
Stars
727
Forks
43
Bundled files
19
LicenseLGPL-3.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 19 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by thedivergentai on GitHub. Read the source before you install it.

Installation

Install the Godot Genre Platformer AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/thedivergentai/GD-Agentic-Skills.git /tmp/GD-Agentic-Skills
mkdir -p .claude/skills
cp -r /tmp/GD-Agentic-Skills/skills/godot-genre-platformer .claude/skills/godot-genre-platformer
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Godot Genre Platformer in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Godot Genre Platformer on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Godot Genre Platformer is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

NEVER Do (Expert Anti-Patterns)

Physics & Movement Feel

  • NEVER multiply velocity by delta before move_and_slide(); the method internalizes the timestep.
  • NEVER skip Coyote Time (approx 0.1s); without this grace period, jumps will feel unresponsive when walking off ledges.
  • NEVER ignore Jump Buffering (approx 0.15s); players expect to jump the instant they touch the ground if they pressed the button early.
  • NEVER use a fixed jump height; strictly implement Variable Jump Height (cut velocity on release) for player expression.
  • NEVER forget to scale gravity by delta before adding to velocity; gravity is an acceleration and must be frame-rate independent.
  • NEVER rely on discrete collision for high-speed movement; strictly use CCD_MODE_CAST_RAY to prevent tunneling through geometry.
  • NEVER use move_and_collide() for standard traversal; it lacks the slope/stair handling of move_and_slide().
  • NEVER check coyote or buffer timers using exact equality (== 0.0); strictly use is_equal_approx() or >= 0.0.

Polish & Level Design

  • NEVER use linear camera snapping; strictly use Camera Smoothing or lerp() to prevent motion sickness.
  • NEVER skip Squash and Stretch on jump/land; movement feels weightless without these subtle visual "juice" cues.
  • NEVER create Blind Jumps; strictly use camera look-ahead or zoom triggers to reveal landing zones.
  • NEVER use individual Sprite2D nodes for level geometry; strictly use TileMapLayer for optimized collision and rendering.
  • NEVER use complex/concave CollisionShape2D for the player; strictly favor primitive shapes (Capsule/Rectangle) for stability.

Architecture & Performance

  • NEVER use CharacterBody2D for simple moving platforms; strictly use AnimatableBody2D and enable sync_to_physics.
  • NEVER ignore platform_on_leave for descending platforms; use PLATFORM_ON_LEAVE_ADD_UPWARD_VELOCITY to preserve jump impulse.
  • NEVER disable recovery_as_collision on the player character; it is required for correct floor snapping reports.
  • NEVER use the ! (NOT) operator in AnimationTree expressions; strictly use is_walking == false.
  • NEVER use standard Strings for high-frequency state checks; strictly use StringName (e.g., &"jumping").
  • NEVER load heavy level chunks synchronously; strictly use ResourceLoader.load_threaded_request() to prevent frame stutters.

Available Scripts

MANDATORY: For movement feel, read the controller + modules — do not re-implement coyote/buffer/variable-jump inline.

Controllers (golden path)

Movement modules

World / camera / polish


Core Loop

Jump → Navigate Obstacles → Reach Goal → Next Level

Skill Chain

godot-project-foundations, godot-characterbody-2d, godot-input-handling, godot-2d-animation, godot-audio-systems, godot-tilemap-mastery, godot-camera-systems, godot-monte-carlo-balancer


Movement Feel — Decision Knobs (not tutorials)

MANDATORY read: advanced_platformer_controller.gd plus coyote_timer.gd / jump_buffer.gd / variable_jump.gd. Copy those modules; do not paste coyote/buffer recipes here.

Tune only these knobs in project code after reading the scripts:

KnobExpert default / note
Coyote window~0.1s — without it, ledge jumps feel broken
Jump buffer~0.15s — early press must land as jump
Variable jumpCut upward velocity on release
Apex / fall gravityHigher fall multiplier after apex = snappier landings
CCDEnable cast-ray CCD for fast projectiles / dashes
Moving platformsAnimatableBody2D + sync_to_physics; set platform_on_leave
One-waysone_way_drop_handler.gd — mask/layers, not ad-hoc disable

Ground: instant direction response. Air: slightly reduced accel. Gravity scaled by delta; never velocity *= delta before move_and_slide().


Level Design Principles

The "Teaching Trilogy"

  1. Introduction — safe learn → 2. Challenge — moderate risk → 3. Twist — combine / time pressure

Flow and Pacing

Easy → Easy → Medium → CHECKPOINT → Medium → Hard → CHECKPOINT → Boss

Camera

Use platformer_camera.gd / peer godot-camera-systems for look-ahead — never blind jumps.


Platformer Sub-Genres

  • Precision (Celeste / Super Meat Boy) — instant respawn, tight controls, frequent checkpoints
  • Collectathon — hub worlds, ability unlocks, backtracking
  • Puzzle — slow pacing, environmental physics
  • Metroidvania — route to godot-genre-metroidvania

Common Pitfalls

PitfallSolution
Floaty jumpsIncrease fall gravity after apex
Imprecise landingsCoyote + buffer modules + land juice
Unfair deathsHazards telegraphed before contact
Blind jumpsLook-ahead camera / zoom triggers
Boring mid-gameNew mechanic every 2–3 levels

Polish Checklist

  • Dust particles on land/run
  • Screen shake on heavy landings (godot-camera-systems trauma)
  • Squash/stretch on jump/land (visual pivot at feet)
  • SFX for jump/land/wall-slide
  • Checkpoint visual/audio feedback
  • Assist mode / remappable controls

MANDATORY for depth beyond decision trees and script catalog: platformer-movement-deep.md. Do NOT Load on first-pass wiring — use bundled scripts/ first.

Godot-Specific Tips

  1. CharacterBody2D vs RigidBody2D: Always use CharacterBody2D for platformer characters - precise control is essential
  2. Physics tick rate: Consider 120Hz physics for smoother movement
  3. One-way platforms: Use set_collision_mask_value() or dedicated collision layers
  4. Wall detection: Use is_on_wall() and get_wall_normal() for wall jumps

Example Games for Reference

  • Celeste - Perfect game feel, assist mode accessibility
  • Hollow Knight - Combat + platforming integration
  • Super Mario Bros. Wonder - Visual polish and surprises
  • Shovel Knight - Retro mechanics with modern feel

Reference

Progressive disclosure: open Official Documentation links only when researching a specific API; load Related Skills when routing to a peer domain — do not preload the whole lattice.

Official Documentation

  • Using CharacterBody2D — move_and_slide floor/wall/ceiling reports, slope snap, and platform_on_leave behavior that platformer feel depends on.
  • CharacterBody2D — floor_constant_speed, floor_snap_length, recovery_as_collision, and motion-mode knobs for precision controllers.
  • Physics introduction — collision layers/masks for player, one-ways, hazards, and projectiles without accidental overlaps.
  • Collision shapes (2D) — why capsule/rectangle player shapes stay stable vs concave geometry.
  • 2D movement overview — CharacterBody vs RigidBody tradeoffs and common input→velocity patterns.
  • Using TileMaps — TileMapLayer collision for level geometry instead of per-sprite StaticBodies.
  • Using TileSets — one-way collision and physics layers authored in the tileset for drop-through platforms.
  • AnimatableBody2D — sync_to_physics moving platforms that riders must stick to without jitter.
  • Camera2D — position smoothing, drag margins, and look-ahead offsets that prevent blind jumps and motion sickness.
  • Using AnimationTree — boolean advance conditions for idle/run/air states without unsafe expression negation.
  • Ray-casting — nodeless wall-slide and ledge queries via PhysicsDirectSpaceState2D.
  • Input examples — action just-pressed/released patterns behind jump buffer and variable jump cutoff.

Related Skills

Prerequisites
  • godot-project-foundations — project settings, input map actions, and scene structure before wiring coyote/buffer timers.
  • godot-characterbody-2d — move_and_slide grounding, slopes, and wall normals that every precision jump builds on.
  • godot-input-handling — remappable jump/move actions and unhandled-input buffering for assist-mode accessibility.
Complements
  • godot-2d-physics — layers, CCD, Area2D hazards, and AnimatableBody platforms beyond the controller core.
  • godot-tilemap-mastery — TileMapLayer/TileSet one-ways and collision painting for teachable level geometry.
  • godot-camera-systems — look-ahead, room cameras, and smoothing that reveal landings without blind jumps.
  • godot-animation-tree-mastery — AnimationTree conditions synced from is_on_floor / velocity for juice-safe state graphs.
  • godot-2d-animation — squash/stretch and land/run cycles that sell weight after physics resolves.
  • godot-particles — dust trails and land puffs called from jump/land events.
  • godot-audio-systems — jump/land/wall-slide SFX timing that reinforces responsive feel.
  • godot-monte-carlo-balancer — sample coyote/buffer/gravity/jump knobs and level difficulty curves before shipping assist defaults.
Downstream / consumers
Master
  • godot-master — library router and mirrored module entry for cross-skill discovery.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Godot Genre Platformer AI skill do?

Expert blueprint for platformer games including precision movement (coyote time, jump buffering, variable jump height), game feel polish (squash/stretch, particle trails, camera shake), level design principles (difficulty curves, checkpoint placement), collectible systems (progression rewards), and accessibility options (assist mode, remappable controls). Based on Celeste/Hollow Knight design research. Trigger keywords: platformer, coyote_time, jump_buffer, game_feel, level_design, precision_movement.

Why use Godot Genre Platformer on TypingMind?

Because you install it once and use it with any model. Godot Genre Platformer is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Godot Genre Platformer in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/thedivergentai/GD-Agentic-Skills/tree/main/skills/godot-genre-platformer. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Godot Genre Platformer?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Godot Genre Platformer?

As many as you like. As long as a model supports skills, you can use Godot Genre Platformer with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Godot Genre Platformer AI skill free?

Yes. It is published on GitHub by thedivergentai under the LGPL-3.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇