You are viewing [info]perenniad's journal

perenniad

Aug. 13th, 2006

10:50 pm - A better Freeciv

I believe that the design of Freeciv as it exists now is fundamentally broken. The three most important reasons for this is simultaneous movement, the timeout, and the lack of design goals. Simultaneous movement does not work because the faster connection/real-time response time/autoattack client will win unit combats, and moving in the last and first seconds of two turns allows a double-move which is it is very difficult to defend against. Timeout throws a spanner into the works by making all game mechanics subject to fundamental uncertainty. While this might work in a turn based game, in a simultaneous movement game it makes things much worse, because now you cannot have any mechanism which carries a penalty for not responding to it, since that can be exploited by players (how is left as an exercise for the reader). The lack of design goals means that there is no clear idea how long a game should last, nor what level of interactivity there should be between players at which stages of the game. How the game is ended is not well through through, as is evident in the fact that most games end in a very boring mop-up operation, unless you are so lucky that the other players concede, making the end an anticlimax.

So, without further ado, I present some ideas for how Freeciv ought to be redesigned.

Read more... )

Aug. 5th, 2005

05:05 pm - Expansions in civ and RTS games

The civ games have a problem with infite city sprawl that is solved in the standard RTS game since they make expansion liable to significant risk. Building an expansion in an RTS game is a significant investment, and it can be frustrated by the actions of other players, which would be a big setback for the expanding player. This means that while expansion in RTS games is extremely powerful, just as in civ games, other players have an effective counterstrategy against it which will cause a significant blow to their opponent.

No such counterstrategy is possible in a civ game since players often do not meet in the early game, and when they do, it is a radical asymmetry between possibilities for reaching each other due to map topologies and distances which ensures that any strategy for frustrating each other's expansions would lead to an arbitrary winner, since those who would randomly meet each other would frustrate each other while those who are randomly isolated would not.

Another problem with civ games is that the defense of an expansion is no more difficult than defense of the mainland (very little emphasis on 'base defense'), that expansions are very many, and that they are hard to get to so there is no effective counterstrategy for them. Frustrating an expansion in a civ game is no different than taking the main base of the enemy. The problem lies perhaps in that units in civ games are easily built and maintained across the entire empire, and there is no good reason for keeping units concentrated - both because one or a few will do the job as good, and because there is no one target, apart from the capital, that is important enough to commit significant troop strength to protect. The capital is also often protected not so much by troops as by sheer inaccessibility.

The civ games have an expansion frustrating element in barbarians, that can harass poorly defended expansions. However, they are too random, too weak, or too strong, so that either they pose a threat to the entire civ, or not really to any part of it. In civ3 barbarians were nerfed into a mere nuisance. In order for barbarians to work as an expansion-limiter, they would have to be very strong but also easy to prevent from attacking expansions built in depth, and there would have to be clearer distinction between an expansion that is being constructed from a full-fledged base.

Other ideas that could be explored is to add faster moving harassment units that also can only attack early expansions effectively, or barbarians are not random, but created by other players through eg forced migrations, funding pirates, or paying off rebells. However, fast moving units in a turn based game is annoying, since it requires extraordinarily much micromanagement, and also allows for too fast exploration of the map.

Apr. 22nd, 2005

03:02 pm - More game design ramblings

(This is taken from a wiki page I wrote in the Freeciv web site. Since it has now been turned into a free-for-all page, I post it here instead.)

The growth curves

Expansion leads to more rapid expansion, and so you get a base curve of growth that is not linear. This is a key challenge. In order to allow other strategies than 'expand expand expand', there must be rewards of equal importance for choosing building in depth.

Master of Orion 2 has an increasing bonus on its buildings as they become more advanced, and it takes a while to get a fully developed planet. A fully developed planet with a good set of random parameters is more important in the game than having lots of small planets are not well developed.

Other games choose to limit player choices dramatically in production places (cities/planets) that are not well developed. This is the road taken by Master of Magic, where new expansions take a long time before become useful.

RTS games often combine choice limits with the limited ability of a player to defend multiple production places. This depends on an attackers ability to mount attacks at any time during the game, and your lack of ability to either predict the opponent's place of attack or move your defensive forces to match the attack in time. In Civ games, distances are so vast and units so slow, that suprise attacks are either uncommon, predictable or easy countered by movable defenses. The first two Civ games had barbarians that would pose some theoretical challenge to outposts, but they were never a real threat, and to the extent that they were, they would pose a threat to any of your cities, and indeed to your entire civilization, which would not be the point here.

Game challenge

The challenge of the game should follow, as a graph, a horizontal line, not a hilltop curve. Too often the first third of the game is boring and repetitious, the second third of the game decides who wins, and the last third is a mop up operation of an enemy that is guaranteed to lose.

Civ games have traditionally used barbarian uprisings and huts to give the first third of the game variation and challenge. While moderately useful for single player games, it fails for multiplayer games, where fairness does not permit such randomness.

It is important that the player is allowed vital choices in the first third of the game, instead of what is all too common, a short list of choices from which good players always choose the same options. Allowing a player to customize his player type (nation or race), as in Master of Orion 2, makes each game more varied, and in the early game, the results of the choices made in the player type customization are played out.

The last third of the game should either be kept challenging by making available high risk and high gain options for the losing parties, or dropped entirely by forcing surrenders or allowing easy victory when one player becomes so strong that it is unlikely that anyone else will win.

One way to avoid a slow mop up in the last third of the game is simply to give the winning player access to overpowered weapons. Command and Conquer Generals does this with its 'superweapons', which are hard to keep for a failing player, but can be used by a winning player to tear apart the defenses of the failing player in no time and from afar. However, such overpowered weapons should then never be allowed to determine the winner, and need to have the weakness of being easy to destroy or disrupt by the more offensive player.

Typically high risk, high gain options have involved choices that have stunted development. For example, in Civ3 the enemy can sacrifice citizens to conscript new units or go into a government that is better for warfare but very for developing. While good for countering surprise attacks or surprising breakthroughs in your defenses, such moves more often than not merely drag the game out further in time. If all you can do is defend, you eventually will lose. This has been true of almost all 4X games.

When creating a high risk, high gain counterstrategy, make sure it is not a high risk of a long, drawn out game. The risk should be the risk of a quick and decisive defeat. For example, one strategy might be to produce a powerful unit which will lose you the game if it is lost. Another strategy is a unit that is very powerful in certain situations, but hard to use and easily lost; an example of this is the Templar unit in Starcraft. There could be a powerful game tactic that can tip the game in the player's favour, but which depends on the enemy doing something wrong. Again, the Templar unit in Starcraft exploits bad unit management on part of the enemy to do most of its harm. In Civ games this exists to a limited degree in that entire stacks of units can be destroyed at once.

Both winning player and losing player gain something by the availability of such high risk, high gain choices. The winning player may complete the game (with a win) faster and at more challenge and fun. The losing player gets a chance to turn the tide, and instead of just watching his empire predictably getting taken apart bit by bit, gets to go down figthing with high spirits. The game ends with a bang instead of a wimper.

Usefulness

All options in the game should have their uses. If good players never use them, they should either be upgraded or removed. Having options that are merely newbie traps is not a good idea. This will merely hide an underlying problem which is lack of actually available player strategies. A case in point, in Freeciv 1.14, good players almost never build any buildings in their cities - it is so much better to just make more cities, most buildings could just as well not exist.

The number of viable options should expand during the game, but remain limited so that at no point in the game is the player offered a confusing and unwieldly amount of options to be managed at once. Branching options in such a way that choosing one branch of development shuts off another is one way to manage this problem. Master of Orion 2 does this by only allowing you to research one tech in each tech category. Making some options require others is another way to easily control the number of options available, while not reducing the real strategic choices available much - Civ games use this to some degree, RTS games tend to use it more consistently.

Well-rounded game resources are nearly always superior to specialization. This leads to a dearth of actually playable strategies. In Civ2, the whale map resource has an average amount of all three fundamental income types, and in the absence of the unlikely availability of map resources that have a lot of all of the other three income types, the whale is always better. It is, in fact, so much better that the amount of whales present in your start position can be significant factor in deciding who wins. Well-rounded resources should be in sum be much worse than specialized resources.

Counter-strategy

For every effective strategy there should be an effective counter-strategy. There should never be a situation where you can see the enemy's strategy a good time in advance, but you are unable to exploit this knowledge to your advantage.

If you know what the enemy is doing and have equal skill, you should always win.

In Starcraft, if the enemy builds up Zealots to attack, you can build Firebats to defend, and the Zealots will be toast. Build only Firebats and he has Dragoons instead, and you are toast.

In Civ games (and here I include the Master of X series) less advanced units are totally inferior to more advanced units, to the point where a player who lags in tech development is essentially defenseless against a more advanced player. Pikemen cannot do much against attacking Armor. This is largely unavoidable for this kind of game, where development plays such a vital role.

The most important rule to make effective counter strategies possible is that all units must be specialized, and all units must have at least one weakness. Again, well-roundedness is the death of good game balance.

In RTS games, weaknesses are often expressed in terms of size and type of attack. Small units are easily destroyed by 'splash' area attacks, while large units are not as vulnerable to such attacks but instead fall victim to other attack types. In Dune 2, there were two basic attack types and weakness types, the machine gun (against small targets) and rockets (against large targets).

In Civ 2, this kind of rock-paper-scissors thinking was attempted with the Pikemen and horse units duo. However, it was not much successul, because there was not sufficient motivation not to build pikemen once they were available, and the advantages of horse units were not sufficiently reduced by Pikemen. For this to be a strategy, instead of merely a flavour, the Pikemen unit must have a significant weakness that the Phalanx does not have, and the horse units that attack must be significantly disadvantaged.

Micromanagement - moving entities around

In 4X games, it is the rule that they start small where turns fly by quickly, and end up really big where turns take almost forever to get done. This is partly due to expansion, as described above, but also that production usually increases much faster than factor costs. So while in early wars you could have a dozen units attacking on each side, when you get in the late game, each side has many dozen units hoarded up. This is in itself not a bad thing, but it must be considered very carefully. Some increase in sheer numbers is a good thing to show the player that a clear sign of progress, but having to command an unwieldly number of units is not a good thing.

The obvious solution if you see that the game gives too many entities to manage in the late game is to increase costs, and make up for it by making each game entity much better. In Freeciv a musketeer that is fortified on a hill can defeat an Armor unit. So the high tech player usually sends in a lot of armor to defeat an inferior opponent. Usually the technologically superior player also has numerical superiority as well. This could be changed. The technologically inferior opponent could have more units, not less, since his units could be cheaper to build and upkeep, while the technologically superior player could have fewer units, not more.

Micromanagement - production

As the game gets into the later part is that you get a lot of production bases (in Freeciv - cities). Each of these needs to be controlled, and the control mechanism that was designed for the early game usually starts to show its deficiencies.

The game fun can be seen as a balance between chore tasks and novelties. You do the chore tasks (moving units, placing citizens, etc) in order to achieve novelties (new achievements in the game). If the ratio of chore tasks to novelties becomes too high, the game becomes boring to the overwhelming amount of the players. Each game entity has some chore tasks associated with it - moving, placing, etc.. As the number of game entities grow, the amount of chore tasks grows too. If the number of novelties increase in the same scale, this is okay (for example, in Freeciv late game, techs come much faster). But this is rarely possible, and we can see many examples of games that have been ruined by not managing to deal with this increase in scale of chore tasks, or how therwise good games have suffered from them.

In Civ2/Freeciv the best example of this is perhaps placing citizens. When you get a large number of cities, this chore tasks becomes just impossible if you play with someone else.

Micromanagement - the AI mistake

Some games 'solve' micromanagement problems by allowing the player to give more and more control over to an AI. This is a fundamentally wrong approach. The rules should work for the entire length of the game, and should not be solved by some 'deus ex machina' AI solution that allows you to play by the rules but not play with the rules. If the rules require such a cop out, they are not well designed. If in the first part of the game you play by one set of rules, one interface, and in the next stage of the game, due to the unwieldly number of game entities or production bases, you now must use a second set of rules and a second interface, then you have produced two games, not one game.

Once the game starts to be managed by a second-order AI aid, you get two key problems.

The first problem is that a human is still more likely to produce better results through continuing micromanagement than an AI is. This will lead some players to avoid the AI feature, but the resulting frustration with the overwhelming micromanagement will still be felt and produce negative attitudes to the game. Also in turn-based games, those who insist on micromanagement when the game designer thought players would use AI features will slow down the game for everyone else. Freeciv here is a case in point - turns proceed in the speed of the slowest player, and people who micromanage their cities are slow indeed.

The second problem is that, provided the AI feature is client-side in a client-server game, those who have the better AI scripts or AI code will gain a substantial advantage. This is particularly the case in multiplayer games that use a timeout timer to end turns. The unofficial Freeciv 'warclient' gives players mass control over units and is a substantial aid in timeout games. While some may find this (writing their own AI-aid code) a challenge on its own, it is inherently unfair and detracts focus from the core game concepts.

Apr. 21st, 2005

06:05 pm

While games ought to be programmed imperatively, they ought to be designed functionally. An imperative design starts as a user-case description from a beginning to an end. However, this is assuming what you want to find out. A functional design starts, on the other hand, with the end result and proceeds backwards from there by designing the rules to achieve the end result. The program is seen as a big calculation, not a recipe, to reach this end result.

We can say the end result in Freeciv is a list of winners and a list of losers. The first thing to get clear are then the rules for calculating these lists. In Freeciv, however, this part of the rules is obviously an afterthought, not well designed and pieced together to fit. What happens if you end the game with equal score? If the years run out? If only allies remain alive? These questions are not clearly resolved, and have been addressed separately several times throughout Freeciv's years. Freeciv has a result, but it is not designed but retrofitted from the user case and it shows by being internally inconsistent.

Yet is Freeciv only about winning? Is it not also about building the greatest civilization? Here the functional design method shines by bringing these crucial questions to the forefront. How can you tell from the ending that Freeciv is about building the greatest civilization? Let's hold that question for a moment and make a detour.

In RPG games we can say that they have two end results - the character developed and the story as it is chosen. During the course of the game the character build is tested, and the final boss fight is the ultimate proof of success. (Ignoring here the role-playing aspect of character building, which is harder to model.) The story has no such test, but it ought nevertheless be a result, the result of the choices that you have made throughout the game. Forgettable RPGs end with a cinematic - memorable RPGs relive and review the choices you have made by spelling out their epic consequences at the end, and what you did shows in the end result. This gives a closing satisfaction and a desire to play it again to achieve a different end result.

Now, in Freeciv, the choices you make during the game is only shown in a number, the same number used to determine a winner if there are multiple survivors at the end of the game. In Civ2 and Moo2 they at least had the decency to break this score down and show some pretty statistics, and put you in a high-score sheet. The end game statistics in Freeciv are few and mostly irrelevant. Even better would be to be given a postmortem by every defeated AI player, in which they display a memory of main events and deliver a evaluation of you as a player.

Civilization development can perhaps be seen as a kind of character development, where the proof is in the winning. But you also make "story choices" during the game - going to war, researching technologies, building wonders - decisions that should impact the end result. If you reputation is here viewed not as a game resource (not primarily), but as a story indicator, its role becomes more clear. As a story indicator it should not regenerate, but be the accumulation of good or bad acts. A framework for such does not yet exist in Freeciv, but it could easily be built into events. As a story element, it does not need reside in the players dialog. It should also not start perfect, but start neutral, and allow progression both for better and worse. Efficient but atrocious acts would lower reputation, while lowest pollution, choosing democracy and so on would increase it. Perhaps it can also have more bearing on the game - AIs will ally likeminded more often, citizens may be more unhappy and corrupt in low reputation civilizations - or it could even be accumulated and displayed in the multiplayer ranking.