Posted August 21, 2021 by komehara
#release #physics #visual #optimization
For SAGE (Sonic Amateur Games Expo) 2021 I’m releasing the first non-alpha version of pico sonic: v6.0!
Link to SAGE entry here.
I completely skipped the beta phase and just decided to consider this the first “serious” release as I did big changes, esp. regarding physics.
Complete overhaul of the character physics update: instead of moving pixel by pixel, it moves by several pixels at once then escapes ground, wall and ceiling colliders, as in the original games. This brought a huge optimization and increased FPS from 30 to 60 on the overall stage (when combined with the sprite rotation optimization, see Misc improvements).
Before (v5.4)
After (v6.0)
Sonic can now crouch and if he stays crouched for a moment, look down. Although not as useful as other moves, especially when there is nothing to dodge, peeking down can be helpful in some places.
But to tell the truth, the main reason for implementing Crouch was to add…
Sonic can now spin dash! Since he’s exploring Angel Island, it made more sense to give him a moveset closer to Sonic 3. This completely change speedrunning attempts, but is also helpful to get emeralds more quickly. It’s also easier to get past some loops when coming from the wrong side, and hopefully it will help you get that nasty yellow emerald!
I also coded a simple particle system to give a nice dust effect behind the character, but it ended up costing too many characters for PICO-8 and had to be cut from release… I guess the animated sprite approach from the original game would have been cheaper.
But just for your eyes, here is a demo of the dust particle system before it got cut:
A feature not present in the original games but coming from modern platformers, it is now possible to jump up to 6 frames after leaving the ground by falling off a cliff. This allows more permissive jumps from cliff edges. The feature can be disabled in the pause menu (Late jump > press left/right to switch off).
After a first version where I found rocks too small, and the previous version (5.4) where rocks were wide enough but a bit too tall, I finally found a compromise with rocks at an intermediate size, smaller than the ones from 5.4.
Original game
Before (v5.4)
After (v6.0)
It was difficult to tune it because the stage and the character have been scaled differently from the original game sprites. To fit in 16x16, the character is slightly smaller than it should be, compared to the environment scale. So scaling rocks to fit the environment perfectly would make them too big. Scaling them to the character would make them too small. I picked an intermediate solution where they are smaller than they should be, but wide enough to avoid making jumping on them too hard.
I added waterfalls at the start of the level, to mimic Sonic 3’s Angel Island. Like the original games, I’m using the old-school technique of color palette swapping to give an impression of flowing water while actually showing static sprites.
If you’re curious, here are the static sprites I used:
Note that they got more colors than the resulting sprites, but they help getting a more fluid animation.
As a bonus, I added an attract mode as in the original game (itself inspired by arcade games). If you wait for the end of the jingle on the title menu, you’ll see Sonic run around pico island on his own! You can exit attract mode by pressing O, X or pause menu > Back to title.
No spoiler though, he won’t pick any emerald! Almost…
That’s it! You can also check the game’s SAGE entry at https://sonicfangameshq.com/forums/showcase/pico-sonic.985/