Anforderungen: Unterschied zwischen den Versionen

Aus Das Sopra Wiki
Greitschus (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
Frank (Diskussion | Beiträge)
KKeine Bearbeitungszusammenfassung
 
(40 dazwischenliegende Versionen von 10 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
__TOC__
__TOC__


Ihre Aufgabe ist es, ein Computerspiel zu entwickeln, dass die hier beschriebenen Anforderungen erfüllt.  
Ihre Aufgabe ist es, ein Computerspiel zu entwickeln, dass die hier beschriebenen Anforderungen erfüllt..  


=== Funktionale Anforderungen ===
=== Funktionale Anforderungen ===
* Das Spiel muss entweder 2D oder 3D Grafik (kein ASCII) haben.
* Das Spiel muss entweder 2D- oder 3D-Grafik (kein ASCII) haben.
* Es muss mindestens 2 Spieler geben, von denen mindestens einer "menschlich" sein muss.
* Das Spiel muss Soundeffekte und Musik beinhalten.
* Spielfiguren müssen indirekt gesteuert werden.
* Es muss mindestens einen menschlich Spieler geben.
* Zu jedem Zeitpunkt muss es möglich sein, das Spiel zu laden oder zu speichern. Das Laden/Speichern muss aber nicht zwangsläufig vom Spieler steuerbar sein.
* Das Spiel muss in Echtzeit ablaufen:
** Spieler müssen Aktionen durchführen, während ihre Gegner ebenfalls gleichzeitig Aktionen durchführen und zu jedem Zeitpunkt reagieren können.
* Das Spiel muss ein Menü haben, dass komplett mit der Maus steuerbar ist. Ausgenommen Texteingaben.
* Das Spiel muss eine Pausefunktion besitzen.
* Das Spiel muss eine Pausefunktion besitzen.
* Das Spiel muss mindestens die folgenden Arten von Spielobjekten enthalten:
* Zu jedem Zeitpunkt muss es möglich sein, das Spiel zu laden oder zu speichern.
** Mindestens 5 Kontrollierbare, davon mindestens 3 Kollidierende
* Das Spiel muss Spielobjekte der folgenden Kategorien enthalten:
** Mindestens 5 Auswählbare
<ol style="list-style-type: lower-alpha;">
** Mindestens 5 Nicht-Kontrollierbare, davon mindestens 3 Kollidierende.
<li>Kontrollierbare Spielobjekte,</li>
* Das Spiel muss mindestens 1000 gleichzeitig aktive Spielobjekte handhaben können. Es müssen sich jedoch nicht so viele Spielobjekte im fertigen Spiel befinden, allerdings muss mindestens eine Tech-Demo vorhanden sein, die bei Bedarf die gewünschte Funktionalität zeigt.
<li>Auswählbare Spielobjekte,</li>
* Das Spiel muss mindestens die folgenden Arten von Aktionen enthalten:
<li>Nicht-kontrollierbare Spielobjekte,</li>
** Mindestens 10 verschiedene Aktionen (inkl. Laufen, Fähigkeiten, usw.)
<li>Kollidierende Spielobjekte und</li>
** Allen Spielobjekten muss es möglich sein, von jedem beliebigen Punkt in der Welt zu jedem anderen begehbaren Punkt zu gelangen, ohne mit der Welt zu kollidieren, festzustecken, usw.
<li>Kontrollierbare, kollidierende und bewegliche Spielobjekte (im Folgenden „aktive Spielobjekte“ genannt).</li>
* Das Spiel muss Soundeffekte und Musik beinhalten.
</ol>
* Allen aktiven Spielobjekten muss es möglich sein, von jedem beliebigen Punkt in der Welt zu jedem anderen begehbaren Punkt zu gelangen, ohne sich gegenseitig übermäßig zu behindern, festzustecken usw.
* Das Spiel muss eine TechDemo bereitstellen. Die TechDemo muss von jedem im Spiel vorhandenen Spielobjekt ein Exemplar enthalten, es müssen mindestens 1000 aktive Spielobjekte vorhanden sein. Die TechDemo muss ebenfalls performant laufen.
* Das Spiel muss mindestens 5 verschiedene Statistiken sammeln und anzeigen.
* Das Spiel muss mindestens 5 verschiedene Statistiken sammeln und anzeigen.
* Das Spiel muss Achievements haben.
* Das Spiel muss Achievements haben.
* Das Spiel muss in Echtzeit ablaufen:
* Alle Anforderungen einer der Folgenden drei Alternativen:
** Spieler müssen Aktionen durchführen, während ihre Gegner ebenfalls gleichzeitig Aktionen durchführen und zu jedem Zeitpunkt reagieren können.
<div style="display:flex;  flex-wrap:wrap; gap:20px;">
 
<div style="flex:1 1 350px; border:1px solid #ccc; padding:10px;">
'''Alternative 1'''
* Das Spiel muss mindestens die folgenden Anzahl von Spielobjekten der jeweiligen Kategorie enthalten:
** Kategorie a: 5
** Kategorie b: 5
** Kategorie c: 5
** Kategorie d: 3
** Kategorie e: 3
* Das Spiel muss mindestens 10 verschiedene Aktionen (inkl. Laufen, Fähigkeiten usw.) enthalten.
* Es muss einen zweiten Spieler geben.
* Spielfiguren müssen indirekt gesteuert werden (Point & Click).
* Spielobjekte müssen sich intelligent verhalten.
</div>
 
<div style="flex:1 1 350px; border:1px solid #ccc; padding:10px;">
'''Alternative 2'''
* Das Spiel muss mindestens die folgenden Anzahl von Spielobjekten der jeweiligen Kategorie enthalten:
** Kategorie a: 5
** Kategorie b: 7
** Kategorie c: 5
** Kategorie d: 3
** Kategorie e: 3
* Das Spiel muss mindestens 15 verschiedene Aktionen (inkl. Laufen, Fähigkeiten usw.) enthalten.
* Spielobjekte müssen sich intelligent verhalten.
</div>
 
<div style="flex:1 1 350px; border:1px solid #ccc; padding:10px;">
'''Alternative 3'''
* Das Spiel muss mindestens die folgenden Anzahl von Spielobjekten der jeweiligen Kategorie enthalten:
** Kategorie a: 5
** Kategorie b: 5
** Kategorie c: 5
** Kategorie d: 3
** Kategorie e: 2
* Das Spiel muss mindestens 10 verschiedene Aktionen (inkl. Laufen, Fähigkeiten usw.) enthalten.
* Es muss einen zweiten Spieler geben.
* Das Spiel muss realitätsnahe Physik enthalten. Hierfür müssen mindestens folgende Eigenschaften erfüllt werden:
** Auf alle Spielobjekte wirkt eine Art von Schwerkraft.
** Es gibt zerstörbare Weltobjekte.
** Es gibt Objekte die geworfen werden können und sich wie erwartet durch die Welt bewegen.
</div>
 
</div>


=== Qualitätsanforderungen ===
=== Qualitätsanforderungen ===
* Entwickeln Sie ein '''gutes''' Produkt.
* Entwickeln Sie ein '''gutes''' Produkt.
** Gut bedeutet, dass es uns gefallen muss. Wir sind Ihre Kunden, d.h. es ist Ihre Aufgabe, uns davon zu überzeugen, dass Ihr Spiel das Beste ist.  
** Gut bedeutet, dass es uns gefallen muss. Wir sind Ihre Kunden, d.h. es ist Ihre Aufgabe, uns davon zu überzeugen, dass Ihr Spiel das Beste ist.
* Die Qualität der Grafik ist für die Bewertung nicht relevant.
* Die Qualität der Grafik, Musik und Soundeffekte ist für die Bewertung nicht relevant.
* Die verschiedenen Grafiken des Spiels sollen in sich stimmig sein.
* Die verschiedenen Grafiken des Spiels sollen in sich stimmig sein.
* Die verschiedenen akustischen Effekte des Spiels sollen in sich stimmig sein.  
* Die verschiedenen akustischen Effekte des Spiels sollen in sich stimmig sein.
* Die [[UsabilityForGames|Richtlinen zur Bedienbarkeit von Computerspielen]] sollen befolgt werden.
* Die im Spiel vorhandenen Texte müssen frei von Rechtschreib- und Grammatikfehlern sein. Falls Umlaute in den Texten vorhanden sind, müssen diese auch korrekt angezeigt werden.
* Die [[UsabilityForGames|Richtlinen zur Bedienbarkeit von Computerspielen]] sind anzuwenden.


=== Randbedingungen ===
=== Randbedingungen ===
* Sie müssen die Programmiersprache [[CSharp|C#]] und/oder F# verwenden.  
* Sie müssen die Programmiersprache [[CSharp|C#]] und/oder F# mit .NET 8.0 verwenden.
* Sie müssen [[XNA]] ab Version 4.0 verwenden (XNA Game Studio 4.0 (Windows Phone SDK 7.1): 28. September 2011).
* Sie müssen [[MonoGame]] in der Version 3.8 verwenden.
** Alternativ können Sie MonoGame verwenden. Wenn Sie das machen möchten, sprechen Sie sich bitte kurz mit uns ab.  
* Ihr Spiel muss auf Windows 11 (x64) und Linux lauffähig sein.
* Ihr Spiel muss auf [[Windows|Windows 7]] x86/x86_64 lauffähig sein.
* Verwenden Sie vorzugsweise Visual Studio oder Rider.
* Sie sollten als [[Entwicklungsumgebung|IDE]] [[VisualStudioTutorial|Visual Studio]] 2010 verwenden. Sprechen Sie andere Versionen oder andere IDEs kurz mit uns ab.  
* Die Version in den [[Git]]-branches <code>release</code> und <code>main</code> muss immer kompilierbar und lauffähig sein.
* Ihre Spiel darf auf wöchentlicher Basis (Stichtag vom Tutor bestimmt) keine Warnings oder Errors (weder Compiler noch [[Resharper]]) enthalten. Bis zur finalen Abgabe dürfen alle ReSharper Warnungen und/oder Fehler, die sich auf die Nicht-Benutzung von Variablen, Methoden oder Klassen beziehen ("unused"), ignoriert werden. In begründbaren Ausnahmefällen (Serialisierung, Dependency Injection, etc.) dürfen Sie Warnungen durch die entsprechenden Code-Kommentare unterdrücken. Dokumentieren Sie dann immer noch den Grund für die Unterdrückung an dieser Stelle. Kontaktieren Sie uns im Zweifelsfalle.
* Ihr Spiel darf zum wöchentlichen Gruppentreffen '''keine Compiler-Warnings oder Errors auslösen'''. In begründbaren Ausnahmefällen (Serialisierung, Dependency Injection etc.) dürfen Sie Warnungen durch die entsprechenden Code-Kommentare unterdrücken (die Begründung muss im Code entsprechend dokumentiert werden).
* Die im [[SVN]] eingecheckte Version muss immer kompilierbar und lauffähig sein.


=== Hinweise ===
=== Hinweise ===