Get The Holiday Sale Bundle!
Regularly $63.42 Save 84%
🤑 Indie game store🙌 Free games😂 Fun games😨 Horror games
👷 Game development🎨 Assets📚 Comics
🎉 Sales🎁 Bundles

Fishing puzzle game in PICO-8: 'Hook, Line and Thinker'

A topic by RhythmLynx created Oct 25, 2016 Views: 797 Replies: 16
Viewing posts 1 to 12
(Edited 2 times)

Only just remembered that Fishing Jam was on, so this was Day 1 for me.

I'm planning to make a puzzle game where you have to hook all the fish in the level to win and you reel them in one at a time. You have a maximum reel/line length and reeling in certain fish / sea creatures will impact the level. For example there could be a weak blockage that you can't pull fish through, but if you pull a hard crab through it the blockage will break, giving you a shortcut and allowing you to reach more of the level with your limited line. Another kind of catch could leave an impenetrable trail behind it (squid ink maybe?). So the goal is to work out which order to reel the fish in and what route to reel them over, with the additional constraints of a limited length of line and the fact that the line can't cross itself. We'll see how it goes!

Cool concept, have fun!

cool simple concept, can see this being fun with proper level design :)

(Edited 1 time)

Oh this is looking stellar! The ideas you've got for the different impacts of various catches sound awesome and are going to be great for extending the already neat idea for the base gameplay. I'm really keen to play this one!

This is in pico8? :O That awesome, I've been wanting to try it out but it seems so complex its a little confronting! :V How long have you been working with it?

Thanks for the encouragement :) I really recommend trying the PICO-8, it's actually really easy to work with because everything is so straightforward (one of the many things I love about it), plus you get everything you need right in one package. So for example you can just draw a sprite right in the editor at index 7 and then render that in the middle of the screen by calling spr(7, 64, 64). It's that simple.

There's lots of great stuff to learn from on the forum; you can look at the code for any game there by just clicking the word 'Code' underneath, or download the game by saving the cartridge (brilliant) and then open it in the editor and poke around the graphics, map, sound effects, music and of course code. There's also a fanzine with introductory tutorials.

I first got the PICO-8 in August 2015 I think, but the first thing I made was for Ludum Dare 34 in December 2015. If you want to buy the PICO-8 it's only $15, though it might be worth buying it's big brother Voxatron for $20 instead as it comes with a free copy of PICO-8. Hope that helps!

Gah that sounds awesome, thank you so much for the rundown, you've got me excited to try it now!

And geez you've done so much with it over that time. :O I really have to get onto trying out all your other games, they look awesome!

Awesome! Have fun :) I'd be happy to help if you get stuck on anything

Yh now that you mention it I guess I have done a fair amount in PICO-8. It's been my go-to platform since I started using it, it's just so fun and easy. And since there's only 16 colors and the sprites are so small (8x8) and resolution so low (128x128), it made the idea of doing pixel art a lot less daunting. I hadn't done any before I started using it, but I'm quite happy with the small sprites I can create now.

Thanks for checking out my stuff :) Most of my PICO-8 things are on itch.io or the PICO-8 forum. There's also this twitter thread where I've put all my tweetcarts (PICO-8 programs in 140 characters or less, see this *amazing* forum thread for lots more). I really dig the aesthetic of your game Reefy Madness btw, it's really nice.

(Edited 1 time)


Day 2!

  • Yesterday I did collision between the hook and the walls. Today I added collision with the line, so you can't cross your own path.
  • Reel graphics (quite happy with them).
  • A somewhat familiar fisherman, who may or may not stay.
  • I came up with a name: Hook, Line and Thinker

The idea is really cool, and most of all, the ideas you had for the various fishes and their effects. And I have to agree that the reel is awesome!

Pun names that describe gameplay: priceless. I like the addition of the angler + reel for day two!

Every now and then I remember what I've called this game and get a big, stupid grin on my face


Day 3! The main thing I did was being able to reel your hook back in and working out what the reel should look like with more than 10 moves available.

I also made a start on the fish sprites, but it's pretty hard to fit a recognisable fish shape into an 8x8 sprite. The one above is my only success so far. I also tried playing around with 16x16 sprites and suddenly it feels huge, you can fit anything; the drawback being that it will dramatically reduce the playing area. I haven't actually tried designing any puzzles yet (note: this is bad) so it might be that 7x5 is enough, I don't know. The sea creature sprites in the mockup below are by anna anthropy, from her game octopounce.

(Edited 4 times)

Day 4: sea creatures! Really happy with my little 8x8 sprites here, took a lot of iterations to get them right! Here are my puzzle plans:

  • FISH: killed by jelly stingers, but then the skeleton can be hooked and used to cut stingers off
  • CRAB: impervious to stingers and breaks through blockages, but it reduces your line length by [insert number here]
  • JELLY: cannot be caught, body can't be passed through and stingers kill fish (but stingers can be cut, and maybe crabs kill them?)
  • SQUID: impervious to stingers but leaves an impassable ink trail for the first [insert number here] moves after being hooked
  • In each level you'll have to catch a certain number of creatures, which might be less than the total number since fish can be killed and jellyfish can't be caught.

When I was first brainstorming ideas for this game I made a big list of all the kinds of sea creatures I could think of (*). Then I went through and tried to think of gameplay mechanics for them, leaving me with 11, each of which only did one thing. Today I wanted to draw some sprites, which meant narrowing things down more, and then I remembered this quote:

"A good idea is something that does not solve just one single problem, but rather can solve multiple problems at once." - Shigeru Miyamoto

So I started thinking more along those lines and ended up with the plan above. I don't think I'll add any other creatures; I think there's a lot of interactions and levels I can create from these 4. Tomorrow I'll start actually getting these mechanics in and finally start designing the puzzles!

(*) Here's the list, since it might help with your own fishy games:

  • crab / lobster / shrimp / trilobite
  • squid / octopus
  • sardine / tiny fish
  • angler / glowing thing
  • electric eel / other electric things
  • shark
  • whale / dolphin
  • walrus / seal / otter / manatee
  • jellyfish
  • clams / oysters
  • coral / starfish / snails / anemone / urchins
  • birds
  • poisonous fish / lionfish
  • large fish / sailfish
  • turtles
  • deep sea translucent stuff
  • pufferfish
  • stingray
  • sea horse
  • sea snake
  • penguin

i could just watch that reel for hours

I made sure the gifs loop smoothly ;)

Since it's the weekend and I don't have work I was able to spend most of day 5 on this, rather than just a few hours in the evening, so I got loads done!

The first thing I did was make it so that you can actually reel in the fish, crab and squid. The jelly and it's stingers can't be hooked (in fact, I added collision to the jelly body so the hook can't even pass through it - color coding, hooray!). I also set up a proper level loading system so I can design levels in PICO-8's map editor then jump to them with load_level(n), with all the collision and creatures etc. set up and ready to go.

Now that my reel mechanic was fully functional it was time to move on to each creature's unique ability. The first one I did was the fish. When the fish collides with a jelly's stingers it is killed and becomes a skeleton (tricky to draw!). The skeleton can then be hooked and will cut off any stingers that it hits (including all attached stingers below the cut point). To demonstrate this I made the level shown in the gif above, which will be the first level that has both fish and jellies.

I don't want to explain any of the mechanics to the player; I want to design levels which introduce each mechanic in such a way that the player naturally discovers the functionality, consequences and combinations for themselves. Part of that is about forcing the player to think. I designed the level above so that you are immediately confronted with choice. The solution plays out the same whether you take the top or bottom fish and whether you cut the top or bottom row of stingers. But because the player has to make those small choices, it forces them to actually think about the situation and therefore (hopefully) fully understand what is happening and feel clever for finding the solution.

The second creature was the crab. There are now debris tiles which the hook can fit through but through which fish and squid cannot be dragged. Dragging a hard crab through them will smash the debris and open up new paths. Again, for this introductory puzzle there is only one simple solution but the player is confronted with choice. They can immediately hook the crab, but then when they try to grab the fish they'll find it won't fit through the debris. The only other possibility is to try dragging the crab through, and now the player feels smart because they discovered this mechanic on their own.

Tomorrow I'll be doing the final creature; the squid will leave an impassable ink trail for the first [insert number here] moves after being hooked. The only other mechanic I had planned was that reeled-in crabs would decrease your maximum line length (claws + fishing line = bad). This was meant to discourage the player from starting a level and always going for crabs first to clear out pathways. It's about making them think. I'll implement this if and when I find a need for it. With those done the gameplay mechanics will all be finished and it just becomes a question of how many interesting combinations and levels I can create! I'd also like to do nice menus and a title screen. I'm very happy with the design and aesthetics on this project, so I think I'll likely continue working on it post-jam and do more levels, more pixel art, cool visual effects and add sound and music (something I don't think I'll have time for tomorrow).

Wow, day 6 was crazy! It was the final day of the jam so I've put up a version of the game you can play right here, but I think I'll probably be doing some more with this post-jam. Right now though I'm very tired.

I started the day by doing the final sea creature mechanic: squid leave 5 tiles of impassable ink when you start reeling them in. Above is a gif I made of the introductory level for this mechanic. PICO-8 lets you save a gif at any time with the press of a button and I love this feature, so when I'm doing a game jam in PICO-8 I regularly save gifs and tweet them. I tweeted this one, and it got crazy:

I was retweeted by Adam Saltsman and Alec Holowka, two highly respected and very well known indie devs who I greatly admire. I mean, these guys have Wikipedia pages they're so big. I love their games and the fact that they liked mine enough to share it with their (pretty considerable) audiences really means a lot. Then it happened again. A few hours later I tweeted another gif of a more complex squid level (below) and then Zack Bell retweeted that. Mental.

Over the rest of the day (when I wasn't freaking out over how many twitter notifications I was getting) I made several other levels (and tweeted a couple). I realised that I had been right when I mentioned having crabs reduce your line length after you catch them; this proved to be an extremely useful way for me to design levels where creatures have to be caught in a specific order. There's even a level that just has 5 crabs at various distances. It all ties back into that idea of everything having multiple interactions, some positive and some negative. Which is why it ended up being very difficult to create levels with squid alongside other sea creatures; the squid only have one interaction (they leave an impassable ink trail) and it's a strictly negative one (limiting movement). There's never any benefit from having caught a squid other than the fact you caught it. Because of this it is literally never the best strategy to do anything with squid until you've already caught everything else you possibly can.

I really like the squid ink mechanic and the levels I created with it. But if I continue working on this game post-jam, squid are going to need something positive. There could be something that you actually want to block using ink (a shark, perhaps). Or ink could be somewhat similar to debris in that the hook can pass through it but creatures can't, meaning squid would become a way to dynamically create places where you can intentionally drop creatures after moving them. Or squid could start inking from the first square they move to, not the square they start on; this would mean that a squid could be blocking something and by moving it you clear that space, but you also block off another 5 next to it (the problem with this is that I'd probably have to redesign the existing squid puzzles). Not sure yet, but they need something, something to make it worthwhile to move a squid while there are other creatures still available.

By the end of the day I had 10 puzzles of varying difficulty. I'm quite proud of them, and 10 seemed like a good number to release with. I added an in-game level select menu with live preview, which also tracks which levels you've completed (the numbers go green). Sadly I didn't have time to do actual save data, but you have full access to all the levels immediately so you don't really lose anything by leaving and coming back. That would definitely be on the post-jam todo list, as well as more levels, more mechanics, better/more graphics (I'm looking at you, fisherman), a title screen and logo, sound effects and music. It's a big todo list, but I do really like this game and the reception has been fantastic, so hopefully I'll find the motivation. This is already the biggest, best and most complete game I've made. I'd like to turn it into something even more special.