Updates at least monthly.

A Series of...

Icon with cog and spannerWelcome all, for another dev blog!

It will delight you to know that we had one very slow month, followed by a relatively fast one.

Rolling into October, my development tasks were largely scripting and UI. While a necessary evil, they are among the necessary evils that I somewhat enjoy working on: you make changes, and they're in the game immediately. That's usually satisfying to do.

Unfortunately, I had a slip while frolicking in the mountains with some friends a few days after our previous blog post, and ended up out of work for three weeks. (My recovery has gone just fine!)

Concurrently, you might have heard about the power situation in California. Mike (DarnYak) was one of the lucky three million affected, which chopped another two weeks' work off our October progress. Not such a hot month!

November has been quite a bit smoother. We knew what needed doing, and have been chugging through our backlog at a brisk pace. I've been pleased with the progress we've made, and looked forward to a December of iterating gameplay and tightening netcode.

That will happen, but won't be at full speed just yet as it seems to be accident season: my wrist was sprained two days ago after a (thankfully minor) cycling accident.

We'll have another update for you later in the month - hopefully with more focus on the game than this one!


Musings on Laning

Icon for one of the game's abilitiesHi all,

The past week has had me consumed with lane design. I feel like I'm going to end up writing a longer article about this topic at some point, but hey: why not share the journey in-progress? That's what dev blogs are for!

So let us begin. I attribute a lot of value to lanes. They define the genre, and comprise a large portion of what heroes spend their time doing throughout a match. A well-designed laning experience is crucial; more at the heart of the game than even hero design.

There are many variables to consider:

  • What is the width and length of the lane?
  • What troops spawn, and in what quantities and frequencies?
  • How do players interact with them?
  • Do special troops arrive?
  • What rewards do we offer?
  • Are all lanes identical?

Think about having a blank map in front of you. How would you answer these questions?

Of course, there are plenty of established answers: we are all familiar with last-hits, denies, aggro behaviours, siege troops, etc.

As a mod, RoW had none of the above. The troops were asymmetric and had passive abilities, bonus gold would occasionally drop on the ground, and while troops always prioritised heroes last: their attack damage was substantial.

In the time since, my ideas for the surrounding game systems have evolved a lot, as have standards for lane design. I'm now looking at their purpose from more angles: the second to second, minute to minute, and their overall contribution to strategy. Lanes should be rich.

That said: even if I know the results I want, it's a tough process iterating towards them. So much of what defines modern standards came from emergent behaviours; designing systems of equivalent depth from scratch would be no small feat.

Thankfully there is a great place to seek answers: old lane-pushing games! So much of RoW's design already stands on the shoulders of underappreciated giants. I took a tour through my maps folder, and amongst the games I looked at:

  • There could be anything from three to eight troops in each wave.
  • Sometimes the ranged troop would meander to the front, other times troops would march in rigid formation.
  • Troops occasionally have spells which they use, including ones which summon more troops.
  • Wave spawn frequency could be anywhere from 25 to 60 seconds.
  • Some games use a tic-toc rhythm with a big wave, small wave, big wave, etc.
  • Hiring reinforcements, troop upgrades, and many other features could change troop composition.

Being able to load up and observe a wide variety of empty lanes and how they flow is just great for inspiring the right direction in which to experiment next.

And how nice to be at a point in development where we have all the tools needed for iterating. I can draw and tweak splines which troops will follow; attacks and abilities are easy to adjust, objectives are in, and our 5v5 map is starting to feel a little bit like home.

The tricky part is going to be tuning: ensuring that the second to second meshes with the minute to minute, which meshes with grander strategic agency. And, I am pleased to say in response to some sage advice in our discord, that lanes are definitely going to look different to what you're used to.

European Games Week (which we mentioned last time) was sadly cancelled at the last minute! The Irish gamedev community ended up putting on some smaller, replacement events, which was great to see - especially since several people had booked flights to be able to attend. Alas, no pictures of me babbling about the game this time!


Awash with Words

Icon for Roaring Tides ability.Hi all,

Summer has slid by all too quickly. Let's catch up.

Our biggest recent undertaking has been bringing on a pro writer for the summer months. We feel that story and its consistency with gameplay are high priorities, and getting a writer involved early is how we're ensuring quality in these areas.

Here's some good news! This game will have a story: one with a beginning, a middle, and an ending. There are main characters and minor characters, and what you experience in-game is going to be consistent with the overall plot.

Once the game launches, we will be exploring and experimenting with narrative delivery. At least some of it will be missions and special events. I think it's a priority that the introductory missions explain what's going on, as often lane-pushing games put all their focus on mechanics and don't set the scene or explain why a battle is being fought. That suits some players, but alienates others. We think we can do better!

Specifics of the narrative and introductory missions won't be part of the alpha for some months, as our immediate focus remains on technical issues and gameplay (which still need plenty of work). However, it is reassuring to know that the foundations are in place for our world and worldbuilding.

We also spent some time with our writer working through character designs. While we haven't done concept art yet, I finally know (roughly) what some of my characters are going to look like! Given that I've known and considered some of them for years, this is very exciting (at least for me!).

I am pleased that we are doing a good job of drawing inspiration from and representing many cultures. The ideas behind each character are universal human attributes, and reflecting that through aesthetics and narrative has a very satisfying feel to it.

Concept art followed by 3D sculpting and animations are the next stages. More on those soon.

Right now, we're trudging through Lumberyard updates. I really didn't want to do them: for a small team like us with a complex game, small changes can have a big impact so updating requires a disproportionate amount of care (and time).

The last time we updated was May 2018, and I would have put them off forever... but as it stands we're stuck with older Lumberyard systems and that limits us. We can't even adjust attack rate on our units! So we're charging ahead with it and hopefully wrap them up sooner rather than later. Similarly, some of our backend web infrastructure needed an update - which has now been sorted.

My recent work on the game has been with stylesheets and improving audiovisual feedback, which are closely linked. We've had stylesheets in for a while: they're a description of what assets the player hears and sees: be those particles or textures or ability sounds. We load stylesheets following certain conditions, allowing us to implement cosmetics, team-colours, colour-blind mode, and so on.

In our previous implementation, stylesheets were attached only to actions and resources. This meant that when a buff was applying a heal, we didn't have styling information for the buff, and couldn't show appropriately styled healing numbers. There were also inconsistencies in the styling that we did use, leading to the wrong styles showing from time to time. Not so good for players!

With recent changes, stylesheets now apply to almost everything, and encompass text and tooltips that the player sees as well. It was an odd thing to remove the ->getName() method from our actions and objects; that's one of the first things we added. Now names are style information, and are correctly located elsewhere. Hopefully localisation will be a bit easier down the line as well.

For any of you in Ireland, we'll be at European Games Week in September. Feel free to stop by and try the game!

Until next time,


Icon for the Camaraderie ability.Hi all,

I've always had a vague awareness that game designers use vast spreadsheets for calculating balance and the difficulty of enemies.

As it happens, that's not something I've ever done. Given the relatively few heroes in Dota Outland and Rise of Winterchill, my road to balance was through listening, tweaking, and seeing what worked. Similarly, I never did a game design document: just put out new versions and scribbled notes as I went.

Recently, Kybolt has adopted some new collaboration tools, and I've been making good use of them. For example, my list of ability ideas dates back to 2007, all scrawled into a now-2500 line notepad file.

Time for a change, right? I'm putting them into a database, tagged using the same system I use for designing kits so I can easily search for matches, and drive discussion and creativity.

What's even better is that in pursuit of tagging them, sometimes new ideas and perspectives spring forth. One of Rise of Winterchill's heroes had the following ultimate:

Icon for the Camaraderie ability.


Shares your inventory with a target allied hero for up to 20 seconds, or until you become over 900 distance apart. Both heroes will effectively enjoy a 12-slot inventory, with full bonuses from all items.

Yes, this really existed. It may further surprise you that the ability didn't get used very much!

For a long time I attributed this to poor audiovisual feedback. Allies often didn't realise they had the buff, and ran out of range. Coordinating its use was difficult. I figured that with better cues, the ability would be fine.

However, during my process of tagging abilities for the database, I realised another reason for the slow uptake: players can't experiment with Camaraderie on their own. It required an attentive ally, and ongoing coordination of item builds for best results. As an ultimate ability, the player might not even read it and realise they could share items until significantly into their build.

If I were introducing this ability now, I think an option to target non-hero units and share your inventory with them would be the right step. That lets players get accustomed to using the ability and have some autonomy, before eventually settling on the "best" target as allied heroes.

This is just one example of the tagging making itself useful. Having a top-level perspective over all abilities and being able to sift through them... it's great for accelerating design. I'm not sure if or when balance spreadsheets will get involved, but being able to put numbers to travel time, time to kill, etc. is definitely important. And we have much better documentation now, which is nice.

In other news, the home page mentions something called chess laning: a set of mechanics which are in the alpha. As I suspected, the initial implementation has been a bit clunky so we're taking steps to simplify it. Originally I was worried that there wouldn't be enough nuance... but some fresh ideas revealed themselves so we'll have to see where they lead.

Until next time,

Piercing through Fog

Icon for the 'Piercing Eye' ability, depicting a red beastial eye peering from the shadows.It has been a quiet month of work on the game, so I'll stick to some simple informative updates.

The main feature we've added recently is fog of war, which enables more gameplay-oriented testing as testers can now outmaneuver and surprise each-other. The two-lane map Merrilane is starting to feel a little cramped!

One design decision I'll share is that each team's troops will be permanently visible to both teams. This is in contrast to most lane-pushing games: which tend to conceal troop positions.

Since information about spawn timings and troop paths is easily researched, I am inclined to keep things accessible and show everyone where the troops are at all times. (This does not include any extra units that come from mercenary camps; those will stay hidden until they first enter vision. Some secrecy is important!)

Speaking of permanently visible, you may like to check out the completed hero kit for Rasputin, who is getting all the attention as usual...

We are currently working on a mixture of more content (always nice) and various quality-of-life features like improving pathfinding and making abilities more responsive. Alpha is still being kept small as we have our hands full with development; we will ease the gates open a little further in May.

Thanks for staying tuned!

Rush of Faith

Rush of Faith IconHi folks,

As those of you who have been following along know, we're currently in alpha testing for the game. Admittedly, it's been slow work.

Among the reasons for that are us being a small team, and the need to take care of other business (legal, taxes, events, etc.). But maybe the worst offender is me as a hero designer.

Having worked on hero designs for over 15 years, I've already played with most of the low-hanging fruit as far as mechanics go. New heroes tend to push limits to bring out exactly the kind of gameplay I want... and that usually means pushing our technical limits as well.

A Little Paradox

I will share an example from some hero design work that I was doing earlier this week. I was examining an ability that was overloaded, so I added more stuff and it became simpler(!).

Here's how. One of Rasputin's abilities was as follows:

Rush of Faith

Rush of Faith

Rasputin pauses for 2 seconds, before running to the target ally at max speed, healing them on arrival. A second activation will swap the heal for a temporary offensive buff.

Even though this ability is simple to describe, I felt it was overloaded.

  • The player must weigh mobility against healing against damage, which is a difficult three-way calculation.
  • Giving the offensive buff to an ally adds complications. Can they make use of the buff? Are they a competent player?
    • To enjoy any mobility, Rasputin has to target an ally: which means he doesn't get to be a play-maker with the offensive buff himself.

Here's a better version of this ability:

Rush of Faith

Rush of Faith

Rasputin pauses for 2 seconds, before running to the target ally at max speed, healing them on arrival. Extra activations will cost influence, and add +60% healing, a cleanse, and an AoE cleanse.

This ability has three extra activations, which is definitely 'more stuff'. However, without an offensive component our player can weigh mobility against healing: a much cleaner comparison that demands less cognitive load. Having multiple tiers of healing makes this a gradient ability, which is exactly what we want to enable player expression.

All this sounds great, but it means we have to add support for having more-than-one extra activations. This involves new code and bugs, and delays progress on other stuff.

That's kind of how the story has been going. We do cut corners when we need to, but it is a big advantage if players are alpha-testing heroes 'as intended'.

Descent of Winterchill

Earlier I mentioned 'other business', and on that topic we will soon be retiring the name Rise of Winterchill!

Whenever I introduce someone to the project, questions about that name are a given. It served well for a Warcraft III map, but is less accessible to a general audience, and routinely gets confused with a certain location in Game of Thrones.

The new name is not yet announced, but we will be very excited to share it with you all when we rebrand.

Thanks for your continued interest in the game; we are still working hard to make it happen!

Until next time,