Metal Slug demo: tileset art, parallax, camera shake, debug overlay - #30
Merged
Conversation
…jump-and-background
…jump-and-background
…compiled binary WorldScene had grown past the file-size guideline after absorbing spawn/hit-detection logic; move spawnEntity, updateProjectiles, and the AABB/payload helpers into a new spawn.go so world_scene.go stays focused on Setup/Update/Draw. CLAUDE.md and README.md still described the pre-frameengine/ package layout and an already-resolved scene-registration FIXME; update both to match the current structure. Also stop tracking the accidentally-committed `goengine` build binary. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Scopes out what it would actually take to benchmark Go/Ebiten against a native rendering backend (raylib or OpenGL) or a full C++ rewrite, sized against the current codebase's line counts and coupling to *ebiten.Image. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Replaces level1.yaml's flat-color bg_stripe_0..11 placeholder with a real two-layer parallax background (sky + mountains) using the SideviewSciFi sci-fi asset pack. ParallaxLayer is drawn directly to screen -- outside the level-sized world buffer everything else scrolls through -- so each layer can move at its own fraction of the camera's scroll (sky fixed, mountains drifting slowly) and tile to cover the viewport regardless of the source art's small native size. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…rams
Camera shake: Camera gains ShakeX/ShakeY, driven by a new CameraShake
process (frameengine/view/camera/shake.go) attached to a per-scene
process.Manager. Triggered by scripts via engine.emit("ShakeCamera",
{...}); sphere_timer.py now fires it alongside its existing explosion
SpawnEntity call, covering both the falling-sphere hazard and enemy_bomber's
lobbed bomb for free. Multiple concurrent shakes add rather than overwrite,
since WorldScene zeroes Shake{X,Y} once per frame before running processes.
Also adds docs/diagrams/: six PlantUML sequence diagrams (plus rendered
PNGs) walking a new dev from engine boot through the frame loop down to
concrete gameplay flows (shooting, the bomber/explosion/shake chain,
physics contacts driving jump state).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Replaces the flat-color Block placeholders on ground/crate_1..3/platform_1..4 with sprites cropped from sci-fi-environment-tileset.png -- the same sheet bg_mountains already draws from, for a consistent canyon palette. Adds Sprite.RepeatWidth (world-space horizontal tiling, no camera math needed, unlike ParallaxLayer.Repeat) so the ground and platform-top art -- small repeating strips -- can tile to each object's width instead of stretching. physics_body on every reskinned object now carries its width/height explicitly: PhysicsSystem previously sized these from the sibling Block component, which no longer exists, and would otherwise silently default to 64x64. Values are copied from the old Block entries, so collision behavior is unchanged (verified via the boot-time physics body size log). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Extends the F3 debug overlay with an event-bus throughput counter (Bus.TakeEventCount), OS/GL version info, and process memory stats (POSIX-only, with a fallback for other platforms), so perf issues can be diagnosed without external tooling. Also records ADR-013 on image generation agent options and adds the Sci-Fi sideview asset pack used by metalslug_demo. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
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.
Summary
world_scene.goand refreshed docsParallaxLayercomponent and used it for level1's backgroundBus.TakeEventCount, OS/GL version, RSS) behind the existing F3 toggle, and ADR-013 (image generation agent options)Test plan
go build ./...go test ./...🤖 Generated with Claude Code