Game Source

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg

Sunday, 23 July 2006

Freeciv3? Part I

Posted on 05:32 by Unknown

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!

Email ThisBlogThis!Share to XShare to Facebook
Posted in article, freeciv | No comments
Newer Post Older Post Home

0 comments:

Post a Comment

Subscribe to: Post Comments (Atom)

Popular Posts

  • Mega Games Bumper Post
    Well, I was fighting with myself not to post twice in a single day, but I have so much good stuff to post and the last post was simply a ran...
  • Forums Moving
    The forums are moving - I'll come back to that after a few game snippets. 8 Kingdoms 1.1.0 has been released, with bug fixes and minor ...
  • Open Source Gaming Sites
    I just came across two new(ish) open source gaming portals: www.OSGamer.org and www.OpenContentGames.org I also spotted this "royalty ...
  • Freedom is Fun
    Happy festive season to all those who are celebrating, and commiserations to those who are missing out or have not been blessed with a nice ...
  • Some Cool Game Updates
    UFO:AI Hot off the press is the 2.0 rc3 release from the UFO:AI team , which is shaping up as a flagship open source game after it briefly ...
  • New Freeciv Beta
    Freeciv 2.1 beta3 is ready ( changelog summary ). I'm on holiday in Vietnam at the moment so won't be able to play it for a few we...
  • Warsow 0.3
    Just when I feared I was losing my blogging Mojo, a few tips from readers has put me back on the path to righteousness. First tip - Warsow 0...
  • RubyWeekend, but also PyDay
    Yesterday the first RubyWeekend ended, which is a two and a half days Ruby game creation competition. The topic was "Pirates Versus Zo...
  • Fictional Air Combat 0.1.3
    Fictional Air Combat 0.1.3 I recently discovered YAFS on SF.net: Fictional Air Combat , which is an action flight simulation at an early de...
  • VDrifting Away
    Free Gamer has been on hiatus. Sorry! Sometimes these things happen... VDrift made a new release yesterday. Hero of Allocrost released ...

Categories

  • 0ad
  • 2d
  • 3d
  • 3delement
  • 4dmaze
  • 8kingdoms
  • a3dx
  • abe
  • actioncube
  • adinfinitum
  • adonthell
  • affcity
  • ags
  • airbuccaneers
  • aircarrier
  • alephone
  • alienarena
  • allacrost
  • allegro
  • alphashooter
  • andromeda9
  • angel-engine
  • angelsfallfirst
  • annchienta
  • antargis
  • apricot
  • arbarlithii
  • ardentryst
  • arkhart
  • armagetronadvanced
  • art
  • article
  • asc
  • assaultcube
  • asteroidwars
  • astromenace
  • atomictanks
  • atomicworm
  • aurora
  • auteria
  • automanic
  • autopackage
  • balazar
  • balazar3
  • balder2d
  • balldroppings
  • bankiz
  • barrage
  • basecommand
  • battery
  • battlechess
  • battlejuststarted
  • battleship88
  • battletanks
  • berusky
  • bethewumpus
  • beyondtheredline
  • binaryzoo
  • biniax2
  • blacklegacy
  • blender
  • blobandconquer
  • bloboats
  • blobwars
  • blockattack
  • blocks5
  • bloodfrontier
  • bloodmasters
  • bombattack
  • boomwar
  • boson
  • boswars
  • brainworkshop
  • breve
  • bridgebuilder
  • bridgecon
  • brutalchess
  • bubblething
  • bubbrothers
  • burningdust
  • burningwell
  • business
  • bygfoot
  • cannonsmash
  • captainpork
  • carrier2
  • carworld
  • caspring
  • catchemrpg
  • catmother
  • cave9
  • cedega
  • cgmadness
  • cgtextures
  • cheeseboys
  • choria
  • chromiumbsu
  • civil
  • civitas
  • clanlib
  • clonk
  • cocos2d
  • colonies
  • combatsimulator
  • commanderstalin
  • conquest
  • construo
  • contentcreation
  • copypirate
  • creepsmash
  • crimsonspace
  • crossfire
  • crownandcutlass
  • crystalcore
  • crystalscrolls
  • crystalspace
  • cspop
  • cube
  • cubelegends
  • cultivation
  • d2x-xl
  • daggerwindscrolls
  • daimonin
  • dangerdeep
  • dangerman
  • darkoberon
  • darkphear
  • darkplaces
  • deadjustice
  • diamondfighters
  • die
  • dmjava
  • dnt
  • dnteam
  • donceferino
  • dotg
  • dreamchess
  • drod
  • dunelegacy
  • dunemaker
  • dunesleeper
  • dungeoncraft
  • dungeondigger
  • dungeondoom
  • dungeonhack
  • dungeonmapper
  • eagles
  • eatthewhistle
  • ecksdee
  • edgar
  • edm
  • egoboo
  • eisenstern
  • elitestrike
  • emiliapinball
  • emr
  • enemyengaged
  • entropy
  • eot
  • epoch
  • etce
  • eternallands
  • everborn
  • extremetuxracer
  • exult
  • f1spirit
  • fac
  • feuerkraft
  • fgd modelling contest
  • fife
  • fifengine
  • finityflight2
  • fishfillets
  • flightgear
  • flowflowmania
  • flyingguns
  • foi
  • fortress
  • freeallegiance
  • freeartsearch
  • freeciv
  • freecol
  • freedoom
  • freedroidrpg
  • freegamer
  • freelords
  • freeorion
  • freepop
  • freera
  • freerails
  • freeryzom
  • freesci
  • freespace2
  • freesynd
  • freetrain
  • freetumble
  • fretsonfire
  • frogatto
  • funguloids
  • fuzzyadventure
  • g3d
  • galaxymage
  • gamedev.net
  • gameofbases
  • gammalow
  • gardenofcl
  • gate88
  • gcblue
  • gearhead2
  • gemrb
  • generally
  • genre-spacesim
  • genre-spacetrade
  • ggr
  • gl117
  • glc
  • glchess
  • glest
  • glestalieninvasion
  • glestdemineonic
  • glhorizon
  • globulation2
  • gno3dtet
  • goblinhack
  • gondola
  • goollie
  • goonies
  • grandwing
  • gridwars2
  • grumbel
  • gsoc
  • gta
  • gta-mud
  • gusanos
  • haiku
  • hardwar
  • hedgewars
  • heroesofwesnoth
  • hex-a-hop
  • hexapop
  • hexen2hot
  • hextd
  • hiddenanddangerous
  • holoracer
  • howski
  • iamar
  • imperiumsticks
  • impulse
  • industri
  • intensityengine
  • interstateoutlaws
  • interview
  • iris
  • irrlamb
  • islandcommander
  • isoccer
  • iteam
  • ivan
  • ivan3d
  • ivanx
  • ja2stracciatella
  • jake2
  • jcatano
  • jcrpg
  • jdraw
  • jfreerails
  • jme
  • kambi vrml
  • kartingrace
  • kazama
  • kimboot
  • kingsofdarkage
  • knights
  • kobodeluxde
  • kqvga
  • krank
  • l-echo
  • lacewing
  • lalalove
  • lasersquad3d
  • lasertactics
  • lastremaining
  • lavirinto3d
  • lbaprequel
  • legacyofmagic
  • legesmotus
  • lemmingballz
  • levelhead
  • libsdl
  • licensing
  • liero
  • lincityng
  • linwarrior3d
  • lipsofsuna
  • liquidwar
  • loosecannon
  • lordsawar
  • lostlaby
  • love
  • löve
  • low
  • lowpolycoop
  • lpairs
  • ludumdare
  • machineball
  • magicor
  • maniadrive
  • marathon
  • marathonrubiconx
  • markiv
  • marsnomercy
  • mathcricket
  • maxfighter
  • mazzeroth
  • mechcommander2
  • megamario
  • memonix
  • meritous
  • metalchaser
  • metalglovesolid
  • micropolis
  • militiadefense
  • mistlands
  • mixxx
  • mofrag
  • mokoi
  • moleinvasion
  • monkeyworld3d
  • mono
  • monogame
  • motorsport
  • mtptarget
  • musikcube
  • myman
  • mynet
  • naev
  • nekeme
  • nero
  • nethack3d
  • netlit2
  • netpanzer
  • nettlers
  • neverball
  • newcol
  • newfoundroom
  • nexuiz
  • nikwideluxe
  • nimuh
  • njam
  • no
  • nogravity
  • nsco
  • nucleargraveyard
  • ogre3d
  • olpc
  • onyx
  • oolite
  • openanno
  • openarena
  • opencity
  • openclonk
  • openclou
  • opendungeons
  • openfootball
  • openfracas
  • openfrag
  • openlancer
  • openlander
  • openlierox
  • openmw
  • openoctane
  • openoutcast
  • openracer
  • opensonic
  • openttd
  • opentyrian
  • opinion
  • oppositelock
  • orbit-hopper
  • orbiter
  • orts
  • osgg
  • osgs
  • overdose
  • overgod
  • ows
  • paintball2
  • paintown
  • palomino
  • pandora
  • pangzero
  • paralleluniverse
  • parpg
  • parsec
  • passenger
  • pathman
  • pegi
  • peng2illa
  • penumbra
  • peragrotempus
  • piarmada
  • pingus
  • pink-pony
  • pioneers
  • pixbros
  • plague-like
  • planeshift
  • platinumarts
  • pleethebear
  • plexus
  • plib
  • plutocracy
  • pok3d
  • pong2
  • popcap
  • port town
  • portalized
  • powerball
  • privateergeminigold
  • privateerremake
  • privateeruniverse
  • projectalexandria
  • projectcitadel
  • projectdiaspora
  • projectfootball
  • projectgamma
  • projectkilo
  • projectopen
  • projectttna
  • purity
  • pyday
  • pygame
  • pysoy
  • q2w
  • q3rally
  • qonk
  • quantum
  • racer
  • raceracer
  • radakan
  • raidem
  • railroadtycoon
  • railz
  • rant
  • rastullahs lockenpracht
  • realtimechaos
  • redshift
  • regnumonline
  • remorse
  • renpy
  • retribution engine
  • review
  • rgprohockey
  • rigsofrods
  • rili
  • roadfighter
  • rrgbis
  • rubygame
  • rubyweekend
  • rudi
  • sandbox
  • sauerbraten
  • sauermod
  • savage
  • sawk
  • scorched3d
  • scourge
  • scummvm
  • secondlife
  • secretmaryo
  • settlers3d
  • sfxr
  • sfz
  • shotgundebugger
  • silvertree
  • simcity
  • simontatham
  • simutrans
  • simwar
  • skyscraper
  • slamsoccer2006
  • slickworm
  • slingshot
  • slune
  • smokinguns
  • snowball
  • snowballz
  • soccerboss
  • solarwolf
  • solitairesettlersofcatan
  • sotb3d
  • sotu
  • soulfu
  • sourceforge
  • soya3d
  • spaceexp
  • spring
  • spring1944
  • srb2
  • sstld
  • standalone
  • stargus
  • starwarsta
  • stendhal
  • stonesoup
  • stormbaancoureur
  • strangelet
  • stratagus
  • streetrod3
  • streetrods3
  • stuntplayground
  • stunts2005
  • sturmbahnfahrer
  • sundog
  • sunuo
  • superretromegawars
  • supertux
  • supertuxkart
  • survey
  • ta3d
  • tank-simulator-game
  • taspring
  • tecnoballz
  • teewars
  • teeworlds
  • tenebrae
  • tennix
  • tesliz
  • theblob
  • thecastle
  • thegoonies
  • themeparkbuilder3d
  • thesilverlining
  • thewhitechamber
  • thousandparsec
  • throwin
  • thundernlightening
  • thundernlightning
  • tigrs
  • tiled
  • tileeditor
  • tiltnroll
  • tkremix
  • top10
  • torcs
  • tower
  • tpb3d
  • trampoline
  • transportempire
  • Tremfusion
  • tremulous
  • trophy
  • truecombatelite
  • ttmofifag
  • tuxkart
  • tuxracer
  • tv
  • ufo2000
  • ufoai
  • ultimatestunts
  • unknownhorizons
  • updates
  • uzebox
  • vacuummagic
  • vaporware
  • vavoom
  • vdrift
  • vegastrike
  • vegawars
  • vertigo
  • vikings
  • vlad
  • vodovod
  • voxelstein
  • warsow
  • warzone
  • warzone2200
  • wasteland
  • wastesedge
  • wcu
  • wesbowl
  • wesnoth
  • whichwayisup
  • whitebutterfly
  • widelands
  • windstille
  • wine
  • wing
  • wme
  • wolfpack
  • wordwarvi
  • work
  • worldforge
  • worldofpadman
  • worldwarvi
  • worminator
  • wormsforlinux
  • wormux
  • xarvh
  • xenocide
  • xenogeddon
  • xenon
  • xevil
  • xforce
  • xmoto
  • xna
  • xreal
  • xut
  • xwars
  • yodasoccer
  • yofrankie
  • ysflight
  • zaz
  • zeldaclassic
  • zeroprojekt
  • zmar
  • zymotic

Blog Archive

  • ►  2009 (40)
    • ►  August (6)
    • ►  July (3)
    • ►  June (4)
    • ►  May (3)
    • ►  April (4)
    • ►  March (8)
    • ►  February (7)
    • ►  January (5)
  • ►  2008 (102)
    • ►  December (6)
    • ►  November (10)
    • ►  October (9)
    • ►  September (6)
    • ►  August (7)
    • ►  July (8)
    • ►  June (9)
    • ►  May (6)
    • ►  April (7)
    • ►  March (9)
    • ►  February (13)
    • ►  January (12)
  • ►  2007 (168)
    • ►  December (3)
    • ►  November (6)
    • ►  October (8)
    • ►  September (10)
    • ►  August (18)
    • ►  July (23)
    • ►  June (25)
    • ►  May (24)
    • ►  April (24)
    • ►  March (16)
    • ►  February (6)
    • ►  January (5)
  • ▼  2006 (68)
    • ►  December (5)
    • ►  November (3)
    • ►  October (3)
    • ►  September (10)
    • ►  August (12)
    • ▼  July (9)
      • Freecol, VDrift, Sauer... heaven!
      • Freeciv3? Part I
      • Some Cool Game Updates
      • Essential Open Source Tools for Windows
      • More Upcoming Releases
      • VDrift - More Cars & Tracks
      • Freecol vs Swecol
      • Dedication's What You Need
      • Dark Days
    • ►  June (19)
    • ►  May (7)
Powered by Blogger.

About Me

Unknown
View my complete profile