25 July 2014

Developer Feature: Hannibal: Rome and Carthage Designer's Notes

Hop on that war elephant and head to the mountains to discuss Hannibal with creator James Warshawsky in the Wargamer's latest developer feature.

Published on 20 SEP 2010 10:37pm by Scott Parrino
  1. roman empire, turn-based, strategic, europe

Raison d'etre

The reason I decided to develop Hannibal was because I wanted to do an ancient warfare game with a truly special AI. I had played some interesting titles that looked beautiful, but whose AI was somewhat underwhelming. I wanted a game that had more effort in learning the game and thinking since I am not personally much into multi-player online gaming.

I have always loved strategy games set in the ancient Mediterranean, and I had played the original board game that "Hannibal" is based on. I really loved some of its concepts and I thought that it would make a great game on the PC as a game for a single player so developing a competitive AI was especially important. The AI is not the only component to Hannibal that I'm proud of, however. I think there are many unique elements to this game engine that players will find engaging and refreshing.

AI as Sharp as a Gladius 

The AI was a challenge to write, and I'm committed to improving it as time goes on. But it does a good job and gets better at each succeeding level of difficulty. Most players will find that the "Normal" level is a challenge even after mastering the basics of game play at the "Introductory" level. The "Hard" level will be difficult for most players.

The AI has the dual tasks of providing a military simulation and playing the game to win. It does a pretty good job of both (I hope). Roman generals are aggressive and eager for glory, er, accomplishment. They'd rather defeat an enemy army than capture a minor city and play it safe.  On the other hand, the AI learns when a commander is dangerous, and starts to avoid battle with him. This is especially true of Hannibal.

Click for full image

I've tried to avoid letting the AI make certain decisions that I do expect the player to make. The AI almost exclusively bases its decision to engage in battle on the strength of the forces and the reputation that the enemy commander has acquired during the current game. The AI does not start the game knowing that Hannibal is especially dangerous.  It doesn't care that he has a command rating of 12. So the AI usually doesn't consider that a leader with a command rating of 5 should not be attacking Hannibal, even with an army that is much larger than Hannibal's.

However, as things get tougher for the Roman side, the AI will start to rig the Roman elections so that better leaders are chosen. Of course this mimics what the Roman Senate actually did. But you can find ways to deal with this. If a good Roman leader is elected and comes after Hannibal with a big army, perhaps you should spend one year's campaign being evasive. Use one of Hannibal's "Retreat" options and tie up that Roman leader for the year. An inferior commander may be elected next. Then Hannibal can smash him.

The AI has its good moments and its bad moments. That is deliberate. If you are patient and handle your forces wisely you'll get a chance to hurt the Romans. On the other hand, even at the Introductory level the AI still surprises me. It takes advantages of your mistakes. I'd left a large fleet at sea because I didn't think that the AI was ready move back into Spain or into Africa. Instead the AI came at me with a huge fleet and defeated my fleet. I barely managed to win that game.

Historical Accuracy and What-Ifs

I wanted the player to be faced with the sort of strategic choices that Hannibal and the Carthaginian Senate themselves had to face. At the same time I wanted to avoid any strict historical determinism. For example, the game does not rig the Roman elections so that Fabius Cunctator is more likely to be elected Consul in the early years of the war. That makes every game a "what-ifs" type of scenario to a limited degree.

Click for full image

So I included the resources to make it possible to fight a more active war at sea than Carthage did during the actual war. But the players will find it increasingly difficult to succeed at this as the level of difficulty grows. I have tried to make each new level of difficulty also more realistic, with the player's choices somewhat more constrained.

I want much of what Hannibal really knew to be built into the game. For example, his tactical prowess is represented by his "Punic Tricks" card and he always has one or two of them at the start of the game. But many other things are deliberately open to different paths.

Click for full image

It's intended that the player can try different strategies other than the one Hannibal employed. After all, he ultimately failed. If, for example, a player succeeds using an aggressive naval strategy then that leads to an idea that many modern commentators have themselves raised.  Namely, that Carthage should have used its navy more aggressively in the war. Naturally, we cannot say with certainty why they didn't. But I hope that the game can exhibit how things might have worked out if they had.

Option Cards

The option cards provide a great variety of events in the game. These also provide a "fog of war" in that you never know what cards the Romans will play. Nor does the AI know what you might do. For example, if Hannibal plays a card just before a battle that gives him additional troops, it does not mean that Hannibal radioed Carthage for emergency troops via airlift! This game device means that Hannibal was reinforced during the year and the Romans didn't know it. Of course, the same thing can happen to you:

Click for full image

This means that there is often an ebb and flow of success and failure in the game. Of course, if you build up a winning position, a few option cards played by the AI won't affect that.

Some cards have a dramatic impact. This is a nice result to see:

 

Click for full image

The Role of Luck

Speaking of the city of Syracuse, one could argue that a realistic simulation should depend somewhat on luck! Some historians believe that the fall of Syracuse was the real turning point in the Second Punic War. And an immediate cause for that was a plague that destroyed the relief force led by the Carthaginian general Himilco. This allowed the Roman general Marcellus to besiege the city without any concern of being "sandwiched" between the city and an outside force. The city soon surrendered.

Click for full image

Livy argued that superior Roman camp discipline and hygiene was the reason that Marcellus' army wasn't touched by the plague. J.F. Lazenby suggests that it was due to the fact that Marcellus had (sensibly) camped on higher ground. And perhaps the Carthaginian troops were particularly vulnerable to catching diseases in Sicily that they didn't have in Africa. Nevertheless, it's worth asking: was the Second Punic War a contest between two evenly matched empires that hinged on a marvelous stroke of good fortune?

There is a fair amount of luck in Hannibal, but it is mostly the kind of luck that either favors the prepared or evens out over the course of a game. This is intentional and actually makes the game more realistic in terms of simulating decision making. You have no choice but to make the best of a sometimes bad situation. But if you ride that out, you can survive, build up, and capture Rome or at least win on points.

A Winning Strategy

Some strategy games can be won if you can simply beat the computer in the tactical battles. You set up a decent division of your economic resources, and then just go after the AI. Then it is a question of winning most of your battles. That won't work in Hannibal. Yes, you expect Hannibal to win most of his battles. And he has ways of avoiding battle at least some of the time, when he needs to.

The tactical expertise you posses is reflected in the various generals' Command Rating and whatever Option Cards each side can bring to bear in a battle. Of course, if both sides are evenly matched you cannot always expect victory, you can only hope for it.

Click for full image

You will lose some battles, and Hannibal may not always achieve decisive victories in battle. You have to capture cities and hold them so that you can raise new forces and deny recruits to the enemy. This is easier said than done, but it's what the game is about. Should Hannibal make a blitz to Southern Italy, as he did historically? Build up a base in Eastern Italy? There are a number of ways to go.

The (Ugly) Face of Battle

On the surface, battles in Hannibal are slugfests.  However, there are many decisions that you need to make in battle. And some of them are rather hard-headed, if not hard-hearted. When you choose losses in battle you'll have to decide not only which units you can afford to lose during the battle but also which units can most easily be replaced. It's very important to win battles but you cannot afford too many Pyrrhic victories.

Unit types matter very much in the battles. Some units can absorb a lot of damage, such as the game's infantry: African Infantry, Italian Infantry, and Rome's Legions. Other units, such as elephants, can dish out a lot of damage but cannot absorb much damage. Elephants are also prone to panic, which is instigated through Option Card play by the AI. You will want to have a mix of units in your front line. Remember, the faster that you hit the enemy, the more quickly you will destroy or rout that force. And that means less damage gets dished out to your army.

Here is a suggestion for a typical battle that Hannibal might fight on the first turn:

  • 2 African Infantry - these can absorb most or all of the damage that the Romans will do to you.
  • 2 Spanish Infantry - their combat bonus helps them dish out more punishment.
  • 1 Elephants - if they don't panic they can do as much damage as both of the Spanish Infantry.
  • 1 Companion Cavalry - your best unit, almost irreplaceable, does as much damage as the Elephants.
  • 1 Numidian Cavalry (mercenary) - no bonus, but an attack factor of two helps punish the Romans.
  • 1 Spanish Cavalry - same values and rationale as the Numidians.

Your cavalry is harder to replace than infantry, and you'll usually take your losses from the African Infantry and the Spanish Infantry. I don't suppose the recruiting officer told them about this.

Command rating is crucial in all battles fought in the field. The ability to train an army to a higher level of efficiency, operate in the field, select suitable terrain, and control the battlefield are all abstracted in a general's command rating. Having the superior commander is a noticeable advantage. If you have a much superior commander that helps even more.

However, the Roman army was institutionally very strong and that is reflected in the base strength of the Roman and Allied legions. Even with a poor commander they can do some damage. With a good Roman commander even Hannibal won't have easy victories.

Click for full image

However, Hannibal has special battle cards that greatly aid him in battles. When you have one of those, you'll want to engage in Pitched Battles, especially against weak Roman commanders. If you don't have one of "Hannibal's Punic Tricks" in your hand, you may need to be more cautious. These cards may only be used for battles in the field. They won't help you capture cities.

Now, storming cities can be expensive because the city walls give the defender an advantage. Storming means you immediately attack the city's garrison and force a resolution to your siege, giving the enemy no chance to react strategically. You may besiege a city as an alternative, but that ties up your general and gives the AI a chance to send an army to relieve the city. In that case you might get "sandwiched" between the city's garrison and the relieving army. Minor cities can usually be stormed with minimal loss, however. Major cities can be tough while Capital Cities (Carthage, Rome, and Syracuse) are extremely difficult to take by storming.

Nevertheless, you can take Rome by storm. But you'll need a huge army to do it. It is a viable strategy if you can catch Rome with a small garrison and a very large army of yours within striking distance.

A good middle ground is to besiege the city for a while until your besieging army qualifies for a Storming Bonus. That represents progress in undermining walls, tunneling, etc. Then you can usually storm the city, depending on the strength of the besieging army.

Getting Help

If all this seems like a lot, the Tutorials provide much help in learning the game's mechanics. Some people like a gradual approach with definite steps. Other people will jump right in. That will work, as long as they read the Quick Start Guide, consult the in-game Help System, and pay attention to the game's Warnings and Reminders. The game has a large number of Reminders that can be suppressed. But the player should actually read and understand the Reminder before pressing the "Don't Show This Message Again" box!

About the Designer

James Warshawsky, sometimes known as"mercenarius", has a degree in International Relations and in Computer Science. He has been a professional programmer for more than 10 years, and his experience with strategy gaming goes all the way back to his High School days. "Hannibal" is his first professional game. In 2006 he founded Forced March Games, LLC. You can obtain more information at www.forcedmarchgames.com.