2D Movement , Juice & Feel
Overview
Context
This project was a solo-developed university assignment focused on game juice & feel. It builds on my Assessment 1 prototype (forgiveness mechanics), and this version’s goal was to add new mechanics and significantly improve feedback through particles, lighting, and audio.
This is Assesment 2. Assessment 1 was primarily about making movement feel fair and responsive (forgiveness mechanics). For this version, I kept that foundation and focused on what makes actions feel satisfying and readable: strong visual/audio feedback, smoother transitions between states, and mechanics that create distinct “moments” for the player.
This project features a series of systems:
- Forgiveness mechanics carried over (Assessment 1 foundation): variable jump height, coyote time, jump buffering, sticky feet on land, and speedy apex .
- Splatoon-inspired traversal mechanics: a squid form that can traverse both ground and walls to open up movement routes and pace changes.
- 8-direction dash system: responsive directional movement with clear feedback and timing (supports faster traversal and repositioning, available in squid made as well).
- Afterimage / trail effects using object pooling: adds impact to fast movement while staying performance-friendly.
- Particle effects & lighting polish: gameplay states are reinforced with VFX and scene feedback to improve clarity and “juice”.
- Audio feedback layer: All Actions such as walking , shooting , squid mode , jumping ( Push off & Land) , dashing and others such as checkpoint enter , destructable object damage.
- Ink-style ability (prototype): currently limited in gameplay impact beyond interacting with a specific object type, but acts as a base for expanding paint-driven mechanics later.
Highlights
General
External Assets Used
What I learned
This project helped me understand that “game feel” is not one feature — it’s a stack of small systems working together:
- Feedback layering matters: the same mechanic feels completely different once it has clear VFX timing, sound cues, and readable lighting.
- Responsiveness > complexity: small forgiveness / movement tweaks and consistent feedback made more difference than adding lots of new mechanics.
- Pooling isn’t just optimisation — it protects feel: pooling the dash afterimages meant the effect stayed smooth and consistent during repeated dashes instead of risking spikes from instantiate/destroy.
- Events are great for decoupling: using events (e.g., squid mode changing offsets / UI energy updates) kept systems modular instead of hard-wiring references everywhere.
- Iteration workflow: exposing values (energy drain/regen, dash duration/cooldown, audio pitch/volume) made playtesting + tuning much faster and stopped me “guessing” in code.




