Fandom

Freeciv

PMF:Temes tècnics

180pàgines en
aquest wiki
Add New Page
Discussió0 Share

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

PMF: Temes Tècnics Edit

He trobat un error al programa, què faig? Edit

Veure Informes d'errors.

He engegat un servidor però el client no el troba! Edit

Per defecte, el teu servidor es pot trobar al host localhost (la teva pròpia màquina), al port 5555; aquest són els valors per defecte que fa servir el teu client quan demana a quina partida vols connectar-te.

Per tant, si amb aquests valors no pots connectar-te, o bé el teu servidor està aturat, o has fet servir l'opció -p per engegar-lo en un port diferent, o la configuració de xarxa del teu sistema està espatllada.

Per engegar un servidor local, vés a /usr/local/bin i executa civserver. Llavors escriu "start" per començar!

mike@localhost:/usr/local/bin$ ./civserver
This is the server for Freeciv version 2.0.8
You can learn a lot about Freeciv at http://www.freeciv.org/
2: Now accepting new client connections.

> start
Starting game.
2: Loading rulesets

Si el servidor no s'està executant, NO podràs connectar-te al teu servidor local.

Si no pots connectar-te a cap de les altres partides que surten llistades, p.ex. les del servidor públic, un firewall de la teva organització/proveïdor d'Internet t'està bloquejant la connexió.

Puc jugar al meu servidor, però el metaservidor sembla que no funciona. Edit

Ara tenim servidors de partides dedicats (pubserver.freeciv.org i civ.alkar.net), així que si el teu botó de metaserver presenta una llista buida, segurament tens alguna cosa malament a la teva configuració.

Primer, comprova la versió del teu Freeciv. Les versions entre 1.14.2 i 1.9.0 (ambdues incloses) fan servir el metaservidor vell, la 2.0 i superiors fan servir el nou; si barreges versions, pot ser que rebis la llista que no toca.

Si pots veure la pàgina del metaservidor amb el teu navegador, i surten servidors al llistat, però el botó Metaservidor del client encara no els llista, pot ser que estiguis darrere d'un proxy web no transparent. Veure configuració del proxy per una explicació més detallada.

Com canvio la cadena d'informació del metaservidor? Edit

Fes servir les comandes /metamessage o /metatopic. Veure /help metamessage.

Tinc l'última versió? He d'actualitzar-me? Edit

La versió estable de Freeciv actual és 2.0.10. Per un resum dels canvis que hi ha en aquesta versió mira el fitxer NEWS (veure w:c:Freeciv:NEWS també).

El fitxer NEWS-#.#.# només s'actualitza quan hi ha una nova versió; les actualitzacions que es fan a Subversion es poden consultar als arxius de freeciv-commits (veure Llistes de correu) i els canvis al codi es poden veure amb el navegador online de codi font.

Si decideixes d'actualitzar-te, vés a la pàgina de baixades pel codi font o binaris que ens han contribuït.

No tots els binaris precompilats ni ports a diferents sistemes s'han actualitzat encara a la 2.0.10. Si pots contribuir-hi, si us plau, fes-ho! Prepara un paquet i anuncia-ho a freeciv-dev@gna.org.

Els clients i servidors de versions diferents són sovint incompatibles degut a canvis en el protocol client/servidor. Notaràs les incompatibilitats per un error de 'capacitats no concordants' (o 'mismatching capabilities' si el servidor està en anglès). Per exemple, la 2.0.0 i la 2.0.8 són compatibles; la 2.0.0 i la 2.1.0 no ho són.

"cannot open display :0" Edit

El client Freeciv no pot obrir una finestra al teu display X local. Tens engegat un servidor X, almenys? Potser l'has d'instal·lar i executar, o canviar a un Freeciv que no necessiti X; veure la pregunta anterior.

En Mac OS X, prova d'engegar el client Freeciv des de la sessió de xterm executada des de X.

HOME directory not set? Edit

El client Freeciv ha d'escriure un fitxer de configuració anomenat .civclientrc al teu directori $HOME. En MS Windows, la variable d'entorn $HOME no sempre està inicialitzada. Això es pot fer des de la finestra DOS o amb un fitxer .bat, per exemple:

set home=C:\freeciv

Si surt aquest error, pots jugar igualment, però les teves opcions de client no es desaran.

Com puc iniciar la següent partida? Edit

Un civserver en execució només pot portar una sola partida. Un cop la partida s'ha engegat amb la comanda /start, és impossible tornar-la a engegar.

Per començar una partida nova, atura amb /quit el servidor i engega'n un de nou; llavors torna-hi a connectar el client. A pubserver.freeciv.org tenim programari addicional que torna a engegar els servidors automàticament quan ja no hi queda ningú connectat.

Com puc reprendre una partida desada? Edit

Si per algun motiu no pots fer servir l'interfície de la pantalla inicial per carregar una partida, pots carregar-la directament amb la línia de comandes del servidor (veure les opcions de línia de comandes). Pots engegar civserver amb l'opció -f, per exemple

civserver -f civgame1150.sav
O pots fer servir la comanda /load dins del servidor abans d'engegar la partida. Assegura't que deses la partida manualment, perquè el servidor només ho fa automàticament cada deu torns, per defecte.

El servidor no pot guardar partides! Edit

En una partida local, les partides es desaran al directori de partides desades per defecte del Freeciv (típicament ~/.freeciv/saves/). Si estàs executant el servidor des de la línia de comandes, però, les partides es desaran al directori actual. Si la variable de servidor saveturns està inicialitzada, el servidor desarà la partida automàticament de manera periòdica (cosa que en alguns casos pot consumir força espai de disc). En tot cas, cal que comprovis el propietari, permisos, i espai o quota de disc per al directori o partició on estàs intentant de guardar les partides.

On es desen les partides? Edit

Per defecte, als sistemes Unix-Linux, seran a ~/.freeciv/saves

En Windows, seran a $HOME\.freeciv\saves on $HOME és normalment C:\Documents and Settings\username\Application Data

Pots canviar-ho modificant la variable d'entorn HOME, o donant l'argument --saves a la línia de comandes del servidor (però per fer això l'has d'engegar per separat del client).

Per què alguns menús del client Freeciv no estan permesos? Edit

Els menús que no es poden fer servir queden inhabilitats. Això significa que alguns menús seran inhabilitats abans de començar la partida, o només es permetran quan seleccionis una unitat, o si la partida ha acabat.

També pot ser que ni tan sols estiguis connectat a un servidor del joc. Si engegues el client, t'hauria de permetre començar una nova partida automàticament (amb el botó Començar Partida Nova). També pots provar d'executar el servidor des de la línia de comandes (amb civserver) i després connectar-t'hi manualment amb el client (connecta't a localhost). Utilitza la comanda /start per començar la partida un cop t'hagis connectat. El servidor carregarà llavors alguns fitxers de configuració de què depenen alguns dels menús.

Com puc obtenir informació sobre unitats, edificis, tipus de terreny i tecnologies? Edit

Hi ha molta ajuda sobre això al menú d'Ajuda, però només quan ja ha començat la partida - això és perquè totes aquestes coses són configurables fins aquest punt; veure també Per què alguns menús del client Freeciv no estan permesos? (Cal treballar una mica aquí per fer-ho més intuïtiu).

A partir de la versió 2.1, el joc ve amb un aprenentatge interactiu. Per executar-lo, selecciona Començar partida en Escenari al menú principal, i després carrega l'escenari aprenentatge.

Fora del client Freeciv, tenim alguns tutorials en línia en anglès a la secció de documents. Hi ha un graf de l'arbre tecnològic (per defecte) a la wiki o el que ha fet David Pfitzner.

Les tecles de fletxes diagonals no em funcionen en Solaris. Edit

Exactament per què, no ho sabem, però has de canviar algunes tecles amb xmodmap. Del meu .xinitrc:

xmodmap -e 'keycode 27 = Up' \
        -e 'keycode 31 = Left' \
        -e 'keycode 34 = Down' \
        -e 'keycode 35 = Right' \
        -e 'keycode 76 = Up' \                                                  
        -e 'keycode 98 = Left' \                                                
        -e 'keycode 120 = Down' \                                               
        -e 'keycode 100 = Right'                                                

Veure també el fil d'Abril del 2000 sobre aquest tema.

Els elements del menú no funcionen en KDE. Edit

Desactiva NumLock.

Les noves finestres s'envien al darrera en KDE i se m'hi acumulen. Edit

Quan s'obren finestres especials al client Xaw activades des d'altres finestres, p.ex. el diàleg de Canviar producció a la finestra de ciutat, la finestra que estava oberta abans s'envia al darrera de tot. Al cap d'una estona, el client s'alenteix degut al nombre de finestres de ciutat obertes, i s'han de tancar una per una. Pot passar el mateix amb les finestres d'informes.

Aquest problema (PR#866; veure el comentari del mantenidor) és específic del gestor de finestres KDE. Si saps alguna manera d'esquivar-lo, si us plau fes-nos ho saber.

El client es queixa que no pot llegir el fitxer .civclientrc. Edit

No passa res: el fitxer es crearà per emmagatzemar les teves opcions de client, de seguida que les desis; però d'entrada no ve.

El client Freeciv em fa un core quan l'engego! Edit

Continua llegint si estàs fent servir el client Xaw en algunes distribucions de Linux o IRIX.

Probablement, el problema és una versió millorada de la llibreria Xaw, (Xaw3d, Xaw95, o neXtaw). Un binari de Freeciv compilat amb la llibreria Xaw 'normal' tindrà un error de segmentació en engegar si es fa servir amb aquestes.

Remeis:

  • El Freeciv es pot recompilar perquè faci servir Xaw3d, si el tens: fes
configure --with-xaw3d
  • Assegura't que el libXaw.so que veu Freeciv és una versió no millorada (instal·lant el paquet apropiat, apuntant a la versió correcta amb variables d'entorn, o com sigui; els detalls depenen de la plataforma)
  • Si per algun motiu no pots, però hi ha un libXaw.a 'normal' en algun lloc: busca per les Makefiles i canvia les línies que continguin -lXaw a /usr/X11/lib/libXaw.a, o on sigui que libXaw.a estigui a la teva màquina; després recompila-ho (això ho va suggerir <dva AT uu.gatech.edu>)
  • Instal·la GTK+ (si encara no ho està), compila i fes servir el client GTK+ en comptes del Xaw.

Aquest problema estava documentat a la base de dades de suport de SuSE Linux.

Si el SEGV que pateixes en engegar és degut a un problema diferent, si us plau avisa-ho amb el sistema d'informe d'errors dels desenvolupadors, enviant-ho a bugs@freeciv.org.

Freeciv no es compila per culpa de les llibreries Xaw. Edit

Reportat amb Debian 2.1:

> make[2]: Entering directory `/usr/src/freeciv/client'
> Making all in gui-xaw
> make[3]: Entering directory `/usr/src/freeciv/client/gui-xaw'
> gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I. -I./.. -I./../include
> -I../../common -I../../intl  -I/usr/X11R6/include    -g -O2 -Wall -c
> pixcomm.c
> In file included from pixcomm.c:54:
> pixcommp.h:54: X11/Xaw3d/CommandP.h: No such file or directory
> make[3]: *** [pixcomm.o] Error 1
[...]

Això torna a ser una confusió de Xaw/Xaw3d. En aquest cas particular, el paquet Debian xaw3dg no està instal·lat al sistema.

Per seleccionar el Xaw normal o el Xaw3d explíctiament, fes:

./configure --with-xaw [...]
./configure --with-xaw3d [...]

Quan compilo Freeciv des de fonts, no troba la comanda no. Edit

Aquest missatge d'error estúpid, o possiblement d'altres, pot aparèixer si fas ./configure --with-included-gettext per fer servir la llibreria [:c:Freeciv:internationalization multilingual support|de suport multilingüe] (GNU gettext) que es distribueix amb Freeciv, però després canvies d'opinió. El problema és la creació d'un libintl.h -> intl/libgettext.h que s'hauria de treure quan es reconfigura, però no ho fa. Veure aquesta pregunta que es va fer a freeciv-dev i la resposta que s'hi va donar.

El mateix missatge d'error pot aparèixer si no tens gettext al teu sistema i t'oblides de fer servir --with-included-gettext.

Com compilo Freeciv en Solaris? Edit

Solaris (2.5 i superiors) té la seva pròpia versió d'X a /usr/openwin, la seva pròpia versió de make a /usr/ccs/bin/make, i el seu propi compilador (que es compra per separat) que, si el tens, està a /opt/SUNWspro/bin. Solaris no proporciona la llibreria XPM, que cal per al client Xaw; tampoc no proporciona res del que cal per imlib, gdk i gtk, que es requereix per crear el client GTK+. (Tot això es pot compilar, però, i ara és instal·lable més fàcilment amb la distribució de GNOME Ximian.)

Per complicar-ho una mica més, molts administradors de sistema hi afegeixen les X del MIT (noramalment a /usr/X11), el make de GNU, i el compilador gcc. Si estàs de pega, el procediment

./configure && make

es confondrà amb totes aquestes versions d'eines.

No obstant, amb una mica de paciència, tot es pot compilar sense problemes. Els detalls són al document INSTALL de Freeciv.

Com compilo Freeciv amb Solaris o FreeBSD? Edit

A Solaris, FreeBSD, i alguns altres sistems, el make per defecte no és el de GNU. Per compilar has de fer:

./configure --disable-cvs-deps --disable-nls

per inhabilitar les parts específiques de GNU del Makefile, o bé fer servir directament el make de GNU.

No m'agrada la vista isomètrica! Com puc jugar amb gràfics a l'estil Civilization I? Edit

Inicia el client com

civclient --tiles trident

Ara també hi ha una opció de client al menú de Configuració Local.

Quines altres opcions de IGU tinc per al client de Freeciv? Edit

L'apariència de la teva IGU ve determinada principalment pel client Freeciv que facis servir.

El client original està basat en el joc de widgets d'Athena (Xaw), que és ràpid i està molt estès, però molts usuaris el troben passat de moda. El client també es pot compilar per fer servir Xaw3d. De vegades, les noves funcionalitats només s'implementen a la versió GTK+ 2, però la de Xaw encara té un avantatge de velocitat.

Tant els clients xaw com el gtk es compilen i executen en qualsevol de les variants de Unix que coneixem, no sols les que tenim amb suport d'instal·lació nadiu a la nostra secció de baixades.

Per l'Amiga i MS Windows, hi ha clients que fan servir el sistema de finestres nadiu en comptes d'X11. Tots dos estan mantinguts activament i a l'arbre de Subversion principal.

Alguns detalls de l'IGU es poden configurar des del client en execució.

L'impacte més gran el fa el joc de caselles que es faci servir per mostrar el terreny, les ciutats, les unitats, etc. Es pot especificar un joc de caselles quan el client s'engega.

Hi ha disponibles per separat d'altres jocs de caselles en ambdues categories a la nostra pàgina de baixades.

No distribuïm jocs de caselles del joc Civilization™ comercial per motius evidents de copyright.

Com habilito/inhabilito el suport de so? Edit

El client es pot engegar sense so proporcionant els arguments de línia de comandes: -P none

Hi ha instruccions addicionals al fitxer ./doc/README.sound de la distribució font.

Fixeu-vos si us plau que els sons estàndard s'extreuen al directori data/stdsounds amb el fitxer d'especificacions data/stdsounds.soundspec. Per una instal·lació per a tot el sistema, pots extreure'ls a /usr/local/share/freeciv, perquè existeixi el directori /usr/local/share/freeciv/data/stdsounds.

Llavors pots engegar el client de la manera següent:

civclient -P <plugin> -S stdsounds

Si això no funciona, prova:

civclient -d 3 -P <plugin> -S stdsounds

Això et donarà informació de depuració (p.ex., per què no funciona el so).

On puc trobar més informació sobre els fitxers *.ruleset? Edit

Hi ha documentació al directori ./doc/, com per exemple ./doc/README.effects. El joc de regles per defecte també té una explicació mínima sobre què volen dir tots els camps; així, per exemple default/buildings.ruleset llista el significat dels camps de buildings.ruleset. També et pot interessar la pàgina de jocs de regles en anglès a freeciv.org; ara mateix té poca cosa documentada, però pots ajudar contribuint-hi.

Com puc afegir civilitzacions addicionals al subdirectori nation/ , o afegir ciutats a la llista d'una nació existent? Edit

Veure Nacions.

Com canvio el tipus de lletra? Edit

Per al client GTK+ 1.2, pots especificar el tipus de lletra a $HOME/freeciv.rc, que es pot copiar del freeciv.rc que ve amb Freeciv i editar amb un editor de textos. Fes servir noms de tipus de lletra estàndard d'X com els que llista una eina com xfontsel.

Per exemple,

 style "help_text"
{
font = "-*-courier-medium-r-*-*-14-*-*-*-*-*-iso8859-*"
}

Per al client GTK+ 2.0, pots especificar el tipus de lletra a $HOME/.freeciv.rc-2.0, que es pot copiar del freeciv.rc-2.0 que ve amb Freeciv i editar amb un editor de textos. Fes servir noms de tipus de lletra de Pango com els que llista una eina com Gnome Font Preferences.

Per exemple,

style "help_text"
{
font_name = "Monospace 9"
}

Per al client Xaw, pots especificar el tipus de lletra amb recursos X. Els pots especificar a la línia de comandes amb l'opció -xrm, o posar-los al teu fitxer .Xdefaults o al fitxer de Freeciv app-defaults.

Per canviar el tipus de lletra principal, prova alguna cosa així:

civclient -- -xrm "Freeciv*.font: 8x16"

Si el tipus de lletra no és d'amplada fixa, alguns dels diàlegs no tindran bon aspecte, però funcionaran igualment.

Fixa't que en sistemes Microsoft Windows la variable d'entorn $HOME normalment no s'inicialitza per defecte, i ho has de fer tu. En aquest cas, crea un directori per la configuració de Freeciv en algun lloc (un bon lloc seria

C:\Documents And Settings\(el teu usuari va aquí)\Application Data

), i després obrir una finestra de comandes i escriure alguna cosa com:

set HOME="C:\Documents And Settings\(el teu usuari va aquí)\Application Data"

Si $HOME ja el fan servir d'altres aplicacions, fes servir aquest directori i ja està.

Ara copia-hi el fitxer de configuracions com dèiem a dalt (fixa't en el . al principi del nom de fitxer resultant) i canviar alguna configuració de tipus de lletra (p.ex., canvia Sans per Utopia en algun lloc) i hauries de notar l'efecte.

(Veure també aquesta discussió del fòrum.)

Estic tenint problemes amb els caràcters accentuats. Què passa? Edit

El problema és que Freeciv (el servidor o el client) senzillament no pot mostrar els caràcters correctament en la codificació de caràcter que té configurada. Això sol ser més problemàtic en clients més antics com el XAW i el GTK+ 1.2.

  • Al servidor, això se soluciona canviant la teva locale perquè faci servir UTF-8. Normalment, això es fa canviant la variable d'entorn $LANG (pots veure l'estat actual de $LANG fent echo $LANG). Per fer una explicació complerta ens allargaríem massa, però aquí tens alguns exemples comuns. Si la teva $LANG és buida, prova de posar-la a en_US.UTF-8 (per anglès americà), o ca_ES.UTF-8 (per català). Si és ru_RU.KOI8-R, prova de posar-la a ru_RU.UTF-8. Fixa't que la $LANG del servidor només afecta l'entrada i la sortida del servidor, i no tindrà cap efecte en el comportament del client.
  • Als clients XAW o GTK+ 1.2, el problema ocorre exactament per la mateixa raó que al servidor. La solució és la mateixa: canviar la teva locale a UTF-8. Si no és possible, pots millorar les coses instal·lant GNU libiconv. La llibreria iconv de GNU té un suport de transliteració millor que l'iconv que ve a la majoria de sistemes de la família Unix.
  • No hi ha solució per al client Win32 (windows nadiu). No obstant, amb transliteració no hi hauria d'haver massa problemes.
  • El client GTK+ 2 no hauria de tenir cap problema de caràcters. Si en tens, deu ser un problema de fonts.

(Nota: tot això s'aplica al Freeciv 2.0 i posteriors. Les versions més antigues de Freeciv tenien un suport molt pitjor per jocs de caràcters diferents. Val més que actualitzis el Freeciv en comptes d'intentar solucionar les coses en un Freeciv antic.)

Com puc canviar la llengua del meu client/servidor? Edit

A Linux, simplement vés al teu directori de freeciv i fes (p.ex.)

LANG=ca_ES civ

Per canviar l'idioma del servidor, vés al directori de freeciv/server i escriu

LANG=ca_ES civserver

En general, però, Linux és molt fàcil. Simplement agafa la llengua de la instal·lació automàticament, i ja està.

A Windows, t'ho has de treballar una mica més. Primer de tot, quan l'instal·les, assegura't d'instal·lar també els idiomes addicionals amb què vulguis jugar. Et sortirà una pantalla com aquesta:

Pantalla instal·lació.png

Un cop instal·lat, crea un fitxer .bat senzill (p.ex. freeciv.bat), al mateix directori on has instal·lat el paquet i llavors executa aquest fitxer en comptes de civclient.exe (no t'oblidis de canviar les dreceres perquè apuntin a aquest fitxer nou). El .bat consisteix en 3 línies:

set LANG=CA
cd "C:\Program Files\Freeciv-2.1.9-gtk2"
C:civclient.exe

El nom del directori variarà segons la versió que hagueu baixat o com l'hagueu instal·lat, però la idea és aquesta. És important el "cd" perquè si no, no trobarà l'executable. Després, només et queda crear una drecera que executi el freeciv.bat des de l'Escriptori, per exemple.

Com puc obtenir l'últim codi en desenvolupament? Edit

Es fa una foto del codi de desenvolupament cada dia; simplement treu l'última versió amb el teu navegador. Nota: aquest servei està fora de servei temporalment. --Hima 12:18, 19 Gener 2007 (UTC)

Això és codi de desenvolupament; pot contenir funcionalitats noves, errors, i incompatibilitats amb versions més antigues.

Una altra alternativa és fer servir Subversion (SVN) directament:

  1. Obté i instal·la SVN a la teva màquina Unix. En distribucions modernes, ja hi és; busca la comanda svn. Pots obtenir SVN a Tigris.
  2. Agafa els fonts:
    $ svn co svn://svn.gna.org/svn/freeciv/trunk freeciv

Quan has agafat els fonts, per actualitzar-los, fes cd cap al directori freeciv i escriu svn update.

Una altra comanda svn útil és svn diff.

Això mostra els canvis entre la versió que tens al disc i el codi actual de desenvolupament.

Veure també com contribuir al desenvolupament de Freeciv.

Si vols saber més coses de SVN, prova aquí.

Com trec el mode de pantalla completa? Edit

Al client GTK2, vés a Veure i selecciona Pantalla Completa. No tindrà efecte fins la següent vegada que engeguis el client.

Al client SDL, obre el diàleg d'Opcions, selecciona opcions de vídeo, treu la selecció del Mode a Pantalla Completa marca la caixa i llavors selecciona la resolució que vulguis. El canvi tindrà efectes immediats.

Quins són els requeriments del sistema? Edit

Memòria Edit

En una partida típica, el servidor ocupa uns 15 MB de memòria, i el client en necessita uns 25 MB. Aquests valors poden variar amb mapes o jocs de caselles més grans. Per una partida d'un jugador sol has d'executar tant el client com el servidor.

Processador Edit

Recomanem almenys un processador de 100 MHz. Si trobes que el joc va massa lent, les raons poden ser:

  • Poca memòria
    Portar pàgines de memòria al disc (memòria virtual) és molt lent. Mira els requeriments de memòria més amunt.
  • Mapa gros
    Un mapa més gros no implica necessàriament una partida més difícil ni divertida. Prova'n un de més petit.
  • Molts jugadors IA
    Igualment, tenir més jugadors no vol dir que la partida sigui més difícil ni divertida.
  • Gestor de ciutadans (AGC)
    És un agent que s'executa a la banda del client que t'ajuda a organitzar els ciutadans. No obstant, gasta molts cicles de CPU.

Pantalla gràfica Edit

El client GTK2 funciona bé en resolucions de 1024x800 o superiors. En pantalles més petites, alguns diàlegs poden no cabre a la pantalla.

Xarxa Edit

Amb un módem de 56 Kb n'hi hauria d'haver prou per jugar una partida típica de servidor públic. No obstant, molts jugadors indiquen que un ping molt llarg és un desavantatge greu. El teu ISP no ha de bloquejar els ports 5555 - 5600, perquè aquests són els ports que utilitzen els servidors públics.

Més wikis de Wikia.

Wiki aleatori