Ich kopiere im Grunde (schamlos) eine Frage, die vor ein paar Jahren auf SO aufgetaucht ist. Die Antworten sind gut, aber ich würde gerne mehr zu diesem Thema erfahren , also versuche ich einen spezialisierteren Subreddit- Substack-Austausch. Insgeheim hoffe ich auf eine Antwort von Byte56 . Ich frage mich, ob er eine Spezifikation für AoG geschrieben hat. :) :)
Ich versuche, eine funktionale Spezifikation für ein Spiel gemäß Joels Artikelserie zu schreiben (wer würde nichts lieben, was dieser geniale Typ schreibt), und ich bin mit meinem aktuellen Ansatz nicht zufrieden. Es ist viel einfacher, eine Funktionsspezifikation für eine Webanwendung oder eine Website zu schreiben (mein Vollzeitjob ist immer noch die Entwicklung von Webanwendungen), auf der ich jeden möglichen Bildschirm in einem separaten Kapitel beschreiben kann, und es ist auch einfacher, Szenarien zu erstellen.
Das Spiel ist ein rundenbasiertes Logik- / Puzzlespiel, aber es ist schnell und unterhaltsam genug, um für viele Zuschauer gespielt zu werden.
- Sollte ich Szenarien schreiben, die auf verschiedenen Spielertypen basieren (z. B. nervöse FPS-Spieler, makro-besessene Strategietypen, solitäreliebende Hausfrauen usw.) und versuchen zu beschreiben, was sie von dem Spiel erwarten und wie sie es verwenden werden?
- Was sollte "Bildschirme" in der Spezifikation darstellen; die Spielbildschirme (z. B. Menü, Ladebildschirm, Hauptspielbildschirm usw.) oder sollte ich lieber alle verschiedenen möglichen Situationen im Spiel als Bildschirme beschreiben (z. B. mein Zug, Warten auf den Zug des Gegners, mögliche Züge, was passiert, wenn ich einen mache? ungültiger Zug usw.)?
Das Schreiben dieser Frage hat mir geholfen, meine Gedanken über die Spezifikation zu klären, aber ich reiche sie ein, um zu sehen, ob ich von dieser großartigen Community gute Antworten bekommen kann.
quelle
Antworten:
Videospiele unterscheiden sich stark von der Art von Software, über die Joel spricht. In vielen Wegen.
Zum Beispiel spricht Joel davon, die "Spezifikation" zum "Kunden" zu bringen. Ja, so funktionieren Videospiele nicht. Wann haben Sie das letzte Mal gehört, dass Shigeru Miyamoto ein Designdokument der Öffentlichkeit zugänglich gemacht und gefragt hat, ob ein Feature ihren Anforderungen entspricht? Spieleentwickler kommunizieren nicht so mit ihren Kunden wie Softwareentwickler mit Menschen, die ihre Software kaufen.
Es ist eine künstlerische Arbeit; Wenn Sie Kunst machen, haben Sie im Allgemeinen nicht viel Zusammenspiel zwischen dem Hersteller und denen, die sie kaufen könnten. Sie können , aber sicher nicht auf der Ebene einer "Funktionsspezifikation".
Ein weiteres Problem mit einer "Funktionsspezifikation" für ein Spiel ist, dass es unflexibel ist. Die Spieleentwicklung ist offensichtlich funktional, aber auch künstlerisch . Sie müssen also flexibel sein. Sie könnten denken, dass ein Aspekt Ihres Spiels wie X funktioniert. Aber wenn Sie es tatsächlich codieren, hat es nicht den beabsichtigten Effekt. Sie müssen daher in Ihrer Entwicklung flexibel sein. Sie benötigen Iterationszeit, um das Spielerlebnis zu glätten. Und ich spreche nicht nur über die Benutzeroberfläche.
Eine "Funktionsspezifikation" hilft hier nicht weiter. Sie müssen eine "Guess and Check" -Methode anwenden. Ändern Sie Dinge, sehen Sie, ob es besser spielt, ändern Sie mehr Dinge usw. Ihre Entwicklung muss flexibel sein.
Ist eine "funktionale Spezifikation" von Wert in der Spieleentwicklung? In unterschiedlichem Maße ja. Es wird immer noch als Mittel zur Kommunikation von Softwareentwicklungsproblemen in einem Softwareteam verwendet. Und die wichtigste Aufgabe ist , dass es macht Sie tun , ist darüber nachzudenken , was Sie tun , bevor es zu tun .
In der Spieleentwicklung ist eine "Funktionsspezifikation" eigentlich nur ein "Spieldesign-Dokument", in dem die technischen Seiten der Implementierung untersucht werden. Wenn Sie in einem Team arbeiten, ist es wahrscheinlich wichtig, dies zu verwenden, um alle auf die gleiche Seite zu bringen.
Der Schlüssel ist, sich nicht zu sehr an Dinge zu binden. In Ihrem Spieldesign-Dokument steht möglicherweise X, aber letztendlich müssen Sie entscheiden, ob X für Ihr Spiel gut ist, wenn Sie es ausprobieren. Ein Entwurfsdokument sollte ein Startpunkt und kein Endpunkt sein.
quelle
Eine Spezifikation verhindert keine Probleme, sondern erstellt sie nur an einem anderen Punkt, aber Sie werden sie wahrscheinlich erst bei der Implementierung erkennen.
Das Schreiben einer Spezifikation dient nur zwei Zwecken: Sie können sich an Ihre Gedanken erinnern und diese Gedanken mit Ihren Teamkollegen teilen.
Wenn Sie Ihre Gedanken aufschreiben, werden sie nicht besser, es kann Sie dazu zwingen, mehr über sie nachzudenken, es kann Ihnen leichter fallen, diese Gedanken mit anderen Menschen zu teilen, aber dieselben Gedanken werden nicht besser, nur weil Sie werden auf Papier gebracht.
Letztendlich sind Spezifikationen in einem Spieldesignprozess zum Wegwerfen. Zuerst implementieren Sie sie, dann wissen Sie, wie sie falsch sind, und dann tun Sie etwas anderes.
Schreiben Sie die Spezifikationen für einen Prototyp, sie halten nicht länger, daher gibt es keinen Grund, mehr zu schreiben, als für einen Prototyp in der ersten Iteration erforderlich ist.
quelle
Das bloße Schreiben einer Spezifikation verdeutlicht, beleuchtet und "verbessert" eine Idee. Die erste Person, der Sie versuchen, Ihre Idee mitzuteilen, sind Sie selbst. "Ablegen" ist der erste Schritt. Ein Designer, der denkt, "es ist alles in meinem Kopf", täuscht sich nur. Schreiben Sie es auf und er / sie wird genau herausfinden, wie sehr sie sich selbst betrogen haben. Docs mögen ein notwendiges Übel sein, aber sie sind notwendiger als böse.
quelle