Nun, Sie brauchen ein Protokoll, einen Server und idealerweise einige Hilfsbibliotheken für die Clients.
Ich schlage vor, dass Sie in Thrift oder Protobuf für Ihre Netzwerkschnittstelle schauen. Beides wird Ihnen kostenlos eine sprachübergreifende Datenkodierung geben. Thrift Sie erhalten Stubs sowohl von Server- als auch von Client-Code; Ich bin mit Protobuf weniger vertraut, aber ich glaube, dass Sie etwas Ähnliches daraus machen.
Der Server ist etwas, das Sie ausführen, das den autoritativen Spielstatus speichert, das Spiel koordiniert und sicherstellt, dass jeder die Regeln befolgt. Sie könnten auch eine HTML5-Visualisierungsschicht direkt auf dem Server erstellen. Alternativ können Sie einen Nicht-Spieler-Client schreiben, der den Spielstatus in einer Schleife erfasst und anzeigt. Wenn Sie die Bibliotheken verwenden, die ich vorschlage, ist es egal, in welcher Sprache Sie den Server schreiben.
Sie möchten auch einen stubbed-Client mit keiner realen KI in jeder unterstützten Sprache mit plattformübergreifender bereitstellen Bauanleitungen. Es würde wissen, wie man sich mit dem Server verbindet, den Spielstatus abfragt und einige einfache Aktionen ausführt. Auf diese Weise müssten sich die Teilnehmer nicht um den Netzwerkcode kümmern und könnten sich auf das KI-Zeug konzentrieren.
Schließlich wäre eine Art von Einreichung oder Login-System erforderlich. Sie können entweder Quellcode einreichen und die KI selbst erstellen und ausführen (wodurch Sie die CPU- und Speichernutzung steuern können). Dies würde erfordern, dass Sie Ihre eigenen Tools für die Verarbeitung dieser Übermittlungen und deren Erstellung erstellen und entscheiden, welche Arten von Bibliotheken verfügbar wären, wie viele Dateien und wie groß sie eingereicht werden könnten. Sicherheit wird auch zu einem Problem, da Sie die Übergaben ausführen Code. Alternativ können Sie auch den Regel erzwingenden Spielserver verfügbar machen und Kunden eine Möglichkeit geben, Ihnen mitzuteilen, wessen Aufgabe sie sind.Das würde den Spielern mehr Freiheit geben, ungewöhnliche Lösungen auszuprobieren oder ihre eigenen Bibliotheken zu benutzen, um die Aufgabe zu erledigen, und wäre einfacher zu implementieren, könnte aber Wettbewerbern mit viel CPU und Speicher einen Vorteil verschaffen.
Werfen Sie einen Blick auf Dino Island für Facebook auf eine ähnliche konkurrierende Simulation Programmierung Puzzle nehmen.
Haben Sie keine Angst, dass am Ende eines solchen Tests die Hälfte Ihrer Kandidaten für Sony PS3 FIFA 2011 kodieren wird? :) – Osw