The Hand of Merlin cover
The Hand of Merlin screenshot
Linux PC Mac PS4 XONE Switch PS5 Steam Gog Epic
Genre: Role-playing (RPG), Strategy, Turn-based strategy (TBS), Tactical, Adventure, Indie, Card & Board Game

The Hand of Merlin

Dev blog 83 - Making New Enemies

This post is written by Mat, our gameplay designer.

Hello guys and gals! Today I wanted to share with you a bit about how we go about adding new stuff to the game, particularly content.

The Hand of Merlin is what I like to describe as a “rectangular” game, meaning it is validated not by its systems, but by its content. A roundabout way of saying that the game is fun or not depending on what you face, discover, and do in the game.

That means that we have to take extra care in creating cool encounters, enemies and skills for you to use and recombine, and the processes we use to go about creating said content needs to be constantly revised.

In the context of enemies and skills, its a three-stage process.

  1. We identify a fantasy or a niche. This is the verbal stage. It’s usually down to a sentence or two. In the early stages of the game, they were mostly aesthetic, like “Bashing someone with a shield sounds fun” or “I had this image of a big, beetle-like monster”, which would evolve into Bash and Behemoth respectively. Nowadays, so close to full release, we tend to find more mechanical or thematic niches to fill, like “The Warrior could use some self-heals” and “So many enemies punish the melee characters, how about we do the reverse?” turning into Malice and the upcoming Basilisk.

  2. Then, we Systematize - my personal favorite! We have to translate the idea into actual game terms. What does it mean to push someone with a shield? How is it different from a basic attack? Why would you pick it? This stage is still theoretical, but we have to start thinking about how to implement it in-game, often checking with MarkoP to see what’s possible, or making some small tests in-editor. A great example is how Thorntoad’s Bristleback passive went from a desire to “dissuade the player from focusing fire”, into a process: whenever he is hit, he’ll deal melee damage and become more resilient to damage, via the addition of another status effect, Thick Skin.
    As a side note, Relics can often start in this step. Whenever we are doing a new skill or fix, we “discover” a possibility in the design and come up with a relic’s functionality first, before finding a fantasy/historical element to it.

  3. Then, we Implement. For most skills and enemies, we could give the artists and programmers a heads-up in advance, so by the time the design team reaches this stage, we have the assets ready to slot in and see them in-engine. We can find out some impossibilities in current technologies, or discover some inconsistencies with our plans: that’s normal, we just go back a step and try again. After a bit, we have something testable. For the Basilisk, we actually were lucky enough to be able to use some pieces of other enemies, like Mandrake’s movement AI and some lessons we learned from Wilfred’s Nonchalant passive, and the implementation was quite quick.

  4. Then, Internal playtest! Up until this point, the skill or enemy was built in a vacuum, with theories and desires alone. We thought it would be a neat idea if, say, Redcap’s Ooze, that ground effect he leaves, actually could heal other abominations. But once you actually see it happening in live play, with 2 Redcaps and a Mandrake, you notice that it doesn’t make a lot of sense. It’s not properly explained, the player’s can’t do a lot about it, and Ooze is already a hassle on its own… Often, the ideas are scrapped or retooled.

    In this stage, it’s very important to bring other members of the development team into the loop, since the people that developed the idea from concept to implementation can become numb to its issues, or only see the results from a specific angle. I often gloss over poor descriptions or AI mistakes in the content I implement myself, and have to be reminded by my fellow devs, simply because I’ve been seeing the thing for so many hours that the small details don’t strike me as odd anymore. This is a great piece of advice to any designer: Designing something in a vacuum is dangerous! Get someone else to see and approve your deliverables.

  5. Then we can move on to Iterating. Very rarely do we actually see a piece of content go from concept to seeing live play without at least one touch-up. As an example, an early implementation of Redcap had passive Evasion, meaning that no matter what you did, there was always a 10% chance that you’d miss it. When I designed it, it made perfect sense: The players have it, and it’s good that you build redundancy in your plans, to account for the randomness factor. But other devs played it and found it frustrating! So we iterated: maybe the Gaze ability could introduce the same randomness and require the same redundancy, but in a more straightforward way, that the players can play for. Maybe we can make another enemy gain evasion only if you attack them, like Wyvern turned out to be. We re-systematize, re-implement, retest… until we find it acceptable.

  6. Then you come in. Live feedback is the greatest (and most overwhelming) thing to happen to our game dev process! We show our content piece to you, the players, and see what you think. Sometimes you think that “The boss fight is a bit meh”, or that “A specific map in Zone 2 is the worst”, or, in a brighter light, that “cooldown reduction makes you feel powerful” and “dealing direct health damage is cool”. We take that into consideration, try to account for it, and fix whatever bugs and errors you (or our extended QA team) find out. This step can happen over and over and is still ongoing for many aspects of the game, but it's one of the most important ones too, as it makes the game a better product for you!


So there you have it! The process of how we add content. Now that you know how important your voice is in our development process, be sure to show up on our Discord server to share your feedback with how the game is turning out, so we can keep improving it!

Mat

Dev blog 82 - Enemy Updates

This post is written by Mat, our gameplay designer.

Hello there! Mat is back to talk design.

If you guys ever read our soft roadmap, you’ll remember that another major content patch that we want to do is the addition of a few new enemies - a chunky new abomination, and some support bandits.

It's great to be able to design a whole new enemy set after seeing the game live for a few months. We learned a lot about how players engage with the game, their favorite strategies and skills, etc. We can now create a creature specifically tailored to challenge the meta!

So, let me introduce you to the Basilisk, our new abomination!



It serves as a chunky sniper-type. Very high range, likes to take cover, and has some damage-over-time properties, choosing to lay down some poison-type abilities while growing its own power with the Toxin Buildup passive, which increases his damage every turn. It’ll be featured on Marca Hispanica onwards, taking the same “slot” as Thorntoad. (if you didn’t like the chunky guy, then rejoice!)

However, he is not without limitations. His Toxin Buildup passive can be reduced by melee attacks, giving your Warriors another way to deal with the threat.

To accompany that new addition, we are also introducing two Mystic Bandits, the Enchanter and Witch for Albion and Marca Hispanica respectively.



While not particularly resilient, they can heal, empower and even give more AP to the other bandits, requiring your attention at all stages of a match, and offering a bit of a different strategy for your human enemies.

But that's not all. As we introduced some power creep when redesigning skills and passives, we gave the players a lot of new toys to play with, but the enemies didn’t keep up. Yeah, we made them a bit stronger, but we could do better. I’m not going to spoil everything, but we changed how some of the enemy passives work a bit, from the dreaded Wyvern’s Elusive, to Behemoth’s Bloodlust, making them more in line with the current direction of the game, and addressing some of the more common feedback we received.

Expect the major patch soon, and please let us know what you think in our Discord server.

We're excited to give you some new challenges to face!

Mat

Dev blog 81 - Fun with gamepads

Hi folks!

This week we won’t be pushing a patch out because we don’t have any notable changes done. Mat is on vacation so there are no balance changes, and I’m still busy with gamepad support, tho I’m getting into the finishing stages of the core functionality so hopefully soon I’ll go back to some gameplay stuffs.

Since there’s no other topic we could talk about, I’ll continue talking about gamepads from last week.

The current state of the support is fairly complete. All the main screens are fully usable with the gamepad in a way that, at least to me as a non-console user, feels relatively normal. There are a few places that are janky and weird, most notably selection of spells in the core, node selection in the overworld map and the tile picking in fights. Basically, anything that has to do with 3D elements, which is probably not surprising since 2D UI interaction with gamepads is much more intuitive (and simple!) than anything to do with 3D that requires picking.

When I envisioned spell selection in the core, I thought that it would make sense to use the up/down stick or d-pad movement to move between spell tiers, and left/right would move between the individual spells in that tier. After implementing it, I’ll say that my vision was entirely wrong, and it feels very unintuitive and crap. So I’ll be changing that so it works more like a directional thing where UP selects the first spell that’s above the currently selected one, and so on.

The world map node selection is a bit better, but still weird. It works by requiring you to push the stick in the direction of the node you want to select relative to the current node, but this has 2 issues. The first is that when two nodes are in a relatively similar direction, it’s hard to precisely pick which one you want to really go to because the margin for difference is very small. The second is a bit of unintuitiveness stemming from the first issue: you can’t push UP to select the top node, but have to push in the, for example, right-and-up-a-bit to select it. This is another thing that will be tweaked once I get some feedback and ideas for a fix.

Lastly, the combat tile picking is the weirdest one. I’ve tried 3 solutions so far, and neither felt good :( The main problem I’ve identified is that our game doesn’t use a pure isometric projection (which would keep the vertical lines parallel to the screen), but a very narrow perspective projection. The camera is very far away from the map and is using a small FoV for a sort of telescopic lens effect. The other part is that the camera is looking down at an angle. So the issues I saw were:

  • When the hit tile (or the screen point that defines which tile is hit) happens to be on the edge of the screen, pushing the stick UP actually moved the hit world point towards the up-and-left/right (depending on which side of the screen you’re on), which is caused by the perspective projection having a vanishing point, towards which all points will move to when going away from the camera.
  • The speed of moving the hit world point up or down is not the same as moving it left/right, which is caused by the camera angle: moving 1 meter away from the camera will move a shorter vertical screen distance than moving 1 meter left/right and keeping the same distance from the camera.


Both issues are a natural byproduct of our setup, but they do have a solution which will just take a bit more thought put into it, or a moment of epiphany to hit me like a truck and make me feel stupid for not thinking of it sooner.

If you have some ideas for how any of these might work from a user perspective, I welcome the feedback. I don’t own any consoles and only play games with my gamepad when it feels it would fit (like platformers), so having good feeling gamepad controls is a bit outside of my experience range. I can also answer any inquiries regarding how any other part of the game works with the controller, in case you wanted to know.

Join our Discord server if you want a more direct approach to leaving feedback!

MarkoP

Patch Notes - Early Access Build 674311

New features:
• Added new sound effects for several abilities and enemies.

General fixes:
• Charm Stones relic no longer triggers Safir's Paladin passive.
• Warrior's Interdict skill (upgrade of Stunning Blow) no longer removes Ethereal status effect from Pylons.
• Summoned units (such as Decoys) will no longer be tracked in end-of-run report as casualties.
• Fixed an issue preventing Blight and Decoy skills from being drawn at rank up.
• Summoned units will now immediately gain the effects of auras within range, rather than having to move out and back in.
• Fixed typos in several tooltips.

Optimizations:
• Greatly optimized the terrain system, reducing the game's total memory footprint by about 40% in skirmish scenarios. This change also reduces VRAM and disk space requirements.
• Optimized texture sizes of certain monsters.

Gameplay balancing:
• Alain The White's Fey passive will now also trigger off Decoys.

Dev blog 80 - Vacations and gamepads

Hi all!

Some members of the team have taken their vacation time this week, some took last week off, and some are taking next week off, so this period might be a bit slower in terms of interesting design blog posts and patches. We do have a patch coming today with some smaller/easier fixes and a memory optimization, but next week will probably go without one.

Since my time has mostly been spent on working on gamepad support, I can at least talk about how that’s going.

A lot of our UI code was written with a mouse and keyboard in mind. We’re fairly tooltip heavy and that’s presenting an interesting challenge. My mindset for implementing gamepads was always to do it so it feels natural to control the game with it. Obviously this is a bit tricky if most of the code was done with a mouse in mind instead of a gamepad. In particular, we wanted the game to be fully controllable with only the mouse and not require the keyboard, so UX wise, everything is done to respond to a single button press at a specific point on the screen.

When talking about being able to control the game with just the mouse, you’re expecting only one, maybe two, buttons to exist. UI interactions are usually intuitive for people in this day and age, so relying on just the left mouse button coupled with its point on the screen is enough to drive the entire game.

For gamepads, this obviously doesn’t work the same. If you’re using a gamepad, you can likely expect the player to be able to use all of it’s buttons. Gamepads also don’t really have a screen point they are directly interacting with like the mouse has, and even if they do, moving that point is much harder/different/annoying. Our first temporary implementation (which is currently available if you want to play with it) does exactly that: it moves the virtual mouse position with the left stick, and uses the A(xbox) or X(ps) button to emulate the left mouse button click. This is fine for now, but that’s not how a gamepad user expects to control the game.

So I went through every screen in the game and looked at it with my gamepad in hand and thought about how I’d control that screen with a gamepad. Jumping between UI options, jumping across Spells, toggling between UI mode and book/node/core/fight modes. With that plan in mind, I started looking at the code to see how to split the control into “this is when you’re using a gamepad” and “this is when you’ve got a mouse”. The whole process requires a fair bit of refactoring, but is on a good trajectory to be done for the next major patch.

Thanks for reading! Join our Discord server!

MarkoP

Heroes Rise



Patch Notes - Early Access Build 674263

New features:
• Added 3 new Heroes: Tariq al-Ash'ab (Warrior), Alain the White (Ranger), Isabel de Orreaga (Mystic).
Each has a unique new passive ability, too! You can recruit these new Heroes on your travels (by visiting Heroic nodes with a non-full party), and you can also unlock them permanently by performing various feats of strength.

• Added 3 new Skills available at rank-up: Rage (Warrior), Decoy (Ranger) and Blight (Mystic).

General fixes:
• Fixed a very rare issue that could cause wrong font rendering in Book UI, or even a crash.
• Fixed a bug where mana granted by certain relics would sometimes not be applied.

Optimizations:
• Reduced the memory usage of various particle effects, without any noticeable loss in quality.

Dev blog 79 - Heroes Rise

This post is written by Mat, our gameplay designer.

Hey! It’s time for a new major patch, and with it, some new toys for you to play with!

When we were planning on what to do during Early Access, we knew that we had to focus a lot on replayability. New alternate maps, new enemies, new skills… and new heroes! With the addition of passives, picking the correct hero for your playstyle is an important part of The Hand of Merlin experience. For that reason, we’re proud to present our newest addition to the hero roster:



Our new warrior is Tariq al-Ash'ab, a berber mercenary. Tariq embodies fancy footwork, and with his Bladedancer passive, he becomes stronger for each nearby enemy. He carries the Cleave ability for a similar purpose, and even sports decent speed and evasion. With some healing support or access to good armor, he can be one of the heaviest hitters in your warband!



For the new ranger, we bring you Alain the White, a mysterious prince. A decent speed and even some evasion, Alain attempts to be a more utility-oriented ranger, with his Fey passive punishing enemies that miss, and the new Decoy skill, that summons an inanimate target to draw enemy fire.



Finally, Isabel de Orreaga is our new mystic. This tough hermit carries heavier defensive attributes than most of her class, and sports the Campaign Surgeon passive, which makes every healing also come with a few stacks of the Keen status effect, increasing the damage of the next attack. To capitalize on that, she has the new Blight ability, an alternative way of healing. When targeting a foe with this ability, all your allies that damage the target are healed for a bit of armor.


Each new hero is an attempt to expand what it means to increase each class’s design space and with it, offer new ways to approach character building. Utility rangers, tanky mystics and warriors that don’t need to circle the battlefield too much, all with new abilities and passives to play with.

And don’t worry: even though Tariq is using an old one, we added the Berserker’s Rage ability to the Warrior’s Pool. A single-target version of Warcry that grows as you deal damage, it will do wonders to validate AoE-oriented builds with Cleave, Charge, and Slam.

Let us know what you think of the new heroes, and which powerful builds you can come up with in our Discord server!

Mat

Dev blog 78 - Balancing and Experiments

This post is written by Mat, our gameplay designer.

Hello again! I got some more insights about how we go about balancing the game, if you are into that.

Balancing a strategy game is a herculean task, and we from the design department have had a lot of luck, being able to leverage our own dev team as playtesters, but also a lot of feedback from the community. Seeing the numbers go from flowcharts and datasheets into “feelings'' is a great joy to a game developer! Here’s how the process has been happening in the past few weeks.

Our goals haven’t changed. When we make changes, we are pursuing the highest number of significant choices possible. You know that moment when you look at two skills or two options and can’t decide which one to pick? If that paralysis is not due to a lack of information, it means that those two options are balanced. If one option is picked much more often, then it means they're not balanced. There’s a lot of interfering variables, but that’s the gist of it.

To give you some examples, let me talk about some of the data sets we use for balancing.

When we consider abilities, we look at which ones are being picked the most. In particular, I like looking at the ability roster of a party that has defeated the final fight. I call that data set “which abilities are the most commonly effective”. If an ability is too far from its other versions, it nudges me to the idea that they are not equally attractive, so I try to nerf one a bit, or buff the other versions. As an example, Driven Haste, the version that cleared non-offensive cooldowns, was under-picked. So we made it also clear debuffs, to see what effect it has on the picking rates.

Characters are similar. Apart from the obvious fact that most runs involve Breunor, Merewen and Morgan, we keep an eye to see if a specific character is rarely picked. If you take the raw data and then consider how hard each character is to unlock, you can raise some flags - it seems that Safir is considered underpowered, so we changed his passive for this week’s patch, for instance.

Resources are a bit more straightforward. Last year, when we were showcasing our initial demos, we started to make assumptions about how many level-ups a run should take, how much gold you’d get, and how much should be spent on gear to get to the average gear level we wanted. Huge spreadsheet, lots of theoretical plans. Then, we started implementing it and querying. Sometimes we got it right (people spent around 66% of their gold in gear, from our expected 70%), and sometimes we didn’t, like players being able to get to rank 11 in a single run. Some adjustments are still incoming, but we can’t be married to the original plans: if it’s fun, it's working!

Relics are a smoother experience. Because of their random nature, they don’t need to be very tightly balanced, and it’s always fun to see how broken a build can get when you get the right relics. They are usually the result of design experiments, like Mia’s Yonder Charm coming from our attempts to make a “stance” ability that eventually failed. We usually touch up on their designs and values occasionally, after being constantly under/overwhelmed when encountering them in a match. That’s as fuzzy as it gets!

This is really not a science, and there’s a lot of playing, feeling, and making adjustments. As our official release approaches and our recent successes, we are looking forward to seeing the results of our changes, and how fun the game ends up being.

Join our Discord server!

Mat

Patch Notes - Early Access Build 674160

Quality-of-Life improvements:
• Slightly increased the size of map node tooltips on the World Map, making them easier to read.
• Added new scrolling combat text messages for various events and reactions.

General fixes:
• Fixed the damage calculation for Ranger's Preemptive Vigil (upgrade of Archer's Vigil) to be the same as all other skills of the same line.
• Fixed an issue that made some upgrades of Ranger's Point Blank skill not have their on-hit and on-kill effects apply correctly.
• Fixed various typos in several tooltips.

Gameplay balancing:
• Safir's passive (Paladin) has a new mechanic. Now, Safir deals (0.5*Power + 1) damage to a random adjacent enemy whenever he uses a defensive or utility skill.
• Rana's and Zahra's passives now scale with Power, instead of giving a flat 50% armor restore.
• Reduced the base Speed of all Warrior Heroes by 1.
• Increased Rumayla's base Power to 6 (up from 5).
• Warrior's Driven Haste (upgrade of Haste) now also cleanses all debuffs.
• Warrior's Shield Block skill line is no longer limited by charges, and all versions that apply Resistance have their stack size increased by 1.
• Warrior's Overpowering Slash (upgrade of Slash) now deals Guard Down instead of Vulnerable, meaning the extra damage taken debuff is for one turn only.
• Warrior's Parry skill line no longer costs AP to be used.
• Mystic's Hallow skill and its Dense and Major Upgrades have their duration increased by 1.
• Resistance status effect now has 6 stacks max (up from 5).
• Harassed status effect no longer roots, just reduces speed.
• Quarry status effect is now capped at +1 AP given, no matter the source.

Patch Notes - Early Access Build 674061

General fixes:
• Fixed a rare crash that could sometimes happen when launching the game or winning the final battle.