I’ve got a kludgy way to implement undo/redo but it might be good enough for a puzzle game.

Undo/redo working. This makes the game much more enjoyable. The player does not need to restart the entire level if they make a mistake.

You can also see some of the bonus mechanics in play. The dogs can pick up a ball and find a buried bone before sniffing butts to fully complete each level.

#Pico8 #GameDev #ThinkyGame

Solving the first two introductory levels of what is currently called "Dogs Sniffing Butts". (I'm still trying to find a good title.)

There's now a title screen with level selector and a one-to-three star scoring system.

#Pico8 #GameDev

I designed a level with just two dogs and some bushes that I solved once but can’t for the life of me solve it again. At least this is confirmation that even the basic game mechanics can produce challenging and interesting puzzles.
So far I've designed eight puzzles for "Dogs Sniffing Butts". My overambitious vision is four groups of twelve levels: park/spring, beach/summer, woods/autumn, snow/winter. #Pico8 #GameDev #PixelArt #PuzzleVideoGame
Dogs Sniffing Butts now shows you your stats when you've solved a level. You can play to get three stars on each level, and then try to solve the level in the fewest moves. #Pico8 #GameDev #PuzzleGame
A new puzzle element: dogs can push balls with their nose. But not pull them, so they can get stuck in corners and block routes, Sokoban-style. #Pico8 #GameDev #PuzzleGame

A wave effect for the beach levels of Dogs Sniffing Butts.

#Pico8 #PixelArt #GameDev

A prototype beach level.

#Pico8 #GameDev #PixelArt

A new feature: saving and sharing solutions. When you have completed a level, you can copy your solution to the clipboard. It is exported in a simple text format that you can save in a file or share by email. Then you can paste the solution into the game, and use the redo functionality to step through it. #Pico8 #PuzzleGame #GameDev
I love how adding one feature unlocks the possibility for entirely different features. In this case, adding undo/redo made it possible to share solutions within the limitations of #Pico8.
It's got to that point in a project where I have to take a detour and write some tools...
I now have good enough tooling so that I can design levels in the Tiled editor and play them in #Pico8. That will make creating new levels much easier. #GameDev #PuzzleGame
There’s always more yaks to shave… now I find that the library I’m using to parse the Tiled files doesn’t cope with escaped backslashes in JSON string values, and Tiled escapes backslashes when writing JSON. 😡
Hacked a workaround into my tool, and raised a PR with a fix for the JSON library. Yak successfully shaved. And designed a new level, which will make a good end to the "Dogs Sniffing Butts in the Park" section. Now on to "Dogs Sniffing Butts on the Beach" ...
I’ve added file watching to my Tiled file converter. Now I can run my converter in the background while I swap between Tiled and #Pico8. After saving in Tiled, I switch to Pico8 and hit Cmd-R to load the new level designs that have been converted to Lua code. Very quick turnaround.
Aaarrgghh! I've run out of tokens! Now I'll have to take a detour into writing a bytecode interpreter for level data, and a translator from Tiled JSON format to my bytecode format. #Pico8
I have a implemented a binary format for levels, which means one token per level. Now there is room for loads of levels!
Colourful title graphics. #Pico8 #GameDev #PixelArt
I dropped the three-star scoring mechanic. You are now awarded a rosette for completing a level, and can hunt for the buried bone as a secondary goal. #Pico8 #GameDev #PuzzleGame #ThinkyGame
A title-screen, for use as the #Pico8 cartridge label.
Some internal redesign, and now the dogs and objects are smoothly animated. #Pico8 #GameDev
Movement is silky smooth at 60fps, but unfortunately that doesn’t come through in a GIF.
Now the balls roll when the dogs push them, instead of sliding. #Pico8 #GameDev #PixelArt
A new game mechanic for the autumnal countryside levels: an annoying hedgehog that snuffles around, getting in the way of the dogs. #Pico8 #GameDev
A hedgehog rolls into a ball when a dog sniffs it. And the dog can’t push it around — it’s too spiky! #Pico8 #GameDev
An example of the kind of puzzle created by hedgehog behaviour. How do you get the dogs out of their starting positions? #Pico8 #GameDev #PuzzleGame
Better graphics for the hedgehog footprints. #Pico8 #GameDev #IndieDev
Each set of levels (park, beach, country, snow) is associated with a season (spring, summer, autumn, winter). Here's my first stab at an autumnal theme for the countryside levels. I need to tweak the colours of the dogs a bit. But what do you think... too much animation for a puzzle game? #Pico8 #GameDev #IndieDev #PixelArt
Added butterflies to the levels in the spring. #Pico8 #GameDev #PixelArt
Took a bit of fiddling to ensure the butterflies stay out of the area where the dogs can move, so that the player can be certain that they are decoration and not a gameplay element.
Working on the winter seaason effects. #Pico8 #GameDev #PixelArt
In the winter, the dogs push snowballs, not beach balls.
The winter game mechanic: ice. If a dog is entirely on ice it cannot move -- it's too slippery for it to get a grip. But a smaller dog can push a larger dog that is entirely on the ice. #Pico8 #GameDev
I’m working on a mechanism for buffering player input and speeding up the animations the more input is in the buffer. I’m hoping this will make the game less clunky in levels with hedgehogs.

OMG, that worked first time!

The sprites move by one pixel per frame if the player waits for the animations to complete before entering more input. But when the player enters input faster than the animations take to complete, the sprites move at two, four or eight pixels per frame, depending on how much input is buffered.This means the player doesn't have to wait for the turn to complete, and the animations don't have an ugly transition from pixel-by-pixel to cell-by-cell.

#Pico8 #GameDev

Oh writing music is hard… even when I’m arranging a traditional song in the #Pico8 tracker.

I should just pop up the message “start playing salty dog blues now” when the game starts.

I've picked up this project after having had to focus on other things. I realised that the hedgehogs do not make for fun puzzles and removed them from the game. Sometimes you have to kill your darlings.

#IndieDev #GameDev

In place of hedgehogs, I've added sticks. Little dogs with huge sticks are so cute! Sticks expand the existing mechanics. They can be pushed like balls, but take up more than one grid cell and can have awkward shapes that interlock with walls and other sticks. They interact with ice as you would expect. I'm much happier with this game mechanic.

#Pico8 #IndieDev #GameDev

I'm trialing a less lavatorial title.

#Pico8 #GameDev #IndieDev

@picoretro I immediately want to play this
@noelcody Great! I don’t think the original name of “Dogs Sniffing Butts” garnered the same reaction.😀
@picoretro @noelcody You were trying to keep it real dawg. 😎