2016-04-02 10 views
0

Ich möchte ein sehr einfaches Zwei-Spieler rundenbasiertes Multiplayer-Spiel erstellen. Die Spielmechanik lässt sich am besten als Stein-Schere-Papier beschreiben. Nach Spielbeginn wählt der Spieler seine Ausrüstung, dann beginnt das Spiel; einer greift an, der andere verteidigt, sie wechseln die Seiten, und es geht weiter, bis einer von ihnen keine PS mehr hat. Wenn der Spieler seine Aktion nicht innerhalb des Rundenlimits wählt, macht der Server einen zufälligen Zug für ihn, und wenn der Spieler aus irgendeinem Grund die Verbindung unterbricht, sollte er in der Lage sein, diesem und nur diesem Spiel beizutreten.Engine für einfache Client-Server-Zwei-Spieler rundenbasiertes Spiel mit zufälligen Match-Making und Online-Statistiken

Ich werde Client-Server-Architektur verwenden. Ich brauche einen zufälligen Matchmaking-Mechanismus, obwohl das Spielen mit Freunden Option für den Start OK wäre, wenn es bereits in der Engine implementiert ist. Online-Statistiken müssen irgendwann implementiert werden.

Ich kenne object pascal (Delphi, Lazarus) mehr oder weniger, aber absolut Null in irgendetwas Networking-bezogen, und diese Plattformen scheinen absolut unzureichend für den Server; für den Kunden erträglich, lassen aber noch viel zu wünschen übrig. Ich wurde node.js für den Server empfohlen und spielte ein wenig damit, während ich etwas Javascript lernte, aber es scheint zu kompliziert. Insgesamt bin ich im Improvisieren schlecht im Programmieren, in der Lage, komplexe Konzepte nur an gut dokumentierten Beispielen zu lernen. Grafiken und GUI-Designs sind jedoch kein Problem.

Bitte empfehlen Sie mir eine Spiele-Engine/IDE, um meine Idee mit weniger Aufwand und in einem angemessenen Zeitrahmen unter Berücksichtigung der oben genannten Anforderungen und Hintergründe zu implementieren.

+0

ich ein Fan von Object Pascal bin, ich denke, seine eine große Sprache. aber wer jemals JavaScript empfohlen hat, war richtig. Diese Art von Spiel ist leicht mit etwas JavaScript und ein wenig PHP gemacht. Ist das ein Zwei-Spieler-Spiel? Ich machte ein 3D Tic Tac Toe-Spiel in Javascript/php, wo die Spieler abwechselnd spielten und eine einfache Art der Kommunikation über das Netzwerk implementieren mussten, damit die Spieler kommunizieren konnten. Wenn Sie daran interessiert sind, diesen Weg zu gehen, kann ich Ihnen einen JavaScript-Code zur Verfügung stellen. –

+0

Vielen Dank! Es ist ein Zwei-Spieler-Spiel. Ich bin definitiv interessiert. Bitte poste die Code-Beispiele, es wird sehr geschätzt! – NCI

Antwort

0

Ich weiß nicht, wie viel JavaScript Sie wissen.

aber wenn Sie wissen, wie einfache Spiele zu schreiben und sich wohl fühlen mit JavaScript,
und alles, was Sie brauchen, ist eine Möglichkeit, mehrere Spieler in JavaScript zu behandeln dann können Sie ein kleines Stück Code verwende ich für das Netzwerkteil geschrieben.
OK lasst starten:

Um ein Spiel mit mehreren Spielern über ein Netzwerk zu machen. ist sehr einfach mit JavaScript + PHP.

Im Grunde ist das erste, was Sie brauchen, eine einfache Möglichkeit, über das Netzwerk mit den Spielern zu kommunizieren.

Ich mache es einfach, indem ich meinen Code verwenden lasse. Ich musste Code für ein HTML5 Remake von 3D Tic Tac Toe schreiben (www.dominicanvoice.com/caps3d). so können Sie einfach den Code wiederverwenden, den ich schreiben musste.

Ich schrieb zwei Objekte TNetworkCommand und TFindPlayers.
TNetworkCommand, richtet grundlegende Netzwerkkommunikation ein.
Und TFindPlayers, ist ein Stück Code, Build TNetworkCommunication mit einem anderen Spieler über das Netzwerk zu finden, so dass Sie mit spielen kann.

den Code in Ihrem JavaScript-Spiel zu verwenden, sind es nur:

<script src="http://www.dominicanvoice.com/js/communication.php"></script> 

dann können Sie eine Netzwerkverbindung auf diese Weise herstellen:

var comm = new TNetworkCommand('game_name'); // setup a communication with the network 

und einen anderen Spieler Sie es dies tun zu finden weg:

var player = new TFindPlayers(comm,60); // find a player to play with. 

dann kommunizieren Sie hin und her, einander Befehle senden.

comm.send(player.player,"MY MOVE","{down:'7',up:'3'}"); 

und Datennutzung Umfrage den Befehl zu erhalten, auf diese Weise:

command = comm.receive(); 

die empfangenen Daten im JSON-Format.

====================================
Objekt TNetworkCommand:

function TNetworkCommand(App) { // App is an unique game name 
    function send(user,command,data); // send, send data to a specific user 
    function broadcast(command,data); // broadcast, sends data to all the users 
    function receive(); // receive, gets data sent to you from other users 
    function save(variable,value); // saves, saves data in a variable to be shared by all 
    function restore(variable,value); // restore, gets the value of the data saved in variable 
} 

==================================
Objekt TFindPlayers:

function TFindPlayers(comm,timeOut) { // comm = the establish connection, timeout = tie to spend looking for a player. 
    var player;      // player = 'COMPUTER', if no player was found, or it returns an unique string, identifying the other player. 
} 

=============================

nicht sicher, ob dies das ist, wonach Sie gesucht haben keine Engine,
nur eine Lösung, wie man mit anderen Spielern über das Internet mit JavaScript kommunizieren kann.
Auch die TNetworkCommand ‚s speichern & Restore-Funktionen lösen auch das Problem der Spiele Highscore speichern usw.