prof. dr. tobias lenz htw berlin aus ... · •auch ohne grafik mit textausgabe... oder ausgabe in...

13
18.09.2018 1 Prof. Dr. Tobias Lenz HTW Berlin AUS VERÖFFENTLICHUNGSRECHTLICHEN GRÜNDEN WURDEN ALLE BILDER ENTFERNT

Upload: others

Post on 11-Sep-2019

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Prof. Dr. Tobias Lenz HTW Berlin AUS ... · •Auch ohne Grafik mit Textausgabe... oder Ausgabe in Excel-Zellen •Game loop Schleife EingabeAbfragen() SpielweltAktualisieren() GrafikAusgeben()

18.09.2018

1

Prof. Dr. Tobias Lenz

HTW Berlin

AUS VERÖFFENTLICHUNGSRECHTLICHEN GRÜNDEN

WURDEN ALLE BILDER ENTFERNT

Page 2: Prof. Dr. Tobias Lenz HTW Berlin AUS ... · •Auch ohne Grafik mit Textausgabe... oder Ausgabe in Excel-Zellen •Game loop Schleife EingabeAbfragen() SpielweltAktualisieren() GrafikAusgeben()

18.09.2018

2

• Eigene Anforderungen

• Muss für 5 Minuten unterhalten (“Kurzzeitspiele”)

• Unterbrechen beim Umsteigen

• Einfache Regeln

• Einfache Steuerung

• Eigene Zielgruppe

• Klassische Spiele haben junge Männer als Zielgruppe

• Mobile Games verstärkt für Frauen und “casual gamers”

• Eigene Vermarktungsmodelle

• Gratis

• In-App-Käufe

Page 3: Prof. Dr. Tobias Lenz HTW Berlin AUS ... · •Auch ohne Grafik mit Textausgabe... oder Ausgabe in Excel-Zellen •Game loop Schleife EingabeAbfragen() SpielweltAktualisieren() GrafikAusgeben()

18.09.2018

3

• Spiele sind vom “Ein-Mann-Projekt aus Leidenschaft” zu

hochkommerzialisierten Produkten geworden

• Ähnlich zur Filmbranche schafft die Spieleindustrie vielfältige

Arbeits- und Ausbildungsplätze

• Zwei Teilgebiete

• Game Design (Story, Charaktere, Handlung) – Künstlerisch

• Game Technology – Informatik

• Früher häufig in einer Person, oder Spiel um Grafikeffekt herumgebaut

• Handlung bei Space Invaders überzeugend?

• Viele Standardelemente

(Netzwerk, Event-Systeme,

Webshop, ...)

• Entwicklung all dieser

Komponenten zu schade

zum Wegwerfen

• Führte zur Abstraktion in

wiederverwendbare “Game

Engine” und spielspezifischen

“Game Content”

Page 4: Prof. Dr. Tobias Lenz HTW Berlin AUS ... · •Auch ohne Grafik mit Textausgabe... oder Ausgabe in Excel-Zellen •Game loop Schleife EingabeAbfragen() SpielweltAktualisieren() GrafikAusgeben()

18.09.2018

4

• Viele Game Engines werden innerhalb derselben Firma für

andere Projekte/Fortsetzungen recycelt

• Andere haben ihr System gegen Lizenzgebühr anderen Firmen

zur Verfügung gestellt

• Heute gibt es auf Game Engines spezialisierte Anbieter, die selber

nur den Rahmen schaffen und dazu komplexe grafische

Werkzeuge anbieten

• Allgemeine Prinzipien? Wie funktionieren diese einzelnen

Komponenten?

• Oder lieber Umgang mit dem fertigen System lehren?

• Industrievertreter (& manche Studierende) bevorzugen Letzteres

• Wir versuchen beides

• Fächer wie Computergrafik und Artificial Intelligence for Games gehen

direkt auf die zugrundeliegende Technik ein

• Fächer Game Engines und Games and Simulation Technology lehren

Umgang mit fertigen Systemen

Page 5: Prof. Dr. Tobias Lenz HTW Berlin AUS ... · •Auch ohne Grafik mit Textausgabe... oder Ausgabe in Excel-Zellen •Game loop Schleife EingabeAbfragen() SpielweltAktualisieren() GrafikAusgeben()

18.09.2018

5

• Unreal Engine

• Unity 3D

• CryEngine

• Alle ähnlich aufgebaut, aber im Detail sehr verschieden

• Zum Probieren und für Hobbyprojekte komplett kostenlos

• Einfache Installation, massenhaft Anleitungsvideos zum Einstieg

• Kommen nicht ohne Programmierung aus

• Passt die Programmiersprache?

• Wenn ja, dann lassen sich kleine Projekte in wenigen Stunden realisieren

• Nein? Dann sehr zeitaufwändig oder gar verwirrend

• Zum Teil mit visueller Programmierung

• Erfordert Wissen über interne Abläufe

Page 6: Prof. Dr. Tobias Lenz HTW Berlin AUS ... · •Auch ohne Grafik mit Textausgabe... oder Ausgabe in Excel-Zellen •Game loop Schleife EingabeAbfragen() SpielweltAktualisieren() GrafikAusgeben()

18.09.2018

6

• Hersteller

• Epic Games

• USA

• Sprachen

• C++

• Blueprints

• Hersteller

• Unity Technologies

• Dänemark

• USA

• Sprachen

• C#

• JavaScript

Page 7: Prof. Dr. Tobias Lenz HTW Berlin AUS ... · •Auch ohne Grafik mit Textausgabe... oder Ausgabe in Excel-Zellen •Game loop Schleife EingabeAbfragen() SpielweltAktualisieren() GrafikAusgeben()

18.09.2018

7

• Hersteller

• Crytek

• Deutschland

• Sprachen

• C++

• C#

• Meine Erfahrung

• Leute motivieren, Werkzeug reichen, Richtung weisen, Spiel fertig

• 2D-Grafik, Tastatur/Maus, einfache Kollisionserkennung, Fertig

• Auch ohne Grafik mit Textausgabe... oder Ausgabe in Excel-Zellen

• Game loop

Schleife

EingabeAbfragen()

SpielweltAktualisieren()

GrafikAusgeben()

Page 8: Prof. Dr. Tobias Lenz HTW Berlin AUS ... · •Auch ohne Grafik mit Textausgabe... oder Ausgabe in Excel-Zellen •Game loop Schleife EingabeAbfragen() SpielweltAktualisieren() GrafikAusgeben()

18.09.2018

8

• Offener Standard, verwaltet von der Khronos Group

• Existiert auf jeder Plattform

• Unterstütz jede Grafikhardware der letzten 20 Jahre

• Anbindung an jede Programmiersprache vorhanden

• In C/C++ unmittelbar, sonst über frei verfügbare “bindings”

• Einfach zu installieren/verwenden

• In Java: www.lwjgl.org

• Selten Studierende so kreativ und motiviert erlebt, mit 4

Befehlen (in unserer Veranstaltung Computergrafik)

• //vorgegebener Code zum Öffnen eines Fensters

• glBegin(GL_POINTS)

• //GL_LINES, GL_TRIANGLES, GL_QUAD, GL_POLYGON

• glColor3f(rot, grün, blau)

• glVertex3f(x,y,z)

• ...

• glEnd()

Page 9: Prof. Dr. Tobias Lenz HTW Berlin AUS ... · •Auch ohne Grafik mit Textausgabe... oder Ausgabe in Excel-Zellen •Game loop Schleife EingabeAbfragen() SpielweltAktualisieren() GrafikAusgeben()

18.09.2018

9

• Vorstellung der Zahlenebene, räumliche Vorstellung

• Vektorrechnung

• Orientierung von Dreiecken/Polygonen

• Farblehre (RGB, additives Farbsystem)

• Lineare Algebra

• Skalarprodukt, Kreuzprodukt

• Transformationen/Projektion als Matrizenmultiplikation

• Basistransformation

• Alles zum Ausprobieren geeignet und Ergebnisse sofort sichtbar

• Labyrinth bauen & lösen

• Programmierkonzepte: Rekursion, Backtracking

• Graphentheorie: Zusammenhang, Breiten-/Tiefensuche

• Game Technology

• Wie entsteht die Spielwelt?

• In welcher Datenstruktur wird diese abgelegt und wie wieder zugegriffen

• Machen die “Profis” auch

• Heißt dann “prozedurale Generierung von Spielwelten”

• Z.B. in No Man’s Sky oder Dead Cells

Page 10: Prof. Dr. Tobias Lenz HTW Berlin AUS ... · •Auch ohne Grafik mit Textausgabe... oder Ausgabe in Excel-Zellen •Game loop Schleife EingabeAbfragen() SpielweltAktualisieren() GrafikAusgeben()

18.09.2018

10

• Rundenbasiert vs. Echtzeit

• Raster vs. frei beweglich

• Umfangreiche Grafik/Animation/Audio vermeiden

• Auf Spielmechanik konzentrieren

• Bedarf für “Balancing“ vermeiden

• Perfekte Spielbarkeit nicht wichtig

• Memory

• Runden

• Raster

• simple Grafik

• Tetris

• Echtzeit

• Raster

• simple Grafik

Page 11: Prof. Dr. Tobias Lenz HTW Berlin AUS ... · •Auch ohne Grafik mit Textausgabe... oder Ausgabe in Excel-Zellen •Game loop Schleife EingabeAbfragen() SpielweltAktualisieren() GrafikAusgeben()

18.09.2018

11

• Sokoban

• Runden

• Raster

• Grafik oder Textzeichen

• Level laden?

• Schiffe versenken

• Runden

• Raster

• Netzwerk für 2 Spieler

• Kartenspiele

• Runden

• keine Spielwelt

• Netzwerk für mehr als 2?

• Labyrinth

• Welt generieren

• Netzwerk?

• Highscore?

• ...

Page 12: Prof. Dr. Tobias Lenz HTW Berlin AUS ... · •Auch ohne Grafik mit Textausgabe... oder Ausgabe in Excel-Zellen •Game loop Schleife EingabeAbfragen() SpielweltAktualisieren() GrafikAusgeben()

18.09.2018

12

• Astroids

• Echtzeit

• Freie Bewegung

• Kollisionsabfrage

• Simple Spielwelt

• Spielen motiviert

• Große Spiele und aufwändige Technik zu komplex

• Auch “klassische” Themen lassen sich spielerisch verpacken oder

damit motivieren

• Kreativ sein und Kreativität fördern

• Spielen ist überall möglich

Page 13: Prof. Dr. Tobias Lenz HTW Berlin AUS ... · •Auch ohne Grafik mit Textausgabe... oder Ausgabe in Excel-Zellen •Game loop Schleife EingabeAbfragen() SpielweltAktualisieren() GrafikAusgeben()

18.09.2018

13

• Game Engines

• www.unity3d.com

• www.unrealengine.com

• www.crytek.com/cryengine

• OpenGL

• Offizielle Seite: www.opengl.org

• Bindings: www.khronos.org/opengl/wiki/Language_bindings

• Java: www.lwjgl.org