Für neue Autoren:
kostenlos, einfach und schnell
Für bereits registrierte Autoren
Hausarbeit, 2019
30 Seiten, Note: 1,3
1. Einleitung und Zielsetzung
2. Die Prozedurale Synthese
2.1 Unterscheidung zu Prozeduraler Content Generation
2.2 Ziele der Prozeduralen Synthese
3. Ansätze der Prozeduralen Synthese
3.1 Der suchbasierte Ansatz (search-based approach)
3.1.1 Der evolutionäre Suchalgorithmus
3.1.2 Die Content Repräsentation (content representation)
3.1.2 Evaluationsfunktionen
3.1.3 Beispiel: Die StarCraft-Reihe
3.1.4 Andere Beispiele
3.2 Konstruktive Generierung (constructive generation)
3.2.1 Raumpartitionierung zur Dungeon-Generierung
3.2.2 Agent-basierte Dungeon-Generierung
3.2.3 Beispiel Spelunky
3.3 Fraktale und Agenten zur Landschaftsgenerierung
3.3.1 Diamond-Square-Algorithmus
3.3.2 Weitere Algorithmen
3.4 L-Systeme
3.4.1 Geklammerte L-Systeme (Bracketed L-Systems)
3.5 Computerassistierter Ansatz (Mixed-initiative)
4 Künstliche Intelligenz
4.1 Erfolgreiche KIs im Bereich der Spiele
4.2 Bedeutung für Contenterstellung
4.3 Neuronale Netze
4.4 Beispiel: Mystical Tutor
4.5 Ausblick NVIDIA
5. Fazit
Quellenverzeichnis
Seit Anfang des 21. Jahrhunderts ist der digitale Wandel in allen Bereichen des Lebens in der Weltgemeinschaft deutlich spürbar. Auf der Grundlage des Internets vernetzen sich immer mehr Menschen über Ihre Computer und Smart Devices miteinander.1 Inzwischen fallen hierdurch noch nie dagewesene Datenmengen an, sodass das Augenmerk der Industrie und Forschung auf die Nutzbarmachung jener Informationen fällt.2 Methoden des Big Data sind nun durch die vorhandenen Prozessor- und Speicherleistungen hinreichend vorhanden, um qualitatives Informationsmaterial für Künstliche Intelligenz (KI) bereitzustellen.3 Diese bringt in jüngster Zeit beeindruckende Ergebnisse in verschiedenen Optimierungs- und Gestaltungsaufgaben in Erscheinung.4 Zurzeit diskutiert die öffentliche Gemeinschaft das Thema zur Nutzung und den Umgang mit Künstlicher Intelligenz intensiv: Die Chancen seien einerseits vielversprechend und die Risiken beim unbedachten Umgang verheerend für unser Verständnis einer modernen Gesellschaft.5 Dies führt somit zu einer kritischen Auseinandersetzung mit jeder technischen Errungenschaft, welche die Künstliche Intelligenz hervorbringt. Wie beispielsweise auch in einer Demovorstellung aufgeführten Projekts des amerikanischen Unternehmens NVIDIA Corporation, welches die ersten Schritte zum Echtzeitrendern von neuen 3D-Umgebungen und Objekten anhand von Videosequenzen aus realen Autofahrten in einigen Städten vorstellte.6 Auffallend ist hierbei, dass das Verhalten von Objekten wie Autos und Passanten simuliert werden, die dem Verhalten von echten Verkehrsteilnehmern sehr ähneln. Diese Vorstellung Ende 2018 ist für mich Anreiz dieser Arbeit, welche den LeserInnen einen allgemeinen Überblick über praxisnahe Methoden und Techniken aufzeigen soll, die im Rahmen der prozeduralen Synthese genutzt werden, um schnell und speicherschonend in verschiedenen Anwendungsbereichen komplexe Medien- und Programminhalte zu erzeugen. Zudem soll sowohl der Einsatz von Künstlicher Intelligenz in diesem Kontext und seinen Auswirkungen aufgezeigt, sowie die zukünftigen Potenziale in diesem Bereich diskutiert werden.
Der Begriff „prozedural" beschreibt zunächst in der Informatik einen Prozess zur Berechnung konkreter Funktionen. Dies war und ist ein maßgeblicher Antrieb in der Computerentwicklung voranzuschreiten, um komplexere und schwierigere Berechnungen auszuführen. Spätestens 1975 prägte Benoit Mandelbrot mit dem Begriff der „Fraktale" mathematisch berechnete geometrische Muster, die erst mit Computerberechnungen detaillierte Bilder wie zum Beispiel der Mandelbrot-Menge (auch bekannt als „Apfelmännchen") hervorbrachten.78 Hierauf basierend wurden speziell in der Videospielindustrie prozedurale Algorithmen zur Entwicklung von Computerspielobjekten entwickelt.7 8 9 Gerade das Entwickeln von Texturen, das Animieren von Bildobjekten und implementieren von Spielmechaniken erforderten prozedurale Algorithmen, um höchstmöglichen Unterhaltungswert, bei vergleichbar bescheidenen Handwareleistungen jener Zeit, zu ermöglichen.10 Heutzutage ist die Prozedurale Synthese in der Videospielindustrie gängige Praxis.11 In dieser Arbeit, werden Beispiele zur Prozeduralen Synthese insbesondere aus videospielnahen Industrien vorgestellt, da sich viele Anwendungsfälle der Branche entsprechend in andere Bereiche übertragen lassen.
Da fachspezifische Literatur in der Computerspielentwicklung vorrangig englischsprachig vorhanden ist, wird die Prozedurale Content Generation (PCG) und Prozedurale Synthese (PS) oft gleichbedeutend oder als Prozedurale Generierung übersetzt. Jedoch gibt es Quellen, die durchaus Unterschiede anmerken. Hier wird in erster Linie betont, dass PCG auch Einfluss auf die Interaktion und die im Spiel geltenden Regeln (Gameplay) einnimmt und manuell designte Spielobjekte mitberücksichtig. Wohingegen in der PS per se vorgerenderte Elemente -zum Beispiel von Lichtverhältnissen in virtuellen Umgebungen- vermieden und das Echtzeitrendern bevorzugt wird (siehe: Ray-Tracing).12 Ferner betrachtet man den Zufallsaspekt der Algorithmen auf unterschiedliche Weisen. „The concept of randomness is also key: procedural content generation should ensure that from a few parameters, a large number of possible types of content can be generated.”13 In den folgenden Kapiteln wird Prozedurale Synthese stellvertretend für beide Ansatzweisen der obengenannten Definitionen betrachtet.
Wie bereits erwähnt bietet PS in verschiedenen Bereichen der Computerspielentwicklung zeit- und platzsparende Möglichkeiten im Vergleich zu manuell konstruierten Spielelementen.14 Durch Parameter wird ferner sichergestellt, dass die zu erzeugenden Spielobjekte bei jedem Programmstart gleich aussehen oder auch veränderbar und erweiterbar bleiben. Andererseits stellt sich für bestimmte Spiele der Zufallsaspekt der Algorithmen als wichtige Spielmechanik heraus. Hierdurch sind zum Beispiel neugeschaffene Leveldesigns möglich, die sich bei jedem Spielantritt neu „berechnen“ lassen. Diese „Rouge-Like“ Spiele besetzen, seit Veröffentlichung des namensgebenden Computerspiels Rouge 1980 von Michael Toy und Glenn Wichman, ihr eigenes Genre auf dem Markt.15
Die PS bedient sich wie zuvor angeschnitten prozeduraler Algorithmen, die sich je nach Einsatzbereich für die Implementierung eignen. Diese können auf zufälligen oder pseudozufälligen Prozessen beruhen, die somit die gewünschten Programm- oder Medieninhalte in Echtzeit erzeugen können.16 In den folgenden Kapiteln werden einige der gängigsten Ansätze und Algorithmen der PS mit Zuzug entsprechender Computerspiele als repräsentative Beispiele vorgestellt.
Der suchbasierte Ansatz, vertritt in erster Linie die Idee durch eine vordefinierte Suche von „Methapern“17 Elemente zu schaffen, die für den vorgegebenen Anwendungsfall „gut genug sind“.18 Hierbei werden evolutionäre Suchalgorithmen angewandt, die durch die projizierten Regeln der natürlichen Auslese, ganz nach Vorbild von Charles Darwin, iterativ Spielelemente erzeugen.19 Nach der Übertragung dieser Regeln in die gewünschte Art des Spielelements, werden durch Evaluationsfunktionen (auch: Fitnessfunktionen) die Eignung der generierten Elemente festgestellt.20 Zusammenfassend beruht der suchbasierte Ansatz auf drei wesentlichen Grundpfeilern die im Folgenden näher beleuchtet werden sollen:
Der evolutionäre Suchalgorithmus (ES) ist wie zuvor beschrieben aus den Konzepten Darwins zur natürlichen Selektion abgeleitet. Hiernach sind Individuen einer Population zufälligen Mutationen unterworfen, die in der nächsten Generation neue Merkmale und Eigenschaften hervorbringen, mit denen einige Individuen bessere Überlebenschancen erlagen.21 Innerhalb der PS geht es darum aus einer Reihe erzeugter Spielelemente die „passendste" zu selektieren. Die einzelnen Schritte dieses Algorithmus lassen sich wie folgt in einer Art Pseudocode leicht auflisten:
1. Initialisiere eine Population von + Â Individuen. Diese Individuen können zufällig generiert sein, Individuen aus einer vorherigen Generation oder vordesignte Elemete beinhalten.
2. Lass die Population zufällig mutieren. Dies ist ein optionaler Schritt, der hilft zu diskrete Individuen zu vermeiden und Übergangsvariationen zu bewahren.
3. Weise den Individuen durch die Evaluationsfunktion Fitnesswerte zu.
4. Sortiere die Population nach aufsteigendem Fitnesswert.
5. Entferne die „schlechtesten" Â-Individuen
6. Ersetze die entfernten Individuen durch Kopien der verbliebenden -Individuen. Diese Kopien werden dann Â-offspring Individuen genannt.
7. Mutiere die Â-offspring Individuen.
8. Stopp die Iteration, wenn „erfolgreiche" Individuen hervorgebracht werden, oder die maximale Anzahl an Generationen erreicht ist. Ansonsten gehe zurück zu Schritt 2.22
Die Content Repräsentation ist ein wichtiger Prozess zur semantischen Verknüpfung der Algorithmen mit den erwünschten Inhalten.23 Beispielsweise kann ein Level in einem Spiel in ein Array übertragen werden, dessen Werte die verschiedenen Elemente darin beschreibt. Hierzu wird in nachfolgenden Kapiteln näher am Beispiel des Computerspiels StarCraft von Blizzard Entertainment eingegangen. Dieser Prozess ist deswegen wichtig, um im Endergebnis der Generierung von prozeduralen Elementen starke Abweichungen zu vermeiden.24
Nachdem Spielelemente erzeugt wurden, wird geprüft, ob diese den gewünschten Anforderungen genügen. Hierbei gibt es verschiedenen Ansätze, um überhaupt Anforderungen zu stellen. In der Videospielindustrie werden diese Anforderungen oft mit „spaßig“ umschrieben. Der Spaß, der durch die Interaktion mit Spielelementen entsteht ist oft das Maß der Güte in Videospielen. Wissenschaftlich wurde „Spaß“ im Rahmen dieses Kontextes von Togelius beleuchtet.25 Er beschreibt hierzu drei Ansätze oder auch Kategorien von Evaluationsfunktionen für suchbasiert und prozedural generierten Spielinhalten (Direkte Evaluationsfunktionen, simulationsbasierte Evaluationsfunktionen und interaktive Evaluationsfunktionen), die in dieser Arbeit nicht tiefergehend behandelt werden sollen.26 Hervorzuheben sind jedoch die Vor -und Nachteile der genannten Evaluationsansätze. Der direkte Ansatz hebt sich durch seine schnelle Umsetzung besonders hervor. Der simulationsbasierte Ansatz benötigt einen Spielagenten oder eine KI, die das Spiel selbstständig testet. Der interaktive Ansatz erfordert eine kritische Anzahl an realen Spielern um nutzbare Ergebnisse zu generieren.
Das Spiel StarCraft ist ein im Jahre 1998 erschienenes Computerspiel von Blizzard Entertainment. Es ist ein weitbekannter Vertreter des Real-Time-Strategy (kurz: RTS) Genres und ist mit den Fortsetzungen Starcraft II und Starcraft: Remastered immer noch ein vielgespieltes Computerspiel, welches sich auch im Rahmen des eSports einer großen Gemeinschaft und Zuseherschaft erfreut.27 Das Spielprinzip beinhaltet, dass in einer fiktiven/futuristischen Welt mehrere Spieler sich mit verschiedenen Klassen von Zivilisationen durch Basisbau, Wirtschaftsaufbau und militärischer Auseinandersetzung im selben Level (=Map) behaupten müssen.28
Abbildung in dieser Leseprobe nicht enthalten
Abb. 1: Screenshot des Starcraftgames (Game Abb. 2: Screenshot einer Starcraft Map Watcher, 2010) (Starcraft fandom, 2013)
Content Repräsentation: Die Maps werden als Vektoren von realen Zahlen mit ca. 100 Dimensionen repräsentiert. Diese Parameter bestimmen über gewisse Eigenschaften der Objekte, die auf der Map generiert werden sollen. Diese Eigenschaften beinhalten Informationen zur Position, Passierbarkeit oder Grafik. Diese Vektoren werden dann als zweidimensionale Matrix zu Blöcken zusammengefasst und anschließend in ein gültiges Starcraft Map Format übersetzt.29
Evaluation: Acht verschiedene Evaluationsfunktionen werden genutzt, um unterschiedliche Aspekte bei der prozeduralen Synthese zu berücksichtigen. Diese schließen viele taktische Einzelheiten mit ein, um eine faire Map mit gleichen Ausgangsbedingungen zu generieren. Besonders werden hier durch den A*Algorithmus Pfade auf der Map ausfindig gemacht, die darüber entscheiden wie Objekte in der Spielwelt verteilt und somit erreichbar für die Spieler sind. Es werden auch Freiflächen beachtet, welche über taktische Begebenheiten bestimmen und somit auch als gewichtige Faktoren über den „Spaß“ des Spiels entscheiden.30
Algorithmus: Wie man aus der Anzahl der Evaluationsfunktionen vermuten kann, müssen viele Eigenschaften im Suchalgorithmus beachtet werden. Hierbei hat sich das SMS-EMOA (Effektive evolutionäre Mehrzieloptimierung) als Standardansatz herauskristallisiert, sodass entsprechend hinreichend gute Ergebnisse erzielt werden konnten.31
Basierend auf dieselbe bzw. ähnliche Herangehensweise, gibt es weitere Computerspiele aus verschiedenen Genres, die prozedurale Level oder Maps kreieren. Auch außerhalb der Computerspielbranche, wird nach demselben Prinzip prozedural synthetisiert. Beispiele finden sich hierzu in der Musikproduktion oder auch in Branchen zur Bildbearbeitung.32
Die konstruktive Generierung zeichnet sich vor allem dadurch aus, dass die genutzten Algorithmen in fixen Zeitabschnitten laufen. Oft ist dieser Zeitabschnitt so klein, dass Sie in Videospielen innerhalb den Programmlaufs stattfinden können. Zudem existiert keine Evaluation des Resultats und somit auch keine „Verbesserung" des erzeugten Inhalts. Ähnlich wie im evolutionären Ansatz ist die Handhabung vergleichsweise leicht. Insbesondere Spiele des Rouge-like Genres, die meistens mit Dungeon-Umgebungen (Dungeon=Verlies) arbeiten, nutzen diesen Ansatz unteranderem als elementare Spielmechanik.33 Wie in folgenden Beispielen gezeigt wird, werden hierbei immer neue, sich voneinander unterscheidende Level generiert, die die Spieler stets vor neuen Herausforderungen stellen. Auch mit diesem Ansatz sind verschiede Herangehensweisen möglich. In den folgenden Unterkapiteln werden die populärsten Ansätze vorgestellt.
Die Raumpartitionierung dient dazu einen Raum in kleinere Teilräume zu unterteilen. Diese Teilräume, auch Zellen genannt, werden dann rekursiv bis zur gewünschten Größe unterteilt. Da diese Partitionierung einer gewissen Hierarchie folgt, ist hierdurch das Erstellen eines Raumpartitionsbaums möglich, mit dessen Hilfe später schnelle Berechnungen zur Erzeugung von prozeduralen Leveln möglich ist.34 Die beliebteste Methode zur Raumpartitionierung ist die binäre Raumpartitionierung (binary space partitioning auch: BSP), dessen Grundlage durch einen BSP-Baum abgebildet werden kann. Jede Raumpartition hat die Eigenschaft nochmals im zweidimensionalen Raum in Quadranten und im dreidimensionalen Raum in Oktanten unterteilt zu werden.35
Abbildung in dieser Leseprobe nicht enthalten
Abb. 6: Zunächst werden die Räume erzeugt. Daraufhin werden „Tunnel" oder „Korridore" erstellt, die die einzelnen Räume so verbinden, dass Start- und Endraum einem gemeinsamen Pfad folgen.
Abbildung in dieser Leseprobe nicht enthalten
Abb. 5: Unterteilung eines konkreten Dungeons mithilfe der Raumpartitionierung. (Shaker, 2016)
Auch für den Ablauf dieser konstruktiven Generierung lässt sich ein simpler Pseudocode, erstellen, um eine Raumpartitionierung zur Dungeon-Generierung besser nachvollziehen zu können:36
1. Starte mit dem gesamten Raum, welches dem Dungeon zur Verfügung steht. (Startknoten des BSP-Baums)
2. Teile den Raum horizontal oder vertikal auf.
3. Wähle einen der beiden neuerzeugten Partitionszellen.
4. Wenn die Zelle größer ist als die minimal akzeptierte Größe: Gehe zurück zu Schritt 2
5. Wähle die andere Zelle und gehe zu Schritt 4.
6. Für alle Zellen: Erstelle einen Raum innerhalb der Zellengeometrie, mit zufälligen Ausmaßen und zufälliger Position.
7. Zeichne Korridore ein die jeden Raum miteinander verbinden die nach dem BSP-Baum Kinder derselben Eltern sind.
8. Wiederhole Schritt 7 solange bis alle die Kinder des Startknotens miteinander verknüpft sind.37
Zur besseren Veranschaulichung kann die Raumpartitionierung und die Verbindung der Räume durch Korridore in folgenden Grafiken noch einmal nachvollzogen werden.
Abbildung in dieser Leseprobe nicht enthalten
Abb. 7: Einzelne Schritte der
Raumpartitionierung entsprechend des obengenannten Algorithmus. Zudem Entwicklung des BSP-Baums in den einzelnen Schritten. (Shaker, 2016)
Abbildung in dieser Leseprobe nicht enthalten
Abb. 8: Verbindung der der Räume durch Korridore in chronologischer Reihenfolge. Entsprechend werden zusammenhängende Pfade im BSP-Baum nachvollzogen. (Shaker, 2016)
Ein besonderer Vorteil der Raumpartitionierung ist das Überlappungen von Räumen ausgeschlossen sind.38
In der Agent-basierten Dungeon-Generierung wird ein Agent genutzt, der quasi „Tunnel“ in die entsprechenden Räumen „gräbt“ und dadurch neue Räume gestaltet.39 Diese Herangehensweise verleiht dem Dungeon ein organisches Wachstum, jedoch sind je nach Agenten mit unvorhersehbaren Räumen zu rechnen.40 Diese Unberechenbarkeit führt dazu, dass gute Ergebnisse nur nach dem „Trial and Error“ Prinzip erzielt werden können, auch wenn weniger zufallsbasierte Agenten genutzt werden könnten.41
[...]
1 Vgl. Statista: Anzahl der Internetnutzer weltweit in den Jahren 2005 bis 2017 sowie eine Schätzung für das Jahr 2018 (in Millionen), Dezember 2018, [online] https://de.statista.com/statistik/daten/studie/805920/umfrage/anzahl-der-internetnutzer-weltweit/ [07.07.2019]
2 Vgl. Frauenhofer-Gesellschaft: Kommunikation und Wissen - Big Data, 2019, [online] https://www.fraunhofer.de/de/forschung/forschungsfelder/kommunikation-wissen/big-data.html [07.07.2019]
3 Vgl. Sheldon, Robert: KI versus Big Data: Vergleich der aufstrebenden Technologien, Juni 2018, [online] https://www.computerweekly.com/de/feature/KI-versus-Big-Data-Vergleich-der-aufstrebenden-Technologien [07.07.2019]
4 Vgl. Jaedtke, Kathleen: KI als kreative Intelligenz? 4 Misserfolge und 3 Erfolge, 06.03.2019, [online] https://blog.hubspot.de/marketing/kreative-intelligenz [07.07.2019]
5 Vgl. Stiftung für effektiven Altruismus: Künstliche Intelligenz: Chancen und Risiken - Diskussionspapier, 2015, [online] chrome-extension://oemmndcbldboiebfnladdacbdfmadadm/https://ea- stiftung.org/s/Kunstliche-Intelligenz-Chancen-und-Risiken.pdf [07.07.2019]
6 Vgl. Nvidia Corporation: NVIDIA Invents AI Interactive Graphics, 03.12.2018, [online] https://news.developer.nvidia.com/nvidia-invents-ai-interactive-graphics/?ncid=so-you-ndrhrhn1-66582 [07.07.2019]
7 Vgl. Welt (Axel Springer SE): Vater der Fraktale - Mandelbrot bewies die Schönheit der Mathematik, 17.10.2010, [online] https://www.welt.de/wissenschaft/article10361079/Mandelbrot-bewies-die-Schoenheit- der-Mathematik.html [07.07.2019]
8 Vgl. Dambeck, Holger: Numerator: Apfelmännchen erobert die dritte Dimension, in: Spiel Online / Wissenschaft, 29.12.2009, [online] https://www.spiegel.de/wissenschaft/mensch/numerator-apfelmaennchen- erobert-die-dritte-dimension-a-669220.html [07.07.2019]
9 Vgl. Jan Bojaryn: Prozedurale Generierung - Computer werden kreativ, 10.04.2014, [online] https://www.golem.de/news/prozedurale-generierung-computer-werden-kreativ-1404-105415.html [07.07.2019]
10 Vgl. Bojaryn (2014): Not macht erfinderisch: Unendliche Welten aus Ressourcenmangel, in: Prozedurale Generierung - Computer werden kreativ, [07.07.2019]
11 Vgl. Adams, Tarn: Procedural Generation in Game Design, 1. Auflage, Boca Raton, USA: CRC Press, 2017, S. 3.
12 Vgl. PCG Wikidot: What is Procedural Content Generation?, 06.07.2019, [online] http://pcg.wikidot.com/ [07.07.2019]
13 Vgl. PCG Wikidot (2019) ebenda [07.07.2019]
14 Vgl. PCG Wikidot (2019) [07.07.2019]
15 Vgl. Dotson, Carter: The Beginner's Guide to Rougelikes, 24.06.2019, [online] https://www.lifewire.com/what-are-roguelikes-4117411 [08.07.2019]
16 Vgl. Shaker, Noor / Togelius, Julian / Nelson, Mark J.: Procedural Content Generation in Games, 1. Auflage, Cham, Schweiz: Springer, 2016, S. 1f.
17 Shaker et al., 2016, S. 17
18 Shaker et al., 2016, ebenda
19 Vgl. Shaker et al., 2016, S.18
20 Vgl. Shaker et al., 2016, ebenda
21 Vgl. Darwin, Charles: The Origin of Species - By Means of Natural Selection, or the Preservation of Favoured Races in the Struggle for Life, 1. Auflage (1876), Digitale Version, New York, USA: Cambridge University Press, 2009, S. 62ff.
22 Vgl. Shaker et al., 2016, S.19
23 Vgl. Shaker et al., 2016, S. 20
24 Vgl. Shaker et al., 2016, S. 20ff.
25 Vgl. Togelius, J / Nardi, R.D., Lucas, S.M.: Making racing fun through player modeling and track evolution, in: Proceedings of the SAB'06 Workshop on Adaptive Approaches for Optimizing Player Satisfaction in Computer and Physical Games, 2016
26 Vgl. Shaker, et al., 2016, S.23f.
27 Vgl. Borda, Boris: Starcraft 2: Wings of Liberty - So geht es in Zukunft weiter - Zusammenfassung der BlizzCon 2016, 05.11.2016, [online] https://www.pcgames.de/Starcraft-2-Wings-of-Liberty-Spiel-34650/News/So-geht- es-in-Zukunft-weiter-Zusammenfassung-der-BlizzCon-2016-1212607/ [08.07.2019]
28 Vgl. Fachstelle für Jugendmedienkultur: Starcraft2, in: Spieleratgeber NRW, o. J., [online] https://www.spieleratgeber-nrw.de/Starcraft-2.3182.de.1.html [08.07.2019]
29 Vgl. Shaker et al., 2016, S. 25.
30 Vgl. Shaker et al., 2016, ebenda
31 Vgl. Shaker et al., 2016, ebenda
32 Vgl. Eno, Brian: Generative Music, in: A talk delivered in San Francisco, 08.06.1996, [online] www.inmotionmagazine.com/eno1.html [07.07.2019]
33 Vgl. Shaker et al., 2016, S. 31f.
34 Vgl. Shaker et al., 2016, S. 33f.
35 Vgl. Shaker et al., 2016, ebenda
36 Vgl. Shaker et al., 2016, S. 34.
37 Vgl. Shaker et al., 2016, S. 36f.
38 Vgl. Shaker et al., 2016, S. 37.
39 Vgl. Shaker et al., 2016, S. 38f.
40 Vgl. Shaker et al., 2016, ebenda.
41 Vgl. Shaker et al., 2016, S. 39.
Seminararbeit, 15 Seiten
Philosophie - Praktische (Ethik, Ästhetik, Kultur, Natur, Recht, ...)
Hausarbeit (Hauptseminar), 25 Seiten
Seminararbeit, 33 Seiten
Seminararbeit, 19 Seiten
Philosophie - Praktische (Ethik, Ästhetik, Kultur, Natur, Recht, ...)
Doktorarbeit / Dissertation, 365 Seiten
Hausarbeit (Hauptseminar), 27 Seiten
Philosophie - Theoretische (Erkenntnis, Wissenschaft, Logik, Sprache)
Hausarbeit (Hauptseminar), 35 Seiten
Seminararbeit, 15 Seiten
Philosophie - Praktische (Ethik, Ästhetik, Kultur, Natur, Recht, ...)
Hausarbeit (Hauptseminar), 25 Seiten
Seminararbeit, 33 Seiten
Seminararbeit, 19 Seiten
Philosophie - Praktische (Ethik, Ästhetik, Kultur, Natur, Recht, ...)
Doktorarbeit / Dissertation, 365 Seiten
Hausarbeit (Hauptseminar), 27 Seiten
Philosophie - Theoretische (Erkenntnis, Wissenschaft, Logik, Sprache)
Hausarbeit (Hauptseminar), 35 Seiten
Der GRIN Verlag hat sich seit 1998 auf die Veröffentlichung akademischer eBooks und Bücher spezialisiert. Der GRIN Verlag steht damit als erstes Unternehmen für User Generated Quality Content. Die Verlagsseiten GRIN.com, Hausarbeiten.de und Diplomarbeiten24 bieten für Hochschullehrer, Absolventen und Studenten die ideale Plattform, wissenschaftliche Texte wie Hausarbeiten, Referate, Bachelorarbeiten, Masterarbeiten, Diplomarbeiten, Dissertationen und wissenschaftliche Aufsätze einem breiten Publikum zu präsentieren.
Kostenfreie Veröffentlichung: Hausarbeit, Bachelorarbeit, Diplomarbeit, Dissertation, Masterarbeit, Interpretation oder Referat jetzt veröffentlichen!
Kommentare