1. Slaves of Magic
  2. News

Slaves of Magic News

Devlog #18 Filling the void with content

Hello everyone! This devlog is focused on showcasing the content we are working on in our demo. In addition, I'm happy to announce that the release date of our demo is set in stone now, as the release of it will be part of a larger event. We have been asked to not disclose the exact event and date yet, but we are super excited that we have been chosen! When we get the permission we will announce the date properly.

[h2]Start menu improvements[/h2]

Let's start with our new background for our start menu:



We wanted to have something a bit darker than our previous background, and of course, just like the previous one, it is animated in-game as well! But while we were at it, we have also added proper access to the settings menu while you are in the game, so no more going back to the main menu to change the volume settings anymore.

Another important improvement is that we have added situation-sensitive tutorial popups. These will help new players to explain the basics of the game at the relevant times. These can be turned off in the settings menu for everyone else.

[h2]Tactical phase improvements[/h2]

In line with the darker tone, we replaced the mono-color edge of the map with a bit more sinister:



The idea here is that the commander(player) is looking at the battlefield through a scrying orb. Hence the purple fog that surrounds the map.

Another important improvement is that we have redone the UI with the mentality that it should be readable at every zoom level, not just fully zoomed in, as we saw a lot of people playing at least partially zoomed out. I think the result speaks for itself:



[h2]New enemies:[/h2]

There are 2 new enemy types to encounter. Let's start with the Inquisitor priest:



The part of the old clergy, who freely followed the new gods have established the Inquisition, which job is to uphold the new order. Those inquisitors that have been deemed worthy received magic staff and training in using magic.

Gameplay-wise they can only go into a so-called leader spot in an army, at least in the early game, so that means their number will be super limited. They are stronger than your average grunt though. In their case, while unarmored they have access to magic. Don't want to spoil their full spell list just yet, but their basic spell is called guiding light.



This spell does not do a lot of damage, but it guarantees to hit the target and ignore armor damage reduction. Plus makes the target easier to hit till the end of the round which makes it the focus of other enemies as well.

For the elite enemies, check out the dwarf soldier:



They are troops that represent forces that came with the invaders from the other dimension. How or why they are aligned with the invaders is a mystery for the resistance at the moment, but the fact remains, that they are here, fighting for the false gods and they have superior armor to anything humans have ever produced.

[h2]New options for the resistance:[/h2]

Of course, to handle these new challenges, the resistance has received new toys to play with.



The resistance now has access to heavy armor as well. Not as good as the dwarf one of course, but if the user can handle the stamina and movement penalty, it will make them last longer on the battlefield. Deploy your heavy unit well to counteract their slower speed.

In the demo, every resistance unit will start from level 3 to give the player room to personalize their team. That means you will have attribute points to spend on well, attributes, plus 3 skill slots. Of course, there is a default team ready to go for those who will just want to jump to the combat portion of the demo. Some example skills like aggressive stance:



This skill belongs to the berserker attribute. While active, the unit has improved attack but reduced defense. As it is a stance it can be toggled on or off. You have to pay its activation cost when you activate it, plus at the end of every round, so to get the most ideal stamina consumption you want to leave it on for as long as possible.

The next skill is called reorganize formation:



This skill belongs to the soldier attribute. Normally you cannot go through units, but when you activate this skill you will be able to swap places with friendly units. The swap does not provoke an attack of opportunity. While in itself the skill is not really flashy, it is a great utility skill. It makes repositioning in melee a lot easier, plus can be used to save for example a low-health unit that is engaged with someone.

Let's check out a weapon skill next. This one is called hook shield:



This skill belongs to the axe-wielding attribute, and I think the gif is very telling of what it does! Drastically reduces the enemy shield block chance as the axe user hooks their shield. The one tiny issue with this skill is that it counts as an attack and does no damage, so you will need some friends to take advantage of the situation!

[h2]Closing thoughts[/h2]

Those who are following us for a while might wonder why I have not shown anything from the campaign portion of the game in this devlog. The reason for that is that we decided that this demo will be only combat-focused. The player will be able to check out the campaign map as well, and indeed they will be using it to choose the mission and organize their team, but the forward time button will be turned off.

The reason we choose to hold back the campaign portion is two-fold. For one, I felt that with the campaign portion included, it might be too long for a demo format. I'm still committed that I want to give you a chance to try it out and gather feedback about it, but probably in a different format like a limited-time beta or in early access.

The other and the admittedly bigger reason is that I felt that the campaign portion, especially the base building and the world map interaction is still a bit shallow. I have a few ideas on how to add a bit of extra depth there, but that will be a topic for another time!

So that's it for today's devlog!

New gameplay trailer!

Hello everyone!

We have a new updated trailer for the game, which you can see on the store front page, or you can check it out on youtube here:
[previewyoutube][/previewyoutube]

Devlog #17 The calm before the storm

Devlog #17 The calm before the storm




Hello everyone! This devlog's biggest focus will be on the teleporter room, which is an incredible piece of equipment, and the biggest prize of the resistance movement!

[h2]Preparation for the mission[/h2]

In the beginning, the player will have 6 teleport pads so that will be the party limit. With additional resources and research, this can be increased to 8. The basic gameplay loop is to set up a team for combat, do the mission, then teleport back.



Units that don't make back are lost forever, and even those who did make it back will need a resting period. The length of it depends on the extent of their injuries, but even uninjured troops will be tired. Tired troops can be sent to another mission in a pinch, but then they become depressed and will need a longer rest. So the player will need to manage their troops well if they don't want to end up like this:



We did a bit of an upgrade on what exact enemies you will face during a mission as well. As a reminder, the invaders have their own armies on the campaign map and will conduct different kinds of missions. Now, they are spread thin, especially in the beginning, so there is a big difference between army sizes, which basically decides the difficulty of sabotaging the given army. The enemy has a science level as well, which will decide the units of the different army's fields. Like so:



Every army is set up from 4 units in this list. Like so:



The level 1 army consists of the leftmost 4 units, the lever 2 then shift 1 to the right, etc. The enemy squadrons in the given combat map are set up using these 4 units. And when the enemy improves their research, new units will appear at the rightmost spot of the list and shift every other unit down by one. So units that were part of only the hardest armies will eventually be part of the easiest armies. This process does mean that the player will have time to prepare to counter the new units before they appear in large numbers on missions.

[h2]New equipment[/h2]

We have the animations for one-handed mace, one-handed axe, and shields.



Shields will work a bit different than simply reducing the chance to hit. They do not interfere with hit chance, rather every character has a separate shield block chance. This is mostly influenced by their skill in using shields. If a character with a shield is hit (and not from behind), then we roll another and check the character block chance. If he manages to block then the shield will take the damage, otherwise the character. Axes have a bonus against shields, so they will be the best weapon to destroy them, but other high damage dealing weapons can work in a pinch as well.



[h2]Ui improvements[/h2]

On the UI front, we have created icons + bars to show the unit's stats, instead of using just text.



So that's it for today's devlog! One small piece of information, the prelude alpha demo will be removed from the Steam store on May 31st to avoid confusion with our planned new demo. It will be available from the full game's Steam page when it will be ready.

Devlog #16 The heart of the resistance, their members!


Devlog #16 The heart of the resistance, their members!




Hello everyone! This month, we have done a lot of work on one crucial aspect of the campaign map, the barrack which houses the resistance units!

[h2]No two men alike[/h2]

Let's take a closer look at the recruitment page:



The inherited difference between units is their traits. Instead of just giving a unit lesser health, better attack, or whatnot, I wanted to highlight everything that is unique to a given unit at a glance. Positive traits are shown as green, and negatives as red. Every trait has a numerical value, and by summing the trait's values, we get an overall estimate of how good a given unit is (and you can sort by this value on the recruitment page by the way!).

This value is being used to decide how likely a given unit is to appear on the recruitment list, which itself is refreshed at the start of every month. Sub 0 value recruits are the worst and have a low chance to appear by default, 0 values are the norm, and all of the 1-2-3-4 values have their own category. I don't want to mention concrete percentages just yet, as those will surely still change with balancing, but the player will be able to improve their recruit pool by building and improving a recruitment center in their base, to increase the quality of their recruits.

[h2]Knowledge is half the battle...[/h2]

Take a look at a unit statistic page:



After you have recruited your units, you should decide how to spend their attribute points. This is a big divergence from the way XCOM handles levels and skills, but those who played the original GW1 will find it familiar. The basic idea is that units gain attribute points when they level up. Then these attribute points can be used to learn/improve a certain attribute which will provide a passive benefit, plus increases the potency of every skill of the given attribute in some way.

Let's take the sword-wielding attribute for example. For every level, the unit passively gains +5 defense and +5 attack when they are equipped with a sword. The levels in order are beginner, amateur, professional, expert, and master. To learn a new attribute, you only need to spend 1 attribute point, but for every additional level, you will need to spend one more than the previous level.

The max level of a unit will be 8, and the unit will gain attribute points for every level up. In addition, a level 1 unit only has 4 open skill slots which they can use. At every even level, another one will open up.

[h2]...the other half is the equipment![/h2]

The only thing that is left is to equip your unit with the correct gear for their job! The equipment is straightforward, so I wouldn't dwell on it too much, beside that you can bring 2 sets of weapons to combat. It will take 1 action to switch between them. The skills are basically part of the equipment as well, you will be able to place any skill which is known to the resistance into the empty slots. The only requirement is that the unit needs to be at least a beginner in the attribute to which the skill belongs.

What I would highlight is that there is a job system in place. The player can create a job with any arbitrary name, and save the current unit equipment settings into that job. So for example the player can create a warrior job template once, then he can just set that template to every other unit which he wants to take the warrior job. Plus you can sort the units by their job name as well.

[h2]Closing thought[/h2]

So that's it for today's devlog! But before I leave, I want to talk a bit about a new playable demo that is in the work. The demo will include both the strategic and tactical portions of the game together. We wanted to share this build with you at the summer Steam festival, but sadly, we need a bit more time to properly polish it for public consumption. So our new target for this demo will be the autumn Steam festival.

Devlog #15 Taking a closer look at the brain of the AI

Devlog #15 Taking a closer look at the brain of the AI


Hello everyone! This devlog has 2 parts. The first one is about our general progress since our last devlog, focusing on eye candy, then the second one is a bit more technical and focuses on our modular AI.
[h2]Progress so far[/h2]

The last barrier to testing how all the new things worked was to teach the AI to make sense of it. The AI possible options increased by quite a lot, as now it not only needed to decide what the current character should do but to which character is the best to activate at any given moment. This, in turn, increased its thinking time to around 0.05 seconds in our developer machine. This doesn't sound too bad, but because so far the game only ran on 1 core, it blocked the drawing of a new frame by that amount. So every time the AI turn started, we had a jitter. Example:



This was unacceptable, so it was time for me to separate the AI calculations to a different core, and thanks to that, the jitter is no more.

Another new feature that got added is the standard attack of opportunity system. If a unit leaves a tile that is on an enemy zone of control, then the enemy will get a free basic attack against that unit before it would leave it.



The enemy has learned to use the teleporter as well, enemy reinforcements will arrive by the use of their own teleporter. The player can see where they will arrive 1 round before their arrival.


The new animation system worked perfectly in the testing. In my opinion, it really enhanced the presentation.



Then we did a lot of small improvements as we realized problems while testing. One big thing was that I wanted the player to be able to see at a glance which units have already activated and which ones did not, while not being too obtrusive. We found that the character outlines could relay this information to the player without too much of a problem. So characters that have not activated yet will have their outlines, while those who did do not.



Another thing that I wanted to have a bigger emphasis on is the seeable enemy counter. Especially when it changes! So we moved it to a more prominent location on the UI and gave it an animation when it changes.


[h2]The brain of the AI[/h2]

I talked a lot about modularity and modability of skill in our 13. devlog and these points are super important for our AI as well. I want to give modders the tools to not only create new skills but to be able to teach the AI how to use them as well. To reach these goals, the core of our system is a so-called Utility AI. For those who want a more in-depth explanation of what that is, I can recommend this great GDC video which I think is a great introduction to the topic here!

In very simple layman's terms, it works like this: The AI has possible actions, and every action gets a value between 0-1, which tells the AI how desirable that action is. Then the AI chooses the highest-rated action to execute. In our case, these actions will be the skills(plus their input) the AI can use.

All right, so we can add/remove actions(skills) to the AI so that is great. But how do those actions get evaluated? We are adding a behavior to the action (which is basically a set of considerations) which will calculate it for us. What are these considerations? These are parts of my code that check something in the current game state and return a value between 0-1. For example, there is a health_damage_dealing consideration, which will check how much % of their current health the target would lose by the skill average damage, and it will return that. So if the enemy would lose 100% of their health, this would return 1.

These considerations are the building blocks of the AI. Sadly, modders will not be able to add new considerations to the game but will be able to freely add or remove which considerations are used creating new AI behaviors plus change how to interpret the value coming out of these considerations by redefining the curve which the value goes through before being used.

These behaviors are being defined in JSON files the same way as skills, so they are easily readable and editable. The behavior of the previous example looks like this in practice:



The linear curve defined there basically just there to say to use the consideration value. But if you wanted the AI to target the unit that would have the most remaining health after the attack, you can just reverse the slope of the curve, and that would mean if the consideration return 0, the real value returned by this will be 1.

So that's how our modular AI works in a nutshell. I will of course need to provide documentation of all the possible considerations, curves, and their inputs, but after that, the community will be able to create and modify the game AI to their hearth content. Plus of course, this modularity makes it possible for us to iterate faster on the AI as well.

So that's it for today's devlog! A lot of progress has been made, and I hope we will be able to give you something to not only read but to try out as well in a not-so-distant future!