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 ...
  • 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...
  • New Forums Available
    With many thanks to ghoulsblade and hagish of SFZ fame, there is a new Free Gamer forum . :-) Unfortunately there is no way to transfer to ...
  • 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 ...
  • Open Source Survives Financial Meltdown
    There's a few juicy updates to several great Free Software game projects over the last few days. I'm feeling too lazy to grab scree...
  • How Original
    I really shouldn't be posting right now because I have a million more important things to do but I love you guys so... There's a pre...
  • Welcome to Free Gamer
    This blog will serve as a resource for collecting information on upcoming Free Software games. I have accrued a great deal of knowledge of ...
  • Eying Eisenstern And Eye Candy
    I had a few links collecting that I wanted to get off my chest. Nothing is worse than having a folder full of old links that would have bee...
  • Interview: Stephen Carlyle-Smith aka Me_Programmer
    In the second Free Gamer interview - over 2 years since the first with grumbel - serial Free game developer Steven Carlyle-Smith (UK) aka M...

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