Wie kann ich ein Online-Spiel prototypisieren? [geschlossen]


8

Ich würde gerne wissen, ob Sie Bibliotheken, Engines kennen oder einfach nur Muster entwerfen, die das Teilen von Informationen und das Senden von Nachrichten zwischen vernetzten Programmen erheblich vereinfachen, sodass Sie sich darauf konzentrieren können, das Gameplay zu optimieren, anstatt den Netzwerkcode neu zu schreiben Prototyping vernetzter Spiele. Da dies für Prototypen gedacht ist, sind Benutzerfreundlichkeit und Flexibilität viel wichtiger als Geschwindigkeit und Sicherheit.


1
Nun, ich habe gehört, dass Unity in der Lage ist, Spiele im MMO-Stil zu erstellen. Es handelt sich jedoch um eine Engine, die sich auf 3D konzentriert. Sie können 2D ausführen, müssen jedoch nur ein wenig kreativ werden (z. B. eine Ebene erstellen, die das 2D-Sprite enthält) eine Textur und stellen Sie die Kamera so ein, dass sie nach unten schaut.) Ich weiß, dass 3D-Buzz ein Tutorial zur Unity MMO-Programmierung erstellt hat, aber ich glaube nicht, dass es der Öffentlichkeit zugänglich ist. Ich schlage vor, Sie arbeiten mit Paper Prototyping. Hier versuchen Sie, ein Spiel mit Papierausschnitten zu erstellen und Dinge selbst zu bewegen. Dies ist eine gute Möglichkeit, Feedback zu erhalten, ohne das vollständige Spiel zu erstellen. Behandeln Sie einfach Online-Ereignisse selbst.
Benjamin Danger Johnson

1
ZMQ eignet sich hervorragend zur Reduzierung der Netzwerk-Boilerplate.
Anko

@BenjaminDangerJohnson Ich habe Unity verwendet, aber ihre Netzwerkkomponenten sind zu spezifisch, um Objektpositionen gemeinsam zu nutzen. Sie müssen Ihre eigene Engine darüber schreiben, wenn Sie sie für etwas anderes verwenden möchten, und das macht den gesamten Zweck des Prototyping zunichte.
Panda Pyjama

@Anko 0MQ scheint interessant, und ich werde es versuchen. Ich mache mir Sorgen, dass es versucht, die Transportschicht zu vereinfachen , was höchstwahrscheinlich bedeutet, dass Sie irgendwann Ihr eigenes Anwendungsprotokoll schreiben müssen, genau das möchte ich für die Prototyping-Phase vermeiden.
Panda Pyjama

2
Basierend auf dem Umschreiben funktioniert 0MQ (oder RabbitMQ) einwandfrei. Kein Nachrichtensystem kann die Datenreplikation Ihres Spiels automatisieren. Der Inhalt der Nachricht liegt immer bei Ihnen, um sie zu erstellen und zu interpretieren. In einem LAN können Sie einfach Spam-Sendungen spammen und jeder, der zuhört, Pakete auswählen, die für ihn bestimmt sind. Daten können XML oder JSON oder ein einfacher Schlüssel-Wert-Textpaar-Stream sein, da für das lokale Prototyping garantiert jede Menge Bandbreite zur Verfügung steht. Aber Sie müssen noch Code arbeiten.
Patrick Hughes

Antworten:


4

Der einfachste Weg, einen Prototyp eines Online-Spiels zu erstellen, mit dem Sie fast alles im Spiel schnell ändern können (auch Faktoren wie Echtzeit oder rundenbasiert), besteht darin, den Prototyp als physisches Spiel zu implementieren. Bringen Sie alle Designer in einem Raum zusammen, holen Sie sich ein paar Karten, Würfel oder Brettspielkomponenten oder was auch immer notwendig ist, um die allgemeinen Spielinteraktionen zu prototypisieren. Dann spielen Sie das Spiel.

Sie können dies tun, ohne Programmierer oder Künstler bezahlen zu müssen. Das Ausprobieren verschiedener Variationen von Spielregeln dauert nur ein oder zwei Minuten, anstatt Stunden oder Tage (oder Wochen!) Programmierarbeit zu erfordern, und Sie können feststellen, ob Ihr Spiel funktioniert, indem Sie es tatsächlich spielen, anstatt es vor dem Spiel entwerfen zu müssen Implementierung und raten Sie, was funktionieren wird oder nicht. Außerdem werden Ihre Programmierer Sie am Ende des Prozesses immer noch mögen. :) :)

  • Dabei empfehle ich, mindestens eine Person als Beobachter zu haben. nicht am Spiel selbst teilnehmen und eine andere Person, deren Aufgabe es ist, Notizen darüber zu machen, wer was wann getan hat. Diese Daten darüber, was während jedes Spiels tatsächlich passiert ist, können beim Anpassen des Regelsatzes zwischen den Spielen äußerst nützlich sein.

Stift, Papier, Würfel, Karten, Bretter, Token. Das ist wirklich alles was du brauchst. Und für das Prototyping eines Spieldesigns ist es besser als alles andere.


6
Andererseits. Wenn Ihre Kollegen sich weigern, das zu tun, was nachweislich die schnellste und wirtschaftlichste Möglichkeit für das Unternehmen ist, ein Prototyp-Spieldesign schnell zu wiederholen, befinden Sie sich nicht in einem professionellen Umfeld.
Trevor Powell

2
Lassen Sie uns dies nicht zu einer Diskussion am Arbeitsplatz machen. Sicherlich ist physisches Prototyping sehr gut, aber es ist nicht immer möglich, und nicht alle Spiele sind trivial physisch spielbar. Normalerweise kann ich Einzelspieler-2D-Spielideen in wenigen Stunden hacken und sie ändern, um festzustellen, ob sie interessant sind. Ich möchte nur das Gleiche für Multiplayer-Spiele tun können.
Panda Pyjama

5
Du bist derjenige, der die Arbeitsumgebung angesprochen hat, nicht ich. Wenn Sie nicht über sie sprechen möchten, ist das in Ordnung. Erwarten Sie jedoch nicht, dass ich schweige, während Sie behaupten, dass physisches Prototyping in "professionellen" Arbeitsumgebungen irgendwie nicht funktionieren kann. Weil das einfach nicht stimmt.
Trevor Powell

2
Außerdem sind nicht alle Spiele trivial physisch prototypisch. Puzzle- und Strategiespiele lassen sich leicht mit Ihrem Vorschlag erstellen, Action-, Musik-, Renn-, Sport- und Simulationsspiele jedoch möglicherweise nicht.
Panda Pyjama

1
Keine Methode macht das Prototyping auf magische Weise für jede Art von Spiel "trivial" (viel weniger für jede Art von Spiel). Doppelt so, wenn Netzwerke beteiligt sind. Dass es "nicht trivial" ist, ist kein Grund, eine Methode des Prototyping abzulehnen, da Sie niemals eine Methode finden werden, die trivial ist.
Trevor Powell

2

relatively simple rule changes such as "let's try this in real time instead of turn-based"Das klingt für mich nach einer ziemlich grundlegenden Änderung, nicht nach einer einfachen Regeländerung. Ich denke, solche grundlegenden Designentscheidungen sollten getroffen werden, bevor Sie überhaupt Netzwerkcode schreiben können, entweder mit Offline-Prototypen oder sogar mit Papierprototypen.

Das heißt, Prototyp des Gameplays ohne Netzwerk. Das würde bedeuten, ein Spiel zu schreiben, das lokal im Mehrspielermodus gespielt wird (dh beide Spieler befinden sich auf demselben Computer), um Spielideen zu testen.

Ich meine, bei meiner Arbeit haben wir einmal ein Spiel genommen, das bereits zur Hälfte rundenbasiert entwickelt war, und es in Echtzeit konvertiert, und ja, das beinhaltete eine massive Neufassung des Netzwerkcodes. Rückblickend war dies eine wirklich ineffiziente Herangehensweise, und wir haben uns so ziemlich für "nie wieder" entschieden.


Nicht wirklich, wenn es nicht vernetzt ist, ist es nicht sehr schwierig, ein rundenbasiertes Spiel in Echtzeit umzuwandeln. Das Problem beim Ausprobieren auf demselben Computer besteht darin, dass Sie auf zwei oder möglicherweise bis zu vier Benutzer gleichzeitig beschränkt sind. Wie auch immer, das war ein Beispiel, aber es gibt viele andere Dinge, die ich testen möchte, die definitiv einfacher zu testen sind, wenn sie tatsächlich vernetzt sind ...
Panda Pyjama

Den Punkt deines ersten Satzes nicht verstehen. Genau darum geht es mir, dass es einfach ist, das Gameplay zu ändern, wenn das Spiel nicht vernetzt ist. Und wenn es andere Dinge gibt, die nur getestet werden können, wenn das Netzwerk tatsächlich vorhanden ist (z. B. Synchronisierung über das Internet), treffen Sie so viele Entscheidungen wie möglich, bevor Sie sich darüber Gedanken machen.
Schockieren

0

Ich kann mir keinen Bedarf für ein solches Tool vorstellen, da ich glaube, dass die Netzwerklogik am besten durch eine solide Analyse der Informationen erreicht werden kann, die wohin benötigt werden.

Aber wenn ich gezwungen wäre, so etwas für jemanden zu kreieren, der eines wollte, würde ich Folgendes verwenden:

Dies deckt alle Probleme des zuverlässigen Transports, der Nachrichtenabgrenzung und der Serialisierung / Deserialisierung ab. (Pickle ist jedoch nur für die Verwendung im Intranet sicher.)

Sie müssen weiterhin die Logik einrichten, um zu entscheiden, was mit den Daten geschehen soll, die Entscheidung treffen und implementieren, welche Computer mit welchen anderen Computern verbunden sind, und so weiter. Und es unterstützt keine unzuverlässigen Nachrichten, Remoteprozeduraufrufe, automatische Statusreplikationen usw. usw. Deshalb ist es normalerweise besser, nur zu planen, was Sie möchten, und es so zu schreiben.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.