CtrlK
BlogDocsLog inGet started
Tessl Logo

ebiten

github.com/hajimehoshi/ebiten

SkillAddedReview
avoiding-blurry-ebitengine-rendering

skills/avoiding-blurry-ebitengine-rendering/SKILL.md

Use when creating an Ebitengine application or changing layout, text, UI, image scaling, or final presentation, and when diagnosing blurry rendering. Covers display-resolution rendering, font rasterization, sampling filters, coordinate transforms, and optional mixed-resolution layers. Apply even to pixel-art games with sharp UI, without requiring a low-resolution game screen.

69

efficient-ebitengine-rendering

skills/efficient-ebitengine-rendering/SKILL.md

Use when writing or changing Ebitengine drawing code, arranging sprites or offscreen passes, or investigating rendering performance. Explains automatic draw batching, texture atlases, render dependencies, and how to inspect actual GPU commands. Apply during implementation, before performance problems appear.

—

—
run-ebitengine-app-headless

skills/run-ebitengine-app-headless/SKILL.md

Use this skill to run an Ebitengine app (anything implementing ebiten.Game) headlessly and programmatically — no visible window and no changes to the app's source — to test, debug, screenshot, or otherwise exercise it. It launches the app as a vmhost guest, drives it through its ticks faster than real time, injects keyboard / mouse / touch / gamepad / text input, reads the rendered frame back as pixels to assert on or dump as a PNG, and observes the audio the app plays. Use when you need input injection, deterministic multi-tick runs, golden-image checks, or audio assertions — for example to reproduce an input-dependent bug, verify behavior after a sequence of clicks or key presses, check that the right sound plays, capture a single rendered frame, or let an AI agent drive an app end-to-end.

75

writing-kage-shaders

skills/writing-kage-shaders/SKILL.md

Use this skill when writing, reviewing, debugging, or porting a Kage shader for Ebitengine — anything involving `//kage:unit pixels`, `ebiten.NewShader`, `DrawTrianglesShader`, `DrawRectShader`, or a `Fragment(dstPos vec4, src0Pos vec2, color vec4) vec4` entry point. Use it especially when translating an existing shader from GLSL, Shadertoy, HLSL, MSL, Godot, or Unity, where the source assumes 0..1 texture coordinates, `gl_FragCoord`, `texture()` sampling, a bottom-left origin, `uniform` declarations, a ternary operator, or straight (non-premultiplied) alpha — every one of which is wrong in Kage. Covers the atlas-relative coordinate model, sampling several source images of different sizes, premultiplied alpha, the Go subset Kage actually accepts, and how to compile-check a shader without a GPU.

—

—