The Shindig: Day 8 - Get smooth
As part of the PiCoSteveMo game jam I'm building a deck builder game where you host a great party.
The last time (see day 7) I worked on building out the base gameplay to support guests with special abilities.
I made a lot of progress today and I'm almost getting to the point where it can be play tested. We now have the victory conditions and title screen added so it's technically possible to play through from start to end.
It's important that I finish this before Demon School comes out (probably impossible).
2025-11-16 Three more scenes
Today I added 3 more scenes to the game - so using this framework for organising scenes is really paying off. One is more like a modal, which works because if I never paint over the previous screen it is still visible.
The cool thing here is because there is a different update method I don't need to worry about the scene beneath it from detecting some the inputs.
I also added a title screen and a victory screen today, they were fairly straightforward because they are not very interactive.
Maps
I found out today that in addition to the sprite sheet, there is a map function in PICO-8. This allows you to visually assign entries in your spritesheet to places in a 2D grid.
This is great because I was directly drawing sprites to the game using spr and sspr; with maps there is a map function which lets you draw regions from map data directly to the game.
Animations
I got some advice about making smooth animations using an easing function called smooth step in PICO-8.
-- time, start, end
function SmoothStep(t, s, e)
s = s or 0
e = e or 1
t = mid(1,t)
return s+(e-s)*t*t*(3-2*t)
end
This function will receive a current time stamp (e.g. you can get this with t()), and then start and end values. It will return a value between the start and end values based on the amount of time that has pased. We can use this to animate for example a position
local offset = SmoothStep(t(), 0, 100)
pset(10 + offset, 10, 2)
will draw a pixel that moves from x=10 to x=110 with utmost smoothness. I used this to put together an animated title screen where as the user starts the game the hotel looms into view.

What's next?
At the moment it's a bit hard to play the game because things get a bit too spooky and it's hard to make a lot of money. So I think I will add between two and four new guest types to address this.
Afterwards I would like to add sound effects, music and some quality of life improvements such as greying out options that the player can't afford.
As a stretch goal I'd like to either add two player support or translate it into another language.
Once again thanks for reading!