Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Projektgruppe KIMAS Unreal & Unreal Tournament 25.06.2003 Stefan Köhler.

Ähnliche Präsentationen


Präsentation zum Thema: "1/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Projektgruppe KIMAS Unreal & Unreal Tournament 25.06.2003 Stefan Köhler."—  Präsentation transkript:

1 1/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Projektgruppe KIMAS Unreal & Unreal Tournament 25.06.2003 Stefan Köhler

2 2/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Übersicht Einleitung Geschichte Versionen Programmaufbau Die Unreal-Welt Standard-Bots – Verhalten und KI Modifikationen der Engine Eigener Bot Fazit

3 3/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Einleitung Geschichte: entwickelt 1995 von Microprose und Legend Durch finanzielle Schwierigkeiten Verkauf der Lizenz 1997 an Epic Mastergames (jetzt Epic Games), aber weiterhin Grundrechte bei Microprose und Legend vollständig in C++ geschriebene 3D-Engine Verkauf und Vertrieb erstmals mit Unreal 1 In der Unreal-Reihe bisher erschienen: Unreal Unreal Tournament Unreal Championsship Unreal 2 Unreal Tournament 2003

4 4/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Einleitung Versionen First-Generation-Builds: Original Unreal-Engine nur Single-Player Second-Generation-Builds: auch als Tournament-Build bekannt, Builds 300-451 Erstmals bei Unreal Tounament Figuren wurden erstmals an Skeletten aufgehängt wurden in folgenden Spielen genutzt: Unreal Unreal Tournament Wheel of Time Deus Ex Harry Potter

5 5/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Einleitung Versionen Third-Generation-Builds: Sprung der Build-Nr. ab 927 (Americas Army) auf 2000+ (wg. UT2003) Implementierung eines neuen Partikel-Systems zur Darstellung komplexere Texturen Komplette Skelettanimation (siehe Halflife) erstmals Support für GameCube (ab Build 829) und X-Box (739) Wird derzeit von folgenden Spielen benutzt: Unreal 2, Splinter Cell, UT2003, Raven Shield geplant für: Deus Ex 2, XIII, Thief III

6 6/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Einleitung Versionen Fourth-Generation-Builds: Auch als Warefare-Builds bekannt Geplant bzw. in der Entwicklung Release erstmals mit Unreal Warefare Ab Build 3000+

7 7/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Einleitung Programmaufbau: Eigene VM Soft- und Hardware-Rendering Modular aufgebaut austauschbare Programmteile client-seitiges Sandbox-Modell nur sicheren System-Calls zugelassen andere werden abgewiesen Reihenfolge des Aufbaus: Anwendungen (Aktoren, etc.) Geometrie Triangle-Setup Texturen, Schatten, etc.

8 8/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Übersicht Einleitung Die Unreal-Welt Aufbau Darstellung Spielphysik Editor & Dateien Standard-Bots – Verhalten und KI Modifikation der Engine Eigener Bot Fazit

9 9/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Die Unreal-Welt Aufbau: Größe zur Zeit zwischen 6 und 75.000 Polygonen Maximal sinnvolle Größe bei 50.000 Polygonen Räume sind scheinbar nach oben offen 4 Arten von Objekten Meshes:[engl. Masche] Grundstruktur aller Objekte, die fest integriert sind Aktoren:alle Objekte, die reagieren können Pawns: (Spielsteine) Aktoren, die vom Spieler oder der KI gesteuert werden können, z.B. Bots Texturen Animationen Gravitationskonstante variierbar (Richtung, Stärke) Ticks bei U2 / UT2003 zwischen 1/8000 und 1/20000 Sekunde, je nach CPU

10 10/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Die Unreal-Welt Beispiel für eine offene Map Darstellung:

11 11/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Die Unreal-Welt Beispiel für Meshes und Aktoren:

12 12/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Die Unreal-Welt Spielphysik: Physikengine basiert auf Karma von Mathengine Bietet Optimierungen und Lösungen für viele Plattformen Auch in Black & White und Raven Shield eingesetzt Seit UT 2003 volle Ausnutzung der Engine, inkl. Erweiterungen Mittlerweile auch Unterstützung für Fahrzeuge Per-Poly Kollisionsabfrage Kollision wird für jedes Polygon einzeln berechnet Kostet aber sehr viel Rechenzeit für Kollision werden einfachere Formen genommen als für Grafik

13 13/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Die Unreal-Welt Spielphysik: Basiert auf BSP (Binary Space Partitioning) Unterteilt Welt durch Ebene in zwei Hälften (für jede Achse einzeln) Rekursives Wiederholen des Vorgangs für jede Hälfte Baumstruktur (Binärbaum) Für Abfrage eine Ebene suchen, die zwischen den Objekten liegt Für Kollisionspunkt testen, auf welcher Seite der Ebene das Polygon ist

14 14/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Die Unreal-Welt Spielphysik: 3 Modelle für die Objekte: KarmaCollision Objekt besteht aus einer Menge konvexer Hüllen BoxCollision übliches Modell für Bots, einfache Objekte LineCollision für Waffenfeuer, berechnet u.a. Auftreffwinkel Kollisionspunkte werden in einem gewissen Radius um das Objekt berechnet Kollisionspunkte bleiben bestimmte Zeit online Bots werden per zylindrischer OBB modelliert (Oriented Bounding Boxes)

15 15/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Die Unreal-Welt Vereinfachte Kollisionsgrenzen:

16 16/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Die Unreal-Welt Vorberechnete Kollisionsgrenzen:

17 17/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Die Unreal-Welt Kollisionsberechnung: X Richtungsvektor (& Geschwindigkeit) Zylindermittel- punkt (XYZ-Position) Ebene nEbene n+2Ebene n+3Ebene n+1

18 18/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Die Unreal-Welt Editor & Dateien: Standardmäßiger Editor UnrealEd (z.Zt. Version 3) Dient zum Erstellen von Maps, Einbinden von Aktoren, etc. Bietet die Möglichkeit Skripte zu exportieren Für jede Map werden Pfade erstellt 1.Beim Editieren werden Pfadpunkte gesetzt 2.UnrealEd versucht diese zusammenzufassen wenn A von B aus erreichbar ist, wird der Graph entsprechend erweitert 3.Resultat: komplexes Netz aus Pfaden Alle Meshes, die der Spieler nicht erreichen kann, werden aus der Kollisionsabfrage entfernt (z.B. wegen Raumgrenzen)

19 19/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Übersicht Einleitung Die Unreal-Welt Standard-Bots – Verhalten und KI Allgemein Verhalten KI Wahrnehmungen Schnittstelle Modifikationen der Engine Eigener Bot Fazit

20 20/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Allgemein: Für jeden Bot ist bekannt, ob er ein Pawn, also ein Spieler ein Menschlicher Spieler ein Monster ist Maximal 16 Bots möglich Ebenfalls Modular aufgebaut Standard-Bots

21 21/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Standard-Bots Verhalten: Bots gehen an Pfad-Knoten entlang Sind keine Pfade gesetzt, wird eigene Berechnung versucht Pfade verkürzen die Rechenzeit Bots, die außerhalb der Pfade sind, versuchen dorthin zurück zu kommen Weiterführendes Verhalten nur über Erweiterung der Bot-Klasse Bots sind in der Lage, Treppen, Türen, Aufzüge, etc. zu benutzen Pfade können kurzfristig verlassen werden, z.B. für Pickups

22 22/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament KI: 3 Arten von KI Team-KI z.B. gemeinsames Ziel beim BR: Ball ins Tor bringen Squad-KI z.B. bei BR: Ballträger schützen Bots Low-Level (Navigation, Zielen, Waffen verwalten, Hitpoints, etc.) Manöver wie größere Sprünge über AI-Scripte: Standard-Bots MoveToObject WaitForTimer

23 23/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament KI: Auch Objekte besitzen eine kleine KI: Tore beim Bombing Run (Punkte geben) Basen bei CTF Domination Kontrollpunkte usw. Es gibt verschiedene vordefinierte Scripts Für Pawns: ChangeWeapon, FinishRotation, MoveToPoint, StopShooting, … Für Level: ChangeLevel, GotoAction, LeaveSequence, … Außerdem Skripte für Konsoleneingaben, Sounds, etc. Standard-Bots

24 24/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Wahrnehmungen: Bots sehen nur Netzwerk aus Knoten und Pfaden Sicht prinzipiell wie bei Kollision, also schauen, ob ein Objekt in der Sichtlinie liegt Kann zu Problemen führen Sichtweite entspricht der von Spieleren Wird ein anderer Actor gesehen, so werden überprüft: 1.Geräusche (z.B. Schüsse) 2.Spieler-Aktoren 3.Nicht-Spieler-Aktoren (nicht UT) 4.Ziel überhaupt sichtbar Aber: Bots sehen auch bei schlechten Sichtverhältnissen alles Sichtweite ist Modifizierbar Objekte werden auf gleiche Weise gesichtet Standard-Bots

25 25/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Schittstelle: Bisher erbten Bots von der Klasse Pawn Seit UT2003 keine Änderung dieser Klasse mehr nötig Jetzt Erweiterungen des Verhaltens über Scripted Actions Verhalten kann auch über Mutatoren gesteuert werden: Standard-Bots function ModifyPlayer( Pawn Other ) { if ( Other.Controller != None ) { if ( Other.Controller.bIsPlayer && !Other.IsHumanControlled() ) { Log("Sight radius adjusted"); // repEndDist is the end distance of the fog Other.SightRadius = repEndDist / 8; }

26 26/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Übersicht Einleitung Die Unreal-Welt Standard-Bots – Verhalten und KI Modifikationen der Engine Voraussetzungen Arten von Modifikationen Wie modifiziert man? Unreal-Script Bekannte Mods & Mutatoren Eigener Bot Fazit

27 27/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Modifikationen Der Editor UnrealEd, welcher auch für den Export der Aktoren zuständig ist Den UnrealScript-Compiler ucc.exe Beides ist bei Unreal dabei einen Text-Editor (zum Beispiel UltraEdit, MS Developer Studio, usw.) Wissen, was man tut! z.B. etwas UnrealScript können Was möchte man haben Voraussetzungen:

28 28/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Modifikationen Mutatoren: kleine Programmerweiterungen, sehr eingeschränkte Funktionalität alles was über diese Regeln hinausgeht sind Gameplay-Mods folgen bestimmten Regeln: 1.jeder Mutator muss mit jedem anderen Mutator funktionieren 2.Mutatoren dürfen das Gameplay nur wenig ändern 3.Mutatoren sollten Ressourcen mit anderen Mutatoren teilen Arten von Modifikationen:

29 29/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Modifikationen Beispiel für Mutator: class MutNoAdrenaline extends Mutator; function bool IsRelevant(Actor Other, out byte bSuperRelevant) { if ( Other.IsA('AdrenalinePickup') ) { bSuperRelevant = 0; return false; } if ( Controller(Other) != None ) Controller(Other).bAdrenalineEnabled = false; return Super.IsRelevant(Other, bSuperRelevant); } defaultproperties { GroupName="Adrenaline" FriendlyName="No Adrenaline" Description="Adrenaline pickups are removed from the map." }

30 30/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Modifikationen Gametypes: Alle Gametypes sind einzigartig keine gemeinsame Nutzung möglich Enthalten im Allgemeinen neue Waffen, Pickups, neue KI-Features oder spezielle Aktoren, die nur hier funktionieren Keine Regeln Lediglich Schnittstellen müssen Beachtung finden Muss auf Client-Server Ausgaben reagieren können Arten von Modifikationen:

31 31/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Modifikationen Einfaches Beispiel: class MyGame expands DeathMatchPlus; Defaultproperties { GameName="My Game" } Erzeugt einen neuen Gametype, der auf DeathmatchPlus basiert ändert in diesem Fall nur den Namen Alle neuen Funktionen und Variablen sind Bestandteil von My Game

32 32/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Modifikationen Alles andere: Mods, die nicht über GameInfo- oder Mutatorklasse funktionieren Abweichende Programmregeln (sind aber auch in GameTypes möglich) Arten von Modifikationen:

33 33/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Modifikationen 1998 von Epic entwickelt Für Entwicklerteam und Third-Party-Entwickler Komplett auf Unreal und die 3D-Entwicklung zugeschnitten Ermöglicht die einfache Einbindung von z.B. Netzwerkkomponenten Verbindet die Vorzüge von C/C++ und Java Zeigerlose Umgebung mit automatischem Garbagecollector Vererbung und einfacher Klassengraph Datentypsicherheit Arbeitet auf Objekt- und Interaktionsebene UnrealScript:

34 34/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Modifikationen Insta-Gib Headshot BigHead … Verschiedene Gametypes Monsterrush Surviver Autorennen … Bekannte Mods:

35 35/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Übersicht Einleitung Die Unreal-Welt Standard-Bots – Verhalten und KI Modifikationen der Engine Eigener Bot Kommt nächste Woche Fazit

36 36/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Fazit Vorteile: Sehr umfangreiche Schnittstelle Praktisch unbegrenzte Möglichkeiten beim Modifizieren, von Kleinigkeiten bis hin zu komplexen Spielmodi Viele Tutorials Eigene Scriptsprache (nicht immer leicht verständlich) Objektorientiert (meistens) Eigener Compiler Sehr Stabil, da keine direkten Änderungen an der Engine gemacht werden Läuft auch unter Linux

37 37/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Fazit Nachteile: Vielleicht etwas zu umfangreich UnrealScript hat ab und zu Macken im Bereich OO Ausgabe des Compilers nicht immer nachvollziehbar Wenn wir Unreal nehmen, muss ich innerhalb von einer Woche meine Ausarbeitung schreiben und den Bot mitentwickeln

38 38/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Quellenverzeichnis Physikengines – State of the Art, Konzepte, B. Schmidt, M. Bader, 11/2002, http://www.uni-ulm.de/~s_hdamme/docs/lab/Physik-StateOfTheArt.pdf http://www.uni-ulm.de/~s_hdamme/docs/lab/Physik-StateOfTheArt.pdf Unreal Developer Network, http://udn.epicgames.comhttp://udn.epicgames.com Unreal Wiki –The Unreal Engine Documentation Site, http://wiki.beyondunreal.com http://wiki.beyondunreal.com Mathengine Karma und KAT, http://www.mathengine.com/karma_f.htmlhttp://www.mathengine.com/karma_f.html Mobile Agenten und Sicherheit, K. Umschaden (TU Wien), 2002, http://www.infosys.tuwien.ac.at/Teaching/Courses/AK2/vor99/t8/ http://www.infosys.tuwien.ac.at/Teaching/Courses/AK2/vor99/t8/


Herunterladen ppt "1/38 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – Unreal & Unreal Tournament Projektgruppe KIMAS Unreal & Unreal Tournament 25.06.2003 Stefan Köhler."

Ähnliche Präsentationen


Google-Anzeigen