Don’t Blame Me, Blame Brett
Rolling Pixels #6 — Indie Game Dev Adventures
feature/auto_chess
So, everything I said I was gonna do last update, you can toss it out the window. Don’t blame me, blame Brett! I’m working on my laptop in the parking lot at my kid’s drum lesson. I had some amount of refactoring to do when the siren song of a Muse filled me with wonderment. I found myself scribbling on the back of the envelopes of bills in the car, sketching out screens and grids and chess notations. Back at home, I found myself sketching out football-like plays with Xs and Os while heating up pumpkin pie. I grab a handful of half-painted minis from the game table and move them around on the grid sketch.
“Hey brother, what’s the point value of chess pieces?” I asked my son to google it.
But I’m babbling…refactoring. Let’s start there. If you’re like me, refactoring could be my full-time heavenly gig. So I write down why I’m spending time on a round of refactoring — because I‘ll get carried away. This is a prototype for combat encounters and fleshing out gameplay I’m at a spot where I’ll branch this code to try out different gameplay mechanics. Refactoring makes that work easier for future me. Right now, I have an Actor class that is parent to a Player and NPC class. The NPC class is parent to an Enemy class 👀 🤷🏾♂️. With my current code, it would be better if the Actor begets NPC begets Player. The Enemy class is merged into NPC. This is to consolidate duplicated code for easier cognitive load and speed of iteration. The differences between NPC and PC are player input vs AI-esque input and exception logic for player stuff. Iteration is where I’ll learn amazing things!
You could be my baby, baby, maybe.
— The Beaches, Blame Brett
There’s a thing that happens to me often, especially if I’m deeply working on a project. I’m still watching shows, reading, and consuming media and news. Engaging with people, interacting with the world. External influences that often have nothing to do with Wizards in my game. Ghost in the Shell, Captain Alatriste, The Beaches and Marc Cohn, Dave the Diver, importing CSV file data, and of course…Ancient Aliens. That’s what I’ve been cooking with just this week. So, I want an auto-battler aspect to combat encounters in this wizard game. I’m reading up on Finite-State Machines, utility AIs, and behavior trees to figure out how the characters will make combat decisions. I’m watching, playing different auto-battler games…learning how Auto Chess came to be…Auto Chess… Auto Chess…there’s something there…I can almost feel it. What does it look like on the screen? How much does the player get to do in this auto-battler variant? How’s it feedback into the larger wizard sandbox game?
It’s a lot, right? But not overwhelming because I’m into it. I’m creating something, and I love this part where I have nothing but questions — but that thing that happens…
Lightening!
I’m unsure when the first domino fell; I never am. I am old enough to know what it feels like when the dominoes are falling around me and to capture it all and edit it later. The Wizard player has a retinue; I’m thinking analogs of chess pieces. Instead of the Tank and Healer, there is the Rook, the Knight, and the Pawn. In fact, there can be a ‘Charisma’ like score that governs how many ‘followers’ a wizard can have, like the OSR games of old! Combat happens in a zone of six, maybe eight parts — movement inspired by the tabletop game Shinobigami: Modern Ninja Battle! Like in chess, the advantage is with the attacker in an exchange. Abilities can be assigned to chess piece types; the knight class has the best movement options, and maybe the bishops have the best range options — these pieces already have official point value scores. Rook = 5 points, Pawn = 1, etc., and it is useful.
That is where I am today. There are two teams of sprites in the embedded clip. They can move to any one of six zones at the start of a fight. The combat is resolved from the highest zone to the lowest. Zones with opposing forces in them will resolve down to elimination. Other zones will have move/range attack options. This is the foundation for this prototype. From there, I can add mechanics and experiment. I cannot tell you how AMPED I am to stumble into this design/concept! Much of what’s next just explodes out from combat design choices. Like the implied recruitment of new party members. Can a pawn class be ‘promoted’? High-level play implies a Wizard with a full Chess complement of ‘pieces.’ In my head, a MAXED out Wizard could have enough influence score to hold four pawns, a rook, knight, bishop, and queen. That queen could then have its own influence score to hold the other half of the court!! And now, maybe not all queens in the game are equal!! Ars Magica, another tabletop RPG, is about covenants — think base building for Wizards. You are improving not only your wizardly labs but also the staff and companions that take up your cause. And just like that, The Last Age of Sorcery has purpose.
But is it fun?! I don’t know yet. 🤷🏾️.
So sorry in Advance… I’m probably gonna let you down.
— The Beaches, Blame Brett
Anyways, I’m babbling. The moral is this. Work your projects, no doubt. But make time to engage with your tribe, read stuff, watch stuff, play everything — stay curious. Feed your work.
Catch ya next sprint!
ICYMI: Rolling Pixels #1: Looking for Framework.