jagged-jimmy
Prophet
Did my duty. Game looks pretty awesome.
After Ambush at Sorinor and the two fantasy Warhammer games I never got my hands on a good mercenary company game again.
A Black Company kinda game? Count me in. After Ambush at Sorinor and the two fantasy Warhammer games I never got my hands on a good mercenary company game again. Hope you guys will succeed. Am wondering, will there be a plethora of mission types and just how deep will the whole 'management' part be?
You're on RPS again, though they did say you're not doing a Kickstarter campaign (based on what looks like outdated info).
A Black Company kinda game? Count me in. After Ambush at Sorinor and the two fantasy Warhammer games I never got my hands on a good mercenary company game again. Hope you guys will succeed. Am wondering, will there be a plethora of mission types and just how deep will the whole 'management' part be?
Huh. I just discovered this. You have my bow, and my sword, and my money.
Dev Blog #26: Mercenary Contracts and Greenlight Update
It’s been one week now since we launched on Steam Greenlight, and what a ride it’s been! According to Steam, we’re now 63% on the way to the top 100. Not too shabby for one week, but still a long way to go before being greenlit. Thank you all for your support so far!
If you haven’t voted for us already, please do so here:
Only with your help can we get the game on Steam, which would allow us to work on it full-time and make progress much faster. If you know others who might be interested in Battle Brothers, please do share the link!
So, that’s that. For now, let us take a look at contracts, which in Battle Brothers work much like quests do in other RPGs, and how they shape the game.
Mercenary Contracts
Contracts fulfill an important role in Battle Brothers. You’ll lead a band of mercenaries, after all, and contracts are what you do for work most of the time. Since the game has an open world, contracts are also important to give the player a sense of direction. You’ll be able to freely travel and explore the world at your pace, and you won’t have to take up any contracts as long as you can afford to pay and feed your men with the spoils you find. However, you should also never feel lost, not knowing what to do next; in a world torn up by war, there should be plenty of work available for a mercenary company.
Just as the worldmap and all the tactical battle maps are procedurally generated and will never look the same, so are contracts procedurally generated and don’t follow a scripted linear order. Importantly, though, contracts aren’t just random missions thrown at you. They are the result of what really is going on in the world; if a caravan travels on a long journey through dangerous lands, it will offer an escort contract. If a village is constantly being raided by bandits, it will offer a contract for protection. The bandits won’t be spawned just for the duration of the contract and to entertain the player – they’ll really be raiding the village beforehand, and the contract being offered is a reaction to them. Defeating their raiding parties will really lower bandit activity for a while, and burning down their camp may end it completely.
It’s important for us that all contracts are embedded into our dynamic open world and allow the player to really make a change, to have a real impact on the world, and not just grind random missions one after the other. If you haven’t seen it already, this blog post explains in more detail our open world mechanics. At least for now, you’ll also only be able to accept one contract at a time – we want to avoid that feeling of having an endless list of quests which you just work through, not even remembering where you got it and why you’re doing it.
Contracts also need to offer enough variety and change to last a whole campaign, and not grow boring and repetitive after a while. Our contracts are generated from a variety of variables which hopefully will offer virtually endless combinations together with the different locations they take place at and opponents you fight. Contracts can vary from short time assignments, like escorting a person or caravan, hunting down a group of beasts, scouting an area or destroying an encampment, to long time assignments, like protecting a whole region for two weeks. Even changing a little thing like the payment modality could change how individual missions play out; if you’re promised 10 silver crowns for every orc head, you might want to take more risks to hunt down every last one as opposed to when you’re promised a flat sum for destroying the orc raiding party, no matter if a few orcs can get away.
It can be hard for procedurally generated contracts to compete with a linear campaign in terms of pacing and atmosphere. To help this, we will present each contract offer with a paragraph of story to set the mood. Contracts will never just be a few bare bulletpoints, a price and an accept button. Instead it will be villagers telling you of their ails, or a lord with a proposition.
If you have any questions or ideas for contracts we should include, let us know here or at our forums!
Dev Blog #27: AI in Battle Brothers, Part 1
This week things get more technical as we shine a light on the Artifical Intelligence, or AI, that controls opponents in the game.
If you’ve played the later scenarios of the combat demo, you may have found the AI serviceable already. Once we have all the core mechanics of the game in place and things won’t change around all the time anymore, we’ll invest more work into the AI in order to have it actually stand out. Let’s find out how it works exactly.
Our goals
As we stated before, our goal is to have different enemies feel distinct to fight against. We don’t want enemies to differ merely in a few stats, such as having more or less hitpoints. There are two ways to achieve this, as we see it; the first one is having unique skills that give enemies tools to challenge the player in different ways, and that require the player to formulate different tactics to overcome. The second one is having enemies behave differently, as determined by their AI.
With the AI we take a simulationist approach, meaning that we try to tailor the behavior of enemies to simulate a behavior befitting what they are in the context of the game world.
Zombies, for example, have an intentionally gimped AI. They don’t care if they’re stuck in swamp, have a height disadvantage or are outnumbered. They’ll just charge into the nearest opponent and won’t even make use of the more specialized skills of their weapons. In other words, they’re stupid. By being this stupid, however, they also feel more unique an opponent and more like you would expect the typical zombie to behave. If you play your cards right, you can outsmart a group of zombies much larger than your group.
On the other hand there are skeletons, their undead relatives. We decided that skeletons should have more of a cold and efficient intelligence, governed by faded memories of long gone battles and military exercise. Skeletons do care about the terrain they are on and about height advantages. They also make full use of their equipment; they form a shieldwall if pelted with arrows from afar or if outnumbered, they use axes to split shields if they can not hit their opponents otherwise, they use their shields to knock down opponents from elevated positions to claim them for themselves, and they might even decide to hold a defensible position instead of charging into the fray.
What skeletons don’t do is lying in ambush or do long-winded flanking maneuvers. Such tactics, for us, don’t really fit the undead. Instead, it will be the living opponents who’ll employ them. Goblins, for example, will put great emphasis on setting up ambushes and doing hit-and-run tactics.
How it works
Battle Brothers has a utility-based AI with relative utility. I’ll explain what the hell that means below, but if you’re really interested in the technical details, I can recommend this great presentation from Kevin Dill and Dave Mark explaining the concept in detail.
Every type of enemy has a bunch of potential behaviors to choose from whenever it is his turn to act. As an example, let us consider this hypothetical scenario: We are a skeleton, armed with an axe and a shield, and face a Battle Brother who has his shield up.
For simplicity’s sake, we can choose between the following three behaviors:
So what behavior do we choose? We’ll look at each possible behavior to determine how much sense it makes to use it in this very situation, how useful it is to us, or in other words, how high its utility is. All these considerations need to be quantified so that we can compare between numbers. For the sake of this example, let us rate any behavior in our situation on a scale of 1 to 10. This number is our relative utility.
- Doing a Chop attack to injure or kill our opponent
- Using Split Shield to get rid of our opponent’s shield
- Using Shieldwall for protection
Do we do the chop attack?
The higher the chance to hit and the more damage we can do, the more we want to just attack. On the other hand, if our chances to score a hit are low, then we aren’t that enthusiastic about doing an attack. We have a low chance to hit our opponent here because his shield is up, so the utility score of an attack would be relatively low, let’s say 3.
Do we split our opponent’s shield in two?
The harder our opponent is to hit, the more we want to get rid of his shield. If his shield is poor or battered already, that’s even more reason to get it out of the way. On the other hand, if we have but a small hatchet and our opponent has a knightly shield, attempting to split his shield may be a waste of time. Because here our opponent has his shield up and makes it difficult to hit his body, the utility of destroying his shield and thereby increasing our chance to hit with following attacks is high, let’s say a 9.
Do we use shieldwall?
If we are at any kind of disadvantage, whether because of terrain or because we are outnumbered, we want to give ourselves more protection. Using shieldwall is helpful in our little duel, but we could just as well do another attack instead – we’ll give it an average score of 5.
In reality, there are a lot more considerations going on, of course, but this is the basic idea. As you probably already figured out, there isn’t just one single behavior that viably applies to our situation. In fact, often there isn’t even one behavior that can be said to be the best for a given situation.
After all possible behaviors have been considered and given a utility score like above, they’re entered into a pool. Everything with a utility score of 2 or lower is thrown out so that we don’t pick a behavior that really makes little to no sense in our situation. Then, we pick one by weighted random. Every behavior in the pool could be picked, but the higher the utility, the more likely it is to be picked. Think of throwing a dart on the pie chart below; it’s most likely to hit the Split Shield part, but you could hit any of the other two as well.
This way, we always have an element of unpredictability in how the AI behaves. The AI won’t always do the same in every situation, and it can on occasion surprise you. But it will attempt to do what are the most sensible things to do in the very specific situation it is in.
There is more?
Yes, quite a lot in fact. This part covered the basics and should give an idea on how the AI works on a basic level and why it doesn’t do the same thing all the time. In a possible later article we may look in more detail at specific parts of the AI and how they contribute to enemies that feel unique to fight against.