Repository navigation
Research: two pixel art asset sets for a platformer (Celeste scale and Metal Slug scale) - #158
Closed
SandroMaglione wants to merge 9 commits into
Closed
SandroMaglione wants to merge 9 commits into
SandroMaglione wants to merge 9 commits into
Conversation
A test of the pixel-art skill and the art-direction research on a Celeste-like platformer: 320x180, 8 px tiles, one Endesga 32 subset. The planes recede toward the haze and loop horizontally, and the terrain is a 47-tile blob autotile drawn per pixel from its neighbours, so one function decides every edge, rim, and corner. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HendNaZcTpUubQBWodQy33
The fruit, spring, and checkpoint are sprite sources rendered by `ritmo-tools pixel render`; dash, dust, and collect are fx drafts checked and rendered by `ritmo-tools fx`, with the player as stand-in, so these use the tools' own paths rather than the generator. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HendNaZcTpUubQBWodQy33
The player is drawn as fill parts with one generated outline, so every frame keeps the same outline weight; the mockup stacks every plane as the game would, so the whole look can be judged at once. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HendNaZcTpUubQBWodQy33
Keeps each choice (grid, palette, light, outlines, read order) tied to the research it came from, and names what still looks weak. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HendNaZcTpUubQBWodQy33
…om code A second asset set at a larger scale (384x216, 16 px tiles, a 48 px player frame), to show what Metal Slug's density of detail changes against the first set's 8 px grid. The palette is 60 colors of AAP-64, whose long ramps give each material five or six steps. The terrain is the same per-pixel blob autotile as set one, with a facing of cut blocks over dark earth, so one function still decides every edge. make.py also draws the player, props, and mockup; those land next. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HendNaZcTpUubQBWodQy33
The first set's player was stiff because each frame was typed by hand. Here limbs are capsules posed by joint angles, so lengths hold from frame to frame and each animation is its key poses: an 8-frame run with arm swing, a jump distinct from the fall, a flat dash, a wall slide, and a squash on landing. The ponytail lags a frame for secondary motion, and the backpack's cell shows whether a dash is ready. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HendNaZcTpUubQBWodQy33
The cog, spring, beacon, and scrap beetle are drawn in make.py with the player's outline rule; dash, dust, and collect are fx drafts checked and rendered by ritmo-tools fx against the new player as stand-in. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HendNaZcTpUubQBWodQy33
Every plane stacked as the game would, plus set one's player and room beside this set's at the same zoom, so the change in scale is seen, not described. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HendNaZcTpUubQBWodQy33
…ate it Ties each choice (grid, palette, light, sel-out, detail budget) to the Metal Slug reference and the research, says what changed with scale against set one, and names what still looks weak. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HendNaZcTpUubQBWodQy33
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Sandro · project thread
Two original asset sets for a platformer, made with the
ritmo-pixel-artskill, the art direction, effects, and platformer research (#157, #156, #151), andritmo-tools(pixel lint,pixel render,fx check/look/render). Repo-only: everything lives inpackages/core/genres/, which is not published. Each set is drawn by its own deterministicmake.py(Python + Pillow).Set one: Celeste scale (
PLATFORMER-ASSETS.md,platformer-assets/)Set two: Metal Slug scale (
PLATFORMER-ASSETS-DETAILED.md,platformer-assets-detailed/)Tool gaps found
pixel sheetcannot cut a regular grid (--frame 16x16); frames that touch merge.pixel renderalways writes PNG, SVG and preview, and doubles the suffix in its default name.pixel linthas no accept list for deliberate single pixels, no notion of a composed scene, and one colour limit for every asset.fxtakes palette names while sprite sources take hex, and flags near-duplicates in the source palette with no palette-wide accept.Weak spots
🤖 Generated with Claude Code
https://claude.ai/code/session_01HendNaZcTpUubQBWodQy33