Dedisteuerung mit Streams, C++ und wierd
Team: Kanibal
Last changed: 09.10.2009 10:07
Completion: Alpha (playable)
Date of publication: Sanktnimmerleinstag
User niveau: Excellent
Translate to english
Richtig interessant ist dieser Eintrag eigentlich nur für Server-Besitzer, oder Leute, die sich unglaublich gern durch hässlichen C++-Code fressen.. Der Rest wird am Vorhandensein solcher Server sicher merken, dass sie da sind, mehr ist allerdings auchnicht nötig. Jeder Spieler kann bereits über die Lobby Szenarien zum Start auswählen, allerdings ist das noch stark ausbaufähig. Zur Zeit kann man sich einfach die Szenarioliste durch die eingabe von %list ausgeben lassen, und dann mit %start ein Szenario in die Startwarteliste holen. Dafür, dass Abkürzungen auch funktionieren, ist durch die Möglichkeit multipler Namen für ein Szenario gesorgt. Außerdem kann man durch Pararmeter bestimmen, wie lang die Lobby offen ist (-lobby:Sekunden), ob mit Liga gehostet wird (-liga) und welches Passwort gesetzt wird (-passwort:"foo").
Eine Verbesserung der Fairness zuliebe ist ein c.a. 20 Sekunden nach dem Start abgesetztes "/set maxplayer 1". Allerdings gibt es noch keinerlei Clientverwaltung, gegen Lagger und Spammer kann man nichts tun (außer den Admin um einen gezielten Kick oder einen eintrag in die Banliste bitten). Es wäre definitiv mehr drinn, mal sehen, wann ich dazu komme.
Die Möglichkeiten, die die iostream-Kommandos bieten, sind noch sehr begrenzt. Bisher auch nur halb implementiert ist der TCP-Query-Port, an den sich dann ein externes Webinterface hängen kann.
Das SVN-Repos befindet sich unter http://cserv.dyndns.org/code. Für den Login gibt es guest mit Passwort code. Als Stabil kann ich rev57 empfehlen. Wer etwas beitragen möchte, darf mir gern patches schicken, bei Hartnäckigkeit kann ich auch einen Account mit Schreibzugriff erstellen.
Zur Zeit arbeitet crctrl mit einer SQL-Datenbank als Konfigurationsgrundlage, außerdem verwende ich boost::regex. Folgerichtig wird man zum Kompillieren die Boost-Libraries und MySQL++. Eine Beispieldatenbank, um genau zu sein, die DB für CServ, liegt als SQL-Query bei. Bleibt noch zu erwähnen, dass crctrl für Linux gebaut ist. Die Anpassungen für Windows sind zwar fast fertig, aber enthalten noch genug Bugs um mich Monate zu beschäftigen.
Selbst ausprobieren:
Zuerst holt ihr euch das Repos, r57 war bei mir sehr stabil. Dann müsst ihr natürlich die nötigen Libraries beschaffen. Für Debian sollte es apt-get install libboost-dev libmysql++-dev mysql-server phpmyadmin tun. Wenn ihr es geschafft habt, dass euch cmake etwas ausspuckt, müsst ihr noch eine Datenbank anlegen, Standardeinstellung für Namen und Benutzer sind "crctrl", nochmal "crctrl" . Was ihr vermutlich setzen müsst, ist Settings->Path, für den Rest gibt es Standardwerte, für genaueres schaut ihr am besten die beigelegete SQL-Abfrage an.
Damit müsstet ihr eigentlich starten können. Erstmal passiert allerdings garnichts, aber keine Angst, das ist auch beabsichtigt. Wenn ihr schon Einstellungen für Szenarien gemacht habt, könnt ihr gleich mal %auto eintippen (alle Kommandos, die an crctrl gehen, verwenden das Prozentzeichen), das startet einen automatischen Host, der immerwieder Szenarien startet. Es ist auch möglich, mit Nachrichten an einzelne Spiele zu senden, dazu muss man das Spiel, bzw den zugrundeliegenden AutoHost allerdings erst auswählen, mit "%sel ".
06.12.2009 16:02, pascalstuecker voted +, Influence 1 | |
Ingame einfach toll :) und der Source läuft auch bei mir :D (Auch wenn ich dazu Linux auf ner VM brauch^^) |
25.07.2009 16:38, Burny voted +, Influence 1 | |
Einfach genial. |
10.07.2009 14:38, Carli voted +, Influence 1 | |
Ich bin begeistert. Endlich mal jemand, der meine Hostwünsche erfüllt. Nur ein paar Tipps: - man kann selbst Szenarien hochladen - das %start muss raus, sonst kann man 5mal OW spammen, das kann man auch über eine Netzschnittstelle machen, damit's sicherer wird |
19.06.2009 22:27, Icewing voted +, Influence 1 | |
Ich habe mich mit dieser Idee auch befasst und freue mich über jeden Schritt in diese Richtung. Die bisherigen Beiträge zu diesem Thema von JCaeser sprechen dafür, dass dieses Projekt sehr großes Potenzial hat, daher ein +-Vote. |
19.06.2009 13:49, Plüschtroll voted +, Influence 1 | |
Siehe Henry. |
18.06.2009 08:22, henry4k voted +, Influence 1 | |
Holy shit! C++ 4 Worlddomination! |
17.06.2009 18:31, Armin_Lc voted +, Influence 1 | |
Ich finde lustig wie sich jeder mit dem Server unterhält. Sogar "Hallo" oder beim Spielstart "Ja wünsch ich dir auch". :D Ja ne also +, weil ich selber da ja oft spiele und das sehr gut finde. |
17.06.2009 10:00, Pitri voted +, Influence 1 | |
Meine Meinung: Freufreufreu! |
16.06.2009 20:27, Atomclonk voted +, Influence 1 | |
Omg, ist das toll! |
16.06.2009 15:25, Eddy voted +, Influence 1 | |
Juhuu! Endlich ein deratiges Projekt was die bescheidenen Möglichkeiten des CR-Dedis erweitern will. Konkret ist hier zwar noch nix aufgeführt (kommt bestimmt noch), aber hoffentlich wird später dadurch auch etwas wie Kicken-bei-Lag möglich, oder eben remote-kick unso. |
guest
code
würde crctrl gerne noch eine chance geben :)
Bitte nicht!