what's pocket's puzzle?
the demo version of pocket’s puzzle is close to being done! the title screen that’s actually in the game right now looks a little different than this, but this is what it will look like! wait, maybe i should explain what pocket’s puzzle is?…
cats and dogs
in 2019-2020 i was working on an rpg game. i never thought of a title for it, but in it you would play as a fox named mint, who finds themselves in a world where there were only two types of animals, cats and dogs. you would start on dog island, where you learn that the dogs and the cats have been in a feud recently.
i won’t embed them all, but you can see some more pictures of this project, if you want.
- mint talking to a dog, saying “that’s right, i’m a fox. why is that so confusing to everybody?”
- mint looking at a map, saying “it’s a painted map. i guess this is dog island on the right, and that must be cat island on the left.”
- a battle screen. mint is deciding what to do against an “imposter cat”. the selected option is to assist someone named clover.
i might revisit the battle system i had planned for this game at some point. the story was going to focus on false dichotomies. it bugs me when people ask, “do you like cats, or dogs?”
the dogs in this game were going to be mostly farmers, and live close to nature. the cats were going to be very interested in technology and science. the two cultures in general wouldn’t like each other, but mint would team up with a dog who was more interested in the cats’ way of life, and a cat who was more interested in the dogs’ way of life. together they would get to the bottom of the mystery surrounding the two islands’ recent attacks on each other.
this is only really relevant because i wanted to make a game that mint would be able to play on arcade machines when they went to visit cat city. i also wanted to make a game that i could play while i was waiting in line for things, or on a bus or a train. both of those things led me to experiment with making a puzzle game, and i ended up making a game called “cat cubes,” which would have been a popular game in cat city.
cat cubes
cat cubes and that rpg game were both developed in the same javascript / canvas engine i’d been developing, which i was calling “rabbit”. it ended up not being a very stable base for a puzzle game, because each block of the puzzle board has physics simulation. i originally programmed it that way because it was faster to prototype, but i ended up regretting building on that base. sometimes during gameplay a block will fall behind another block because of physics errors. at some point i decided to just release what i had as a “jam version” (not that it was developed during a jam, but just to set an expectation of it not working very well.) you can still play that version, if you want to!
the characters on the bottom are named “cat” and “tac”. “tac” is meant to be the antagonist, who is creating these block-puzzle-based-problems for some reason. cat is the player, who is trying to defeat them. they have little animations for when a large number of blocks are cleared or a level is lost, like in a puzzle fighter game. you can see them if you play the game on a screen that’s a bit taller than it is wide, like a phone. one of the points of feedback i got about this version of cat cubes is that it didn’t have enough cats in it, which i think is true.
there are still things i like about that version of the game. the control scheme works well on a touch screen, and i like the fun things i did with the top pane and weather effects. they have really poor performance, though. it was fun to play with the aesthetic of a game boy with a 4-color palette, but to be able to do effects which wouldn’t be possible on a real game boy. one of my friends ended up really liking cat cubes, and still plays it frequently. it made me want to start over and make a more stable version that didn’t rely on physics for its gameplay.
while thinking about that, i stumbled across uxn. it’s a virtual machine that has similar color limitations to what i was using for cat cubes. it looked cute, so i wanted to try to use it, and i started working on porting cat cubes to it. plus, it can run on the gba! i did get a version of cat cubes working in uxn, but i ran out of steam when it came to creating the menus for the game.
it was fun learning uxn, and it made me more confident working with low-level languages. i have another project i still want to work on that’s written in uxn, but that’s for another blog post. it also introduced me to the community around uxn, and new ways of thinking about sustainable computing. it was exciting to make a version of cat cubes that was much more stable but also used less resources. i liked the sleekness of the new block designs (the original cat cubes blocks were numbered), but overall the game felt too sterile. i think that’s part of the reason i didn’t enjoy working on it very much, but i didn’t realize it at the time. this version of cat cubes sat stagnant for a few months, while i tried to find motivation to pick a project back up.
what’s fun about game development?
for a few months, i had trouble finding enjoyment in working on games. making the menus for the uxn version of cat cubes seemed like a huge chore, and i couldn’t bring myself to do it. i tried finding inspiration in other games with stylish user interfaces that i liked, like yggdra union: we’ll never fight alone, but it didn’t help. the visual direction of the game so far was so bland that i didn’t have any ideas.
i started wondering whether i actually enjoy game development, or if i just wanted to have games that i made. there are successful game developers that i look up to, maybe i just wanted to be like them? what does success look like for me? what do i want out of this? i thought about those questions for a long time, and didn’t get much done. i had been sending out monthly update emails to my friends, but i stopped because i didn’t do anything interesting for months in a row.
i’m feeling better now. these blog posts are sort of taking the place of those monthly emails, and i think i have a better picture of what i want out of making games. i thought about what i enjoyed about the games that i like, and what i enjoyed about working on games. i’m trying to work up the courage to be more vulnerable and put more of myself into the things that i make, and draw passion from that. it’s still a work in progress, but i think i have made progress. it feels good to work on things again.
i came up with this manifesto back in april, but it’s taken me time to really start to believe in it.
- Make art for specific people. (“Yourself” is the usual answer.) Don’t target a demographic.
- Make art for the future. Understand that art takes time to make. Enjoy the process, not the result.
- Understand the specific appeal of a piece. Don’t spend time on things that don’t serve that appeal.
- Respect mistakes, and consider whether they add to a piece before removing them.
- Don’t worry about being understood. Leave room for interpretation.
- Art is not a conclusion, it is a way of thinking.
i think the main thing that has been helpful for me is trying to set an expectation of enjoying the process of creation rather than enjoying the result of having created something. when i find myself enjoying something, i try to ask myself why, and set more opportunites for myself to experience that kind of thing. one important point is being able to make art for myself, which is where being vulnerable comes in. if i can’t make something i’m excited about, why would anyone else be excited about it? i think the most popular thing i’ve made so far is friend simulator, which is probably also the thing i’ve put the most of myself into. i’d like to make more things like that. i wanted to see if something like that could help me finally make cat cubes into a real game.
pocket’s puzzle
i made pocket as a sona who would have similar interests to me, especially when it comes to technology. and when it comes to “putting more of yourself into something”, i think it’s hard to beat just putting a sona of yours into it. and since uxn had made me more comfortable working at lower levels, it seemed attainable to actually make the game run on a real game boy. i started learning game boy development using C and GBDK, and started off making the menus right off the bat, which pocket guides the player through. it was fun! and i already had a working menu structure by the time i needed to start actually programming the gameplay. once the basic gameplay elements were done, the game basically worked just as well as my original javascript version, except it could run on an actual gameboy (gameboy pocket, of course). i’ve been adding things i wanted to add to the original game, like a tutorial that actually works well, which i’m super happy with. maybe petscop’s to blame, but i just love seeing “demo” flash on a screen while the game plays itself.
even though putting pocket into the game has been really helpful for my motivation, i got stuck again. one of my favorite things about making something is learning and understanding how to do it, and i haven’t been giving myself enough room to do that. when i was thinking of programming as a means to an end, it didn’t matter if i fully understood what i was doing, as long as it ended up doing what i wanted it to. i was depriving myself of something i really liked so that i could be more “productive” by not “wasting time”. i’ve also been eroding some of the structure that i used to really enjoy when creating things, like dividing the code into a “game” portion and an “engine” portion. with my uxn games and with pocket’s puzzle so far, everything is all mixed together in the name of just getting things to work. and it does work, but not very well, and it’s not fun and i don’t like it.
so, i want to restructure all of the code in pocket’s puzzle. somehow, this is kind of exciting to me, even though it’s a ton of work for “no reward”. but before i do that, i want to share what i have in the form of a demo. i just have a few things left to do with the code how it is before it’s shareable, and then i can start restructuring everything.
i think that’s all for now! that got really long. don’t expect this kind of length from all my posts, please. i’ll probably share another update when i have a release date for the demo. until then!