Sunday, March 13, 2022

Week 2 - Puzzle Game - Crate Cat

Before we go any further, here it is: Crate Cat



As I mentioned in the previous post, this week I decided to try my hand at making a puzzle game. I knew it would be extra hard, since I'd never done it before, so I wanted to focus strictly on game design, and not on technicalities of implementation. So I picked up puzzlescript. It's another web-based engine, but this one is designed specifically for tile-based sokoban-like puzzle games. Essentially it allows you to create very rudimentary and extremely blocky tiles, combine them into levels and objects, and provides a very interesting declarative syntax to describe their interactions. So to implement Sokoban (not counting assets) you essentially need two lines of code, one of which - translated from puzzlescript's syntax - says "when player moves towards crate, push crate", and the second one, added under win conditions, says almost literally "all targets have crate". This is great, because it strips away all the busywork, and allows you to focus on the design. Also, the language itself feels like a good puzzle, and it's pretty elegant. The downside is that the games look too blocky, even for my standards, and they feel very crude and rudimentary. As a prototyping tool, however, it's fantastic, and some of the games you can play at puzzlescript.net are incredibly clever.

My game is a sokoban clone with a small twist: some crates can be only move two spaces when they are pushed. No more, no less. There are also special tiles that will 'capture' such a crate and allow you to move it only one space instead. And I also made the player a cat, because you can never have too many cat games. I was very happy with my simple idea, so I programmed the rules, which was a lot of fun, and then went hunting for some level design ideas. I have this unfortunate habit that my brain, once it starts learning something new, wants to go all in, so I had to muster all my limited willpower resources in order not to buy all puzzle games on steam and not to order puzzle books on ebay. Instead, I played some Baba is You, then some more puzzlescript games, then I designed a few game levels, and then I had a realization, which made me glad that I undertook this project. The realization was: I don't really like to play or design puzzle games too much.

Don't get me wrong, Baba is You is fantastically clever and I love the idea, but I can play at most two or three levels at a time before I get tired and have to rest. When you figure out the answer it feels very nice indeed, but when you can't, staring at the screen for several long minutes is not fun at all. And when I started making levels, I stole the first one, then made additional two, then felt exhausted like never before after working on level design. And the worst part was that I couldn't really play it, or know whether it was good, because I knew how to solve it. I forced myself to try and design three and a half more levels, but it was not fun at all. Thus, I decided that the experiment was over. I don't think I'll be returning to puzzlescript any time soon, which pains me a little bit, because the software is so nice to work with.

For the next time I thought I'd do something crazy and take David Wehle's seven day launch challenge. I bought the course a while ago when, but never got to getting through it. So, on to making a tiny 3D walking simulator in Unity with stock assets! 

Oh, and one more thing - since it's hard to predict whether I'd be able to get through this stuff in seven days, being as my days can vary wildly in access to the tiny shards of free time I have left, I decided that if I don't have anything presentable on Sunday, I'll give myself another week.


No comments:

Post a Comment

Epiphanies and possible recovery on the horizon

So recently I've been diagnosed with ADHD. Which explains a lot. Those highs and lows, and the impossibility of maintaining one hobby, t...