Half-Bit Software

Octopath Traveler 1

One of my favorite silliest parts of this game revolves around Olberic, a brave knight. Each playable character has their own way of interacting with the world around them. The nice priest lady can guide people through life, the trader can buy stuff off of people, and the knight -

Well. The knight can walk up to random fools, challenge them to a duel, and beat the everloving shit out of them.

It’s maybe one of my favorite mechanics in this game, particularly with how I’ve got him configured. You can mix and match what subclasses characters get, and I’ve thrown Thief at him.

Thief is a little broken in single-target. You can steal health and energy, which is already broken, but you do it with this fast little double-jab.

The bravest knight in the land is running around, challenging people to duels, then running up and stabbing them repeatedly.

I don’t think this is a great game, but I’m having a lot of fun playing it for silly shit like this.

Also, the music is really pretty great!

The World Is Alive - Summer Slow Jam

This isn’t exactly a postmortem, because most jam games feel kind of unfinished. (At least, mine usually feel that way to me.)

So when this jam was first announced back in early June, I got pretty stoked. The technical theme - I tend to do better at those - was Minigames, which seemed great! My mind jumped first to the kind of dinky little silly-ass Warioware games, with just ridiculous hooks and gimmicks and 4 or 5 seconds of gameplay per screen.

Which is why I got to work on all of that, basically. I got a whole system up and running where I could flip between a bunch of these minigames at random, got basically done with a high score logging webservice (that I honestly thought would be cool if everyone could register/post to), then had a week or two off before the creative theme was announced.

Once the theme (The World is Alive) was announced, I pretty much ignored everything I’d built so far.

I mean, sure, I could’ve shoehorned it into what I’d built, but it didn’t seem right, and I’m not sure I can articulate why. Doing something more specific seemed like a good idea, and I had a handful of things I wanted to try.

I always manage to get to games late, and I’d just picked up Hollow Knight, so doing something a little bit spookier and more atmospheric sounded like a fun idea. Unfortunately, this inspiration didn’t really strike me upside the head until, oh, Monday or Tuesday, so losing that first weekend’s worth of progress was kind of a bummer.

That said, I’m still pretty happy with how things turned out. I dragged over a lot of the stuff from Slower than Light, like the lighting and the little hover/highlight text, but ended up with something (I hope) that makes a little bit more sense. It’s a pretty straightforward little mini-metroidvania, minus the combat, which - if I had another couple of weeks - I might almost consider adding.

It’s a little tough to know what to do with it. Fighting and combat and conflict are pretty common in games, but this feels more like a mellow thing. There’s no real way to die in it, which I like, but there’s also not much in the way of real challenge. Navigating the world is pretty straightforward, so that’s probably the first place I’d look.

The story, such as it is, is a little thin on the ground, too. If I was gonna keep going, I’d try to refine the hell out of that, since I think there’s a lot of redundancy and what is there isn’t necessarily very clear. It’s fine if things aren’t obvious at first glance, but I’m not sure that players would come up with the conclusions I’d intend. (Sometimes that’s okay, and sometimes it’s just bad/sloppy writing.)

Overall, I’m still pretty happy with it. It’s fun tinkering, and I still really like making gloomy little games.

Summer Slow Jam 2018 Prep

I’ve been doing the occasional game jam for awhile now. They’re fun! It’s nice to throw yourself at something for a short amount of time just to see if anything good comes of it - more often than not, it’s totally worth the minor time investment. One thing that’s been a little annoying, though, comes down to infrastructure.

There’s a few different types of infrastructure, too, and maybe that’s a weird way to put it, but it’s the term I’m gonna use, so whatever! The tools, code, art, assets you’ve built up over time all count as infrastructure, but what I mean here is a literal kind of infrastructure.

I’m going to back up just a little. Eight years ago, Apple released Game Center, an iOS and MacOS service for high scores, matchmaking, online social stuff, the works. It was exclusive to those two platforms and better than nothing, but had some warts and rough edges. It also had a ton of green felt, which wasn’t great.

(As an aside, and particularly with Apple, be careful about using their technologies and frameworks if they’re not dogfooding it themselves. How many games do they ship? Zero? Yikes.)

Back to infrastructure, though: Game Center was good enough for leaderboards, even if there were authentication challenges around valid high scores. Trolling online scoreboards is a tough problem to solve at scale, but that’s not the point of this!

No, the point of this is that, for the Pigsquad Summer Slow Jams, I’m finally getting around to building my own online infrastructure.

Hold for applause.

It’s actually been kind of fun and interesting getting back into the online/server-y world. I’m picking up Rails again for some dumb friggin’ reason. It’s stuff I know sorta well, including all the warts, and the landscape has changed an awful lot since I stopped actively working with it ~7 years ago. I mean, shit, Docker didn’t exist back then, mongrel was still the hottest shit (thanks, Zed Shaw!) and nobody was really grown up enough to know what they were doing.

It was total cowboy country, but it was kind of fun, in a way.

Thankfully, the scope is pretty limited here. I figured, with the first technical theme being ‘minigames’, an arcade-y cabinet with a handful of Warioware-style games that can post scores to a web service would be pretty cool for seeing who does best. And if I get this thing working and chugging well enough, who’s to say I wouldn’t ask other people to try banging on it, too?

Infrastructure is fun.

On That MacBook Pro Keyboard

Don’t buy the MacBook Pros even on sale, in my opinion | The Outline

So, that doesn’t seem great, does it? I really, really want to like that keyboard, I promise. I like the clicky feel of it, short-throw keys are my jam, I could even get used to the narrower gaps between keys.

(Don’t get me started on the inverted-T.)

But the reliability issues are maddening - key’s that would double fire, or not fire at all, or only fire at a particular angle or from a particular spot. C’mon, that’s no way for a computer to be.

So, like Casey Johnston, I sold my 2016 MacBook Pro and threw that money at an iMac Pro. So far? It’s completely knocking my socks off.

Breath of the Wild, Escalation, and You

I’m going to start this tiny bit of controversy with a warning: don’t @ me. You know what that means, so don’t. I liked the game just fine, don’t hassle me about any of this. Your efforts are better spent elsewhere.

Okay. So. Breath of the Wild was pretty great. I’ve put hundreds of hours into it and I’m still finding new stuff in it - little groves of trees, koroks (naturally), characters just hiding out in the middle of friggin’ nowhere.

It’s big, and it’s mellow, and it’s a world that I find fascinating.

My problem, if that’s even the right word for it, is this: artificial escalation.

Remember Oblivion? Put enough hours into it and you start seeing doofy little bandits wearing full Daedric or Glass armor. Immersion shattered, dogs and cats living together, mass hysteria.

Zelda’s got that same problem, kind of. At the start of the game, you’ve got rusty swords and junky wooden shields and your armor’s tattered rags that you found on the floor. You’re fighting dinky little red Bokoblins with a few blues thrown in, and maybe you’ve bumped into a Lynel or a Talus and had a really bad time. A couple hours in and you’ve got shiny knight armor or a stealth suit (A SHEIKAH SLATE?!) and you’re off to the figurative races, with decent weapons and a better understanding of how to make people sad with them. You see black Bokoblins and maybe even a silver one, which is great because those drop gems.

Fine! That’s how videogames work! As you play more and more, new, cooler stuff shows up. Lightning swords and royal halberds and - wait a second, didn’t this world get totally thrashed? Where’s all this great gear coming from, anyway?

That’s my problem: the escalation scale’s all kooky.

I don’t even know if it makes sense or if these are just the ramblings of a madman (pro-tip: they are) but if the game’s ever moddable, I’d love to see a fairly simple edit. Raise the ceiling, sure, but keep the frequencies skewed towards the low-end. You’re still mostly fighting dumb little guys with dumb little weapons, but every once in awhile you’re going to find something truly exciting and rare, something that you’ll want to save for a really big, scary, dangerous encounter, rather than just going “oh, which Royal Sword do I want to ditch now?”

It’s a little numbing, at the end of the day: there are no highs or lows at that point, and there’s no feeling of desperation there, either. I played it through on Normal, restarted on Master, then noticed just how weak, frail, and flimsy I felt for the first few hours. It was the most exciting part of that playthrough, knowing that I had to be careful and strategic and couldn’t just headbutt my way through every problem I got myself into.

Maybe they’ll do that in the sequel. Or not! I’m fine either way. I’m certainly not foolish enough to expect them to add any kind of hunger/weakness system to the game. That’d be a bridge way, way too far.

Not Reviews

I’ve been thinking about writing on here more, which is a thing I think about often and then never actually do anything about.

Oops.

The fact that it’s an ongoing concern is a more interesting part, and maybe the whys behind that, too. It’s neat looking back at the nonsense, and knowing I have basically zero audience means that I’m doing it just for me, which is kind of great from an intrinsic motivational perspective.

But that’s all really just noodling and waffling. One thing I’m realizing is that I don’t know why I have this site anymore - it doesn’t really have a purpose, partly because it was never very well defined, and partly because any purpose it may have had has long since evaporated thanks to lack of use. Neglect is freeing, though, because at this point I can do whatever the hell I want with it.

So one of the things I’m going to start doing, I think, are little mini-reviews: things that are too long for a tweet, because those stupid 12/42 tweet lists are a little nuts, and because I might as well try to write more. Reviews are a little bonkers, so this’ll is more like blathering and rambling.

The Smallest Unit of Music

I’m a pretty big music fan. If I’m working at a computer, odds are good I’ve got music playing. If I’m writing, same thing, only it’ll all be instrumental stuff. (For whatever reason, I can’t write fiction and listen to something with vocals at the same time.)

My habits are pretty straightforward. I like listening to albums, complete albums, all the way through. I like sticking to particular genres or artists depending on my mood that day. I’m also stuck in iTunes, which is (fine, whatever, if only). In iTunes, I mark albums I really like as loved, and sort my albums by artist, then by year. This is mostly because I think it’s neat seeing how artists and groups evolve and change over time: it’s nice being able to see the usually-continuous line of creative output.

This is all fine, as far as desktop listening goes, but recently I threw more money at Apple to sign up for iCloud Music Library, which means they’re (ostensibly) smart and able to push all my shit up to the cloud, then let me pull it back down again from other places. These other places end up being iOS devices, in almost all cases. (I’m holding out hope that the HomePod eventually lets me use my library).

Which brings me to my point of sadness: the Music app on iOS doesn’t do what I want.

I’m a simple man with simple tastes: I want sorting as described above, and I want album shuffle. I have a list of albums I really like, and I don’t really care about what order they’re played in, but the songs pretty much have to be in the right album-order, or I lose my mind and start foaming at the mouth. (Ask my coworkers, they’ll agree, it’s unsightly and embarrassing.)

I don’t really have a conclusion, other than it’d be nice, I guess. Maybe I’ll get around to filing a radar, someday.

Lode Jogger Postmortem

I (sorta) finished another jam, this time (mostly) making Lode Jogger!

Hooboy. This one was a doozy.

What Is It?

Lode Jogger is a gameboy jam game designed to be a near-copy of Lode Runner, one of my favorite childhood games. Players must run around a level, collecting treasure and avoiding the deadly monks, before escaping through the exit.

What Went Right

Mechanics - Mostly

All of the bits of Lode Runner are here! You can run around, you fall properly, you can climb ladders and go across ropes, and the crazy monks can do all of that, too! Treasure works, digging works, everything’s there.

It’s a little bit clunky, sure, and I don’t think I got ladders totally right, but I’ll cut myself just a tiny sliver of slack. About the only thing I was missing? Monks can’t pick up treasure!

Pathfinding/AI

When it comes to jams, I usually try to avoid doing much of anything involving complicated AI. Anything risky or too intensive generally gets tossed out as unfeasable. With this, though, AI was kind of important. The monks have to try to chase you, after all!

I distilled it down into basic pathfinding: monks will try to get you. That means, of course, that I’m recalculating based on a grid. It’s pretty much just a slope field, with the bottom of the hill being wherever the player is. They’re smart enough to know that ropes might be the quickest way to get somewhere, though, which worked out nicely. For anyone curious about the technical details, it’s just a dijkstra map.

What Maybe Kinda Didn’t Go Great

Levels

I had a fine test level for making sure all of the mechanics worked sensibly - you could collect treasure, you could die by falling into a pit, ladders and ropes seemed to work okay, and monks could follow you.

The bummer is that I more or less stopped at that point. Whoopsie! I definitely should have made more levels, but I think I was just under a lot of time pressure.

Audio

I basically completely punted on audio, full stop. So. At least it couldn’t have gone worse, right? I like the idea of basic bleeps and simple bfxr boops, but in practice most of the time they’re complete earsores: too chirpy, scratchy, piercing. I’ll stick with no audio at all instead of garbage audio, and given how distracted I was by the other aspects, it’s probably good that I didn’t bother.

Graphics

I don’t hate the gameboy palette, but I also didn’t really put a whole lot of time or energy into the art of the game. 160x144 isn’t a bad resolution to work in, but my artistic abilities were not really up to the task. One of the rules of the jam was also that all assets must be made during the week: oops. I punted on that big-time, too.

Having animated tiles for digging and dying would’ve been awesome, but again, time and lack of skill were both factors. I think I was too anxious about getting some of the good parts done that I let a lot of stuff just kind of fall by the wayside. Shucks!

Final Thoughts

I’m both proud and disappointed. I poked at a few things that I haven’t really worked on before, like basic pathfinding for the monks.

At the same time, Lode Runner is one of my top-tier favorite games, so not doing it justice stung a little. It might be something I revisit later, but probably with a very different shell. The GB palette’s a little limiting, and I could do a lot better with a lot more of everything. (Sound wouldn’t be bad, either. I loved the Mad Monk’s Revenge soundtrack!)

1-Bit Clicker Jam: Clickenville

I’ve been wanting to do another jam for awhile. I like the two week cycle, but haven’t seen any themes or jams that really struck my fancy. The technical limitations ones went well in the past, so those are the ones I tend to go after.

This time, it was a 1-bit (black and white graphics) clicker (mouse only) jam. Perfect! My idea was to go after something that was a little bit like Spaceplan or a cookie clicker-esque game.

What Is It

Clickenville is a game where you try to throw money at your problems. You have a number of buildings that provide income and offer upgrade options. These buildings let you alter the world of the game how you see fit, improving things for the residents, the town, and the world as a whole.

What Went Right

This was my first experience writing a more substantial shader. The theme being a 1-bit clicker made me think, with my limited art skills, that doing a cool dithering shader would be the best way to go. That way, I could find a tileset that looked good under this visual transformation and save myself a lot of effort in the process.

It’d also kind of hearken back to some of the games I played as a kid back on a black and white computer. Atkinson dithering was pretty great back then, and doing something that resembled it sounded like a fun project.

Plus, Obra Dinn looks great with a (much better) dithering technique.

This was also a chance to poke a little bit at a different way of building up content. I knew going into it that having a whole lot of different kinds of buildings with interconnected systems and resources would be a pretty neat feature. Say, you could have a guild that trained adventurers, then send them off to explore a dungeon. Some of these adventurers might die along the way, which would leave bones for necromancers to use.

I didn’t really start out whole-hog on doing something data-driven at first, because I didn’t really understand what I wanted. Once I got a few basic classes and a really simple workflow going, though, I started pulling everything out and ended up with a little ruby script that reads a bunch of json and writes out a bunch of haxe classes for my in-game content. It worked pretty well, even if augmenting this system over time was a bit of a challenge.

What Didn’t Go Great

It’s funny, I always start writing my postmortems in this section. This time around, I basically pretended that audio didn’t exist. There’s neither catchy music nor bleeps, and certainly no bloops. It’s always something I neglect and something I’m not tremendously proficient with, so it’s kind of a self-fulfilling prophecy. Someday I’ll aim more for doing better audio work, but this time I was focused way more on the neat shader and the general mechanics.

A few mechanics are still missing, unfortunately. I wanted a workflow where you’d start off with really basic buildings and had to spend resources to unlock them, but it kind of fell out along the way. I didn’t have a great handle on how the UI ought to look or work, and letting people know what something cost was a bit of a challenge - both for unlocking buildings and for letting people know what a particular upgrade would cost.

Final Thoughts

Is it done? Heck no. Am I happy with it? Mostly, sorta, yeah.

Game jams are always a question of time but more buildings would be top of my list. Doing a full UI pass to make things make more sense would also be pretty important.

The big takeaway that I had was: well, I had everything interactable hardcoded. Was this necessary? Why couldn’t you plunk down a Blacksmith wherever the hell you wanted, if you had the funds?

This meant, in a broad way, that I was putting together an RTS instead of a simple clicker. Oops. Neat thought, though.

Oneshot Postmortem

I finished another jam, this time making oneshot!

What Is It

It’s a little arena-y shooter thing, I guess? 2-4 people jump around in a little room and try to shoot each other. Everyone only gets one bullet before having to scramble for another one.

What Went Right

Finished! It’s done, and playable, and doesn’t seem to blow up! Kudos, me.

Simple! I stuck to the bounds of the theme, once again bolstered by a technical, rather than creative, limitation.

What Maybe Kinda Didn’t Go Great

Music! Specifically, the lack thereof. This is usually one of the things I leave until the very end, and in this case, it bit me a little. I had a few beats going, but most of it was pretty godawful. Here, no music was far better than the noise I was making

Stages! Because of the limitations of the jam (5 assets, no more) I wanted to set up a bunch of different levels on just one Tiled map, using camera position to set whatever ‘stage’ is presently in use. That would’ve taken more UI and more smarts around picking that stage, though, so it got punted as well.

Playtesting! Man, this really didn’t happen. Turns out, making a multiplayer game is hard if you’re not throwing it at people to poke at. For all I know, this is actually pretty fun, but I haven’t found out yet.

Juice! I know, I know, this is kind of falling out of fashion, but it really could do with a bit more zazz. Maybe particles that fly out when you jump, or screenshake when you zap a fool. Something! It could use a lot more stuff filling in the cracks.

Final Thoughts

This one’s kinda tricky.

I think I liked the idea way more before I started fiddling with it. It started out as a kind of dual-stick shooter with only one stick: aiming was based on the direction of travel. I wasn’t sure that this’d be all that much fun to play, as it seemed like you’d be jousting, or something along those lines. You end up hoping to be pointed in the right direction, and that didn’t sound too fun.

Instead, you’re just kind of hoping to have a clear horizontal line of sight with an enemy when you pew pew a laser. I don’t know if that’s better, but it seems a lot simpler in terms of demands on the player. Different maps would likely help a lot in this situation, as would bigger maps. If I end up spinning more on this, it’ll be one of the first things I try, along with a lot of playtesting.

Overall, I’m pretty happy with it. Moving feels kinda goofy and fun, at least playing on a keyboard. Gamepad might be way more frustrating.

I’m glad I did it, which is probably a good sign!