8 Stimmen

Sollte ich meine Spielidee zuerst im Textmodus entwickeln?

Vor kurzem hatte ich eine Idee für ein Simulations-/Strategiespiel. Ich habe viele meiner Ideen über die Spielmechanik auf Papier skizziert und auch einige der grundlegenden Klassen und Objekte funktionieren. (Ich schreibe dies in C# mit XNA).

Eine Sache, die mir schmerzlich bewusst ist, ist, dass ich kein Grafiker bin, und der Versuch, irgendetwas Grafisches zu programmieren, frustriert mich im Moment. Ein Gedanke, der mir in den Sinn kam, war, zu versuchen, das gesamte Spiel zunächst über die Textkonsole laufen zu lassen. Ich erinnere mich, dass ich als Kind Hunderte von Stunden mit Zork und Hack verbracht habe, und die meisten meiner Spielelement-Ideen benötigen keine Echtzeit-Sprite-Animationen, um zu funktionieren.

Meine Frage an die Community lautet also: Soll ich versuchen, meinen Enthusiasmus für das Konzept aufrechtzuerhalten, indem ich mich zunächst darauf konzentriere, es einfach in einem textbasierten Modus zum Laufen zu bringen, und mich dann darauf konzentrieren, ihm eine hübsche grafische Oberfläche zu geben?

OR

Den Hügel der grafischen Schnittstelle in Angriff nehmen, während ich versuche, meine Idee zu verwirklichen?

Während ich diese Frage schrieb, habe ich sie, glaube ich, für mich selbst beantwortet, aber ich würde gerne die Meinung anderer hören.

7voto

Vivin Paliath Punkte 90791

Ich denke, dass Sie aufgrund Ihrer Beschreibung des Spiels die richtige Idee haben. Wenn Sie Ihre Anliegen trennen, können Sie einen Großteil der Geschäftslogik zuerst implementieren. Stellen Sie es sich wie eine MVC-Anwendung vor. Sie können Ihre Ansicht später implementieren lassen; bieten Sie einfach eine Schicht, die Schnittstellen mit Ihrer Geschäftslogik, die Ihre Ansicht verwenden kann.

Auf diese Weise spielt es keine Rolle, welche Ansicht Sie wählen (textbasiert oder grafisch). Sie können einfach Metadaten an die Ansicht weitergeben, und die Ansicht entscheidet, wie sie gerendert werden soll.

Ich würde also 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 ausarbeiten und auch entscheiden, welche Art von Daten an die Ansicht weitergegeben werden sollen. Denken Sie jedoch an eine Sache - Sie müssen extrem in dieser Phase darauf achten, dass no Annahmen über die Ansicht in Ihre Geschäftsschicht einfließen lassen. Daher sollten Sie Ihre Geschäftsschicht und die zugehörige Schnittstelle zur Ansicht so kodieren, als hätten Sie keine Ahnung wie die Aussicht sein wird. Da Sie mit einer textbasierten Schnittstelle beginnen, sollten Sie keine Codierungsentscheidungen treffen, die Sie an diese bestimmte Implementierung binden.

Sobald Sie alles ausgearbeitet haben, können Sie mit dem Erlernen von Grafiken beginnen und langsam mit Ihrer Grafikebene beginnen.

Natürlich funktioniert dieser Ansatz (MVC) nicht in allen Situationen, insbesondere wenn Ihre Ansicht zeitkritisch ist. Weitere Informationen finden Sie in diesen Stackoverflow-Fragen:

Ich möchte nur klarstellen, dass ich nicht für ein MVC-Muster für Ihr Spiel plädiere - ich möchte nur die Trennung von Belangen betonen, so dass es für Sie einfach ist, Ihre Ansicht zu tauschen, ohne dass eine erhebliche Umstrukturierung erforderlich ist.

1voto

Eldad Mor Punkte 5075

Ein Spiel ist ein kompliziertes Projekt, das sich in viele Abschnitte unterteilen lässt. Dabei kann es sich um tatsächliche Module handeln (z. B. einen GUI-Renderer oder einen Kommunikationsmanager), oder um eher theoretische oder logische, wie das "Spieldesign".

Während alle diese Teile zusammenwirken - vorzugsweise in Harmonie -, um das eigentliche Spiel hervorzubringen, steht jeder von ihnen auch für sich selbst. Daher ist es immer eine gute Richtung, zu teilen und zu erobern. Wenn Sie von Ihrer Idee überzeugt sind, sollten Sie sie auf jeden Fall in der einfachsten Form umsetzen, die wahrscheinlich eine Konsolenanwendung sein wird.

Sie müssen jedoch bedenken, dass Sie zwar Start Wenn Sie jedes Modul einzeln entwickeln, müssen Sie schließlich berücksichtigen, wie diese Teile zusammenarbeiten. Dies wird sich zwangsläufig auf die Gestaltung Ihrer Module auswirken. Sie könnten zum Beispiel herausfinden, dass Ihre Spiellogik wunderbar funktioniert, aber Sie haben keine Möglichkeit, den Benutzer einen bestimmten Schritt in Bezug auf die Benutzeroberfläche tun zu lassen. Die Spielbarkeit ist eine der wichtigsten Eigenschaften eines Spiels, und Ihre Benutzeroberfläche kann sogar einige Spiellogiken diktieren. Dieses Konzept widerspricht der goldenen Regel, die Benutzeroberfläche von der Logik zu trennen - aber wie ich schon sagte, sind Spiele kompliziert, und für das Endprodukt muss man oft einige Regeln brechen. Spiele sind anders als andere Projekte - Skalierbarkeit ist kein Thema. Wartungsfreundlichkeit ist wichtig, wird aber geopfert, wenn man die zusätzliche CPU-Leistung braucht... und so weiter.

0voto

Chris Laplante Punkte 28784

An Ihrer Stelle würde ich zunächst eine textbasierte Befehlszeilenschnittstelle erstellen. Wenn Sie sich dann entscheiden, eine GUI zu erstellen, können Sie die GUI einfach das Kommandozeilenspiel automatisieren lassen, so dass Sie die Spiellogik nicht zweimal schreiben müssen. Viele Tools werden diesen Ansatz verwenden. Jemand wird z.B. ein Kommandozeilen-Defragmentierungstool erstellen und dann wird jemand einen GUI-"Wrapper" für das Tool erstellen. So ähnlich wie bei Nethack.

0voto

Cephalopod Punkte 13896

Machen Sie ein UI. 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.

0voto

Fábio Batista Punkte 24308

Mein Rat: Fast keine Software kann man heutzutage noch allein erstellen.

Versuchen Sie, Ihre Ideen zu skizzieren, irgendwo zu veröffentlichen, weitere Interessenten zu finden, eine Gruppe zusammenzustellen und sich die Hände schmutzig zu machen.

Wenn Ihre Idee wirklich gut ist, werden Sie weitere Teammitglieder finden, die Ihr fehlendes Fachwissen in den anderen benötigten Bereichen ausgleichen können.

Sie können versuchen, Leute im Internet zu finden und so etwas wie ein Open-Source-Projekt zu starten, oder Sie können versuchen, einen Investor zu finden, der Geld in Ihr Unternehmen steckt und Sie in die Lage versetzt, spezialisierte Mitarbeiter einzustellen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X