Using limitations as a productivity hack.



The only games I've finished while going solo are pico8 projects. Like actually finished, polished level of finished. 3 Hours of style, Feed the kind, Lightgoose and soon Firefrost. Moongrail is a project I barely finished in time, stressing the last hour to fix as many flaws as possible before having to submit it. To be honest, I'm not very happy with Moongrail. To me it feels like a crummy presentation of a good idea. I am quite happy with the gameplay (apart from it being stupidly difficult by default), but the visuals and music? Dumpsterfire. 

Introduction

I decided to make 2d aliasied animations for the characters in this game. Have a quess at what a frame of that style takes to make? Roughly? 30 minutes. A workday is 8 hours if full time. 8 / 0.5 = 16. I can churn out 16 frames per day in this style, and that's while cutting corners. One character in this style is roughly 16 frames. If done properly, it would probably be around 25-30 frames. That's a week for three characters.

At the moment I'm aiming to build an audience utilizing jams for inspiration and feedback, but get the bulk of visibility from web portals. The gamejams I'm aiming for are between a weekend to a week. It just doesn't make sense to spend 2 days just animating a character when the jam is 5 days. Now in comparison, would I have done the animations in pico8 they would have been 16 x 16 or max 32 x 32. Each frame could probably be finished in 5-15 minutes. That's at least double the output, probably more. And as a bonus, the lower resolution hides my (lack of) skills with art. And as another bonus, I really like fiddling with pixelart shaders. It's a lot more fun that writing ones for high res games, since they usually actually become better than complete garbage. 

The situation is similar with music for me. For a full track I want around 15-40 hours. That's just not feasable for the workflow I'm aiming towards.

Pico8 does put those limitations in place for me. 128 x 128 pixels, very limited sound capabilities. Pico8 is essentially protecting me from myself. So obvious answer: just always work in Pico8! Well, it's not that simple. While developing my first commercial steam game, Firefrost, I discovered that Pico8's limitations are VERY strict. No http calls. 8012 token limit. 128 x 128 pixels. And no gpu processing at all. It just doesn't work ou, it becomes very hacky and messy very quickly.

I need the limitations of Pico8 to keep me sane, but I need the flexibility of an actual engine to be able to do everything I need to. So where does this take me?

Fantasy consoles ( as concepts )

Pico8 is a fantasy console. It has a set of limitations designed to be fun to use, and provides developers with a tiny little box to develop games in. From a very top level perspective, Pico8 is just a bunch of constraints. Or as as Pico8 likes to call it, specifications.

Specifications
Display         128x128 16 colours
Cartridge Size         32k
Sound         4 channel chip blerps
Code         P8 Lua
CPU         4M vm insts/sec
Sprites         256 8x8 sprites
Map         128x32 tiles

That wasn't too hard was it? That's Pico8. The specs that are literally on the front page. So if the optimal environment for me to create games quickly is a fantasy console, then maybe the solution is to make a fantasy console with restrictions that work for me? Let's try it.

Defining the little box

I'm not writing my own engine. That is too much time and it too much of a "it has to be perfect" thing. So I'm using Defold. So these restrictions are mostly just arbitrary, and not locked into the engine other than by myself. With Defold in mind, let's start defining some constraints!

The requirements I have on visuals are that it should look nice / fitting, be stupid performant and stupid fast to create content for. Here is what I came up with:
- 320x180px (this can be scaled with integers to 1080p and 720p screens, and is what celeste uses)
- Color palette chosen from lospec at the start of jam, with max 8 colors ( for pico games I don't think I've ever used that many )
- Pixel perfect as far as possible

The requirements for audio are similar; sound nice / fitting, have small file sizes and be stupid fast to create content for. Here is what I came up with:
- Only soundfonts allowed as sound sources
- Mixing with a predefined set of effects in FL
- Game build only contains OGG
- Only the standard Defold audio api

For input I want everything to be remappable if using a keyboard, and the inputs should work out of the box on both pc and mobile. Poki has a massive audience, and one of their requirements is that it works on mobile. I also want to be able to support controllers in the future. I shouldn't have to do any per game configuration for the inputs, it should just work. Here is what I came up with:
- 4 movement buttons + 4 other buttons ( works on keyboard, easy to set up on mobile with touch buttons, and most modern controllers will work nicely with this )
OR ( can't use both the constraint above and the one below in the same game )
- only mouse + LMB ( works on touch devices as well, does sacrifice controllers though )

There are some other constraints as well:
- developed and submitted to one specific jam
- 3 to 10 minutes of playtime
- an end screen with a signup to my email newsletter + some kind of incentive
- no revisiting a completed project
- keep reusable stuff neatly organized
- implements statistics to see where the large player falloffs are (and fix in future games)
- fun gameplay > everything else
- one wrapper for all the web platforms sdks

And the workflow for a game:
- max 1 week: the jam version + upload to said jam
- max 1 day: post jam version, polish up and add an extra piece of content specifically for newsletter subscribers
- max 1 day: make / polish marketing assets, upload to web portals and post on reddit
- post mortem, both for me to collect my braincells and vent some potential frustration, but also to help others learn

Conclusion

I have a hard time finishing stuff. And I feel bad if I don't like the stuff I make. I believe these restrictions will 1: enable me to create more content faster, which leads to me actually finishing stuff and 2: make me feel more okay with a bit of jank. Basically "it's not my fault if the instrumentation is a little unsmooth, I had to use the soundfonts that were avaliable" or "that attack looks a bit janky, but I only have a 16x16 sprite to work with". It gives me something else to blame but myself. 

And I think that in the end, these restrictions will bring better results, since I will be able to really polish the stuff I make instead of barely managing to get things together.

Bonus stuffs / references but not really

The idea to use web platforms for visibility is mostly thanks to this article: https://abhisundu.com/posts/marketing-free-games
Defold also helped by just being an engine with a focus on working really well for web and mobile games. Performant, tiny export size, minimalistic. 

The idea of making small games came partially from doing game jams, but also from:
- How small games ruled pre 2010: https://howtomarketagame.com/2023/09/28/the-missing-middle-in-game-development
- Sokpop collective (made a game a month for a long time): https://www.patreon.com/sokpop/about
- Rami Ismail about making a game a week: https://www.gamedeveloper.com/audio/game-a-week-getting-experienced-at-failure
- Students making a game a week (personal favourite): http://miami.lgrace.com/documents/How%20to%20Prototype%20a%20Game%20in%20Under%2..

Using an email list as a collection point for audience:
- https://howtomarketagame.com/2022/06/28/using-mailing-lists-to-gain-thousands-of...
- https://howtomarketagame.com/2021/11/01/dont-build-your-castle-in-other-peoples-...

Banger songs that don't have anything to do with this but I like:

- https://www.youtube.com/watch?v=e3gk9xSYbuI
- https://www.youtube.com/watch?v=7G52dJA3hIs&pp=ygUSYWNsb3VkeXNreWUgZmxhcmVz
- https://www.youtube.com/watch?v=-NEGsRc3fbA&pp=ygUhZXZlcnlvbmUgY2FuIGZpbmQgbG92Z...
- https://www.youtube.com/watch?v=NocXEwsJGOQ&ab_channel=HatsuneMiku

Leave a comment

Log in with itch.io to leave a comment.