Sunday, July 23, 2006

Freeciv3? Part I

There was an interesting discussion over on the Freeciv mailing lists on the goals of the project.



Freeciv developer Per started the conversation by stating what he believes is the main obstacle to Freeciv development at the moment, the clash between single player and multiplayer goals:



We can make a very good single player game... Or we can create a game that is fun in multiplayer... Because once we need to take into account the needs of higher amounts of players and a competitive and possibly hostile environment, the needs of single player must suffer...



...we must decide which is more important, single player or multiplayer.



I have no problem saying single player is more important... [since] multiplayer is inherently broken and unfixable without a redesign making multiplayer the priority.


He goes on to give more justification in the email for his beliefs, which I completely agree with. I do not, however, agree with the conclusion that only one of single player or multiplayer aspects can be effectively achieved.



To start with, there are reasons like this that I think are flawed:



The ban on modal dialogs has improved multiplayer significantly, but along with timeout and the undeclared ban on pausing the game to display information, it rules out many ways of displaying information to the player that can be highly beneficial for single player.


To me, that is a broken implementation. Messaging should be abstracted, thereby giving the option of both modal and non-modal implementations (or varieties on both). It should be a preference that is dependent on the context (in this case, whether the game is single player or multiplayer). It is both simple to design and implement if the codebase is sufficiently organised - that is, if the UI is independent of the game logic. Like this pseudo code:



private void some_game_logic = function() {

  Message.UserDialog("some_action", SIMPLE_MESSAGE);

}



public abstract class Message {

  public abstract Message GetMessage();

  public void UserDialog(string msg, int type) {

    switch (type) {

      case SIMPLE_MESSAGE:

        // set single close button

        Display();

        break;

      // other cases

    }

  }

}


Then implement a modal version that blocks until the dialog is closed, and a non-modal version that returns instantly and displays the dialog using a different thread.



The more important obstacles to Freeciv as a game are better identified by 'saywhat':

AIUI "good game design" involves boiling down a lot of game
elements until you're left with only the essentials. Elements which
dilute the fun are thrown out; elements which give the player "fun"
(in the form of interesting choices) are kept in.


He basically goes on to state that Freeciv attempts to handle too much by scaling the gameplay. Lost a city? Build a city. Got space? Build more cities. Bigger is better and once you have Democracy, there's nothing but positives to having an expansive empire. Roads and railroads are, once built, cost free, so build them everywhere.



I think the problem with the Civilisation genre of games as a whole is that they do not take how empires rise and fall as they have done in history. All empires that have tried to grow too much have imploded, then often risen again as smaller but more solid cultures. The Romans? Now the Italians. Persia? Now Iran. The British Empire? Now the UK and Commonwealth (which is losing it's relevance). The USSR? Now a flagging smaller Russia.



Freeciv would be better at looking at ways to make growing too big problematic. It needs to turn what is a race-to-grow game into a more tactical use-others-best game. Focus less on building and more on cooperating. Make growth painful. Quite simply, large cities should be nigh impossible to support without certain technologies. Look at how corrupt Rome was, for instance.



There are suggestions in that discussion at limiting growth by making it more difficult to found cities by making settlers more difficult to come by. I don't like this approach as it is introducing a limitation when the team should be looking at ways to address the flaws that make large civilisations too powerful and too easy to manage.



I think they need to start looking at more radical ways to change Freeciv. In fact, I think they should consider distinctively non-Civ changes to the gameplay, giving Freeciv it's own identity as a game. I say they should draft Freeciv3 as a total departure from standard Civilization and leave Freeciv2 as the Civ-like implementation.



I shall introduce my ideas for Freeciv3 in a follow up article. Please post any ideas you have!

6 comments:

  1. Anonymous11:26 pm

    I would like to see a change in the way cities are managed, something similar to Galactic Civilization II where you build onto city fields and not just into a generic pool. This would force people to specialize their cities, would limit growth and depending on how you represent this on the map it might also discourage building cities to close together.

    ReplyDelete
  2. Anonymous1:30 pm

    It is not as simple as the same dialog being either modal or non-modal. Single player occurs in a very different pace than multiplayer, and the amount of information, interactivity and fluff that can and should be displayed is also different. Freeciv has always been designed as a multiplayer game, and single player has been an afterthought. This shows in the design of the game.

    ReplyDelete
  3. Yes, the pace is different. But the information is not.

    At some point the information is generated. At some further point it is determined whether (or not) and how to display said information to the player.

    Why can't that be simply passed off to a mechanism that does different things depending on A) the type of information and B) the context (single or multiplayer)?

    Of course, it's not so simple because you have lots of different types of information (science, wonders, unit attacks etc etc) but it's certainly possible to abstract it out and do different things with the information depending on whether it's a single player or multi-player game.

    A very basic implementation would be to simply do it at a message level (the messages box at the bottom of the screen) - pop up an additional modal dialog for single player games whilst keeping the game flowing for multiplayer.

    ReplyDelete
  4. Being the person to blame for that particular part of the UI, I think people may be confusing some concepts.

    Personally, I think modal dialogs are plain stupid. I want to command the game as I wish, not be commanded by it. A modal dialog is one of those popup windows which will not vanish until you absolutely and positively answer whatever it asks (yes/no, choose a tech, etc) and answer it ASAP.

    What I think may be in discussion here is something different: popups vs no popups. Old Freeciv versions had popup dialogs. Personally I hate popups, but I can see their uses as they are more obvious, so the UI still allows popup dialogs as an option. This is all user configurable. It is just that no popups is on by default.

    ReplyDelete
  5. Anonymous11:34 pm

    First of all, let me say: I like FreeCiv. But, to move forward:

    1: Tidy up the interface
    Sorry, it just looks too much like a computer interface. Should really aim for something like Alpha Centauri.

    2: Less options, more common sense
    Wouldn't mind a sensible selection of pop-ups (like being told cities are in revolt). I know, you can select it all yourself, in great detail. But why not have some kind of sensible default.

    3: Too hard.
    Even on the easiest level, FreeCiv can be tricky. Any player should be able to thrash it on the easiest level (and let's face it, it's always easy to dumb down an AI)

    And now for those things that will mean moving away from Civ rulesets:

    4: Build some scripting and modding options into scenarios.

    5: Hey, make the economy better.
    This is my *biggest* bugbear. Money seems to come from nowhere, is spent, and then dissapears. At least *try* to implement some economy. Ok, so I study ancient economy, I would be willing to help here!

    6: Slow down gameplay.
    There should be more turns at earlier age. To conduct a large campaign in the early stages can easily be 400 years of time. You could never emulate Alexander or Ceasar in FreeCiv.

    7: Reduce control.
    In a democracy? Still deciding what % is spent on science? That's not a democracy, my friend.

    And the biggest one of all:

    8: Large =! Best
    Fast expanding, mulit-city empires failed historically, and they should in FreeCiv, as well.

    ReplyDelete
  6. Anonymous5:00 pm

    Thing like settlers could be more expensive deppending on the size of the city is building it. If the city goes up a level costs raise X (100%?), so having smaller cities would cut the cost of things, but bigger ones let build bigger things.

    So:

    - Cost of production = cost at level 1 x X^(level of city)
    - Thing Y can only be build in cities with a level higher than Z

    ReplyDelete

Note: only a member of this blog may post a comment.