The AI will now declare wars based on hatred, i.e. extremely low diplomatic relations. The wording of the text will vary based upon the power differentials between the two empires. If the AI is more powerful, expect to get told something along the lines of you being a nuisance and getting crushed.
Below is a screenshot of the Silicoid diplomat declaring war against an evenly-powered player. Note that the holographic area now has a waving flag for the empire in question. I overhauled all of the flag animation code to now draw everything programmatically. This is going to give me a lot more flexibility in adding more flag designs and shapes over time.
One thing I’ve always thought should be a goal of any strategy game is to obscure the internal mathematics and algorithms of the game as much as possible. This makes it harder for players to “game” the system and allows them to focus more on simply playing the game for what it is.
For example, take the various AI notifications that I’ve been placing in the game. Each one adheres to a matrix that I like to call the “Grid of Power and Happiness”. It’s basically a 3×3 grid of messages where one axis is how much the other race likes you, and the other is how much more or less powerful they are than you.
Happiness axis: 1. Really like you, 2. Neutral, 3. Really dislike you
Power axis: 1. Much stronger than you, 2. About the same, 3. Much weaker than you
This means that, for every message type, there will be a minimum of 9 variations. Reading the text of the message will reveal unsubtle clues about where you are at on this axis — without you needing a calculator.
For example, below is an example of the AI complaining about a recent skirmish between his ships and the players. In this case, their relationship is Neutral and the AI is much weaker than the player.
All of these messages will be overhauled and rewritten once I get a writer on board, but it’s not too hard for me to come up with some temporary placeholders until then.
My apologies for the recent silence, but I had family in town this weekend so I did not work — plus I’ve had my head down in the Ship Combat AI code while being constantly distracted by the big tournament in Norway that started last week.
I now have some very rudimentary ship battle code in place (i.e. “1. retreat? if not, find best target 2. move toward target 3. if in range, fire on target 4. go to 1, repeat until battle over”). This creates the basic framework for the tactical ship battles to come later, but right now it allows the AI to determine how well a ship battle went and rank its “severity” along with any other diplomatic incidents.
In addition, the very talented illustrator working on this project spent last week participating in an art contest, so he was doing other things as well. Nevertheless, here is the first pass at the Bulrathi laboratory that will serve as a background for the scientist and diplomat:
The obvious intent was to go for some kind of heavy machinery and manufacturing backdrop, to fit the theme of the Bulrathi being particularly proficient with Construction technologies.
The artwork for the Silicoids is done, along with animations, and have been incorporated into the game. Bulrathis are next!
The new Silicoid diplomat, complaining about ships in their systems (this screen is still unfinished!)
And, the Silicoid scientist, with his glowy levitating cube:
The Silicoid Soldier, showing off technology recovered from the ruins of an artifact planet:
And the Silicoid spy, not incorporated into the game yet since I haven’t started on the espionage portion of the game:
GNN Empire rankings are now in the game. The graphic below is a PLACEHOLDER from the original game until new artwork is ready, but the code infrastructure necessary to support GNN updates is now in place. 🙂
The actual GNN screen will obviously look a bit different than this when it’s done.
There are 4 possible rankings that can show up: Population, Production, Technology and Fleet Strength. Once the player has made contact with all of the empires in the game, a random ranking update will display every 25th turn.
edited: the notices for empires that are expanding the fastest are in as well.
Now that the AI is smart enough to notice enemy ships in orbit around its colonies, it had to be smart enough to DO something about it. A few new “Fleet Plans” were developed and tested tonight.
The “Repel” plan is designed specifically to drive away enemy ships from colonies and is currently the highest-priority fleet plan. It currently sends a token fighter, but this will eventually scale up to the size of the orbiting fleet.
The AI needed to be smart enough to defend colonies that have not yet finished building their missile bases, so I added a new “Guard Colony” plan that does just that. The size of the defense force (+bases) depends upon the security of the colony.
If it is an “Inner” colony not easily reachable by an opponent, a minimum defense is established. If it’s a “border” colony, a larger defense is used. If it’s a border colony in range of an empire that it is at war with, then it is considered an “attack target” and an ever larger defense is established.
All of this seems to work but there’s no resolution yet as I have not yet implemented auto-resolution of ship combat. I’ll probably start working on that this weekend.