Community-Projekt: Praktischer Vergleich von Engines und Frameworks
Herzlich willkommen auf der Übersichtsseite unseres kleinen Community-Projekts. Hier werdet ihr Infos über das Projekt sowie die eingereichten Projekte finden.
Inhaltsverzeichnis |
Ziel des Projekts
Ziel des Projekts ist es mit Hilfe eines Beispiels die Arbeitsweisen und spezifischen Eigenheiten der Entwicklung eines Spiels mit einem gewählten Framework oder einer Engine aufzuzeigen. Dies soll möglichst einfach und dokumentiert geschehen, sodass Ein- und Umsteiger die Möglichkeit haben, verschiedene Ansätze zu vergleichen und den für sich besten zu wählen.
Dabei ist man nicht auf eine Programmiersprache oder Entwicklungsumgebung beschränkt, sondern alles ist erlaubt: Von der fast kompletten Eigenentwicklung mit C++ und der SDL oder SFML bis hin zum Benutzen einer kompletten Engine wie Unity3D soll alles abgedeckt werden.
Erfahrene Entwickler werden weniger von diesem Projekt profitieren als Entwickler, die gerade erst am Anfang ihres Weges stehen. Trotzdem sollte es für jeden interessant sein, sich die Workflows und Methoden anderer anzusehen.
Das Spiel
Im Rahmen des Projekts soll ein Breakout-Klon entwickelt werden. Dieses Kult-Spiel von Atari bietet die nötige Komplexität, um Workflows ausreichend zu demonstrieren. Gleichermaßen ist es simpel genug, um schnell Ergebnisse vorweisen zu können, um so zum Verbessern des Spiels zu motivieren.
Fakten
Es handelt sich hierbei um einen Breakout-Klon, das Spielprinzip kann man sich hier anschauen.
Umfang
- ein Startmenü mit "Starten"- und "Beenden"-Buttons
- ein Level mit festgelegten Blöcken, die zerstört werden können
- Bei erfolgreichem Zerstören aller Blöcke soll automatisch das Level neu aufgebaut werden.
- Punkte, Anzahl verfügbarer Bälle, die Anzahl restlicher Blöcke sowie die FPS sollen auf einem GUI ausgegeben werden.
- Das Spiel soll pausiert werden können.
- Die Bewegungsrichtung des Balls soll abhängig vom Aufschlagpunkt sein.
- Trifft der Ball links bzw. rechts der Mitte auf das Paddle, springt er nach links bzw. rechts ab.
- Häufige Kollisionen mit dem Paddle erhöhen die Geschwindigkeit des Balls, die so lange erhalten bleibt, bis der Ball verloren ist und damit zurückgesetzt wird.
Optional:
- Power-ups, die Größe, Geschwindigkeit des Balls/Paddles verändern
- Konfigurierbare Tastenbelegung
Dokumentation
Während der Entwicklung, oder auch danach, soll eine Dokumentation entstehen, die den Entwicklungsablauf möglichst detailiert beschreibt. Hier müssen einige Punkte beachtet werden:
- Das Ganze richtet sich an Anfänger und Umsteiger. Lieber etwas mehr erklären als an den falschen Enden zu sparen.
- Grundlegende Programmierkenntnisse sollten vorausgesetzt werden.
- Wenn man ein Tutorial für Komplett-Anfänger ohne jegliche Vorerfahrung machen möchte, dann sollte man dies auch so kennzeichnen (z.B. Unity3D und Game Maker bieten sich an).
- Best Practices einhalten. "Frickeln" ist gut und schön und gehört dazu, ist für den Anfang aber irreführend.
Die Dokumentation ist wichtig. Bitte achtet auf eine angenehme Struktur und nachvollziehbare Erklärungen.
Assets
Wir werden das Kenney Donation Pack für unsere Zwecke verwenden, das unter der CC0-Lizenz steht. Dort gibt es Puzzle-Assets, die sich perfekt für das Spiel eignen und sich sehen lassen können. An dieser Stelle möchten wir jedem, der diese Assets verwendet, ans Herz legen etwas zu spenden.
Wir haben die relevanten Bilder hier zusammengefasst:
Paddles.png
Blocks.png
Buttons.png
Ball.png