Project 3D Tower Defense

3D Tower Defense

MultiMediaTechnology, 2013

3D Towerdefense ist ein eine Umsetzung des gleichnamigen Spielprinzips in 3D.

Ziel eines Towerdefense ist es, feindliche Einheiten vom Erreichen der eigenen Basis abzuhalten. Dazu wird durch taktisches Platzieren von Verteidigungsanlagen (zumeist Türmen) entlang des Pfades des Gegners, eine Verteidigung gegen die in Wellen anrückenden Gegnerhorden errichtet. Zum errichten und aufwerten dieser Türme steht dem Spieler zu Anfang eine begrenzte Anzahl Gold zur Verfügung, die er durch besiegen gegnerischer Einheiten und durch überstehen von Gegnerwellen erhält.

Das Gameplay findet auf sogenannten "Tracks", oder auch Leveln statt. Auf jedem Level stehen dem Spieler eine gewisse Anzahl Leben zur Verfügung, und es gilt eine festgesetzte Anzahl Wellen zur Überstehen. Für jede Einheit, welche die Basis lebend erreicht, werden dem Spieler Leben abgezogen. Sinken diese unter 0, verliert er das Spiel. Übersteht er jedoch alle Wellen, gewinnt er dieses Level.

Die Steuerung erfolgt großteils über die Maus. Die Kamera lässt sich durch bewegen derselbigen an die Bildschirmränder verschieben, und mit dem Mausrad lässt sich hinein- und hinauszoomen. Durch Anklicken der Schaltflächen des Spiele-GUIs lassen sich die meisten Aktionen wie das Senden der nächsten Welle oder das Platzieren von Türmen steuern. Nur für wenige Aktionen kommt die Tastatur zur Verwendung, dies unter anderem zum speichern seines aktuellen Spielstands, oder zum Abbrechen bestimmter Aktionen.

Die technische Umsetzung erfolgte durch die eigens entwickelte "Acclimate Engine" betitelte 3D-Engine. Diese basiert lediglich auf dem DirectX9-SDK mit C++, unter der Verwendung der "Programmable Pipeline". Sie bietet Bibliotheken für Gui, Input, Game-Math, Rendering, und bietet dabei hochmoderne Features wie Deferred Rendering über Render-Qeues sowie ein Entity-Component-System zur einfachen Entwicklung der Spielelogik. Dadurch entstand in Co-Produktion mit diesem Projekt eine große Sammlung an wiederverwertbaren Code, was auch meinem eigentlichen Ziel entsprochen hat.

Erwähnenswert ist auch der integrierte Leveleditor, der zwar nicht alle Features für ein voll funktionsfähiges Level bereitstellt, aber durch seine Möglichkeiten zur Grafik-Resourcen-Verwaltung und dem platzieren von Umgebungs-Objekten bereits eine gute Grundlage zum erstellen eigener Tracks bietet. Alle restlichen Aspekte des Tracks lassen sich manuell über die XML-Dateien des Levels bearbeiten.

Documents

Appendices

Creators