Game Development mit LUA Integration und Kommunikation von LUA mit C++ Referat von Paul van Hemmen Seminar: Reusable Content in 3D und Simulationssystemen.

Slides:



Advertisements
Ähnliche Präsentationen
FDCML Field Device Configuration Markup Language systemneutrale XML-Beschreibung für Automatisierungskomponenten
Advertisements

E-Commerce Shop System
Submodell Softwareentwicklung (SE)
1. 2 Heute entwickeln wir eine kleine DirectInput-Bibliothek,auf die wir bei unseren zukünftigen Projekten immer wieder zurückgreifen werden. Die Themen.
Objektorientierte Datenbanken
Was ist neu in VS 2003 ? Ein Überblick. Bernd Marquardt Software & Consulting
Seminar Internetdienste Web 2.0 und Rich Internet Applications (RIA) JavaFX Rainer Scholz.
Datenbankzugriff im WWW (Kommerzielle Systeme)
Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung SoSe 2010 Dozent: Prof. Dr. Manfred Thaller Hauptseminar: Re-usable Content.
Christos, Kornelia, Jan Christos, Kornelia, Jan Entwicklungsumgebung Versteht unseren Java Programm Code Versteht unseren Java Programm.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Was ist Refactoring? Bevor man die Integration angeht, mag es angebracht sein, den.
Java: Objektorientierte Programmierung
Ein Beispiel in Java.
Virtuelle Forschungsumgebungen Hintergrundbeitrag: HTML5: Video Player und VideoJS Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung.
Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Kapitel 12: „Variablen und Konstanten verwenden und Spiele.
WS 2012/13 Dozent: Prof. Dr. Thaller Von Mariantonietta Bellia
KLIPS 2.0: Navigation über den Modulbaum
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Modularisierungstechniken
Programmieren mit JAVA
Vortrag III Hier in der Vorlesungszeit! Anwesenheitspflicht Jede Gruppe hat 6 Minuten! Stellt eure GUI vor –was ihr besonderes gemacht habt –Spektakuläre.
Command Pattern Karola Schäuble,
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Einführung in Java1 Einführung in JAVA.
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Wir müssen also überlegen: Implementierung der Knoten, Implementierung der Kanten, daraus: Implementierung des Graphen insgesamt. Annahme: die Knoteninhalte.
UML Begleitdokumentation des Projekts
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
YouTube5 .0 Projektpräsentation
| FB20 | Chat System – Gruppe B Andre Ester, Florian Müller, Nino Raubaum.
Objektorientierte Modellierung
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering SS 2009Folie 1 Objektmodellierung Objekte und Klassen Ein Objekt ist ein Exemplar.
Einführung in das Programmieren mit JavaScript Mag. Andreas Starzer weloveIT – EDV Dienstleistungen.
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. Manfred Thaller AM 3 Übung: Softwaretechnologie.
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 12 Folie 2 Web Services (1)
Einführung in die Programmiersprache C 3.Tag Institut für Mathematische Optimierung - Technische Universität Braunschweig.
PHP und MYSQL am Organisatorisches Der komplette Kurs im Schnelldurchgang Bewertung von wichtig und unwichtig Historisch Kulturwissenschaftliche.
Typo3 Templates und TypoScript
Wasser in 3D Die Modellierung und realitätsnahe Echtzeitberechnung von Wasser unter Zuhilfenahme der Grafik Engine OGRE 3D Präsentation von Paul van Hemmen.
Gliederung Was ist Linux? Desktop Environment Die Shell Tux His
Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. M. Thaller AM1: Re-usable Content in 3D und Simulationssystemen.
Von der Planung bis zum Hauptmenü Seminar: Softwaretechnologie II Dozent: Prof. Manfred Thaller Referent: Jan Bigalke.
Linux Universität zu Köln
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 8 Folie 2 Commands (1) s.a.
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
CGI (Common Gateway Interface)
Aufgaben Version 1: Es soll eine Wetterstation mit folgenden zwei Anzeigen implementiert werden: Aktuelle Wetterbedingungen mit Temperatur und.
Oliver Spritzendorfer Thomas Fekete
Grundlagen - Computermodell
ANIMATION II Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung SS 2013 Softwaretechnologie II (Teil II): Simulation und 3D.
Die Vereinsverwaltung unter Windows 2000 Anhand der folgenden Präsentation werden Sie mit der Verwaltung des Vereins unter Windows 2000 vertraut gemacht.
Java-Kurs Übung Benutzeroberflächen und Graphik Frames (Fenster)
Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil I): Simulation und 3D Programmierung Prof.
A Workshop About this chapter General description Units Time Schedule
Historisch-Kulturwissenschaftliche Informationsverarbeitung Übung: Softwaretechnologie II / Visuelle Programmierung Dozent: Prof. Dr. Manfred Thaller WS.
PhysX auf der GPU in Batman: Arkham Asylum & bei Fluid Simulations Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie.
(Syntax, Strings/Zahlen, Variablen, Arrays)
Benutzerprofil "Laie" Editionsphilologie -Historisch kulturwissenschaftliche Informationsverarbeitung- Universität zu Köln WS 2006/07 unter Leitung von:
Einführung in das Simulationsframework Referent: Jan Schröter.
Institut für Kartographie und Geoinformation Prof. Dr. L. Plümer, Dipl.-Ing. D. Dörschlag, Dr. G. Gröger Einführung in die Programmierung mit Java 13.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 9. Vorlesung WS 2001/2002.
-LABORPRAKTIKUM- SOMMERSEMESTER 2005
Minecraft Universität zu Köln Historisch-kulturwissenschaftliche Informationsverarbeitung Re-usable Content in 3D und Simulationssystemen SS 2015 Prof.
Referat zu Hyperlink in Excel mit Grafik und Text
XSLT I Re-usable Content in 3D und Simulationssystemen Dozent: Prof. Manfred Thaller Referentin: Elisabeth Chang.
Funktionen. Aufgabe : Eingabe zweier Zahlen ---> Minimum bestimmen Dann nochmals Eingabe zweier Zahlen ---> Minimum bestimmen.
Vortrag Einführung in AspectJ. Gliederung 1 Einleitung 2 Querschnittsfunktionalitäten in AspectJ 2.1 Sprachelemente 3 Beispiel 4 Join Point Modell 5 Weaving.
Informatik Softwareentwicklung – 4.3 Entwurfsmuster
 Präsentation transkript:

Game Development mit LUA Integration und Kommunikation von LUA mit C++ Referat von Paul van Hemmen Seminar: Reusable Content in 3D und Simulationssystemen SoSe 2011 Dozent: Prof.Dr. M.Thaller Institut für Historisch-kulturwissenschaftliche Informationsverarbeitung an der Universität zu Köln

I. Interaktion zwischen LUA und C++

Interaktion zwischen C++ und LUA

Bidirektionale Kommunikation LUA C++: Per LUA können in C++ geschriebene Funktionen aufgerufen werden. Diese nennt man LuaGlue Funktionen C++ LUA: Über die LUA API kann der Programmkern auch in LUA definierte Funktionen ansteuern

I.1 LUA C++ (LuaGlue) Definition der Funktion als externe C Funktion im C++ Code

I.1 LUA C++ (LuaGlue) Anlegen eines Arrays, welche alle LuaGlue Funktionen + Bezeichner beinhaltet:

I.1 LUA C++ (LuaGlue) Struktur lua_State repräsentiert das LUA Environment: Einfügen aller LuaGlue Funktionen in die Struktur per for- Schleife:

I.1 LUA C++ (LuaGlue) Alle so definierten und eingebundenen LuaGlue Funktionen können nun in LUA aufgerufen werden:

I.2 C++ LUA Flexibles, eventbasiertes System zur Kommunikation des Programmkerns mit LUA. Verarbeitet werden: Tastatur- und Mauseingaben Spielevents (Trigger) GUI Events (Buttons) Timer Events

I.2 C++ LUA Folgende in LUA definierte Funktion soll später vom C++ Programmkern aufgerufen werden:

I.2 C++ LUA Der C++ Code nimmt den Namen der Funktion entgegen und stellt diese dann dem Programm zur Verfügung:

I.2 C++ LUA Die Funktion kann um beliebige Parameter erweitert werden:

I.2 C++ LUA Der entsprechende C++ Code nach Erweiterung:

II. Integration von LUA in das C++ Environment

Starten und Beenden von LUA Kernstück der Integration ist die bereits angesprochene Struktur lua_State Ein Zeiger auf sie wird allen Initialisierungsfunktionen als Parameter übergeben:

Starten und Beenden von LUA Entsprechend wird die Engine wieder heruntergefahren

Starten und Beenden von LUA Entsprechend wird die Engine wieder heruntergefahren

Klasse cLua Einführung der Klasse cLua, um das LUA Environment vom Rest der Anwendung zu trennen cLua kapselt die LUA Engine ab und bietet eine zentrale Schnittstelle auf die gesamte API von LUA

Klasse cLua

III. Ein C++ Basisprojekt mit LUA

Eigenschaften des Basisprojekts Einbindung in die Windows Nachrichtenschleife Erstellen des Grundgerüsts für das Hauptprogramm Erstellen der LUA Console Kommunikation mit der Windows Registry Einbindung von DirectX, LUA Environment und GUIManager

Struktur des Basisprojekts

Die Klasse CBase Bereitstellung aller grundlegenden Funktionen in Die Methode erledigt: Erstellung eines neuen DirectX Kontext Festsetzen der DirectX Grafik Parameter Erstellung eines neuen Settings Interface Registrierung sämtlicher LuaGlue Funktionen Erstellen der LUA Console Starten des LuaGUI Systems

Das LUA GUI System Ist das Herz des Game Systems von LUA Start des Systems durch Erstellen eines CGuiManager Objekts Beim Aufruf wird auch das Startskript StartGUI.lua aufgerufen

Das Startskript StartGUI.lua Wird beim Start des GUI Managers ausgeführt Sollte Initialisierungen und benötigte Basisfunktionen beinhalten Ruft die LuaGlue Funktion RunGUI() auf und betritt damit die LUA Eventschleife

Bsp.: Das Startskript StartGUI.lua

Bsp.: Aufruf von Chapter8.lua

Fragen & Diskussion Vielen Dank für Ihre Aufmerksamkeit!