ELS Progress Update #9

Today’s Music Choice: “For What Little Time We Have”

Another battle theme from the past, this one is a little peppier and meant for more challenging battles. Mid-bosses, and the like.


Progress Report

Oh, what fun I have to report on today! Let’s dive right in.

First, I finished up (for the most part) the implementation of Quad Pro Quo 2.0. This means implementing all the mouse/cursor-driven actions, building all the AI characters and their preferred decks, and writing all the “callout” dialog for every character you face in the game. The game itself could still use some polish and a bit of flourish, but I’m calling it “done” for the time being, because I’m ready to move on from it.

It plays pretty well, and feels tighter than the first iteration. It’s also a fair bit more challenging, since you’re not starting off with three high-level “character” cards to help carry you like you did in The Tenth Line. You really have to earn your way up the ladder, and it’s not an easy trek starting out. Fortunately, you can earn bonus cards by unlocking advanced character classes and spending mastery on them, so you can gradually improve your deck just by playing the main game if you really need a leg-up against the early competitors. I’ve implemented this card unlocking function already, but I need to find a better way to advertise it as a feature. I’ll probably work something in this week.

It probably doesn’t need to be said, but, you can now unlock character cards (by beating said characters) as well. I also added a second set of data that detects whether a card is “new” to your collection, and a counter that tells how many new cards you have waiting. The “new” flag goes away when you click on or use a card for the first time. After you defeat an opponent, you can rematch them at a higher difficulty level (better cards and stronger AI), so that’s an option for funsies.

To make better use of the mouse controls, I also changed how your cards are arranged and chosen on the screen. Whereas the original game was more like a stack or a fan of cards (meant to mimic holding them in your hand), now you can see the entire card at one time, and make quick comparisons that way. I decided to scrap the “hint” system I mentioned last week, as I didn’t want the game to turn into an auto-pilot feeling of testing every card on every space and just clicking the one with the most green arrows. There’s more to the game than just capturing a card as soon as possible, after all.

Lastly, I added a little toggle option to squelch your opponent’s callouts, like I promised. I suppose I should mention that I wove in the logic to trigger the callouts in the first place. There are a few holes where I want certain lines to trigger that I haven’t included yet, so I’ll return to that and patch those up soon.

Eventually, I want to excise this little chunk of the game and release it as a shortened, standalone version, like I did with the first Quad Pro Quo. It will probably just feature the first 10 characters as opponents, with a truncated collection and smaller resource footprint so I can fit it on mobile platforms. I’ll announce that as soon as it’s ready. It shouldn’t be too hard (he says, chuckling nervously).

The second big announcement started out basically as a joke, and yet, here I am. I had a couple of testers/onlookers on Discord ask me about importing their own art for their custom characters. At first, I was skeptical, due to the way the engine handles external files and how the publishing platform would react to unexpected files suddenly appearing in the game’s directory. But, I found a way to incorporate a “file picker” dialog into the game, and convert the file into raw texture data. Since I was already saving the raw portrait and icon sprites to a character’s data, it was a simple matter of replacing that sprite data with what was imported, and tripping a flag to say “don’t pull the sprite data from the built-in assets any more.” And, lo and behold, it works!

Does it surprise you I have multiple lizards as pets? It shouldn’t. It’s been long enough that you should have guessed.

So now (at least on non-console versions), you can import your own artwork for your custom characters! As shown on the left, you’ll do this on the character creation screen (for your commander or for recruits). Streamers can potentially solicit (tasteful) avatar images and drop their followers right into their army now, if they wish. Or, if you want an army of bearded dragons at their side, as I’ve chosen to do, that’s a possibility too!

As shown, you may import both a “portrait” and an “icon” image. You can use any PNG file you wish, and clicking the Help button will show you recommended size constraints and the expected file ratio. It’s pretty simple for now, but I may dress it up some later. If you decide against it, you can also “clear” the data and go back to using built-in assets instead.

Character sprites are another matter. Since they will be very complicated in their implementation and at the mercy of Unity’s animation system, I have no plans to allow imported sprites at this time. You’ll need to pick one from the list that hopefully matches your character pretty closely. I’ll feel this out as I actually start to incorporate sprite assets, but I think it’s a fair compromise without getting too far into the weeds for this silly off-the-cuff addition.

Fortunately, it mostly works right now! Your custom character carries into all the UI pieces as expected…

…and even into battles!

I’m sure players will use this feature for entirely tasteful and non-nefarious purposes.

The only little wrinkle now is somehow saving this custom texture data into the save file, and reconstructing the sprites later when the game is loaded. Hopefully, it’s just a matter of spewing a byte array into the chunk of save data along with the rest of the save file, and then unspooling it and rebuilding the sprite byte-by-byte later. I’ll work on that this week.

I’ll also work on the standalone QPQ2 game as mentioned. I may have some other news to announce before next week, too. We shall see.

Once those tidbits are finished up, I will start on the actual “introduction” to the game. Giving some backstory, letting the player set preferences, giving the faction choice and building a calendar/story path/starting army out of that choice. Those sorts of things. It’s official: I’m finally building actual game content now!