Projekt Rundenbasiertes Aufbaustrategiespiel

Aus Informatik
Wechseln zu: Navigation, Suche

Aufgabenstellung

Es soll ein rundenbasiertes Aufbaustrategiespiel entworfen werden, welches durch eine Datenbank verwaltet wird. Ein Spieler kann auf einer Weltkarte Städte bauen. In diesen können Gebäude gebaut werden. Diese produzieren Rohstoffe oder dienen zum Rekrutieren von Einheiten, mit denen der Spieler Krieg gegen seine Mitspieler führen kann. Rohstoffe dienen zum Errichten von Städten und Gebäuden und zum Ausbilden von Personen zu Soldaten oder Arbeitern.

Das Spiel

Idee/Ideenentwicklung/Entwicklung

Idee war es ein rundenbasiertes Aufbaustrategiespiel ähnlich wie Civilization oder andere zu kreieren.

Dabei soll es natürlich möglich sein Städte zu errichten und in diesen Gebäude zu bauen, die sich grundsätzlich in ihrer Funktion unterscheiden sollen und nur gebaut werden können, wenn genügend Rohstoffe (z.B. Holz, Geld) vorhanden sind.

Die Unterscheidung soll in Produktions-, Wohn- und Sozialgebäude erfolgen, wobei erstere für die Herstellung der Rohstoffe zuständig sind, zweitere zum Beinhalten von Personen und letztere wie z.B. Kirchen, Brunnen etc. sind nötig, um die Einwohner zufriedenzustellen.

Personen wiederrum stellen eine Basis für jede Stadt dar, denn nur wenn sie bestimmte Berufe erlernen, können Produktionsgebäude auch Rohstoffe produzieren. Außerdem können sie zu Truppen ausgebildet werden

Soweit das Grundkonzept. Später entwickelten wir das insofern weiter, dass man für das Bauen bzw. Upgraden des Gebäudes eine bestimmte Stadtstufe braucht, die mit der Anzahl der Einwohner steigt. Außerdem soll die Beliebtheit des Herrschers in der Stadt Auswirkungen haben (s.u.). Ebenso eine Erweiterung ist, dass bei Produktionsgebäuden teilweise eine Ressource benötigt wird, um dieses zu bauen (z.B. Wasser bei einer Fischerhütte), d.h. es muss ein Feld in der Nähe geben, dass die Eigenschaft Wasser besitzt, damit das Gebäude gebaut werden kann. Ähnlich verhält es sich mit der Vorteilsressource, die die Produktivität eines Gebäudes verdoppelt, wenn es sie in der Umgebung gibt.

Nachdem das generelle Konzept in Form eines ERs stand, machten wir uns erstmal an die Umsetzung einfacher Dinge, wie z.B. die Home-Seite, das Eingeben der Spielernamen etc..

Der nächste schwierige Schritt war dann die graphische Umsetzung, die zumindest ein wenig vorhanden sein sollte. Da wir verschiedene Karten brauchen (mit Raster, ohne Raster, mit Bauplätzen, Städen etc.s. hier), wäre es wiederrum umständlich gewesen verschiedene Bilder zu verwenden. Daher ist unsere Karte auch eine php-Datei, die über Sessions läuft und z.B. je nach Session-Einstellung anders "aussieht". Dabei unterteilten wir die Karte in 17 gleichgroße Felder in der Breite und 20 in der Höhe, die dann als Raster auch angezeigt werden. Damit wir gut mit den Feldern umgehen können, mussten wir alle Felder einzeln definieren. Zur Php-Karte:

Ein Beispiel:

 	 if ($_SESSION['raster']==0){
 		//Raster zeichnen
 		while ($y<=700){
 			imageline($img,0,$y,600,$y,$black);
 			$y=$y+35;
 		}
 		while ($x<=600){
 	 		imageline($img,$x,0,$x,700,$black);
 			$x=$x+35;
 		}
 	}
 	//Bauplätze anzeigen
 	if ($_SESSION['raster']==0){
 		$sql = "SELECT posX, posY FROM feld WHERE bauplatz=1";
 		$query = mysql_query($sql);
 		while ($get=mysql_fetch_array($query)) {
 			imagerectangle ($img, (($get['posX'])*35-35), (($get['posY'])*35-35), (($get['posX'])*35),   
                                        (($get['posY'])*35), $red);
 		};
	}

So werden hier wenn das Raster an ist ($_SESSION['raster']==0) ein Raster gezeichnet und die rot umrandeten Bauplätze ausgegeben.

Ähnlich ist es bei den Städten, wobei hier noch unterschieden wird (durch einen Selectbefehl), welchem Spieler das Feld bzw die Stadt gehört und dann jeweils ein anderes Bild erzeugt wird. Übrigens danke an Elisabeth für die tolle Karte ;).

Nach dem, bzw schon teilweise bevor die Karte komplett einsatzfähig war, haben wir uns dann, um die Gebäude und Personen gekümmert.

Zunächst kümmerten wir uns deshalb um das Erstellen von Gebäuden generell ohne Beachtung jeglicher Rohstoffe oder sonstiges, um das ganze erst einmal zu vereinfachen. Dann nach und nach kamen auch die Bedingungen, wie die benötigte Anzahl Rohstoffe oder ähnliches hinzu, was auch unser ER teilweise noch änderte. Außerdem wurde die Seite, die alle Erstellungen, Upgrades,Loeschungen von Gebäuden und Personen abfing, sehr komplex ebenso wie die generellen Abfragen und auch mussten teilweise bis zu 3 Actions mitgegeben werden, damit es funktionierte. Beispiel für eine komplexe if-Bedingung (Abfrage ob ein Upgrade eines Gebäudes durchgeführt werden kann):

 if(($_GET['action3'])&&($_GET['action3']=='upgrade')&& ($getrohstoffe['anzGeld']>=$getbenrohstoffe['kostenG']) &&  
  ($getrohstoffe['anzHolz']>=$getbenrohstoffe['kostenH'])&&($getstadtstufe['stadtStufe']>=$getbenrohstoffe['bss']))

Dem voraus gingen noch einige Select-Befehle, was erahnen lässt, wie unübersichtlich und groß die Seite zu Ende hin wurde. Abgefragt werden hier eigentlich nur, ob die Action3 Upgrade ist, und man mehr Rohstoffe hat als benötigt werden(Holz und Gold), sowie ob die Stadtstufe ausreichend ist.

Jetzt könnte man hier noch viele Befele und Algorithmen zur Berechnung von irgendwelchen Dingen vorstellen, die wir eingebaut haben, aber das würde wahrscheinlich den Rahmen sprengen, da das Projekt wirklich komplex wurde mit der Zeit und wie schon erwähnt auch ziemlich unübersichtlich.

Ebenso sind noch viele unserer angestrebten Ziele (z.B. Militär) nicht verwirklicht, was aber nicht heißen soll, dass wir das Projekt einfach nach der Abgabe aufgeben werden. Sondern wir werden weiter daran arbeiten und es vielleicht sogar zu Ende bringen.

Ablauf einer Runde

Was kann alles in einer Runde passieren?

✓=funktioniert einwandfrei

X=funktioniert noch gar nicht

/=funktioniert, aber noch nicht richtig


1.Rohstoffe WERDEN abgebaut (✓)

2.Ein zufälliges Ereignis KANN geschehen (X)

3.Eine neue Stadt KANN gebaut werden (je nach vorhandenen Rohstoffen) (/) (Anmerkung: Noch in Planung)

4.In einer Stadt KÖNNEN Häuser gebaut werden (je nach vorhanden Rohstoffen) (✓)

5.Gebäude KÖNNEN ausgebaut werden (✓)

6.Personen KÖNNEN Berufe erlernen (je nach Rohstoffen(genauer gesagt Vermoegen)) (✓)

7.Kaufmänner KÖNNEN auf den Weg geschickt werden (X)

8.Einheiten KÖNNEN ausgebildet werden (x)

9.Einheiten KÖNNEN verschoben werden (x)

10.Es KANN gekämpft werden (x)

11. Ausgebildete Personen KÖNNEN in bestimmte Gebäude eingestellt/entlassen werden (✓)

12. Gebäude KÖNNEN gelöscht werden(dabei wird die Hälfte der Rohstoffe, die zum Bau nötig waren, zurück erstattet) (✓)

Noch in Planung

1. Beliebtheit soll sich aus unterschiedlichen Punkten berechnen (Anzahl der Sozialgebäude etc.)

2. Beliebtheit soll Auswirkungen auf Steuereinnahmen oder ähnliches haben.

3. Kaufmänner sollen funktionieren (Städte nur mit Kaufmännern baubar, Handel mit anderen Städten, ...)

4. Einheiten sollen erstellt werden können, mit denen man gegen andere kämpfen kann unter Beachtung von Positions- und Einheitenvorteilen unter einander, d.h. dass Lanzenträger gegen Reiter effektiv sind o.ä.

5. Obdachlose sollen Auswirkungen auf das Spiel haben. (Obdachlose entstehen, wenn Wohngebäude gelöscht werden oder ähnliches)

6. Zufällige Ereignisse sollen geschehen können, die Einfluss nehmen auf Beliebtheit, Nahrung oder ähnliches. Beispiele wären:

 1) Räuber überfallen die Stadt. Ist eine Einheit zur Verteidigung vorhanden passiert nichts, ansonsten werden 50 Holz gestohlen.
 2) Der Papst ist tot. Ihr Volk ist traurig und ihre Beliebtheit/Produktivität sinkt.

7. Städte sollen (mit Ausnahme der Ersten) nicht einfach so gebaut werden können, sondern nur durch das Schicken eines Kaufmanns mit genügend Rohstoffen an einen Bauplatz errichtet werden können.

8. Mehr Gebäude/Berufe etc.

9. Gutes ausbalanciertes Gameplay, d.h. nicht unschaffbar aber trotzdem anspruchsvoll, was im Moment noch nicht gegeben ist.

10. Spielende, d.h. wenn alle Städte eines Spielers zerstört sind oder ähnliches

11. Städte sollen zerstört werden können, z.B. wenn die Beliebtheit zu stark gesunken ist.

12. Gebäude sollten automatisch über einige Namen bzw. eine durchgängige Nummerierung verfügen, die standardmäßig als Name angezeigt wird, damit Spieler sich nicht immer neue Namen einfallen lassen bzw. Gebäude ohne Namen erzeugt werden.

13. Das Spiel muss spannender und fesselnder werden!!

Datenbank

Geschäftsregeln

Ein Spieler spielt auf genau einer Karte, aber es können mehrere Spieler auf einer Karte spielen, aber es muss mindestens einer sein.

Eine Karte besteht aus mehreren Feldern oder gar keinem Feld und ein Feld befindet sich auf genau einer Karte.

Außerdem kann maximal eine bzw. keine Stadt auf genau einem Feld stehen.

Ein zufälliges Ereignis kann in einer oder auch mehreren Städten geschehen und ebenso können mehrere Ereignisse in einer Stadt passieren, müssen aber auch nicht.

Eine Stadt hat außerdem keine oder mehrere Gebäude, die alle aber in genau einer Stadt stehen.

Außerdem befindet sich ein Gebäude in genau einer Ausbaustufe. Eine Ausbaustufe wird entweder von keinem oder mehreren Gebäuden benutzt.

In einem Gebäude wohnen keine oder mehrere Personen, die alle in keinem oder genau einem Gebäude wohnen.

Ebenso arbeiten in einem Gebäude keine oder mehrere Personen, die alle entweder in keinem oder in einem Gebäude arbeiten.

Eine Person ist entweder keine oder genau eine Einheit und eine Einheit ist genau eine Person.

Ebenso ist eine Person entweder kein oder ein Kaufmann und ein Kaufmann ist genau eine Person.

Ein Kaufmann und eine Einheit gehören genau einem Spieler und ein Spieler kann keine oder mehrere Einheiten bzw. Kaufmänner besitzen.

ERM

ER

RM

spieler (spielerNr, karteNr ,vermoegen, name)

karte (karteNr, karte)

feld (feldNr, karteNr, posX ,posY, eigenschaft, passierbar, bauplatz)

stadt (stadtNr, spielerNr, feldNr, beliebtheit, anzNahrung, name, groesse, anzGeld, anzHolz, stadtStufe)

zufaelligesEreignis (bezeichnung, satz)

passiert in (bezeichnung, stadtNr)

gebaeude (gebaeudeNr, stadtNr, typ, stufe,art, name, anzahlPersonen, laufendeKosten, produktivitaet, typ)

ausbaustufe (stufe, typ, maxStufe,kostenG, kostenH, vorteilRessource, benoetigteRessource, maxAnzPersonen,benoetigteStadtStufe)

person (personNr, steuerklasse, beruf)

wohnt in (gebaeudeNr, personNr)

arbeitet in (gebaeudeNr, personNr)

einheit (einheitNr, spielerNr,personNr, typ, zielposX, zielposY, posX, posY, erfahrungsstufe, ruestungsklasse, angriffsstaerke, einheitenvorteil, positionsvorteil)

kaufmann(kaufmannNr, spielerNr,personNr, zielposX, zielposY, posX, posY, anzGeld, anzHolz, anzNahrung)

SQL-Datei

Erstellen der Datenbank

CREATE DATABASE IF NOT EXISTS spiel;

Erstellen der Tabellen

Karte

CREATE TABLE IF NOT EXISTS spiel.karte (
	karteNr INTEGER NOT NULL AUTO_INCREMENT,
	karte VARCHAR(42) NOT NULL,
	PRIMARY KEY(karteNr)
)ENGINE=INNODB;

Spieler

CREATE TABLE IF NOT EXISTS spiel.spieler (
	spielerNr INTEGER NOT NULL AUTO_INCREMENT,
	vermoegen INTEGER NOT NULL,
	name 	VARCHAR(20) NOT NULL,
	karteNr INTEGER NOT NULL,
	FOREIGN KEY (karteNr) REFERENCES karte(karteNr) ON UPDATE RESTRICT ON DELETE RESTRICT,
	PRIMARY KEY(spielerNr)
) ENGINE = InnoDB;

Feld

CREATE TABLE IF NOT EXISTS spiel.feld (
       feldNr INTEGER NOT NULL AUTO_INCREMENT,
	posX INTEGER NOT NULL,
	posY INTEGER NOT NULL,
	karteNr INTEGER NOT NULL,
	eigenschaft VARCHAR(20) NOT NULL,
	passierbar BOOLEAN NOT NULL,
	bauplatz BOOLEAN NOT NULL,
	FOREIGN KEY (karteNr) REFERENCES karte(karteNr) ON UPDATE CASCADE ON DELETE CASCADE,
	PRIMARY KEY(feldNr)
 )ENGINE=INNODB;

Stadt

CREATE TABLE IF NOT EXISTS spiel.stadt (
	stadtNr INTEGER NOT NULL AUTO_INCREMENT,
	steuern INTEGER NOT NULL,
	beliebtheit INTEGER,
	anzNahrung INTEGER NOT NULL,
	name VARCHAR(20) NOT NULL,
	groesse INTEGER NOT NULL,
	anzGeld INTEGER NOT NULL,
	anzHolz INTEGER NOT NULL,
	spielerNr INTEGER,
	feldNr INTEGER NOT NULL,
	FOREIGN KEY (feldNr) REFERENCES feld(feldNr) ON UPDATE RESTRICT ON DELETE RESTRICT,
	FOREIGN KEY (spielerNr) REFERENCES spieler(spielerNr) ON UPDATE CASCADE ON DELETE SET NULL,
	PRIMARY KEY(stadtNr)
)ENGINE=INNODB;

zufälliges Ereignis

CREATE TABLE IF NOT EXISTS spiel.zufaelligesEreignis (
	name VARCHAR(20) NOT NULL,
	satz TEXT NOT NULL,
	PRIMARY KEY(name)
)ENGINE=INNODB;

passiert in

CREATE TABLE IF NOT EXISTS spiel.passiertin(
	name VARCHAR(20),
	stadtNr INTEGER,
	FOREIGN KEY (stadtNr) REFERENCES stadt(stadtNr) ON UPDATE RESTRICT ON DELETE RESTRICT,
	FOREIGN KEY (name) REFERENCES zufaelligesEreignis(name) ON UPDATE RESTRICT,
	PRIMARY KEY(name,stadtNr)
)ENGINE=INNODB;

Ausbaustufe

CREATE TABLE IF NOT EXISTS spiel.ausbaustufe(
	stufe INTEGER NOT NULL,
	typ VARCHAR(20) NOT NULL,
	maxStufe INTEGER NOT NULL,
	kostenG INTEGER NOT NULL,
	kostenH INTEGER NOT NULL,
	PRIMARY KEY(stufe, typ)
)ENGINE=INNODB;

Gebäude

CREATE TABLE IF NOT EXISTS spiel.gebaeude(
	gebaeudeNr INTEGER NOT NULL AUTO_INCREMENT,
	vorteilRessource VARCHAR (20),
	benoetigteRessource VARCHAR(20),
	name VARCHAR(20) NOT NULL,
	anzahlPersonen INTEGER NOT NULL,
	laufendeKosten INTEGER,
	produktivitaet INTEGER,
	typ VARCHAR (20) NOT NULL,
	maxAnzPersonen INTEGER NOT NULL,
	stadtNr INTEGER NOT NULL,
	stufe INTEGER NOT NULL,
	art VARCHAR(20) NOT NULL,
	FOREIGN KEY (stadtNr) REFERENCES stadt(stadtNr) ON UPDATE RESTRICT ON DELETE RESTRICT,
	FOREIGN KEY (stufe,typ) REFERENCES ausbaustufe(stufe,typ) ON UPDATE CASCADE ON DELETE RESTRICT,
	PRIMARY KEY (gebaeudeNr)
)ENGINE=INNODB;

Person

CREATE TABLE IF NOT EXISTS spiel.person (
    personNr INTEGER NOT NULL AUTO_INCREMENT,
	steuerklasse INTEGER NOT NULL,
	name VARCHAR(20) NOT NULL,
	beruf VARCHAR(20),
	PRIMARY KEY(personNr)
)ENGINE=INNODB;

wohnt in

CREATE TABLE IF NOT EXISTS spiel.wohntin(
	gebaeudeNr INTEGER,
	personNr INTEGER,
	FOREIGN KEY (gebaeudeNr) REFERENCES gebaeude(gebaeudeNr) ON UPDATE CASCADE ON DELETE RESTRICT,
	FOREIGN KEY (personNr) REFERENCES person(personNr) ON UPDATE RESTRICT ON DELETE RESTRICT,
	PRIMARY KEY(personNr, gebaeudeNr)
)ENGINE=INNODB;

arbeitet in

CREATE TABLE IF NOT EXISTS spiel.arbeitetin (
	gebaeudeNr INTEGER,
	personNr INTEGER,
	FOREIGN KEY (gebaeudeNr) REFERENCES gebaeude(gebaeudeNr) ON UPDATE CASCADE ON DELETE RESTRICT,
	FOREIGN KEY (personNr) REFERENCES person(personNr) ON UPDATE RESTRICT ON DELETE RESTRICT,
	PRIMARY KEY(personNr, gebaeudeNr)
)ENGINE=INNODB;

Einheit

CREATE TABLE IF NOT EXISTS spiel.einheit (
	einheitNr INTEGER NOT NULL AUTO_INCREMENT,
	typ VARCHAR(20) NOT NULL,
	zielposX INTEGER,
	zielposY INTEGER,
	posX INTEGER NOT NULL,
	posY INTEGER NOT NULL,
	erfahrungsstufe INTEGER NOT NULL,
	ruestungsklasse INTEGER NOT NULL,
	angriffsstaerke INTEGER NOT NULL,
	einheitenvorteil VARCHAR(20),
	positionsvorteil VARCHAR(20),
	spielerNr INTEGER NOT NULL,
	FOREIGN KEY (spielerNr) REFERENCES spieler(spielerNr) ON UPDATE CASCADE ON DELETE RESTRICT,
	PRIMARY KEY(einheitNr)
)ENGINE=INNODB;

ist

CREATE TABLE IF NOT EXISTS spiel.ist (
	einheitNr INTEGER,
	personNr INTEGER,
	FOREIGN KEY (einheitNr) REFERENCES einheit(einheitNr) ON UPDATE CASCADE ON DELETE RESTRICT,
 	FOREIGN KEY (personNr) REFERENCES person(personNr) ON UPDATE CASCADE ON DELETE RESTRICT,
	PRIMARY KEY(personNr, einheitNr)
)ENGINE=INNODB;

Einfügen der festen Daten

Karte

INSERT INTO spiel.karte (karte) VALUES
	('images/map1.jpg');

Ausbaustufe

 INSERT INTO spiel.ausbaustufe (stufe, typ, maxStufe, kostenG, kostenH, maxAnzPersonen, vorteilRessource, 
                                   benoetigteRessource, benoetigteStadtStufe) VALUES
 (0, 'Holzfaellerhuette', 4, 2, 0, 3, 'wald', NULL,1),
 (1, 'Holzfaellerhuette', 4, 3, 2, 4, 'wald', NULL,2),
 (2, 'Holzfaellerhuette', 4, 3, 3, 5, 'wald', NULL,3),
 (3, 'Holzfaellerhuette', 4, 5, 7, 7, 'wald', NULL,4),
 (4, 'Holzfaellerhuette', 4, 10, 9, 10, 'wald', NULL,5),
 (0, 'Fischerhuette', 1, 3, 2, 3, NULL, 'wasser',1),
 (1, 'Fischerhuette', 1, 4, 2, 4, NULL, 'wasser',2),
 (2, 'Fischerhuette', 1, 6, 5, 5, NULL, 'wasser',3),
 (3, 'Fischerhuette', 1, 7, 8, 7, NULL, 'wasser',5),
 (4, 'Fischerhuette', 1, 12, 10, 10, NULL, 'wasser',6),
 (0, 'Farm', 1, 2, 4, 3, 'gras', NULL,1),
 (1, 'Farm', 1, 4, 2, 4, 'gras', NULL,3),
 (2, 'Farm', 1, 3, 5, 5, 'gras', NULL,4),
 (3, 'Farm', 1, 5, 5, 6, 'gras', NULL,5),
 (4, 'Farm', 1, 8, 8, 10, 'gras', NULL,6),
 (0, 'kleines Wohnhaus', 2, 1, 2, 15, NULL, NULL,1),
 (1, 'mittleres Wohnhaus', 2, 10, 21, 30, NULL, NULL,3),
 (2, 'grosses Wohnhaus', 2, 30, 25, 50, NULL, NULL,4),
 (0, 'Kirche', 2, 2, 2, 1, NULL, NULL,2),
 (1, 'Kirche', 2, 3, 3, 2, NULL, NULL,3),
 (2, 'Kirche', 2, 4, 4, 3, NULL, NULL,4),
 (3, 'Kirche', 2, 5, 5, 3, NULL, NULL,5),
 (4, 'Kirche', 2, 6, 6, 4, NULL, NULL,6),
 (0, 'Brunnen', 0, 2, 3, 0, NULL, NULL,3);

Feld

 INSERT INTO spiel.feld (posX, posY, karteNr, eigenschaft, passierbar, bauplatz) VALUES
 (1, 1, 1, 'gras', true, false),
 (1, 2, 1, 'furt', true, false),
 (1, 3, 1, 'furt', true, false),
 (1, 4, 1, 'wald', true, false),
 (1, 5, 1, 'wald', true, false),
 (1, 6, 1, 'wasser', false, false),
 (1, 7, 1, 'wald', true, false), 
 (1, 8, 1, 'gras', true, false),
 (1, 9, 1, 'gras', true, false),
 (1, 10, 1, 'gras', true, false),
 (1, 11, 1, 'gras', true, false),
 (1, 12, 1, 'gras', true, false),
 (1, 13, 1, 'gras', true, false),
 (1, 14, 1, 'wald', true, false),
 (1, 15, 1, 'wald', true, false),
 (1, 16, 1, 'wald', true, false),
 (1, 17, 1, 'wald', true, false),
 (1, 18, 1, 'wald', true, false),
 (1, 19, 1, 'wald', true, false),
 (1, 20, 1, 'wald', true, false),
 
 ...
 
 Insgesamt 340 Felder.

Website/Umsetzung

Probleme

Variablen & Variablenweitergabe

Bei einem Spiel in der Weise, wie wir es erdachten, benötigt man viele Variablen, welche man auf unterschiedlichen Seiten benötigt. Natürlich könnte man diese Variablen über jede Seite mitgeben. Jedoch wäre dies sehr unübersichtlich und nicht zweckmäßig.

Gelöst haben wir dieses Problem durch die Verwendung von globalen Variablen, die man dann von allen Seiten des Projektes aufrufen kann. Diese Variablen werden über die Session verwaltet. Näheres dazu hier.

Tutorial

Erste Schritte

 Herzlich willkommen zu Bingfajia.
 
 Dieses Spiel bietet Ihnen bombastische rundenbasierte Strategie. Beweisen Sie Ihre Fähigkeit in einer rasanten Multiplayerpartie!
 
 Mit wie vielen Spielern wollen Sie spielen?

Wenn sie diese Meldung sehen, dann befinden sie sich gerade auf der Startseite von Bingfajia.

Wählen sie hier ihren Spielmodus aus.

Es besteht die Möglichkeit zwischen Ein- Zwei- und Dreispielermodus zu wählen.

Nachdem das passiert ist, kommen sie auf eine andere Seite. Hier geben sie die Namen der Spieler ein und bestätigen dann indem sie auf Start drücken.

Jetzt wird es endlich interessant. Sie dürften jetzt eine Karte sehen, die der auf dem Screenshot ähnelt. Links wird angezeigt, welcher Spieler am Zug ist. Jetzt sollte dieser Spieler sich einen Bauplatz auswählen. Bauplätze werden rot umrandet angezeigt.

Dabei sollten sie beachten, dass es bestimmte benötigte und Vorteilsressourcen gibt. Wollen sie also eine Fischerhütte bauen, suchen sie sich eine Stadt in der Nähe von Wasser aus. Nach einem Klick auf ein Feld, das rot umrandet ist, gelangen sie auf eine neue Seite. Hier können sie den Namen der Stadt eingeben. Seien sie also ein wenig kreativ ;).

Außerdem können sie, wenn sie es sich doch anders überlegen, links auf Abbrechen drücken, um zur Karte zurückzukehren.

Nachdem alle Spieler eine Stadt gewählt haben, gelangen sie auf die Karte. Hier beginnt das Spiel erst richtig.

Die Karte

Jetzt sehen sie vor sich die Karte. Auf ihr befinden sich jetzt schon eine Stadt von ihnen und eine von ihren Mitspielern.

Links sehen sie welcher Spieler an der Reihe ist. Außerdem können sie links das Raster ausschalten, die Runde beenden, und ihre Städte anschauen.

Die Runde sollten sie noch nicht beenden, denn momentan haben sie noch nichts getan.

Klicken sie jetzt auf "Städte" links.

Jetzt sehen sie alle wichtigen Daten all ihrer Städte. Das dürfte momentan nur eine Stadt sein.

Die Städte

Stadtübersicht

Kommen wir zu den einzelnen Attributen der Städte:

Stadtstufe

Die Stadtstufe ist eine Größe, die am Anfang 1 ist. Von ihr ist abhängig welche Gebäude sie bauen können, bzw. ob sie ein Gebäude upgraden können. Sie steigt mit der Anzahl der Einwohner. Doch dazu gleich mehr oder hier

Beispiel: Eine Kirche kann erst auf Stadtstufe 2 gebaut werden. Um Stadtstufe 2 zu erreichen, muss man mindestens 15 Einwohner in seiner Stadt haben.

Status des Spielers in der Stadt

Der Status gibt an, wie gut der Spieler ist. Er ändert sich mit steigender Stadtstufe.

Maximale Anzahl Gebäude

Die maximale Anzahl Gebäude gibt logischerweise an, wie viele Gebäude höchstens in der Stadt gebaut werden können. Im Normalfall liegt sie zwischen 30 und 50 Gebäuden.

Einwohner

Das Attribut Einwohner gibt an wie viele Einwohner gerade in der Stadt wohnen. Mit ihnen erhöht sich die Stadtstufe.

Ist ersteinmal ein Wohnhaus gebaut, ziehen jede Runde Menschen in ihre Stadt ein und schon bald kann sie zu einer großen Metropole erblühen. Außerdem werden Einwohner benötigt, um in Produktionsgebäuden zu arbeiten, doch dazu später mehr.

Beliebtheit

Momentan noch nicht fertig... Zu späteren Plänen siehe hier

Nahrungsvorrat/Holzvorrat/Stadtvermoegen

Diese drei Attribute sind momentan die einzigen Rohstoffe im Spiel.

Nahrung wird nach jeder Runde von Einwohnern verbraucht und kann auch hergestellt werden.

Holz und Geld werden gebraucht, um die Gebäude in der Stadt zu bauen.

Geld wird außerdem benötigt, um Personen auszubilden. Manche Gebäude haben laufende Kosten (dazu später mehr), die Geld verbrauchen. Zurückgewinnen kann man Gold durch Steuern. Doch auch dazu später mehr.

Holz kann in Holzfällerhütten gewonnen werden.

Sonstiges

Ansonsten kann man auf der momentanen Stadtübersichtseite "zurück" zur Karte gehen oder die Runde beenden

Um weiterzukommen, klicken sie jetzt auf den Namen ihrer Stadt, der sie weiterführt zur Übersicht der Gebäude und Personen.

Die Gebäude und Personen

Hier sehen sie als erstes noch einmal oben die Werte ihrer Stadt und rechts unten ihre Rohstoffe, sowie ihre Stadtstufe. Außerdem können sie im Menü die Gebäudekostenübersicht aufrufen, um nachzuschauen wie viel bestimmte Upgrades kosten oder ähnliches. Ebenso können sie zurück zur Karte wechseln und die Runde beenden, bzw. zum vorherigen Bildschirm zurückgehen.

Unter "Alle Gebäude in einer Stadt" sehen sie, welche Gebäude sich in ihrer Stadt befinden, untergliedert in Produktions-, Wohn- und Sozialgebäude. Momentan dürften sich dort noch keine befinden.


Zum Erstellen eines Gebäudes klicken sie auf den "Gebäude erstellen"-Button unter der jeweiligen Tabelle. Sie können nun dem Gebäude einen Namen geben und den Typ auswählen. Wenn sie damit fertig sind, klicken sie auf "Gebäude erstellen". Entweder wird das Gebäude nun erstellt und in der Tabelle angezeigt, oder es wird ihnen am Anfang der Seite eine Fehlermeldung angezeigt. Wenn es nicht erstellt wird, kann das an mehreren Dingen liegen:

1) Es sind zu wenig Rohstoffe vorhanden.

2) Das Gebäude kann in der Stadt nicht gebaut werden, weil die erforderliche Ressource nicht vorhanden ist. So kann z.B. eine Fischerhütte nur am Wasser errichtet werden, also wenn um die Stadt herum Wasser ist.

3) Die Stadtstufe ist zu niedrig. In dem Fall bleibt ihnen nichts anderes übrig, als auf das Gebäude erstmal zu verzichten und es später wieder zu bauen, wenn sie mehr Einwohner haben. Welche Stadtstufe sie für welches Gebäude benötigen, können sie bei den Gebäudekosteninformationen einsehen.


Ist ihr Gebäude nun erstellt, dann sollte es in der Tabelle angezeigt werden. Je nachdem von welcher Art es ist, werden unterschiedliche Eigenschaften angezeigt. Hier ein Überblick über alle:

Name: Der eingegebene Name des Gebäudes.

Stufe: Die Stufe des Gebäudes

Arbeitende Personen: Die Anzahl der im Gebäude arbeitenden Personen

Produktivität: Gibt an, wieviel des Rohstoffes in einer Runde hergestellt wird. Die Produktivität hängt ab von der Anzahl der arbeitenden Personen und von der Stufe des Gebäudes.

Typ: Der Typ des Gebäudes

laufende Kosten: Soviel Geld müssen sie für dieses Gebäude pro Runde bezahlen.

Größe: Entspricht der Stufe bei anderen Gebäude.

Bewohner: Anzahl der Leute in einem Wohngebäude

Max. Bewohner: Maximale Anzahl Bewohner in einem Gebäude

Außerdem befinden sich ein Upgrade und ein Löschen- Button in der Tabelle, sowie eine Spalte Personen einstellen.

Upgrade

Hier können sie die Stufe des Gebäudes erhöhen. Dies kostet natürlich Rohstoffe (Nachzuschauen bei den Gebäudekosten). Erhöht sich die Stufe, dann können mehr Bewohner in dem Gebäude wohnen, bzw. arbeiten, und es erhöht sich außerdem die Produktivität sowie die laufenden Kosten.

Löschen

Hier können sie ihr Gebäude löschen. Dabei wird die Hälfte der Rohstoffe zurückerstattet, die für die Errichtung erforderlich waren.

Personen einstellen

Hier können sie entweder Personen in das Gebäude einstellen, indem sie auf "+" klicken oder aus dem Gebäude entlassen, indem sie auf "-" klicken.


Ganz unten können sie eine Tabelle sehen, in der die Personen angezeigt werden. Momentan sollten sie noch keine Personen haben.

Um Personen zu bekommen, erstellen sie ein Kleines Wohnhaus. Wenn sie ein Wohnhaus errichten, ziehen sofort Leute in ihre Stadt. Außerdem ziehen jetzt jede Runde unausgebildete Personen in ihre Stadt. Die Anzahl der Personen hängt dabei, von der Größe ihrer Häuser ab und der Menge der Häuser.

Nachdem sie das kleine Wohnhaus erstellt haben, sollten unten nun 2 unausgebildete Personen angezeigt werden.

Doch um sie beispielsweise in eine Holzfällerhütte einstellen zu können, müssen die Personen einen Beruf erlernen. Genauer gesagt den Beruf des Holzfällers.

Gehen sie auf "Personen ausbilden". Sie sehen jetzt die Anzahl der unausgebildeten Personen. Außerdem können sie auswählen .. .. .. ..

Screenshots