1. Bonfire
  2. News

Bonfire News

Dev Diary: The Game Plays Itself

(it literally does play itself here)

Testing is probably the biggest hidden bottleneck for solo devs and small indie teams.

I obviously dry test every new feature and piece of content I add, but there's time where I just have to sit down and play the damn game normally. Especially when I'm almost done with an update and need to check how everything fits together.

I do two complete runs for every major release. A fresh playthrough, and one using my beloved save file that I've kept since the very first release to test compatibility and balance from the perspective of an existing player. It currently takes about 60 hours all in all. Including on the fly fixes.

That wouldn't be an issue in the studio I work for at my day job. We've got several full-time QA folks who do nothing but play the project every day. But for Bonfire, well, it's just me. And I needed a better solution.

I had this particularly difficult moment during Solstice development, when I realised I'll go crazy if I have to read through the same story again for the hundredth time, but I still needed to test every route. So I wrote myself a bot that did it for me.

Automated test are nothing new, especially in the commercial software world. For games it's less prevalent. Part of it is the complexity of "teaching" a bot to believably act as a player in a mess of complex interacting systems. Super easy to do for something like Solstice. It's a visual novel. Just click through the text and make choices. Done. But Bonfire is a tactical RPG with combos, metagame, resource management, etc. It would require a fairly complex AI to make it work.

Except turns out I already wrote that AI. There's this rare encounter where you fight shadows of your previously failed run, which use the exact same party composition and stats that you've had at that point. These shadows mimic the way an actual player plays, including specific cross-class combos and wider strategies. So hey, I just had to repurpose this for the bot and only add the decision-making layer for picking quests, upgrading characters, and managing food and gold. Right?

Well, no. It took a bit more than that, rather unsurprisingly. But having this initial boost was enough to convince me to give it a go and it was very much worth it. I can have the game play itself at ludicrous speed in a tiny window in the corner of my screen pretty much at all times, racking up hundreds of hours of playtime.

This obviously doesn't make human testing obsolete. AI can play the game, look for bugs & crashes, even test long term balance, but it won't tell me I've made a typo or if the pacing is just off. It's also... too good at the game. Not as good as an experienced player, but much better than a new one. It doesn't make mistakes, it doesn't experiment with new items or abilities, and it always knows what to do and where to go.

Still, it's massively helpful. While writing this post, it simulated nearly 6 hours of playtime and discovered two crashes (one of which I already fixed, the other looks like major PITA). So yeah. If you're a small developer, I very much encourage you to give this approach a try. And if you're a player, I hope this was an interesting peek into how games are made.

Cheers!
-Tom

Update Sneak Peek: They're Out to Get You!

Let me tell you how the next update will make the game easier by making it harder.



One of the upcoming features is the introduction of danger level. As your party explores their current area, Mournfolk will slowly zero in on your location and eventually ambush the camp. This leads to an extremely difficult battle and a forced escape to another place, with some resources inevitably left behind. And that's in the best case scenario!



Managing this danger level becomes a game in itself. The threat of being ambushed means you really have to pick what to focus on in the current map. Sometimes it's okay to explore a bit, sometimes it's best to pursue only the most critical resources, sometimes you just have to run and that's it. There are also other, more intentional ways of lowering the danger level, if you have the time (and heroes) to spare. All in all, it's something that you'll always have to be mindful of, but can overcome through good decision making and resource management.

So, how does adding yet another layer of tension make the game easier? Well, I lied a bit. It's not easier. It's easier to learn.

One of the biggest challenges new players face is the lack of food. Often to the point of frustration. Once you know the game better, you understand that sometimes it's not worth spending your resources to explore every single quest on a map and instead move on earlier, especially as travel means longer quests with more food drops, and you can target specific areas for specific resources. However, newer players feel compelled to do absolutely everything in absolutely every area, and that's often not the best choice. This new feature looks them in the eye and says: "Yeah, don't do that, okay?"

Basically, game design is usually more carrot than stick, but sometimes stick is good. Especially in a game about a collapsed world.

PS. Props to anyone who figures out what was my inspiration for the eyes effect in the gif above (it serves as a transition to the ambush battle).

Cheers!
-Tom

Back to Work!

Happy New Year!

Sorry for the recent lack of updates. For the past few months I've been focusing on another project (that I hope will go public soon) where I work as design lead to pay the bills. Apparently indie devs moonlight at larger studios and not the other way around these days. Or at least I do.

With that out of the way for the foreseeable future, I'm now back to working on the next Bonfire update full-time. Majority of the back-end work is already done, but we're still largely in the woods re. content and overall polish/integration. Expect more info about what's coming soon.

Cheers!
-Tom

Patch 0.9.74

Patch 0.9.74 is probably the last larger hotfix for Witching Hour before we move to working on the next major content update. It brings some important balance changes, as well as a few minor bugfixes.

[h3]BALANCE:[/h3]
  • Zhu's Inspiration ability no longer extends debuffs but instead grants one free use of an item.
  • Hexa's Inspiration ability no longer grants a Special buff and instead extends debuffs.
  • All stats now have effective caps of -100 at minimum and 200 at max.
  • Zivko's Boost duration now increases by 1 per charge instead of 2.
  • Zivko's Boost power decreased from 50%-200% to 50%-150%.
  • Witching Hour rune now applies its quickening effect before the Special buff takes place, making it a little less impactful.
  • Stat boosting items are no longer exempt from free item use effects.
  • Dark Feast should now always kill its target.
Dev Note: Zhu's and Hexa's Inspirations switcheroo is meant to better fit the characters thematically, but it also nerfs the ability to stack multiple Hexes.

Dev Note #2: As more characters and abilities are introduced, it's easier to stack multiple buffs to reach game-breaking stat values. Introducing caps should target-nerf these specific exploits while keeping normal gameplay unaffected.

Dev Note #3: Boost's nerf is pretty major and we may slightly dial it down in a future hotfix. It should still be a battle-winning ability when used correctly, though.


[h3]GAMEPLAY & QOL:[/h3]
  • Free item use effects have a clearer indication when they trigger.
  • Tooltips and quest selection on the map screen behaves more consistently with overlapping pins.


[h3]BUG FIXES & MISC STUFF:[/h3]
  • Fixed another rare crash caused by Dark Pulse.
  • Zapper attack now correctly tracks moving targets.
  • Fixed Inspiration descriptions on the hero screen. Again.
  • Zhu's Focus Fire no longer triggers Resonance when attacking a different enemy.
  • Zivko's Failure AI will no longer waste Boosts on weak summons.
  • Fixed incorrect pronoun usage in The Hiatus errand.
  • Fixed typos in some of Hexa's quips and dialogue.


We hope you are enjoying the update! If you still encounter any issues or bugs, drop by our community forums or MoaCube's Discord server.

-Tom

Hotfix 0.9.73

An important hotfix as -- keeping to the best traditions of game development -- last patch fixed some bugs by adding far worse ones.

[h3]Gameplay & QoL:[/h3]
  • You can now equip Inspirations that are slotted by another hero without having to unequip them first.
  • Summoning creatures when at minion limit will now destroy the weakest summon to make space.
  • Added a tutorial message that explains this mechanic.


[h3]Bug Fixes:[/h3]
  • Fixed a crash on Food and Glimmer tally in quest and errand reward messages.
  • Abilities that call for enemy reinforcements will now place them correctly in horde events.
  • Absorbing Shadowspawn should no longer crash the game in rare situations where it causes the Witch to die (such as Booby Trap chain reactions).
Dev note: The tally bug crashed the game at the end of many quests, which could result in them behaving as if only partially completed. This might temporarily affect your save file even after the fix, but will eventually resolve itself.