2010-09-18 8 views
8

Ich habe vor kurzem eine Idee für ein Simulations-/Strategiespiel entwickelt. Ich habe viele meiner Ideen auf dem Papier über die Spielmechanik skizziert und habe ein paar der grundlegenden Klassen und Objekte, die funktionieren. (Ich schreibe dies in C# mit XNA).Soll ich zuerst meine Spielidee im Textmodus entwickeln?

Eine Sache, die für mich schmerzlich offensichtlich ist, ist, dass ich kein Grafiker bin und zu versuchen, irgendetwas grafisch programmiertes gerade zu bekommen, frustriert mich. Ein Gedanke, der mir in den Sinn kam, war, zuerst das ganze Spiel von der Textkonsole abzuarbeiten. Ich erinnere mich daran, wie ich als Kind Hunderte von Stunden damit verbracht habe, Zork und Hack zu spielen, und die meisten meiner Ideen für Spielelemente erfordern keine Echtzeit-Sprite-Animationen, um zu funktionieren.

Also meine Frage an die Community hier ist, sollte ich versuchen, meine Begeisterung für das Konzept zu erhalten, indem ich es zunächst einfach in einem Text-Base-Modus arbeiten und dann neu gruppieren, um es eine schöne grafische Benutzeroberfläche?

ODER

Gerät die grafische Oberfläche Hügel zugleich meine Idee zu spülen, ich versuche?

Während des Schreibens dieser Frage denke ich, dass ich es für mich selbst beantwortet habe, aber ich würde gerne die Gedanken von Menschen hören.

+0

Eine Sache, die ich gelernt habe, ist, dass sehr wenige Spiele-Projekte ernsthafte Schwerkraft haben. Sie verlassen sich besser auf sich selbst als auf andere Menschen. Hast du darüber nachgedacht, das Spiel nur mit der Text-Benutzeroberfläche abzuschließen? Würde es funktionieren? –

+0

Darauf konzentriere ich mich gerade jetzt. Ich nehme jetzt den KISS-Ansatz. –

Antwort

7

Ich denke, Sie haben die richtige Idee basierend auf Ihrer Beschreibung des Spiels. Wenn Sie Ihre Bedenken trennen, können Sie zuerst viele Geschäftslogiken implementieren. Stellen Sie es sich wie eine MVC-Anwendung vor. Sie können Ihre Ansicht verlassen, um später implementiert zu werden; Stellen Sie nur eine Ebene bereit, die mit Ihrer Geschäftslogik in Verbindung steht, die Ihre Ansicht verwenden kann.

Auf diese Weise ist es egal, was Ihre Ansicht ist (Text-basierte oder Grafiken). Sie können einfach Metadaten an die Ansicht übergeben, und die Ansicht entscheidet darüber, wie sie gerendert wird.

So würde ich sagen, dass Ihre Idee gut ist. Beginnen Sie mit der Geschäftslogik und einer textbasierten Ansicht. Auf diese Weise können Sie Ihre Konzepte und Ideen konkretisieren und entscheiden, welche Daten an die Ansicht übergeben werden sollen. Denken Sie jedoch an eine Sache - Sie müssen extrem vorsichtig in diesem Stadium zu nicht sein lassen Annahmen über die Sicht Leck in Ihre Business-Schicht. Sie sollten also Ihre Business-Schicht und die zugehörige Schnittstelle mit der Ansicht codieren, als hätten Sie keine Ahnung, was die Ansicht sein wird. Was ich meine ist, da Sie mit einer textbasierten Oberfläche beginnen, machen Sie keine Kodierungsentscheidungen, die Sie an diese bestimmte Implementierung binden.

Sobald Sie alles ausgearbeitet haben, können Sie beginnen, Grafiken zu lernen und langsam Ihre Grafik-Ebene zu starten.

Natürlich funktioniert dieser Ansatz (MVC) möglicherweise nicht in allen Situationen, insbesondere wenn Ihre Ansicht zeitkritisch ist. Für weitere Informationen werfen Sie einen Blick auf diese Stackoverflow-Fragen:

Ich möchte nur klar sein, dass ich nicht ein MVC-Muster für Ihr Spiel bin befürworten - Ich will nur Trennung von Anliegen betonen, so dass es für Sie leicht zu Tauschen Sie Ihre Ansicht aus, ohne ein signifikantes Refactoring durchzuführen.

+0

Ich denke, ich mag diesen Ansatz. Die meisten Entscheidungen können in einer Menü/Aktions-Schaltfläche getroffen werden. Alle Dinge, die später der Designseite überlassen werden können. Bei der Arbeit mache ich viel SQL-Arbeit, knirsche Zahlen auf Abfrageebene, lasse den Bericht schön aussehen. –

+0

@NA Slacker genau. Machen Sie die ganze Arbeit und übergeben Sie die Daten an die Ansicht - lassen Sie die Ansicht entscheiden, was damit zu tun ist. –

+0

Plus, wenn Sie jemals auf GUI ändern möchten, müssen Sie nicht die eigentliche ausführbare Spieldatei berühren; schreibe einfach eine neue Ansicht oder ändere die vorhandene –

0

Wenn ich Sie wäre, würde ich zuerst eine textbasierte Befehlszeilenschnittstelle erstellen. Wenn Sie sich entscheiden, eine tatsächliche GUI zu erstellen, können Sie einfach die GUI das Befehlszeilen-Spiel automatisieren lassen, so dass Sie die Spiellogik nicht zweimal schreiben müssen. Viele Tools werden diesen Ansatz verwenden. Jemand wird zum Beispiel ein Befehlszeilen-Defragmentierungstool erstellen und dann wird jemand einen GUI-Wrapper für das Werkzeug erstellen. Sort of like what Nethack did.

0

Erstellen Sie eine Benutzeroberfläche. Halten Sie die Grafiken einfach (Paint) und konzentrieren Sie sich auf die Benutzerfreundlichkeit. Dann veröffentlichen Sie Ihr Spiel als Open Source und jemand anderes wird schöne Grafiken und eine coole Benutzeroberfläche erstellen.

+0

Zu optimistisch, um ernst zu sein. –

+0

Wenn Sie etwas Erfahrung zu diesem Thema haben, teilen Sie es bitte. Ich denke nicht, dass es zu optimistisch ist. Wenn es jemanden gibt, der eine Software verwendet, gibt es auch jemanden, der helfen würde, ihn zu verbessern. – Cephalopod

0

Mein Rat: fast keine Software kann heutzutage allein gemacht werden.

Versuchen Sie, Ihre Ideen zu skizzieren, irgendwo zu posten, mehr Interessierte zu finden, eine Gruppe zusammenzustellen und sich die Hände schmutzig zu machen.

Wenn Ihre Idee wirklich gut ist, werden Sie mehr Teammitglieder finden, die Ihr mangelndes Know-how in den anderen benötigten Bereichen füllen können.

Sie können versuchen, Leute im Web zu finden, die so etwas wie ein Open-Source-Projekt starten, oder Sie können versuchen, einen Investor zu finden, der Geld in Ihr Geschäft einbringen kann und Sie spezialisierte Mitarbeiter einstellen können.

1

Ein Spiel ist ein kompliziertes Projekt, das in viele Fächer unterteilt werden kann. Diese können ein tatsächliches Modul sein (z. B. ein GUI-Renderer oder ein Kommunikationsmanager), oder sie können theoretischer oder logischer sein, wie das "Spieldesign".

Während alle diese Teile zusammenarbeiten - vorzugsweise in Harmonie - um das eigentliche Spiel herauszubringen, steht jeder von ihnen auch für sich. Als solche ist es immer eine gute Richtung zu teilen & erobern. Wenn Sie von Ihrer Idee überzeugt sind, dann gehen Sie auf jeden Fall voran und implementieren Sie sie in der einfachsten Form, die wahrscheinlich eine Konsolenanwendung wäre.

Allerdings müssen Sie daran denken, dass, während Sie beginnen können, indem Sie jedes Modul separat entwickeln, schließlich müssen Sie berücksichtigen, wie diese Teile zusammenarbeiten werden. Dies hat Auswirkungen auf das Design Ihrer Module. Zum Beispiel können Sie herausfinden, dass Ihre Spiellogik wunderbar funktioniert, aber Sie haben keine Möglichkeit, den Benutzer tatsächlich einen bestimmten Schritt in Bezug auf die Benutzeroberfläche ausführen zu lassen. Die Spielbarkeit ist eine der wichtigsten Funktionen eines Spiels und Ihre Benutzeroberfläche kann sogar eine gewisse Spiellogik vorgeben. Dieses Konzept widerspricht der goldenen Regel, die UI von der Logik zu trennen - aber wie ich sagte, sind Spiele kompliziert, und für das Endprodukt neigen Sie oft dazu, einige Regeln zu verbiegen. Spiele sind anders als andere Projekte - Skalierbarkeit ist kein Problem. Wartbarkeit ist wichtig, wird aber geopfert, wenn Sie den zusätzlichen CPU-Saft benötigen ... und so weiter.

+0

Ich behalte das im Hinterkopf. Ein Vorteil dieser Vorgehensweise besteht darin, dass ein vollständiger Satz von Tastaturkürzeln definiert wird, sollte er jemals einen ausgereiften Punkt mit einer grafischen Oberfläche erreichen. –

+0

Eigentlich muss man das nicht unbedingt mit Tastaturkürzeln machen. Wenn Sie ein Text-Interface erstellen, versuchen Sie nicht, es aufzufrischen - versuchen Sie, es so informativ wie möglich zu machen, und nichts darüber hinaus. Stellen Sie es sich als Debugging/Testlösung vor. Es kann im Textmodus nicht wirklich ein spielbarer Prototyp sein. Halten Sie sich an die Spiellogik, entwickeln Sie sie, und finden Sie jemanden, der mit Grafikprogrammierung vertraut ist, um die Schnittstelle zu erstellen. –

Verwandte Themen