Archive for March, 2009

One of my favorite Star Trek episodes is episode #10 “The Corbomite Maneuver.” Every strategy game needs something like it. I didn’t quite manage to perfectly incorporate the “Bluff” aspect but I did get some of the flavor. It comes in the form of one of my favorite Evil Artifacts that I created for Solium Infernum…. The Orb of Oblivion.

The Orb Of Oblivion

Oblivion: If the legion possessing this artifact is destroyed in battle then the enemy has a 80% minus 5% per enemy level chance of being destroyed as well.

What better way to ensure power than to enforce a peaceable nature over potential peers of that power. I have discovered the existence of three spheres, one of which projects an aura of sublimity over nearby subjects. I lack the present capacity to translate the functions of the others, but undoubtedly they must be of similar power and origin.

Jeff Vogel is a modest but very successful indie “old school” RPG game designer. He (and his 2 person crew) was recently picked as one of the “Best Studios Ever” in a PC Gamer feature. Even though I’ve never met him I feel like he is a kindred spirit. He both codes and designs his games and he has picked a niche to excel in that he loves. Seeing Spiderweb thrive has always been a real inspiration for me and a reassurance that I might be able to pull off something similar in the Turn Based Strategy niche. Jeff has put up a blog and he’s started it off with some very interesting stuff. A show me the money peep show of sorts. 🙂

I’m pretty pleased with the way the code to generate the 4 map archetypes has worked out. For Armageddon Empires I tried a whole bunch of different things to get the map to lay out properly. The heart of the map code is a topography/erosion generator based on Markoff Chains. I used a bit of this type of approach in Solium infernum for generating the mountain chains but since the terrain is basically passable or not passable for most legions, my big concern was creating interesting paths/choke points between areas on the map. My big idea for this was to do a variation on the genetic algorithm. I start with some basic genes for placing geographic features, starting strongholds and places of power and then create a group of maps (the generation) composed of these genes . Then I test the maps and assign fitness levels based on statistical aspects of the map… i.e. average distance between Places of Power, etc. Then I breed the maps a bit and mutate some of the genes. I do this for a few generations and then select the fitest map. It’s worked pretty well in practice to generate random maps that generally meet the placement requirements that I have been looking for. It’s fun to see starting positions emerge like this one here below.

The great dilemma for these two players is which Place of Power to go after. You get a bit of game theory here as well trying to decide what your opponent is going to do. You also have to take into account the power of each legion and the target Places of Power. Can your legion reach one of them before the other player does? Can he assault it right away or is it too strong for a quick grab or too risky? Is one of the Places of Power more valuable than the other? Where will I be moving after that to secure my borders? There are a multitude of data points to consider before you plot out your first movement and one of the big ones is “What is the other guy going to do?” Fun stuff.

In most strategy games the resource system forms the base of the design pyramid. All systems process something according to some given rule set. In most interesting systems there is some type of transformation. In a nuclear reactor the kinetic energy of fission products is turned into heat, which eventually usually turns water into steam which imparts kinetic energy to turbine blades which moves a magnetic field relative to a conductor which generates electricity which powers any number of things. In a WW II grand strategy game civilians, iron, oil and rubber are commonly transformed into panzer divisions and aircraft carriers. You get the idea.

In Solium Infernum I wanted to meet the following resource design goals.

1. Control the resource pumps so that there was a clear trade off between guns and butter, action and potential (growth)

2. Control the resource pumps so there was always a scarcity that influenced the player’s decision process

3. Create symmetries in the way the resource sinks worked that influenced the player’s decision process

4. Use randomness to create a sense of expectation… i.e. what’s behind door number 1.

5. Use randomness to force the players the adapt their strategies to unforeseen events.

6. Despite random elements in the resource generation provide the players with a sense of limited control.

7. Decouple the resource generation from the game board so that it was more equitable and not as dependent on the vagaries of geographic distribution

8. Provide interesting ways to transform the resources as well as change the efficiency of the transformation.

As I have explained in a previous entry, the resources in Solium Infernum fall into four flavors: souls, ichor, hellfire and darkness. You request “tribute” from your minions both demonic and human as an order action and the next turn you are presented with a choice of resource cards. The quantity and quality depends mostly on your Diabolism power level. You can however also get additional bonuses to the rolls that determine the tribute quality by acquiring unholy relics, choosing special perks before the game starts, capturing certain places of power or playing some event cards. Once you have selected your resource cards they appear in your tribute section of your “Ministerium” user interface which consolidates all your game information into tabbed areas. Here is a screenshot.

You can organize your cards in the tray by dragging and dropping them. In this particular mode you are being prompted to pay for your bid on an Evil Artifact called the Great Scythe. You drag the resource cards from your tray and drop them on to the eight card slots in the top half of the dialogue box. Once you are finished you click on the commit tribute button to place the bid. This same type of pattern is followed for any order that requires resources to power it….. i.e. performing a ritual, increasing your avatar’s attributes/powers, responding to demands, creating combat cards etc.

Work continues apace on the game. I’ve had some good ideas for blog entries here but after getting started each one hasn’t lived up to expectations so I thought I would just post an “I’m still alive” note.

I’ve been working very hard on the single player AI lately and it’s coming along in the usual fits and spurts. I’ve rewritten the new AI engine twice having not been satisfied with the way it was prioritizing goals. The problem has been the fact that unlike Armageddon Empires where you could have 2 or 3 goals going on simultaneously, in SI you really have to focus your goals. This is because early game you will usually have only 2 or 3 order slots available. Accomplishing most tasks requires that those slots be working together… moving legions to an objective, supporting them with rituals, playing events to disrupt your opponent or help your position. In Armageddon Empires the goals competed with each other with priority levels to grab action points and resources. The larger the spectrum of priorities and the greater the diversity in priorities (not all clumped together around a high value) the more efficient the AI system was. However when multiple goals all clump around a priority you find that none of them gets accomplished very well. The short of it is that I have come up with a system where each AI has one primary goal and 1 or 2 secondary goals. There is a meta process module for the AI that gets run each turn to determine the primary goal. It analyzes the game state and it also has a memory mechanism to prevent state flip flopping. I’ve also been able to add some AI personality type flavor by having the meta module draw from specific goal pools depending on its distribution on attributes…i.e. players who have high “Deceit” attributes tend to go for “deceit” type goals.

I’ve also been playing the game through to conclusion in hotseat mode against myself. This has precipitated several passes through the game data to adjust things here and there…. values for legions, artifacts and relics… costs for rituals etc. I’m very pleased with the flow of the diplomatic/player interaction portion of the game. Vendettas are not something that are entered into in a cavalier fashion or on a whim. You need to pursue them with deliberation and ruthlessness. The process for initiating them is a multi turn affair so there is warning available to everybody not just the two players involved in the Vendetta. This lets other players maneuver for advantage at the same time. It’s also very important to consider and adjust the threat ranking you have for your opponents as this drives costs for making demands and hurling insults. If you try and claim Vendetta on somebody you have ranked low on the list you will find that it’s very costly. You’ll also discover that differences in your infernal rank can become important. If you are a lowly Lord of Hell going after a Prince of Hell is going to be more costly than going after a fellow Lord. The Prince rank costs 12 out of 30 build points though whereas the Lord rank is free. But Damnation is all about trade offs. 🙂

Adamantine Golem – Evil ArtifactMelee +4Stun
A successful melee attack does double damage and reduces the opponent’s attributes to 0 for the remainder of the round of combat

Its mouth opened, and I could see the dark liquid from an unluckier beast against the luster that shone from the hollow of its head. It didn’t speak, nor did it make a sound save the bellow of the little men held by its fingers and the groan that came each time its elbow, wrist, or neck turned with deliberation. I had struck it once across the knuckles, but that left my hand pulsing with the sound of my blade’s song against a harder material. We needed something larger and more powerful than our legion could muster alone.