Dedisteuerung mit Streams, C++ und wierd
Author: ClonkJCaesar
Team: Lieutenant ColonelKanibal
Last changed: 09.10.2009 10:07
Completion: Alpha (playable)
Date of publication: Sanktnimmerleinstag
User niveau: Excellent
Translate to english
crctrllogo.png
Since CServ, the only running instance of crctrl is only available in german, there will be no english description for a while...
So sieht 's aus:
CServSceen.jpg
Ich denke, die meisten wissen, was CServ ist. Für wen das nicht der Fall ist, der möge sich doch auf dem Masterserver danach umsehen. Nur so viel sei hier gesagt: CServ ist ein dedizierter Clonk-Server. crctrl ist das C++-Projekt, das die Steuerung von CServ übernimmt, der Name steht für Clonk Rage Control. Das Ziel ist eindeutig zweideutig, auf jeden Fall soll das ganze eine bequeme Möglichkeit bieten, den Dedi selbst zu steuern, aber auch Spielern verfügbar zu machen.

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 ".

 

Und beim Code lesen immer schön drann denken, crctrl steht auf der rechten Seite:
wtfm.jpg
06.12.2009 16:02, Clonkpascalstuecker 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, EnsignBurny voted +, Influence 1
Einfach genial.
10.07.2009 14:38, MajorCarli 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, ClonkIcewing 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, LieutenantPlüschtroll voted +, Influence 1
Siehe Henry.
18.06.2009 08:22, Clonkhenry4k voted +, Influence 1
Holy shit!
C++ 4 Worlddomination!
17.06.2009 18:31, ClonkArmin_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, MajorPitri voted +, Influence 1
Meine Meinung:
Freufreufreu!
16.06.2009 20:27, LieutenantAtomclonk voted +, Influence 1
Omg, ist das toll!
16.06.2009 15:25, LieutenantEddy 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.



Showing 1-10 comments out of 19

19.06.2012 18:14 from Lieutenant ColonelKanibal  

18.06.2012 23:20 from ClonkUltrawipf  
gibt es den source noch irgendwo?
würde crctrl gerne noch eine chance geben :)

13.06.2011 01:58 from Lieutenant ColonelKanibal  
Doch, ist online!

13.06.2010 01:20 from EnsignBalu  
So, der Server ist nicht mehr online und hier tut sich auch nichts mehr?
Bitte nicht!

30.01.2010 00:28 from ClonkJCaesar  
Wie's aussieht setzte ich selbst jetzt wieder auf mein trunk. Mal sehen wie lange noch.

06.12.2009 16:50 from ClonkJCaesar  
Windowsport nimmt jetzt Formen an.

10.10.2009 14:05 from LieutenantAtomclonk  
Und... was gibts neues? :o

09.07.2009 19:34 from Lieutenant ColonelKanibal  
Nichts. *hrhr, SIRC pwn0rZ 4+4MA wItH rOUndH0u$E-kICK*

21.06.2009 08:41 from CaptainZappus  
mh, was genau brauchst du denn?

19.06.2009 21:33 from ClonkJCaesar  
Zappr, gib, bzw, machmal!11