Just a minor update: version 1.2 for Cab Hustle for the Commodore 64 is now on available on Itch.io. You can download it at the link below. Read on for information on the changes.

This new version addresses a collision detection problem that @schorsch3000 described on Twitter. On some occassions when landing on a platform with a waiting passenger, the ship ascended on top of the passenger instead of remaining on the platform. How did that happen? The C64 provides for hardware collision detection. To check whether the ship landed on a platform, Cab Hustle first checks if there’s a collision of the ship sprite with the background. Then, it checks whether the collision was with a platform tile or with another obstacle in the room.

For there to be a collision, the sprite needs to overlap the platform. After that condition was detected, Cab Hustle used to move the ship upwards until there’s no more collision, pixel by pixel. If there was passenger on the platform, and the ship overlapped with it, then Cab Hustle would keep moving the ship upwards resulting in the end result that @schorsch3000 ran into.

The latest version takes a simpler approach. If a collision with a platform is detected (and all other conditions for a proper landing are met), then the ship is simply moved upwards in a single step. In contrast to the pixel-by-pixel approach, this single move depends on the shape and size of the ship, so if the ship sprite should change in the future, the distance of the move will need to be updated as well.

Lastly, this latest version is built from the updated codebase that also compiles on Windows. You can read more about the Windows version in my previous blog.