Howdy!
Steam Next Fest ended yesterday! It was a great experience, learned a lot, made a lot of connections, got lost once or twice, only threw up in a few people’s laps. Did you like this bit where I pretend like it’s a physical event? Yeah, me too. Basically it was like a normal week, except I was paralyzed against changing the game at all in case a terrifying game-breaking bug or design problem forced me to jump in with a new patch. Fortunately, this only happened twice!
The demo’s still out, by the way. I plan on leaving it up until the game’s ready, so you have plenty of time to try it out:
ALSO: The FISH FEAR ME soundtrack is out now!! Check it out!! Buy a copy of that sick theme song with lyrics!!!
So what’s next? Well, getting ready for launch. I have a lot of plans for how to improve the game next: how to tighten up the skill floor, give purchasing decisions more weight, give more reasons to explore every nook and cranny of every map. I’ve been working on new types of fish that show up in unique circumstances later on, which is neat. Always fun to give new reasons to explore old areas.
Before the demo launched, I promised y’all the story of how I ended up with several of my arrays starting with -1, so here’s that:
Let’s start with normal, non-cursed 0-indexed arrays for cataloguing things like fish, bait, lures, weapons, etc.
Because items in this array may be later rearranged and we don’t want to break saves when that happens, let’s make these arrays searchable by a unique string identifier. Sure, it’s a little inefficient, but this code isn’t used anywhere where speed is necessary.
If we’re searching through arrays, it’s prudent to return an error value of -1 if we don’t find what we’re looking for.
… But there’s also a use in having a default value outside that array. Fishing without bait is basically using a non-indexed bait to fish, right? Same with not having a lure equipped; same data structure, just no functionality. So we can set up the getter function to return the value at the array if indexed… or to return a separate special value outside the array if we give it -1 as a value. Nice and simple!
So now we have a value at a separate -1 position on the array, which we can search for using the same tools, and grab using the exact same getter functions. It’ll also be returned on errors, but that’s acceptable; it’s supposed to be the null value, after all!
Wait hold on
Not every array works like this — weapons don’t have a null value, because there’s no “no-weapon” use case that needs to be worked through. It’s very useful for baits and lures, though, since the null value can have special functionality (or non-functionality) separate from other types of bait and lure, while retaining the same general procedures.
I got a lot of responses on this one! I recommend checking out the previous newsletter for context. Here’s a few quotes I found to be resonant (some emphasis mine):
Zandra: In the coming weeks, what I’m looking forward to the most is meeting people. Putting together an impromptu cohost wake in Montreal helped me feel less alone after the closure of the online place where I’d been spending most of my time over the last 2+ years and I want to take more steps in that direction.
The loss I’ve been feeling is one of community; now that I realize that, I can make efforts to find it around me. And sometimes it really is just as easy as organizing a meetup—casting a net, and seeing who gets drawn in.
Bee: One thing I'm looking forward to is trying to find a better way to make the internet work for me. I don't feel ready to abandon social media yet, so I moved to Bluesky and it sucks so far. So my strategy is to just be as much of a freaking weirdo on there as I possibly can and block any hint of dunking or arguments over meaningless discourse. I'm convinced the future of being a creator online is personal websites and mailing lists - but unfortunately, we still need to put in some more effort to get our fans to migrate.
This weekend, I had a day where I went on an absolute webcomic binge. Started and finished reading three entire comics, some of which were pretty hefty! They were:
What Happens Next, a (fictional) comic about the online and offline aftermath of the (also fictional) “Tumblr murders.” Gut punch after gut punch (it extremely deserves its content warnings), put against some bleakly funny moments. What Happens Next asks the reader to compare and contrast between online emotional violence and real-life physical violence: how one bleeds into the other, and how the effects of both last forever.
Preeny Has To Repeat 6th Grade, a comic about a kid on an adventure to stop the apocalypse… and all of the adults around her trying to keep her safe. It’s notable for two things: first, the incredible feature that is the gutter doodling on each comic which shows off Preeny’s thought process; and second, the fact that every character is a DeviantArt adoptable bought by the creator. It’s a really fun conceit, and the creator plays with it well.
My Other Brain is an Idiot. Øyvind Thorsby is genuinely one of the greatest farce writers of all time. He knows exactly how to make a bad situation worse, and he does it again and again with glee. I’m a huge fan of his previous work, and so far My Other Brain is an Idiot promises to match them in bizarre scifi worldbuilding, surreal puzzle-jokes, and the consequences of everyone’s actions (and their other brains’ actions) coming back to haunt them.
So, on to the question of the week! What webcomics have you been reading recently, and what makes them so special?
Let me know what you think! Same as before, I’ll collect some of your answers and put ‘em in the next newsletter. See you next week!
— Heather
Want to respond to the discussion questions? Email me at heatherflowersbusiness@gmail.com!