VirtualPatt 2000 Interaktives 3D-Schachspiel unter Verwendung von C++ und OpenGL Präsentation von...
-
Upload
gebbert-strohecker -
Category
Documents
-
view
106 -
download
0
Transcript of VirtualPatt 2000 Interaktives 3D-Schachspiel unter Verwendung von C++ und OpenGL Präsentation von...
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
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
11.04.23 3virtualpatt2000.de
InternetauftrittInternetauftritt
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
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
11.04.23 6virtualpatt2000.de
VirtualPatt 2000VirtualPatt 2000
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
11.04.23 8virtualpatt2000.de
VirtualPatt 2000 GUIVirtualPatt 2000 GUI
MenüMenü OpenGL „Widget“OpenGL „Widget“ TextlabelTextlabel TextfeldTextfeld
11.04.23 9virtualpatt2000.de
ModellingModelling
11.04.23 10virtualpatt2000.de
ModellingModelling
11.04.23 11virtualpatt2000.de
ModellingModelling
11.04.23 12virtualpatt2000.de
ModellingModelling
11.04.23 13virtualpatt2000.de
ModellingModelling
11.04.23 14virtualpatt2000.de
SchachlogikSchachlogik
Schachfeld in 12x10 DarstellungSchachfeld in 12x10 Darstellung0
21
98
119
11.04.23 15virtualpatt2000.de
SchachlogikSchachlogik
ZugvalidierungZugvalidierung0
21
98
119
11.04.23 16virtualpatt2000.de
SchachlogikSchachlogik
ZugvalidierungZugvalidierung0
21
98
119
11.04.23 17virtualpatt2000.de
SchachlogikSchachlogik
ZugvalidierungZugvalidierung0
21
98
119
11.04.23 18virtualpatt2000.de
SchachlogikSchachlogik
„„Sonderfälle“Sonderfälle“ kurze Rochade kurze Rochade lange Rochadelange Rochade Bauernzug zu BeginnBauernzug zu Beginn
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
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
11.04.23 21virtualpatt2000.de
Animationen/EffekteAnimationen/Effekte
AnimationenAnimationen FalltürFalltür RaketeRakete wegbröckelnder Bodenwegbröckelnder Boden AmboßAmboß FahrstuhlFahrstuhl
11.04.23 22virtualpatt2000.de
Animationen/EffekteAnimationen/Effekte
EffekteEffekte TeleportierenTeleportieren Spalten- / FelderausleuchtenSpalten- / Felderausleuchten
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
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
11.04.23 25virtualpatt2000.de
SoundSound
PlattformunabhängiPlattformunabhängigg
LGPLLGPL CC Viel genutztViel genutzt Anlehnung an Anlehnung an
OpenGLOpenGL
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)
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
11.04.23 28virtualpatt2000.de
FrameworkFramework
SzenegrafSzenegrafChess
Control
Background
Board
Field 1 Field 120
Animation
Figure
. . .
11.04.23 29virtualpatt2000.de
VirtualPatt 2000VirtualPatt 2000
DemonstrationDemonstration
11.04.23 30virtualpatt2000.de
VirtualPatt 2000VirtualPatt 2000
Danke fürs Zuhören !Danke fürs Zuhören !