Spieleprogrammierung

Ähnliche Dokumente
Projektarbeiten. id=projektarbeiten

Ausgangspunkt - Einbindung der Community in die Spiele-Entwicklung. Spezifikation. > Online Community > Community Management. > notwendige Software

Game Engine Architecture and Development. Platform Unabhängiger Code Multi Threading in Game Engines Profiling

Hochschule Bremen. Rechnerstrukturen Labor WS 04/05 I7I. Thema: Grafikkarten. Laborbericht. Datum

Projekt MasterMind Systemspezifikation

Arbeiten in der Games Industrie: Insights in einen deutschen Spieleentwickler. Dr. Florian Stadlbauer Arbeitskreis Games Köln, den 12.


Ein Tool für automatische Performancetests von Java3D Applikationen

Überblick verschaffen

Information: der Firmenname ist später ganz entscheidend dafür, ob man euch im Netz schnell findet und wie ihr wahrgenommen werdet.

Seminararbeit Ruby Uno Kartenspiel

Stereoskopisches 3D Gaming

XNA. Alt Christian, Atzl Caroline, Gintner Peter, Huemer Sandra. January 16, 2009

White Paper. Embedded Treiberframework. Einführung

Das SR4 bietet eine Reihe von Verbesserung und behebt kleinere bekannte Probleme aus den Bereichen:

Physik und Praxis. Selling Physics. Gestern. Heute

Linux Cafe Referent: Bernd Strößenreuther

Nachklausur Programmieren / Algorithmen und Datenstrukturen 1

Der Entwicklungsprozess. Oder wie entwickle ich ein eingebettetes System?

beziehung kommunikation im raum / dreidimensionale kommunikation interaction design

BRAND APPS WHITEPAPER MOBILE MARKEN- UND KUNDENBINDUNG

Grid-Systeme. Betrachtung verschiedener Softwareplattformen zur Realisierung von Grids und Vorstellung des Globus Toolkit Grid Systeme 1

Seminar Game Development Game Computer Graphics. Einleitung

Erstellung eigener Hot-Spot-Karten

WOT Skinsetter. Nun, erstens, was brauchen Sie für dieses Tool zu arbeiten:

Software Engineering mit Übungen. Franz-Josef Elmer, Universität Basel, HS 2015

OpenGL. (Open Graphic Library)

Gruppe 2: Rui Gu, Wei Zhu, Veysel Imamoglu, Dimitar Dimitrov, Karl Oppermann, Nathalie Hrycej, Markus Schnalke, Christoph Galler

Projektmanagement in der Spieleentwicklung

Qualitätsmanagement im Projekt

Smartphone Entwicklung mit Android und Java

Wissen erarbeiten und analysieren

ZuuL - Entwicklung eines Adventures

Avira Browser-Schutz (Erkennungen) Kurzanleitung

CREATIVE PROGRAMMING TOOLKITS

Helpdesk Ticketing. Benutzersupport

Games Programming. Berufsfelder der Branche - Deine Perspektiven im Anschluss

Projekt: 2- und 3-dimensionales Darstellen Thema:»AeroShow«

Internet Based Games. Marcus Böhm

Spring Dynamic Modules for OSGi Service Platforms

Java-Applikationen sind Programme mit dem vollen Funktionsumfang eines normalen Programms mit gleicher Funktionalität.

Art Director bei Silver Style Entertainment

Spring Dynamic Modules for OSGi Service Platforms

Übungen zur Softwaretechnik

Java TV. Seminar Medientechnik. Kristin Doppler Übersicht. Einleitung Umgebungen Java TV API - Kategorien. Service- und Selektions-APIs

Code und Qualität 2: Testing

ReactOS das zu Windows binärkompatible Open-Source- Betriebssystem. Matthias Kupfer ReactOS Deutschland e.v.

Remote Communications

HOCHSCHULE RHEINMAIN. Studie Interactive Video mit Youtube

Philosophie & Tätigkeiten. Geschäftsfelder. Software Engineering. Business Applikationen. Mobile Applikationen. Web Applikationen.

dynamic internet4you Christoph Streit Technology Evangelist, internet4you 30. Oktober 2012

Vorstellung: Prof. Dr. Michael Bhatty

Modellierung biologischer. Christian Maidorfer Thomas Zwifl (Seminar aus Informatik)

Zwischenvortrag zum Entwicklungsstand der Bachelor-Arbeit. Direct 3D-Output für ein Rendering Framework

KiRo - Tischfußball gegen den Roboter

Collaborative Virtual Environments

... auf dem PC oder der Xbox. Austausch mit anderen KODU-Teilnehmern aus Seminaren oder Workshops (Jugendliche / Erwachsene)

StarCraft Brood War Kampagnen in StarCraft II Installations-Handbuch

Neuerungen in ArcGIS 9.3.1

Big Data Hype oder Realität?

Avira Support Collector. Kurzanleitung

Unity Community Magazin

Auf einen Blick. Elementare Anwendungsbausteine. Telefonfunktionen nutzen. Dateien und Datenbanken. Organizer und Multimedia

Testplan. Hochschule Luzern Technik & Architektur. Software Komponenten FS13. Gruppe 03 Horw,

Projektmodell Softwareentwicklung: Unified Software Development Process / Unified Process (Teil I)

Christoph Behounek, eggs unimedia

Einführung in die OPC-Technik

Ausbildungsmöglichkeiten im Fachbereich Games in Österreich Stand März 2014

Auftrag Unverbindliches Angebot zur Erstellung eines Internetauftritts

Digital Art Design. für Wissenschaftler und Künstler

Status Forge forge.sik.ch

Aufgaben und Lösungshinweise zum Lehrbuch

Branching und Merging mit Visual Studio Team System

Modellbasierter Entwurf sicherheitskritischer Anwendungen. Von Moritz Borgmann Für VL Eingebettete Systeme Sommer Semester 2009

Erkennungen im WebGuard

App-Entwicklung mit Titanium

Projektmanagement. Vorlesung von Thomas Patzelt 10. Vorlesung

Programmieren von Webinformationssystemen

Agile Software Verteilung

Ist Qualität nachrüstbar? Testen, Dokumentation und Code Qualität von Anfang an

Die Vorteile von officeatwork und Microsoft Azure bei Asendia

Vom Fotografen bis zum Bildkäufer elektronisch

Code verifizieren mittels

Der eigene Internetauftritt. Die eigene Webseite für den Fotografen

Mobile Webapps in kürzester Zeit: APEX mobile!

Online Kurs Entwicklung der Apps auf iphone und ipad

VRML Tools. Markus Czok, Carsten Rohde

ab / Clip Persönliches Erstgespräch, Anforderungsprofil Konzeption & Web-Design Ihrer Website bis 7 Menüpunkten, 40 Seiten

Perspektiven: Spiele in ios

UI-Testing mit Microsoft Test Manager (MTM) Philip Gossweiler /

Projekt MasterMind Projekt Management Plan


Parallele und funktionale Programmierung Wintersemester 2013/ Übung Abgabe bis , 16:00 Uhr

Erstellen einer Projektdokumentation

Von Paul Curzon, Queen Mary, University of London mit Unterstützung von Google und EPSRC

Total Cost of Ownership Vergleich Linux/Windows

Einführungsbericht. Status Projektname Projektleiter Auftraggeber Autoren Verteiler

Wine der freiewindows Emulator. Marcus Meißner Wine und opensuse Entwickler

DATA BECKERs Praxishandbuch zu SUSE Linux 10

Portal for ArcGIS - Eine Einführung

Transkript:

Universität Innsbruck Fakultät für Informatik Proseminar: Wissenschaftliches Arbeiten Leitung: assoz. Prof. Dr. Moser Georg Spieleprogrammierung Juni 2013 Matthias Wanner (4. Semester) Schneeburggasse 49a 6020 Innbsruck Email: matthias.wanner@student.uibk.ac.at

Inhaltsverzeichnis 1 Einleiung 1 2 Spieleprogrammierung - Die einzelnen Bereiche 2 2.1 Game Design................................... 2 2.2 Entwicklung eines Prototypen.......................... 2 2.3 Testen....................................... 3 2.4 Fertigstellung................................... 3 2.5 Wartung...................................... 3 2.6 Game Engine................................... 4

1 Einleiung Am Anfang eines Computerspiels steht eine Idee. Um die Idee in ein erfolgreiches Spiel umsetzen zu können, braucht es gewisse Phasen, die durchlaufen werden müssen. Früher war die Komplexität wesentlich geringer und ein Spiel ist in kürzerer Zeit produziert worden. Heutzutage sitzen bis zu 30 Programmierer an einem Bereich in der Entwicklung und am Ende liegt der Schnitt der Fertigstellung, bis zu drei Jahre. Allgemein kann man die Entwicklung in folgende Teile gliedern. Game Design Grafik Level Design Spieleprogrammierung Sound Das Game Design kann man als Regieführung sehen. Hier wird beschlossen, wie Charaktere aussehen, die Story verläuft, oder an was für Richtlinien sich das Spiel halten soll. Die Grafik ist für das Erstellen von Texturen und Modellieren von Welten, Figuren zuständig. Das Leveldesign geht noch etwas genauer auf die Spielewelten ein. Es wird außerdem eine Atmosphäre für den Spieler erstellt. Damit das Spiel auch akustisch gut ankommt, wird im Bereich des Sounds nicht gespart. Nicht selten werden ganze Orchester verwendet, um wie beim Film eigene Szenen zu vertonen. Die wohl wichtigste Phase ist die Spieleprogrammierung selbst. Sie ist auch der Kleister der die verschieden Phasen zusammenhält. Die Programmierung haucht dem Spiel das Leben ein. Mit Hilfe einer Game Engine 1 können die einzelnen Teile zusammengeführt werden. Solche Engines werden von Spieleentwicklern verwendet und immer auf das jeweilige Spiel angepasst. In der Entwicklung gibt es viele Arbeitsfelder, eines davon sind die Programmierer. Sie sind für das Schreiben des Source Codes verantwortlich. Programmiert wird in viele verschieden Sprachen, jedoch eignen sich C, bzw. C++ 2 am besten und sind damit auch die am weit verbreitetsten.[2] Für die Spiele im 21. Jahrhundert gibt es mittlerweile viele Plattformen 3 die in Frage kommen können. Je nach Auftrag und Portierbarkeit der Engine, können Spiele für mehrere Plattformen, oder auch nur für eine einzelne erstellt werden. Die folgenden Seiten beschreiben nun den Teil der Spieleprogrammierung, damit aus dem Code ein fertiges Spiel wird und nicht der Charakter sich einfach in Luft auflöst. 1 Wird später noch genauer behandelt. 2 C ist besonders Hardware nah. C++ ist wegen der Objekt orientierten Programmierung sehr wichtig. 3 Plattformen sind die Endgeräte auf denen das Spiel gespielt wird. z.b.: PC, Xbox, Playstation 1

2 Spieleprogrammierung - Die einzelnen Bereiche 2.1 Game Design Wenn man den Beruf eines Game Designer ausübt, so hat man die volle Verantwortung über das Projekt. Das Game Design bezieht sich auf all die wichtigen Dinge die ein Spiel ausmacht. Das Genre in dem es platziert wird, die Story die hinter dem Spiel steckt, die Vorgabe des Gameplays, die Regeln an die es sich halten soll, sowie die gesamte Umgebung. Der Game Designer ist vergleichbar mit einem Produzenten, oder Regisseur eines Films - er hat die Zügel in der Hand. Im Game Design sind vor allem die Richtlinien und der Weg festgelegt in die das Spiel gehen soll. Es wird ein Spielansatzdokument 1 angelegt, welches wie ein Leitfaden für die Entwicklung bereitsteht.[1] In großen Entwicklerfirmen, wie Electronic Arts, Ubisoft, oder auch, Activision Games, werden die einzelnen Bereich, wie Gameplay, Grafik, Level Design, etc. von mehreren Lead Designer verwaltet und geleitet. Durch eine bessere Strukturierung entsteht eine weniger fehleranfällige Produktion und die Entwicklungsdauer wird verkürzt. Im Game Design muss oft abgewogen werden, ob Spiel-Elemente verwirklichbar, ob die Hardware-Anforderungen möglich sind und ganz wichtig, ob das Budget ausreicht für die Entwicklung. Zwischen all diesen Dingen muss das Game Desing, bzw. der Game Designer hin und her jonglieren um die goldene Mitte zu finden. 2.2 Entwicklung eines Prototypen Bevor das Spielansatzdokument überhaupt abgeschlossen ist, fängt man schon an Prototypen zu bauen. Prototypen sind kleine Programme, oder Skizzen die helfen sollen, Eigenschaften des Spiels zu veranschaulichen. An ihnen kann man leicht Spielverläufe ausprobieren. Zum Beispiel muss eine Cutscene 2 getestet werden. Hinter den Prototypen steckt auch der Versuch eine Idee auszuprobieren und zu testen. Sie sind zur Verwirklichung von Konzepten vorhanden. Außerdem sind Prototypen nicht nur für die Spielfähigkeit zuständig, sondern werden auch erstellt um andere Bereich des Spiels zu überprüfen, wie das Interface, oder die grafische Oberfläche. In der Zeit vor der Produktion werden viele Prototypen erstellt um einige verschiedene Konzepte zu testen. Sei es die Bewegung der Charaktere oder auch nur die Geräuschkulisse beim Gehen eines Spielers. Prototypen sind im Gegensatz zu Testprogrammen, nicht nur auf den Code beschränkt, sie sind auch im Bereich von Design, Sound, Physik und Grafik im Einsatz. 1 Ein Dokument das die Richtlinien und Vorgaben des Kunden bzw. des Game Designer beinhaltet. 2 Eine Zwischensequenz, meist in Form eines kurzen Videoclips, in der die Handlung vorangetrieben wird. 2

2.3 Testen Früher waren Spiele weniger Komplex und es wurde meistens vom gleichen Programmierer getestet. Heutzutage ist dies nicht mehr möglich und große Publisher 3 beauftragen ganze Firmen um die Qualitätsbestimmungen zu erfüllen. Einen eigenen Standard in der Spielebranche gibt es nicht und somit Testet jede Firma auf ihre eigene Weise. Sobald die erste Zeile Code geschrieben wird fangen die Tests an. Tests sind wichtig um die Standfestigkeit des Codes bzw. des Spiels zu ermitteln. Es werden mögliche Fehler provoziert, um sie zu finden und zu eliminieren. Einen fixen Zeitpunkt, wann getestet wird gibt es nicht. Die Tests laufen immer wieder parallel neben der Produktion mit. Das Arbeitsfeld eines Spiele-Testers beinhaltet den Fund von nicht abgehandelten Fehlern und diese werden gesammelt und dem Entwickler Team übergeben. Sogenannte Bugs 4 sind in drei bestimmte Kategorien eingeteilt.[3] Klasse A : Kritische Fehler, die die unmittelbare Fertigstellung verhindern und das Spiel abstürzen lassen. Klasse B : Fehler die überarbeitet werden sollten, jedoch das Spiel ist noch spielbar. Klasse C : Mehr ein Vorschlag als ein Fehler. Klein und nicht von großer Wichtigkeit. Spiele werden vor allem auf die Funktionalität, die Einhaltung der Regeln und Stabilität getestet. 2.4 Fertigstellung Am Ende einer Produktion, kommt die Fertigstellung des Spiels. Sie beinhaltet das Aufpolieren. Nun werden die Alpha und Beta Phasen gestartet, bzw. ausgewertet. In der Spieleentwicklung ist die Alpha und Beta Phase von großer Bedeutung. Hier wird das Spiel, entweder öffentlich zugänglich gemacht, oder nur für eine kleine Auswahl, an potentielle Kunden vergeben. Nach diesen Phasen wird die Software nochmal überarbeitet und die gefundenen Fehler von den Testern behoben. Außerdem werden die Server, bei Spielen die eine Internetverbindung brauchen, ausgelastet und einem größeren Stresstest unterzogen. Nachdem all diese Test zufriedenstellend sind und der Publisher das Ok gibt, wird das Computerspiel an die Händler ausgeliefert. Das Spiel befindet sich dann sogenannten Gold-Status. Also frei von (bekannten) Fehlern. 2.5 Wartung Sobald die ersten Spiele verkauft worden sind, sammeln die Programmierer alle möglichen Fehlerberichte von Konsumenten und filtern diese nach Wichtigkeit. Wenn genügend Material zusammengekommen ist, wird versucht einen Patch mit der Fehlerabhandlung zu erstellen. Der Patch beinhaltet Fehlerbehebungen, jedoch kann er auch Spielerweiterungen im Bereich der Handlung, oder auch mögliche neue Inhalte wie Waffen, Charaktere, oder neue Karten haben. 3 Ein Publisher ist die Firma die das Spiel in der Öffentlichkeit Vertritt und vermarktet. Publisher beauftragen Entwicklerfirmen für die Erstellung von Spielen. Beispiel: Electronic Arts 4 Englisch für Fehler 3

2.6 Game Engine Softwareentwicklungsfirmen, die sich auf die Herstellung von Computerspielen spezialisiert haben, verwenden Game Engines die stets wiederverwendet werden. Grob kann man sagen, dass die Game Engine aus der Grafik Engine, der Physike Engine und der Sound Engine besteht. Künstliche Intelligenz und andere Themen werden auch noch in eine Engine zusammengefasst. Am Ende ist die Game Engine ein kompaktes Paket Code, das möglichst effizient und speichersparend arbeiten soll. Die Grafik Engine ist vor allem für das Laden von Texturen und die Renderings zuständig. Sie muss Unmengen an Daten in kürzester Zeit verarbeiten und sollte möglichst nah an die Hardware anliegen. Die sogenannten API s 5 sind die Schnittstellen zwischen Programmierer und der Hardware. Die zwei bedeutendsten Grafik API s sind DirectX und OpenGL. Um Spiele von der Bewegung her möglichst realistisch darzustellen, braucht es die Physik Engine. Sie wird dazu verwendet um Personen, wie im echten Leben gehen zu lassen, oder lässt Gegenstände naturgetreu fallen. Mit dem Ragdoll-Verfahren 6 kann man genauestens die Fallbewegung einer Person berechnen und implementieren. Am Anfang als die Ragdoll-Engine zum ersten mal eingesetzt worden ist, war die zu realistische Erscheinung sehr ungewohnt und nicht sehr beliebt. Heutzutage ist sie kaum noch wegzudenken, da sie vor allem im Bereich von Action-Kriegsspielen von großer Bedeutung ist. Damit auch der akustische Part des Menschen stimuliert wird, braucht ein Spiel eine Sound Engine. Mit Surroundsound kann der Spieler in Actionspielen akustisch die Position eines Gegners bestimmen und hat dadurch einen klaren Vorteil, jedoch ist hierfür auch die richtige Ausrüstung von nöten. Sei es ein gutes Headset, oder eine Soundkarte. Im Großen und Ganzen ist die Spieleprogrammierung ein Teilbereich, im Entwicklungsprozess eines Spiels. Um in dieser Branche beruflich tätig zu werden, ist es möglich an gewissen Universitäten bzw. Hochschulen Game Design als Kurs zu belegen. Damit hat man den Einstieg in die Spieleprogrammierung geschafft. Zum Schluss ist zu sagen, dass das Thema der Spieleprogrammierung in dieser Seminararbeit sehr verkürtzt dargestellt worden ist. Diese Thema umfasst noch viel mehr interessantere Bereiche der Programmierung, von den genutzten Tools, bis hin zu Entwicklung von Autonomer Intelligenz. 5 API steht für application programming interface. Also die Anwengunsprogrammierung dient als Schnittstelle. 6 Ragdollphysik: Vom englischen Ragdoll, bedeutet Stoffpuppe und wird dazu verwendet möglichst genaue menschliche Bewegungen zu simulieren. 4

Literaturverzeichnis [1] Digital Worlds Interactive Media and Game Design. The process of camge creation and the game design document. Operations Research, 2008. Zugriff: 4. Juni. 2013. [2] GameDevelop.eu Christoph P. Einführung in die spieleentwicklung. Operations Research, 2011. Zugriff: 3. Juni. 2013. [3] the free encyclopedia Wikipedia. Game testing, 2013. Zugriff: 4. Juni. 2013. 5