Welcome to Monday Night Itch, a harebrained scheme to encourage folks to play more non-AAA games by adding a touch of social gamification. I thought I would be tweeting my adventures here, but I just had an experience so profound it can only be captured within a blog post.
everything
Goodbye, Pearl
![Pearl laying on carpet, bathed in a sunbeam that highlights her peach fuzz](https://cdn.statically.io/img/eev.ee/media/2022-01-goodbye-pearl/pearl-radiant.jpg)
A Chronicling of the Lyfe and Times of one Miss Pearl Twig Woods, who has Passed at a Young Age from Troubles of the Heart. She is survived by Anise, her Arch Nemesis; Cheeseball, her Adoptive Ruffian; and Napoleon, her Star-Crossed Suitor for Whom she Longed from Afar.
Recommended GZDoom settings
GZDoom is the fanciest way to play Doom. Unfortunately, it has also historically been difficult to recommend to newcomers, because its default settings areā¦ questionable.
Conspicuously, for over a decade, it defaulted to traditional Doom movement keys (no WASD) and no mouselook. I am overjoyed to discover that this is no longer the case, and it plays like a god damn FPS out of the box, but there are still a few twiddles that need twiddling. Mostly the texture filtering. Christ, the texture filtering.
Anyway GZDoom has a lot of options, so here is a handy list of the important ones. There are fewer than I expected, which is good.
Gamedev from scratch 1: Scaffolding
Welcome to part 1 of this narrative series about writing a complete video game from scratch, using the PICO-8. This is actually the second part, because in this house (unlike Lua) we index from 0, so if youāre new here you may want to consult the introductory stuff and table of contents in part zero.
If youāve been following along, welcome back, and letās dive right in!
Eevee gained 3367 experience points
Eevee grew to level 34!
I super almost forgot to write one of these!
What a very, very long year. I went back through my dev journal to see what Iād done and could not believe most of this happened in the past year. Even stuff from August feels like it must have been at least a year ago.
Cherry Kisses, on Steam
![Cherry Kisses title screen, showing Cerise at a counter](https://cdn.statically.io/img/eev.ee/media/release/cherry-kisses.png)
š Steam release
š itch release
Whoops! I meant to write about this when it originally came out, in April, but never quite got around to collecting my thoughts. Here is a very rushed subset of them.
The game is extremely NSFW, but the commentary below is not.
Gamedev from scratch 0: Groundwork
You may recall that I once had the ambitious idea to write a book on game development, walking the reader through making simple games from scratch in a variety of different environments, starting from simple level editors and culminating in some ārealā engine.
That never quite materialized. As it turns out, writing a book is a huge slog, publishers want almost all of the proceeds, and LaTeX is an endless rabbit hole of distractions that probably consumed more time than actually writing. Also, a book about programming with no copy/paste or animations or hyperlinks kind of sucks.
I thus present to you Plan B: a series of blog posts. This is a narrative reconstruction of a small game I made recently, Star Anise Chronicles: Oh No Wheres Twig??. It took me less than two weeks and I kept quite a few snapshots of the gameās progress, so youāll get to see a somewhat realistic jaunt through the process of creating a small game from very nearly nothing.
And unlike your typical programming tutorial, I can guarantee that this wonāt get you as far as a half-assed Mario clone and then abruptly end. The game has original art and sound, a title screen, an ending, cutscenes, dialogue, UI, and more ā so this series will necessarily cover how all of that came about. I will tell you why I made particular decisions, mention planned features I cut, show you the tradeoffs I made, and confess when I made life harder for myself. You know, all the stuff you actually go through when doing game development (or, frankly, any kind of software development).
The target audience is (ideally) anyone who knows what a computer is, so hopefully you can follow along no matter what your experience level. Enjoy!
This is part zero, and itās mostly introductory stuff. Please donāt skip it! I promise thereās some meat in the latter half.
Lexyās Labyrinth
![Screenshot of a small tile-based puzzle with a number of different elements, taken from CCLP1](https://cdn.statically.io/img/eev.ee/media/release/lexys-labyrinth/lexys-labyrinth.png)
š Lexyās Labyrinth
š Source code on GitHub
š itch.io later
Here is Lexyās Labyrinth, a web-based Chipās Challenge emulator.
Itās easy to get into and mostly speaks for itself, so here is a story.
fox flux, three years later
Iām working on a video game! Like, a serious one.
The past
I wrote the original game (very slightly NSFW) for my own āhornyā game jam, Strawberry Jam (more likely to be NSFW), way back in February 2017.
You play as Lexy, my shameless Floraverse self-insert, who owns an enchanted collar that (among other things) makes her basically indestructible and allows her to easy to transform intoā¦ whatever, given some kind of sensible trigger. And then you do some puzzle-platforming to collect āstrawberry heartsā and gain access to new areas, much of which (surprise!) involves getting turned into things.
For example, this chain-link fence blocks you:
![Screenshot of the player being stuck on one side of a fence](https://cdn.statically.io/img/eev.ee/dev/media/fox-flux/jam-example-fence.png)
But if you let that green blob in the grass turn you into slime, you can walk right through it.
![Screenshot of the same area, but the player is now green slime and free to pass through the fence](https://cdn.statically.io/img/eev.ee/dev/media/fox-flux/jam-example-fence-slime.png)
There are also spikes, which you get stuck on if you land on themā¦ but slime can walk right through them, glass can stand on top of them, and stone outright destroys them. And so on. As a jam game, itās not very expansive, but many of the puzzle elements interact differently with many of the handful of Lexy variants, which provided enough potential to make eight levels.
Post-jam
The jam game was rough, but I really liked the concept and wanted to expand on it. I spent a good chunk of the summer of 2017 on it, but it was a struggle. I was still fairly new to pretty much every aspect of actually creating a game ā Iād only been drawing for two years, Iād sometimes hit big gaps in the design with no idea how to fill them, and I wasnāt yet entirely comfortable with complex physics or shaders. The art in particular was a huge problem; it took me a long time to produce sprites that I was only passably happy with. My spouse Ash is an artist, and weāve made several games together where they produced all the art, but this was my idea and I was determined to draw it myself.
Then 2018 hit, which was a whole entire mess, and I didnāt really touch fox flux at all for over a year. I made a couple of other games with Ash, some finished, some not, and kept drawing intermittently.
I returned to fox flux for the middle of 2019, and decidedā¦ Iām not sure what I decided, exactly. I guess Iād gotten better at all the things that had been difficult for me before, so I set about trying to improve every aspect of the game at once.
-
I realized the (many, many) improved sprites Iād drawn in 2017 were not actually very good, and drew a new Lexy design from scratch that absolutely blew me awayā¦ which meant throwing away all the existing art.
-
Iād come up with a few new things for Lexy to turn into, each of which altered her behavior pretty significantly, and her code was becoming a spaghetti disaster. So I spent some time completely refactoring actors into bags of components, which I was unsure about until very recently and which ended up breaking pretty much every single object in the game, sometimes in subtle ways.
-
I decided to add water, which unraveled into a whole pile of decisions and problems.
-
I tried to make consistent or interesting physics for pushing things (e.g. wooden crates), and that became a nightmare. I easily spent weeks on this, trapped in a cycle of finding some edge case that couldnāt be fixed without considerably expanding what I was simulating, struggling to do that expansion while keeping all the basic stuff working, and then finding a new and different edge case.
Did I mention that I tried to do all of these things at the same time, while also trying to nail down the design of a game thatās naturally prone to a combinatoric explosion of interactions?
At a certain point it just felt hopeless. Iād poured easily over a year into this game, and all I had to show for it was a jumbled pile of stuff that didnāt work, strewn about a couple test maps that didnāt even contain any puzzles.
The present
I donāt know what happened, exactly. Iād given up on the heavily-simulated push physics last year, at least, so that wasnāt so much of a concern any more. But I still had a mess. Iād long since written git status
off as unusable.
Until this past month, when I sat down and just started powering through the mess. One by one, I fixed the serious breakages that the component refactor had caused. I dedicated a day or two just to figuring out water physics, put a little more thought into it, and ended up with something that looks and plays quite nicely. I finished redrawing basic Lexy, and even added frames I hadnāt had before.
I think the difference wasā¦ fear. Iād previously hesitated so much, both in the art and the gnarlier code. It was such a struggle to get something working at all that changing it in any way was terrifying ā what if I broke it and couldnāt even get it back to how itād been?
I donāt know how to describe exactly how this felt, and I also donāt know how to explain what changed. It was like a switch flipped. I think it started when I drew new dirt tiles, and it didnāt even take that long, and I loved them. Iāve always had a hard time drawing terrain, and for once I just sat down and did it and it came out well and it looked like mine, like my style, which was a thing I hadnāt even really grasped I have before. After that I just cranked out a mountain of new sprite art, faster and better than anything Iād done before. Like Iād been accumulating XP over the past few years and just now decided to spend it all on levelling up.
Over the past six weeks, I have:
- Redesigned the terrain
- Vastly improved the palette
- Completely finished redrawing Lexy
- Redesigned the HUD
- Mocked up a new dialogue layout
- Drawn a new font
- Drawn and implemented new consistent level entrances
- Animated a treasure chest opening cutscene
- Animated getting a key
- Added a completely new tally at the end of a level
- Added transitions for entering and leaving levels
- Added swimming behavior
- Redrawn the old gecko as a much more visible bananalizard
- Animated the hearts and several other pickups
- Ported the original forest levels to use all the new stuff
- I donāt even know there has been just so much
Just look at the style evolution! God damn.
![Three versions of Lexy in dirt tiles; over time, the style becomes more colorful and relies on stronger shapes and silhouettes](https://cdn.statically.io/img/eev.ee/dev/media/fox-flux/style-evolution.png)
Hereās that same level from above:
![Slime Lexy once again passing freely through the fence, but using newer assets](https://cdn.statically.io/img/eev.ee/dev/media/fox-flux/deluxe-example-fence.png)
A lot of the last few weeks went towards level transitions, which previouslyā¦ kind of worked. They were always a hasty jam hack that I never liked; there was a quick screen fade when going through a door, there was barely any notion of being āin a levelā vs not, and the game even counted the fucking hearts in a level on the fly the first time you entered it. It was all very silly.
But now (please pardon the occasional frame drops from my screen recorder):
![GIF of Lexy entering a level with a transition, collecting candy, exiting with another transition, and seeing the level tally](https://cdn.statically.io/img/eev.ee/dev/media/fox-flux/level-loop.gif)
I finally feel like Iām making some real progress. I finally feel like this could be something I take seriously, that it could be a real game, something more than half an hour long. At some point it just became an absolute joy to look at and run around in.
The idea
The basic concept is the same, but I want to add some structure to it. The jam game was four single-room levels you could tackle in any order without much guidance, then another set of the same. Which is fine, but doesnāt give me much wiggle room in the design.
In the full game, levels will contain not just hearts, but also a treasure (a la Wario Land 3), some amount of candy (usable at the shop to buy things of some description), and an explicit exit. The overworld will function a bit more like a world map, and though youāll still need to collect N hearts to get to the next zone, there may sometimes be obstacles that can only be overcome by finding the right treasure in a level.
I also intend to give Lexy some active abilities, for example this blown kiss (recorded with older art) that can toggle pink objects between two states:
![Lexy blows a kiss towards a pink brick wall, which changes it into a pink grating](https://cdn.statically.io/img/eev.ee/dev/media/fox-flux/kiss.gif)
I even have a plot in mind! The jam game had only a teeny tiny one.
The future
Ash is currently busy with their own game, so I think this is gonna be The Thing I Do for a while. To that end, Iām in the middle of setting up some infrastructure:
- A dedicated Twitter account
- An itch.io page
- A Discord channel
Also, I recently created a secret Discord channel on the same server, where I intend to do planning and design work that Iām not ready to make public yet! Spoilers will abound, but if youāre interested and okay with that, you can get in by pledging at least $4 on Patreon and letting me know to give you the role. (I donāt use Patreonās native Discord integration because it does rude things like forcibly rejoin you to the server even if you manually leave.)
Specific priorities
Iād like to finish porting the old levels over to new artwork, the new level infrastructure, etc. Itād make for a nice little Patreon demo or something, it gives me a milestone with pretty clear goals, and itāll leave me with at least a small palette of puzzle elements that I know work correctly.
Iād like to write about what Iām doing sometimes on this dang blog. Iāve found that structured writing is really, really, really hard when my head is a mess, and it has been extremely a mess for the last two and a half years (sorry), but jotting down what Iām already doing should be much easier than the more elaborate posts Iāve written, which need research and tooling and whatnot.
I have a good handful of puzzle elements ā some of which even work ā and a bunch of ideas for more, but I havenāt actually tried building levels since I made the original game! Thatās kind of the important part, so Iād love to do some of it now that the dust is finally settling.
I still have some design decisions to make, though theyāre getting trickier since Iāve already decided all the easy stuff. But Iāll save that for the generous folks who give me four dollars, I guess.
The elephant in the room
So. As I mentioned at the beginning, this game was originally made for a āhornyā game jam. Given that itās mostly platforming, you might be wondering why that is. I already feel like Iām crossing the streams somehow by even mentioning this on this blog, so Iāll try very hard not to get TMI here.
I have a foot in āTFā (transformation) kink circles, and one thing thatās always struck me about that subculture is how much of it is completely non-sexual. You can find no end of artwork of, say, someone being turned into one of those inflatable pooltoys ā where both the artist and the audience are obviously having a good time with itāāāyet with no hint of sexual elements whatsoever. Itās a form of sexuality that doesnāt need to be sexual at all.
I started Strawberry Jam because I wanted to see some adult games that were more creative with their gameplay. Much of the genre consists of otherwise regular games that occasionally show you some explicit artwork, and while thatās a perfectly fine way to design a game, I felt that the medium surely had more potential. It turns out that a non-sexual fantasy kink works wonders as a gameplay element; rather than just giving you a picture, the game takes a concept and has you experience it yourself, even figure out by experimentation how itās altered the way you interact with the world.
This puts me in a slightly awkward position. I do, genuinely and platonically, love these kinds of gameplay themes! I adore changes in how you perceive or interact with a world ā the dark world in Metroid Prime 2, the time reversal in Braid, the ādimensionā swapping in Quantum Conundrum, etc. I think this is a great concept that anyone can have a good time with, and I feel like this game is a love letter to the Wario Land series.
At the same time, I do also appreciate the kink inspiration. Even Lexyās collar was originally conceived as a gimmick I could use for drawing adult artwork. The jam game contains a lot of suggestive dialogue, since Lexy herself also appreciates the kink aspect. And that was a lot of fun to write, and Iām sure it enhanced the experience for other folks with similar leanings.
But this is such a good concept that I want it to be playable as just a regular puzzle-platformer as well. I think it would have fairly broad appeal, and I donāt want to hamstring myself by totally fucking weirding people out when it dawns on them that āoh the dev is kinda Into This huhā. And yet I donāt want to completely sterilize the game, either, becauseā¦ well, ultimately, itās my game and I like the suggestive parts.
This is a tough line to draw, and Iām not yet sure how to do it. Iāve considered just making alternative dialogue that you can opt into when you start the game, but given that Lexy already speaks differently depending on what form sheās in, I have no idea how feasible that is.
I donāt know how to gauge this. Iāve always been up to my armpits in the side of the internet that just posts porn and talks about sexuality casually, whereas Iām dimly aware that most people see sexuality as this completely distinct part of life that you hide in a small box, far away from the eyes of polite society. But maybe Iām overestimating that? Does anyone actually care if the protagonist of a game comments āhey this is hotā about something weird but innocuous?
Or maybe thatās exactly where the line is. I remember Nier: Automata, a game that is all too happy to show off the protagonistās immaculately-rendered ass, which is clearly meant for the enjoyment of both the creator and the players. But nobody comments on it within the game, which makes it seem incidental, somehow. I canāt explain why that is, and it feels slightly dishonest to me.
Am I overthinking this? If youāre not involved in any kind of kink circles and played the original jam game, Iām curious to hear how it read to you. Was it at all uncomfortable, like perhaps the game was expecting you to heavily empathize with a feeling you donāt share at all? Or does putting that feeling on a character, rather than aiming it at the human player, make it something you can easily shrug off? The full game will have more stuff going on, so there should be lots more dialogue that isnāt solely about Lexyās feelings, if that helps.
Hm, I thought I would have more to say here! I have a lot of ideas, but only a handful of them are implemented yet, and I guess itās hard to show what a game will be like before most of it works.
I hope this is enough to whet some appetites, at least! I havenāt been excited like this about anything in far too long.
Rowling is dangerously wrong
I read J.K. Rowlingās essay.
I regret doing so.
Here are some thoughts. Trans readers, brace yourselves, especially if you didnāt read the original.
Some help came from Andrew James Carterās response thread, which has many more citations but feels less compelling to a general audience to me.
Star Anise Chronicles: Oh No Wheres Twig??
![Title and logo for the game](https://cdn.statically.io/img/eev.ee/media/release/anise-wheres-twig.png)
š Play it on itch.io
š Play it on the PICO-8 BBS (where you can also download the cart and view the source code)
(I originally drafted this just after publishing the game, but then decided to start a whole series about its development and wasnāt sure what to do with this! But itās solid and serves a different purpose, so here it is.)
Itās been a while, but I made another PICO-8 game! Itās a little platformer with light puzzling, where you help Star Anise find his best friend Branch Commander Twig. Itās only half an hour long at worst, and itās even playable on a phone!
This is the one-and-a-halfth entry in the Star Anise Chronicles series, which after several false starts, finally kicked off over Christmas with aā¦ uhā¦ interactive fiction game. Expect the series to continue with even more whiplash-inducing theme shifts.
More technical considerations will go in the āgamedev from scratchā series, but read on for some overall thoughts on the design. Both contain spoilers, of course, so I do urge you to play the game first.
Old CSS, new CSS
I first got into web design/development in the late 90s, and only as I type this sentence do I realize how long ago that was.
And boy, it was horrendous. I mean, being able to make stuff and put it online where other people could see it was pretty slick, but we did not have very much to work with.
Iāve been taking for granted that most folks doing web stuff still remember those days, or at least the decade that followed, but I think that assumption might be a wee bit out of date. Some time ago I encountered a tweet marvelling at what we had to do without border-radius
. I still remember waiting with bated breath for it to be unprefixed!
But then, I suspect I also know a number of folks who only tried web design in the old days, and assume nothing about it has changed since.
Iām here to tell all of you to get off my lawn. Hereās a history of CSS and web design, as I remember it.
Eevee gained 3169 experience points
Eevee grew to level 33!
Advent calendar 2019
![Calendar of things I made during December, with little screenshots](https://cdn.statically.io/img/eev.ee/media/release/advent2019.png)
š Advent calendar, with links to individual projects
Happy new year!
For December, I had the absolutely ludicrous idea to do an advent calendar, whereupon I would make and release a thing every day until Christmas.
It didnāt go quite as planned! But some pretty good stuff still came out of it.
Doom text generator
![Screenshot of a generator with controls for the font, color, scale, and alignment](https://cdn.statically.io/img/eev.ee/media/release/doom-text-generator.png)
š Doom text generator, locally hosted
Iāve been mad my entire life that one of these didnāt seem to exist. ZDoom can print arbitrary text, of course, but only if you fuck around writing and compiling an ACS script or whatever! Thereās no console command for it! Outrageous!!!
So I finally made this. It took like ten hours, which I have to say, is fucking incredible.
Goodbye, Twigs
![Twigs lounging in a cat tree, while a bright sunbeam illuminates him from behind](https://cdn.statically.io/img/eev.ee/media/2019-10-goodbye-twigs/twigs-beautiful-sunbeam.jpg)
I did not expect my return to writing to be like this.
Twigs, our nine-year-old sphynx cat, has died.
He is survived by Pearl, his lovely niece; Anise, his best friend and sparring partner; Cheeseball, his wrestling protƩgƩ; and Napoleon, his oldest and dearest friend.
Weekly roundup: Somewhere
I would not say Iāve been having a great time.
- fox flux: I fixed some bugs with pushing on flat ground, and did a bunch of math.