This week saw several commands modified for increased flexibility and updates to the way vassals and lieges receive aid. In Conquest! a player can have up to 4 armies fighting in a battle: their own, troops sent by an alliance, and two summoned armies (such as barbarians or packs of animals). There are class abilities, heroes, magical items, and spells which can grant summoned armies. Having multiple armies not only increases your firepower but they also absorb casualties. If your main army retreats the battle is over so having these additional armies is a tactical advantage.
Prior to this change, all but the alliance and class-related summoned armies worked for attackers only and a target had to be specified when summoning the army i.e. "Use Amulet PlayerX" would summon a pack of animals and attack PlayerX immediately. These hordes could not aid you when fighting hordes to gain land. Now, when a player does summon an additional army, a flag is set and the very next battle, whether it is an attack or defense, the horde will join in. This opens a wide variety of tactical possibilities and allows a player to stage multiple armies prior to launching an attack. You can also stage these for defense.
Similarly, magical items which granted bonuses, such as a Shield of the Wind, were one used immediately when attacking another player. Now, this bonus is granted for the next battle and can be combined with summoned armies. These hordes and bonuses are currently only valid for the very next battle but in the future additional effects could be granted where they last for x number of attacks or defenses.
Last week I discussed the changes to Vassals and Lieges regarding food and gold generation. This week I modified how vassal aid works. Instead of pulling very small amounts of troops a player's army (too small to make a noticeable impact), the game will create a Militia army to aid a Liege/Vassal. The number of troops is dependent on the level of your Liege and/or the number of vassals you currently have. Players still receive a small percentage of the spoils when their Liege or one of their Vassals wins a battle.
On the backend I added a player's class and numeric level to messages sent when a player is attacked/attacking and the population command, which lists 10 random player's on a continent. These values will be used by the Unity client; for example, here you can see the player's level displayed in the battle results:
I also spent a couple of days rewriting major sections of the battle code. As with any development, over time bits and pieces were bolted onto the main structure which caused for duplication and/or inefficiencies in the code. This rewrite addresses some of them. For example, I used to have two functions which created summoned armies: one for troop based, one for creatures (such as dragons or packs of animals). Fundamentally they did the same thing so by combining into one function I can standardize how they are created (now all summoned armies are created by one function) and ensure ease of maintenance.
On the Unity front, Steffon continues to make good progress on the Client. The login and overview screens are functioning with the new architecture and he is now working on the kingdom screen. For the Kickstarter launch on September 7th, we hope to have a downloadable, playable version of the Unity client to demonstrate these screens.
Until next week, I hope to see you in the game. Follow our journey on Twitter or Facebook.
James has been working on Conquest! since 1993.