Dev blog 43 - Unlocking heroes
Oh hi, Mark.
This week I wanted to show a system I’ve been working on for a while.
At the start of the game, you will only have access to 3 heroes: Breunor, Merewen, and Morgan Tud. To get the other heroes, you’ll have to unlock them through lootboxes gameplay. The requirements for unlocking specific heroes can be varied, as per some of our discussions. This prompted the need for data-driven configurations on how to unlock specific heroes.
Since one of the goals for the game is to be modder friendly, this system couldn’t be hardcoded to look for specific things just for our heroes. Anybody with enough time and effort could add new heroes to the game, and they might wish to set up a way to unlock them. The same system is also meant to be used for unlocking achievements, but those will actually be hardcoded, so no cheesing it. :) The UI is also made to accommodate for more heroes than what we're shipping.

The list of wanted things for the system (as Mat wrote them) were things like:
Reading this list, you can glean a possible list of things that the game needs to track or notify as happening. Things like “spend currency”, “kill unit”, “visit location” etc, along with the required context for the event. The “spend currency” needs what currency is being spent and the amount, the “kill unit” needs information about the attacker and the killed unit, while the “visit location” needs the location info.

A big part of the system is also having nested requirements. The event for “win fight” doesn’t know whether you’ve lost any units, it just knows the fight was won. To solve this, we allow unlock configurations to have additional requirements.

Every requirement is tracked individually and propagates its own satisfaction state to its “parent” unlock requirement. Once all unlock requirements are satisfied, they grant their unlock reward, which currently is just the hero in question. There’s room for adding additional reward types, like alternate hero configurations (imagine a Better Breunor who starts with +3 health by default).

Note that all of these images are just me testing the system, not what's going into the final game. That part is gonna be on Mat to decide. We also need to add a way to check your current progress towards unlocking heroes during a run, we’re still discussing how to do that properly.
Thanks for reading! If you have cool ideas for unlock requirements for heroes and would like to influence development a bit, join our Discord server and share!
MarkoP
P.S. There will be no lootboxes in the game. They are shit and have no place in any game.
https://store.steampowered.com/app/600610/The_Hand_of_Merlin/
This week I wanted to show a system I’ve been working on for a while.
At the start of the game, you will only have access to 3 heroes: Breunor, Merewen, and Morgan Tud. To get the other heroes, you’ll have to unlock them through lootboxes gameplay. The requirements for unlocking specific heroes can be varied, as per some of our discussions. This prompted the need for data-driven configurations on how to unlock specific heroes.
Since one of the goals for the game is to be modder friendly, this system couldn’t be hardcoded to look for specific things just for our heroes. Anybody with enough time and effort could add new heroes to the game, and they might wish to set up a way to unlock them. The same system is also meant to be used for unlocking achievements, but those will actually be hardcoded, so no cheesing it. :) The UI is also made to accommodate for more heroes than what we're shipping.

The list of wanted things for the system (as Mat wrote them) were things like:
- Deal at least 20 damage during a single round
- While in Marca Hispanica, survive 5 fights without losing a hero
- During a single run, deal 100 damage with a Mystic, spend 4 mana, and don’t lose any Mystics
- Before reaching Jerusalem, Acquire 700 gold and kill 20 bandits
- Deal at least 15 points of friendly fire damage in a single ability.
- Kill 10 Abominations in the Battle of Roncevaux Pass and have a mystic survive.
Reading this list, you can glean a possible list of things that the game needs to track or notify as happening. Things like “spend currency”, “kill unit”, “visit location” etc, along with the required context for the event. The “spend currency” needs what currency is being spent and the amount, the “kill unit” needs information about the attacker and the killed unit, while the “visit location” needs the location info.

A big part of the system is also having nested requirements. The event for “win fight” doesn’t know whether you’ve lost any units, it just knows the fight was won. To solve this, we allow unlock configurations to have additional requirements.

Every requirement is tracked individually and propagates its own satisfaction state to its “parent” unlock requirement. Once all unlock requirements are satisfied, they grant their unlock reward, which currently is just the hero in question. There’s room for adding additional reward types, like alternate hero configurations (imagine a Better Breunor who starts with +3 health by default).

Note that all of these images are just me testing the system, not what's going into the final game. That part is gonna be on Mat to decide. We also need to add a way to check your current progress towards unlocking heroes during a run, we’re still discussing how to do that properly.
Thanks for reading! If you have cool ideas for unlock requirements for heroes and would like to influence development a bit, join our Discord server and share!
MarkoP
P.S. There will be no lootboxes in the game. They are shit and have no place in any game.
https://store.steampowered.com/app/600610/The_Hand_of_Merlin/










