VirtualPatt 2000 Interaktives 3D-Schachspiel unter Verwendung von C++ und OpenGL Präsentation von...

30
VirtualPatt 2000 VirtualPatt 2000 Interaktives 3D-Schachspiel Interaktives 3D-Schachspiel unter Verwendung von C++ und OpenGL unter Verwendung von C++ und OpenGL Präsentation von C. Steller, F. Präsentation von C. Steller, F. Caspar und C. Brähler Caspar und C. Brähler

Transcript of VirtualPatt 2000 Interaktives 3D-Schachspiel unter Verwendung von C++ und OpenGL Präsentation von...

Page 1: VirtualPatt 2000 Interaktives 3D-Schachspiel unter Verwendung von C++ und OpenGL Präsentation von C. Steller, F. Caspar und C. Brähler.

VirtualPatt 2000VirtualPatt 2000

Interaktives 3D-SchachspielInteraktives 3D-Schachspielunter Verwendung von C++ und OpenGLunter Verwendung von C++ und OpenGLPräsentation von C. Steller, F. Caspar und Präsentation von C. Steller, F. Caspar und

C. BrählerC. Brähler

Page 2: VirtualPatt 2000 Interaktives 3D-Schachspiel unter Verwendung von C++ und OpenGL Präsentation von C. Steller, F. Caspar und C. Brähler.

11.04.23 2virtualpatt2000.de

VirtualPatt 2000VirtualPatt 2000

Vorstellung des ProjektesVorstellung des Projektes OpenGL in der AnwendungOpenGL in der Anwendung besondere Herausforderungenbesondere Herausforderungen Software-EngineeringSoftware-Engineering DemonstrationDemonstration

Page 3: VirtualPatt 2000 Interaktives 3D-Schachspiel unter Verwendung von C++ und OpenGL Präsentation von C. Steller, F. Caspar und C. Brähler.

11.04.23 3virtualpatt2000.de

InternetauftrittInternetauftritt

Page 4: VirtualPatt 2000 Interaktives 3D-Schachspiel unter Verwendung von C++ und OpenGL Präsentation von C. Steller, F. Caspar und C. Brähler.

11.04.23 4virtualpatt2000.de

funktionale Projektzielefunktionale Projektziele

3D-Schachspiel mit GUI3D-Schachspiel mit GUI Unterstützung einer KI-LogikUnterstützung einer KI-Logik zahlreiche Animationenzahlreiche Animationen Ausleuchtung / LichteffekteAusleuchtung / Lichteffekte SoundeffekteSoundeffekte

Page 5: VirtualPatt 2000 Interaktives 3D-Schachspiel unter Verwendung von C++ und OpenGL Präsentation von C. Steller, F. Caspar und C. Brähler.

11.04.23 5virtualpatt2000.de

technische Projektzieletechnische Projektziele

Entwicklung in C++Entwicklung in C++ saubere Abbildung im OO Paradigmasaubere Abbildung im OO Paradigma Graph. Darstellung mit QT / Graph. Darstellung mit QT /

OpenGLOpenGL PlattformunabhängigkeitPlattformunabhängigkeit Einbindung einer externen Schach-Einbindung einer externen Schach-

EngineEngine

Page 6: VirtualPatt 2000 Interaktives 3D-Schachspiel unter Verwendung von C++ und OpenGL Präsentation von C. Steller, F. Caspar und C. Brähler.

11.04.23 6virtualpatt2000.de

VirtualPatt 2000VirtualPatt 2000

Page 7: VirtualPatt 2000 Interaktives 3D-Schachspiel unter Verwendung von C++ und OpenGL Präsentation von C. Steller, F. Caspar und C. Brähler.

11.04.23 7virtualpatt2000.de

Graphical User InterfaceGraphical User Interface

C++ GUI libraryC++ GUI library PlattformübergreifendPlattformübergreifend Viel genutztViel genutzt GPL (unter anderem)GPL (unter anderem) OpenGL-OpenGL-

UnterstützungUnterstützung Gute DokumentationGute Dokumentation

Page 8: VirtualPatt 2000 Interaktives 3D-Schachspiel unter Verwendung von C++ und OpenGL Präsentation von C. Steller, F. Caspar und C. Brähler.

11.04.23 8virtualpatt2000.de

VirtualPatt 2000 GUIVirtualPatt 2000 GUI

MenüMenü OpenGL „Widget“OpenGL „Widget“ TextlabelTextlabel TextfeldTextfeld

Page 9: VirtualPatt 2000 Interaktives 3D-Schachspiel unter Verwendung von C++ und OpenGL Präsentation von C. Steller, F. Caspar und C. Brähler.

11.04.23 9virtualpatt2000.de

ModellingModelling

Page 10: VirtualPatt 2000 Interaktives 3D-Schachspiel unter Verwendung von C++ und OpenGL Präsentation von C. Steller, F. Caspar und C. Brähler.

11.04.23 10virtualpatt2000.de

ModellingModelling

Page 11: VirtualPatt 2000 Interaktives 3D-Schachspiel unter Verwendung von C++ und OpenGL Präsentation von C. Steller, F. Caspar und C. Brähler.

11.04.23 11virtualpatt2000.de

ModellingModelling

Page 12: VirtualPatt 2000 Interaktives 3D-Schachspiel unter Verwendung von C++ und OpenGL Präsentation von C. Steller, F. Caspar und C. Brähler.

11.04.23 12virtualpatt2000.de

ModellingModelling

Page 13: VirtualPatt 2000 Interaktives 3D-Schachspiel unter Verwendung von C++ und OpenGL Präsentation von C. Steller, F. Caspar und C. Brähler.

11.04.23 13virtualpatt2000.de

ModellingModelling

Page 14: VirtualPatt 2000 Interaktives 3D-Schachspiel unter Verwendung von C++ und OpenGL Präsentation von C. Steller, F. Caspar und C. Brähler.

11.04.23 14virtualpatt2000.de

SchachlogikSchachlogik

Schachfeld in 12x10 DarstellungSchachfeld in 12x10 Darstellung0

21

98

119

Page 15: VirtualPatt 2000 Interaktives 3D-Schachspiel unter Verwendung von C++ und OpenGL Präsentation von C. Steller, F. Caspar und C. Brähler.

11.04.23 15virtualpatt2000.de

SchachlogikSchachlogik

ZugvalidierungZugvalidierung0

21

98

119

Page 16: VirtualPatt 2000 Interaktives 3D-Schachspiel unter Verwendung von C++ und OpenGL Präsentation von C. Steller, F. Caspar und C. Brähler.

11.04.23 16virtualpatt2000.de

SchachlogikSchachlogik

ZugvalidierungZugvalidierung0

21

98

119

Page 17: VirtualPatt 2000 Interaktives 3D-Schachspiel unter Verwendung von C++ und OpenGL Präsentation von C. Steller, F. Caspar und C. Brähler.

11.04.23 17virtualpatt2000.de

SchachlogikSchachlogik

ZugvalidierungZugvalidierung0

21

98

119

Page 18: VirtualPatt 2000 Interaktives 3D-Schachspiel unter Verwendung von C++ und OpenGL Präsentation von C. Steller, F. Caspar und C. Brähler.

11.04.23 18virtualpatt2000.de

SchachlogikSchachlogik

„„Sonderfälle“Sonderfälle“ kurze Rochade kurze Rochade lange Rochadelange Rochade Bauernzug zu BeginnBauernzug zu Beginn

Page 19: VirtualPatt 2000 Interaktives 3D-Schachspiel unter Verwendung von C++ und OpenGL Präsentation von C. Steller, F. Caspar und C. Brähler.

11.04.23 19virtualpatt2000.de

SchachlogikSchachlogik

Universal Chess Interface (UCI)Universal Chess Interface (UCI) offenes Protokolloffenes Protokoll regelt Kommunikation zwischen Engine regelt Kommunikation zwischen Engine

<-> GUI<-> GUI z.B. in ChessBase, Fritz, Shredder, …z.B. in ChessBase, Fritz, Shredder, …

Interprozeßkommunikation (IPC)Interprozeßkommunikation (IPC) kommunizieren mit fremden Threadskommunizieren mit fremden Threads möglich durch LibExecStreammöglich durch LibExecStream

Page 20: VirtualPatt 2000 Interaktives 3D-Schachspiel unter Verwendung von C++ und OpenGL Präsentation von C. Steller, F. Caspar und C. Brähler.

11.04.23 20virtualpatt2000.de

SchachlogikSchachlogik

ShredderChessShredderChess UCI-UnterstützungUCI-Unterstützung sehr starke Enginesehr starke Engine für Mac OS, Linux für Mac OS, Linux

und Windows und Windows verfügbarverfügbar

Page 21: VirtualPatt 2000 Interaktives 3D-Schachspiel unter Verwendung von C++ und OpenGL Präsentation von C. Steller, F. Caspar und C. Brähler.

11.04.23 21virtualpatt2000.de

Animationen/EffekteAnimationen/Effekte

AnimationenAnimationen FalltürFalltür RaketeRakete wegbröckelnder Bodenwegbröckelnder Boden AmboßAmboß FahrstuhlFahrstuhl

Page 22: VirtualPatt 2000 Interaktives 3D-Schachspiel unter Verwendung von C++ und OpenGL Präsentation von C. Steller, F. Caspar und C. Brähler.

11.04.23 22virtualpatt2000.de

Animationen/EffekteAnimationen/Effekte

EffekteEffekte TeleportierenTeleportieren Spalten- / FelderausleuchtenSpalten- / Felderausleuchten

Page 23: VirtualPatt 2000 Interaktives 3D-Schachspiel unter Verwendung von C++ und OpenGL Präsentation von C. Steller, F. Caspar und C. Brähler.

11.04.23 23virtualpatt2000.de

KamerafahrtenKamerafahrten

Die Idee:Die Idee: aktives Kameraverhaltenaktives Kameraverhalten dynamische Kamerafahrtendynamische Kamerafahrten Zusatzfahrten am Anfang und im Stand-Zusatzfahrten am Anfang und im Stand-

ByBy

Page 24: VirtualPatt 2000 Interaktives 3D-Schachspiel unter Verwendung von C++ und OpenGL Präsentation von C. Steller, F. Caspar und C. Brähler.

11.04.23 24virtualpatt2000.de

KamerafahrtenKamerafahrten

Die Umsetzung:Die Umsetzung: Implementierung der Kamera-KlasseImplementierung der Kamera-Klasse „„idleCall“ setzt aktuelle SichtidleCall“ setzt aktuelle Sicht Klassen-Methoden starten neue Sicht-Klassen-Methoden starten neue Sicht-

MutationMutation vollständige Kapselungvollständige Kapselung

Page 25: VirtualPatt 2000 Interaktives 3D-Schachspiel unter Verwendung von C++ und OpenGL Präsentation von C. Steller, F. Caspar und C. Brähler.

11.04.23 25virtualpatt2000.de

SoundSound

PlattformunabhängiPlattformunabhängigg

LGPLLGPL CC Viel genutztViel genutzt Anlehnung an Anlehnung an

OpenGLOpenGL

Page 26: VirtualPatt 2000 Interaktives 3D-Schachspiel unter Verwendung von C++ und OpenGL Präsentation von C. Steller, F. Caspar und C. Brähler.

11.04.23 26virtualpatt2000.de

FrameworkFramework

Allgemeiner ÜberblickAllgemeiner Überblick komplett objektorientierter Aufbaukomplett objektorientierter Aufbau 33 Klassen33 Klassen 4 Pakete4 Pakete 6000 Zeilen Code (mit Kommentaren)6000 Zeilen Code (mit Kommentaren)

Page 27: VirtualPatt 2000 Interaktives 3D-Schachspiel unter Verwendung von C++ und OpenGL Präsentation von C. Steller, F. Caspar und C. Brähler.

11.04.23 27virtualpatt2000.de

FrameworkFramework

Objektorientierter AufbauObjektorientierter Aufbau Pakete GUI, Engine, Exceptions und Pakete GUI, Engine, Exceptions und

InterfacesInterfaces ModularitätModularität Verwendung von Design PatternsVerwendung von Design Patterns

Ablaufsteuerung der KomponentenAblaufsteuerung der Komponenten TimerTimer SynchronisationsklasseSynchronisationsklasse

Page 28: VirtualPatt 2000 Interaktives 3D-Schachspiel unter Verwendung von C++ und OpenGL Präsentation von C. Steller, F. Caspar und C. Brähler.

11.04.23 28virtualpatt2000.de

FrameworkFramework

SzenegrafSzenegrafChess

Control

Background

Board

Field 1 Field 120

Animation

Figure

. . .

Page 29: VirtualPatt 2000 Interaktives 3D-Schachspiel unter Verwendung von C++ und OpenGL Präsentation von C. Steller, F. Caspar und C. Brähler.

11.04.23 29virtualpatt2000.de

VirtualPatt 2000VirtualPatt 2000

DemonstrationDemonstration

Page 30: VirtualPatt 2000 Interaktives 3D-Schachspiel unter Verwendung von C++ und OpenGL Präsentation von C. Steller, F. Caspar und C. Brähler.

11.04.23 30virtualpatt2000.de

VirtualPatt 2000VirtualPatt 2000

Danke fürs Zuhören !Danke fürs Zuhören !