Game Engine Architecture and Development. Einführung
|
|
- Theresa Vogt
- vor 6 Jahren
- Abrufe
Transkript
1 Game Engine Architecture and Development Einführung
2 Wer sollte hier sein? Ihr interessiert euch für die technischen Hintergründe von Spielen Ihr wisst wie die Grafikpipeline aussieht 3D Mathematik ist euch kein Fremdwort Die Grundlagen aus AUD sind noch bekannt :)
3 Und wer nicht? Ihr braucht Credit Points Dies ist eine fakultative Veranstaltung Ihr wollt ein Spiel machen Dafür bietet Acagamics andere klasse Veranstaltungen an
4 Wer bin ich? Marc Appelsmeier Studiere Computervisualistik Arbeite neben dem Studium bei Trinigy (Game Engine Middleware Hersteller)
5 Wer seid ihr?
6 Literatur Game Engine Architecture von Jason Gregory Game Engine Gems, Volume One Real-Time Rendering, Third Edition GPU Pro: Advanced Rendering Techniques AI for Game Developers von David M. Bourg Das Web..
7 Der Plan Heute: Einführung / Auffrischung Die nächsten Termine: Spezifische Engine Subsysteme und auch Tools
8 Was ist eigentlich eine Game Engine?
9 Was ist eigentlich eine Game Engine? Die wiederwendbaren Teile eines Spiels die als Basis für neue Spiele genutzt werden können.
10 Game Engine Komponenten Gameplay Code / Script Binding / AI Sound System Szenen Verwaltung Serialisierung Rendering GUI Animations System Task System Partikel System Basis Bibliotheken (File I/O, Timer, Threads..) Low Level Renderer OS / Treiber Level
11 Grundlagen
12 Grundlagen Datenstrukturen
13 Datenstrukturen Datenstrukturen die uns über den Weg laufen werden: Listen (LinkedList, DoubleLinkedList) Arrays / Vector Stacks Hash-Maps Bäume
14 Listen (LinkedList, DoubleLinkedList) Einfach oder doppelt verkettete Listen Element einfügen: O(1) Zugriff auf das n-te Element: O(n) Element entfernen: O(1) Bedeutet normalerweise viele kleine Allokationen
15 Arrays / Vector Dynamisch wachsendes Array (C++: std::vector) Element anhängen: üblicherweise O(1) Zugriff auf das n-te Element: O(1) Element entfernen: O(n) Deutlich weniger Allokationen als eine Liste Nett: Elemente liegen garantiert kontinuierlich im Speicher!
16 Bäume Übliche Bäume im Bereich Game Development: BSP trees Quadtrees Octrees kd-trees BVH (Bounding volume hierarchy)
17 BSP Trees Die Szene wird rekursiv an Split-Planes in Zwei geteilt Lange Zeit Standard (vor allem im FPS Bereich) Einige Engines nutzen sie noch heute (zum Beispiel die Source Engine)
18 Quadtrees Jeder Knoten hat vier Kinder Wird öfters für Verwaltung von zwei dimensionalen Datensätzen verwendet (Texturen, Terrain,..)
19 Octree Jeder Knoten hat acht Kinder Geeignet für 3D Daten Bilder:
20 kd-trees kd-trees erlauben eine Organisation von Punkten in einem k-dimensionalen Raum Erlauben durch ihre Struktur ein schnelles finden von Nachbarn zu Baumknoten
21 BVH Bounding Volume Hierarchies sind einfache Bäume die die Bounding Volumes um Objekte hierarchisch anordnen Gut für 3D Daten (zum Beispiel Szenen) Aber auch 2D geht ohne Probleme (GUI)
22 Grundlagen Design Patterns
23 Design Patterns Singletons Iteratoren Observer Dependency Injection Plugins
24 Singletons Verhindert das Erstellen von mehr als einer Instanz eines Objektes Diese Instanz ist auch üblicherweise global verfügbar Singletons are evil (?) Na ja, ein wenig.. Wie immer gilt: Du solltest wissen was du tust!
25 Iteratoren (Cursor) Iteratoren stellen einen bequemen sequenziellen Zugriff auf die Inhalte einer Struktur bereit (Ohne das man die zugrundeliegende Struktur kennen muss) Praktisch zum Beispiel in der Szenenverwaltung Man kann einfach über alle Objekte iterieren ohne wissen zu müssen ob die Objekte jetzt in einem Octree oder in einer Liste liegen.
26 Observer Pattern Auch bekannt als Signal-Slot Prinzip Erlaubt über Änderungen in einem Objekt informiert zu werden Input Handling, Objekte wurden zerstört, Spieler läuft in einen Trigger...
27 Dependency Injection Verschiedene Varianten Constructor Injection, Setter Injection,.. Für uns meistens am interessantesten: Constructor Injection Wir geben einem Objekt bei der Erstellung andere benötigte Objekte mit Beispiel: Unser GUI System muss sich darstellen können, dazu braucht es den Renderer Mit CI übergeben wir den Renderer und brauchen ihn somit nicht als globale Variable herumliegen haben
28 Plugins Wie der Name sagt - dieses Design Pattern steht für eine Plugin basierte Architektur (zum Beispiel Interface basiert) Beliebt in Game Engines da man so die Funktionalität erweitern kann ohne große Teile des Codes neukompilieren zu müssen etc.
29 Grundlagen Reference Counting / Smart Pointer
30 Reference Counting Kann verwendet werden um zu tracken wieviele Objekte auf ein anderes angewiesen sind Einfaches Prinzip: Jedes Objekt hat einen sogenannten Reference Counter Dieser kann mittels AddRef() erhöht und mittels Release() verringert werden.
31 Smart Pointer Ein Smart Pointer ist im einfachsten Fall eine Kapselung um ein Objekt mit Reference Counting Beim Anlegen eines Smart Pointers wird der Reference Counter automatisch erhöht Sobald der Smart Pointer zerstört wird wird der Reference Count verringert Ist der Reference Count des Objektes 0 kann es gelöscht werden
32 Grundlagen CPUs
33 CPUs sind schnell! Leider ist das Arbeitsspeicher Tempo nicht im gleichem Umfang gewachsen.. Was bedeutet das für uns?
34 CPU Caches Die Grundlage für eine schnelle Verarbeitung von Daten besteht darin die CPU zu kennen und wie die Caches funktionieren Wenn Daten verarbeitet werden fetcht die CPU die zu bearbeitenden Daten in die Cache Lines. Sind diese wild über den Speicher verteilt verringert sich die Wahrscheinlichkeit das nachfolgende Elemente bereits im Cache sind
35 CPU Caches: Partikel Array of Structures (AOS) Structure of Arrays (SOA)
36 Warum unterhalten wir uns darüber?
37 Warum unterhalten wir uns darüber? In einer Game Engine muss alles schnell gehen Bei 60 FPS haben wir 16,67ms Zeit (!) Die richtige Wahl der Algorithmen und Datenstrukturen bedeutet oftmals den größten Unterschied zwischen einer Engine die nur OK ist und einer Engine die sehr gut ist und auch gut skaliert. Die besten CPUs und GPUs nutzen nichts wenn die Engine sie nicht richtig füttert
38 Eine kurze Verschnaufpause Gibt es soweit Fragen?
39 Resource Management
40 Resource Management Eine der essentiellsten Komponenten einer Game Engine Ohne Resourcen Verwaltung gibt es keine Texturen, Shader, Sounds, Geometrie,.. Fehler auf der Ebene des Resource Managments wirken sich stark auf den Rest der Engine aus (Sowohl konzeptionell als auch Laufzeitfehler)
41 Resource Management Mögliche Resourcen in einem Spiel Texturen Models / Meshes Animationen Skripte Sounds Partikelsysteme...
42 Resource Managment: Anforderungen Einfach Sprich: LoadResource( Pfad ) und fertig Fehlertolerant Eine fehlende Resource sollte nicht zum Absturz führen Sollte Speicher Limits beachten Sollte nicht mehr benötigte Resourcen aufräumen können Resourcen Tracking ist auch eine feine Sache
43 Resourcen Laden Zwei Ansätze primär verbreitet Für jeden Resourcen Typ einen Manager TextureManager::LoadResource( MyTexture ) Diese Manager leiten von einer Basis Klasse ResourceManager ab
44 Resourcen Laden Für alle Resourcen ein geteilter Manager Dieser hat dann entweder den Code für alle Resourcen Typen oder spezielle Resourcen Lader ResourceManager::LoadResource( MyTexture ) (nach ResourceManager::RegisterLoader(new TextureLoader(); )
45 Fehlertoleranz Es passiert häufig das eine Resource nicht vorhanden ist Vergessen etwas zu kopieren, Nutzer hat Dateien gelöscht,.. Um Probleme wie Abstürze zu vermeiden kann es hilfreich sein sogenannte Fallback Resourcen bereit zu halten Zum Beispiel eine (penetrante) Textur die verwendet wird wenn die eigentlich angeforderte nicht gefunden wird
46 Resourcen Tracking Resourcen sollten nach dem Laden (oder wenn möglich vorher) dem System mitteilen können wieviel Speicher sie verbrauchen (Host / GPU) Damit kann zum Beispiel bei einem Speicherlimit das Aufräumen der ältesten Resourcen angestoßen werden um Platz zu schaffen Andererseits hilft es auch beim Profiling ungemein zu wissen wohin der Speicher verschwindet
47 Resourcen Freigabe Egal welches Konzept: RM sollte eine Liste der verwalteten Resourcen mitführen Am besten sind die Resourcen RefCounted um unbenutzte Resourcen zu finden Diese können dann entladen werden um Speicher freizugeben
48 Programmier Aufgabe Die (freiwillige) Aufgabe für nächstes mal: (Pseudo-) Code für eine Resourcen Verwaltung in einer Engine Es muss nicht das komplette Textur laden etc. eingebaut sein Bringt eure Ansätze mit damit wir kurz darüber reden können
49 Das war es für heute! Nächster Termin: Dienstag, Thema: Platform Unabhängiger Code, Multi Threading
50 PS: Für die Grafikinteressierten - am Donnerstag ist das Echtzeitgrafiktreffen (17 Uhr im 335)
Game Engine Architecture and Development. Platform Unabhängiger Code Multi Threading in Game Engines Profiling
Game Engine Architecture and Development Platform Unabhängiger Code Multi Threading in Game Engines Profiling Folien Die Folien werden auf acagamics.de hochgeladen Das Passwort ist 60fps (ohne ) Rückblick:
MehrSmartphone Entwicklung mit Android und Java
Smartphone Entwicklung mit Android und Java predic8 GmbH Moltkestr. 40 53173 Bonn Tel: (0228)5552576-0 www.predic8.de info@predic8.de Was ist Android Offene Plattform für mobile Geräte Software Kompletter
MehrInhaltsverzeichnis. 2.2 Grundlagen der UML... 41. 2.3 Zusammenfassung... 53
Vorwort......................................................... 13 1 Vorbereitungen.................................................. 17 1.1 JDK-Installation unter Windows................................
MehrWhite Paper. Embedded Treiberframework. Einführung
Embedded Treiberframework Einführung White Paper Dieses White Paper beschreibt die Architektur einer Laufzeitumgebung für Gerätetreiber im embedded Umfeld. Dieses Treiberframework ist dabei auf jede embedded
MehrArchitektur von Game-Engines
> Architektur von Game-Engines Seminar Arbeitsgruppe Visualisierung und Computergrafik 2 > Aufbau und Komponenten einer Engine 3 > Aufbau und Komponenten einer Game-Engine 4 > Aufbau und Komponenten einer
MehrGrundlegende Algorithmen
3D Spieleprogrammierung Grundlegende Algorithmen Übersicht Game Loop Spielarchitektur Aufäumen von Strukturen Vorbereiten für spätere Aufgaben Bewegungen Zeitmessung Zeitunabhängigkeit GameLoop Game Engine
Mehr1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert
Inhalt Einführung 1. Arrays 1. Array unsortiert 2. Array sortiert 3. Heap 2. Listen 1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert 3. Bäume
MehrSEP 325. Notwendigkeit. häufige Situation: Programm funktioniert im Prinzip fehlerfrei, aber nicht mit gewünschter Performanz
Optimierungen SEP 325 Notwendigkeit häufige Situation: Programm funktioniert im Prinzip fehlerfrei, aber nicht mit gewünschter Performanz Symptome des Mangels an Performanz: OutOfMemoryError wird geworfen
MehrBlöcke und Grand Central Dispatch
Blöcke und Grand Central Dispatch Multithreading ist ein Thema, mit dem sich alle Programmierer bei der modernen Anwendungsentwicklung beschäftigen müssen. Selbst wenn Sie glauben, dass Ihre Anwendung
MehrBetriebssysteme Kap A: Grundlagen
Betriebssysteme Kap A: Grundlagen 1 Betriebssystem Definition DIN 44300 Die Programme eines digitalen Rechensystems, die zusammen mit den Eigenschaften dieser Rechenanlage die Basis der möglichen Betriebsarten
MehrWindows CE. Process Control and Robotics. Fabian Garagnon
Windows CE Process Control and Robotics Fabian Garagnon 14.01.2009 Agenda 3 Geschichte & Timeline Echtzeit & Multithreading Architektur Memory Management & Context Switch Entwicklung unter CE Interrupts
MehrEffiziente Java Programmierung
Effiziente Java Programmierung Seminar Implementierung moderner virtueller Maschinen am Beispiel von Java SS 2009 von Reinhard Klaus Losse 20. Mai 2009 Gliederung Definition Effizienz Werkzeuge zum Messen
MehrSeminar Game Development Game Computer Graphics. Einleitung
Einleitung Gliederung OpenGL Realismus Material Beleuchtung Schatten Echtzeit Daten verringern Grafik Hardware Beispiel CryEngine 2 Kristian Keßler OpenGL Was ist OpenGL? Grafik API plattform- und programmiersprachenunabhängig
Mehr1. Übung zu "Numerik partieller Differentialgleichungen"
1. Übung zu "Numerik partieller Differentialgleichungen" Simon Gawlok, Eva Treiber Engineering Mathematics and Computing Lab 22. Oktober 2014 1 / 15 1 Organisatorisches 2 3 4 2 / 15 Organisatorisches Ort:
MehrJava Einführung Collections
Java Einführung Collections Inhalt dieser Einheit Behälterklassen, die in der Java API bereitgestellt werden Wiederholung Array Collections (Vector, List, Set) Map 2 Wiederholung Array a[0] a[1] a[2] a[3]...
MehrAlgorithmen und Datenstrukturen Bereichsbäume
Algorithmen und Datenstrukturen Bereichsbäume Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Überblick Einführung k-d Baum BSP Baum R Baum Motivation
MehrArchitekturen. Von der DB basierten zur Multi-Tier Anwendung. DB/CRM (C) J.M.Joller 2002 131
Architekturen Von der DB basierten zur Multi-Tier Anwendung DB/CRM (C) J.M.Joller 2002 131 Lernziele Sie kennen Design und Architektur Patterns, welche beim Datenbankzugriff in verteilten Systemen verwendet
MehrAK Medientechnologien Hello World. Josef Kolbitsch josef.kolbitsch@tugraz.at http://businesssolutions.tugraz.at/
AK Medientechnologien Hello World Josef Kolbitsch josef.kolbitsch@tugraz.at http://businesssolutions.tugraz.at/ Übersicht Demo-Applikation: Hello World Rückblick auf einzelne Schritte Entwicklungswerkzeuge
MehrJava Desktop Anwendungen
5 1 Java Desktop Anwendungen das Problem: Desktop-Anwendungen werden mit Hilfe der Swing- Bibliothek programmiert, aber die Swing-Bibliothek ist riesig und unübersichtlich es gab kein Programmiergerüst
MehrDarstellung komplexer 3D-Stadtmodelle im (mobilen) Webbrowser mittels bildbasiertem Rendering
Darstellung komplexer 3D-Stadtmodelle im (mobilen) Webbrowser mittels bildbasiertem Rendering Martin Christen FHNW Hochschule für Architektur, Bau und Geomatik Institut Vermessung und Geoinformation martin.christen@fhnw.ch
MehrPowerBridge MSSQL Beta
SoftENGINE PowerBridge MSSQL Beta Dokumentation Thomas Jakob 17.04.2011 Inhalt Einrichtung der SQL Umgebung... 3 SQL-Server Installieren... 3 BüroWARE Installieren... 3 PowerBridge-SQL Modus einrichten...
MehrKomponentenbasierte Softwareentwicklung mit PHP. Oliver Schlicht - bitexpert
Komponentenbasierte Softwareentwicklung mit PHP Oliver Schlicht - bitexpert Überblick 1. Was ist eine Komponente? 2. Entwicklung eines Beispieldesigns 3. Dependency Injection 4. DI Container Garden 5.
MehrDie Bedeutung abstrakter Datentypen in der objektorientierten Programmierung. Klaus Kusche, September 2014
Die Bedeutung abstrakter Datentypen in der objektorientierten Programmierung Klaus Kusche, September 2014 Inhalt Ziel & Voraussetzungen Was sind abstrakte Datentypen? Was kann man damit grundsätzlich?
MehrErster Schritt mit Mocha:
Was ist Mocha for After Effects CS4? Mocha ist ein Advanced Tracking System das im Gegensatz zu After Effects nicht auf Pixeln und Kontrastkanten basiert, sondern auf Formen die unter Mustererkennung im
MehrComputer Graphik I Intro
Computer Graphik I Intro 1 Ziele Modellierung 2 Ziele Bildgenerierung 3 Anwendungen Ausgabe 4 Kontakt Marc Alexa TU Berlin Computer Graphik marc.alexa@tu- berlin.de Raum EN 717 hep://www.cg.tu- berlin.de
MehrEntwicklung eines Mac OS X Treibers für eine PCI-VME Interface Karte
Entwicklung eines Mac OS X Treibers für eine PCI-VME Interface Karte Matthias Lange Informatikstudent, TU-Dresden 27. September 2005 http://www.matze-lange.de Warum entwickelt jemand einen Treiber für
MehrRich Internet Applications, Flex & Mate. (Ja, das ist Grafische Benutzeroberflächen!) 18.03.2010 Jakob Külzer jakob.kuelzer@gmail.
Rich Internet Applications, Flex & Mate (Ja, das ist Grafische Benutzeroberflächen!) 18.03.2010 Jakob Külzer jakob.kuelzer@gmail.com Überblick Mein Thema im Überblick 1. Definitionen 2. Rich Internet Applications
MehrMobile Agenten am Beispiel JADE (Java Agent DEvelopment Framework) Vorstellung in der Übung zu Konzepte Verteilter Systeme
Mobile Agenten am Beispiel JADE (Java Agent DEvelopment Framework) Vorstellung in der Übung zu Konzepte Verteilter Systeme Agenda Mobile Agenten allgemein JADE - Java Agent DEvelopment Framework Anwendungsfall
MehrPattern Praxis Techniken lassen sich wiederholt anwenden: Wieviele Substrings hat es im Wort Restaurant? Wie zeichne ich aus einer römischen IX mit einem zusätzlichen Strich eine Sechs? Was bedeutet: DER
MehrHadoop. Simon Prewo. Simon Prewo
Hadoop Simon Prewo Simon Prewo 1 Warum Hadoop? SQL: DB2, Oracle Hadoop? Innerhalb der letzten zwei Jahre hat sich die Datenmenge ca. verzehnfacht Die Klassiker wie DB2, Oracle usw. sind anders konzeptioniert
MehrDas SR4 bietet eine Reihe von Verbesserung und behebt kleinere bekannte Probleme aus den Bereichen:
Smith Micro Software, Inc. und das Poser-Team freuen sich mitteilen zu dürfen, dass das Poser Pro 2014 Service Release 4 (SR4) ab sofort für Mac OS X und Windows verfügbar ist. Das SR4 wird ihre Poser-Vollversion
MehrBerner Fachhochschule Hochschule für Technik und Informatik HTI. Kapitel 1. Einstieg in Java. Dr. Elham Firouzi 06.09.10 1
Kapitel 1 Einstieg in Java Dr. Elham Firouzi 06.09.10 1 1 : Einstieg in Java Einleitung Ein erstes Beispiel Berner Fachhochschule Entwicklung von Java-Programmen Applikationen Applets Vor und Nachteile
MehrSkalierbare Webanwendungen mit Python und Google App Engine
Skalierbare Webanwendungen mit Python und Google App Engine Oliver Albers 03. Juli 2008 1/32 Einführung Worum geht es? Pro und Contra Technik Genereller Aufbau Anwendungskonfiguration Verarbeitung von
MehrEclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007
Eclipse Equinox als Basis für Smart Client Anwendungen Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007 Übersicht Definition / Architektur Smart Client Smart Client mit RCP / Equinox Gesamtfazit
MehrOpenStack bei der SAP SE
OpenStack bei der SAP SE Integration bestehender Dienste in OpenStack dank Workflow Engine und angepasstem Webinterface 23. Juni 2015 Christian Wolter Linux Consultant B1 Systems GmbH wolter@b1-systems.de
MehrVorwort. Ulrich Breymann. Der C++-Programmierer. C++ lernen - Professionell anwenden - Lösungen nutzen ISBN: 978-3-446-41644-4
Vorwort Ulrich Breymann Der C++-Programmierer C++ lernen - Professionell anwenden - Lösungen nutzen ISBN: 978-3-446-41644-4 Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-41644-4
MehrDatenhaltung für Android. Model First
Datenhaltung für Android Model First Frederik Götz, Johannes Tysiak 26.05.2011 Unser Ziel! 26.05.2011 Datenhaltung in Android - Model First» Frederik Götz, Johannes Tysiak 2 Agenda Android Quickstart Datenhaltung
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin
MehrEinführung in COM. 04.04.2006 Seite 1
Einführung in COM 04.04.2006 Seite 1 Ziele Sie kennen die Funktion der Registry für COM Sie können die Struktur eines COM-Objekts erklären Sie können erklären, wie ein remote-server gestartet wird 04.04.2006
MehrKonzepte von Betriebssystem Komponenten. Aufbau eines Modernen Betriebssystems (Windows NT 5.0)
Konzepte von Betriebssystem Komponenten Aufbau eines rnen Betriebssystems (Windows NT 5.0) Moritz Mühlenthaler 14.6.2004 1.Das Designproblem a) Überblick b) Design Goals c) Möglichkeiten der Strukturierung
MehrVirtueller Speicher. SS 2012 Grundlagen der Rechnerarchitektur Speicher 44
Virtueller Speicher SS 2012 Grundlagen der Rechnerarchitektur Speicher 44 Die Idee Virtuelle Adressen Prozess 1 Speicherblock 0 Speicherblock 1 Speicherblock 2 Speicherblock 3 Speicherblock 4 Speicherblock
MehrDesign Patterns 2. Model-View-Controller in der Praxis
Design Patterns 2 Model-View-Controller in der Praxis Design Patterns Oft Schablonen für eine Klassenstruktur... aber nicht immer! Dahinterliegende Konzepte wichtiger als wörtliche Umsetzung Pattern werden
MehrÜberblick Echtzeit-Rendering. Uwe Domaratius dou@hrz.tu-chemnitz.de
Überblick Echtzeit-Rendering Uwe Domaratius dou@hrz.tu-chemnitz.de Gliederung 1. Einleitung 2. geometriebasierende Verbesserungen 3. Level-of-Detail 4. Culling 5. Texturen 6. bildbasiertes Rendering Was
Mehr(allgemeine) OOP in C++ Klassen und header-files Konstruktorn / Destruktoren Speicherverwaltung C++ Standard Library / SLT
Architektur Übersicht (allgemeine) OOP in C++ Polymorphie Virtuelle Funktionen Kompilieren Linken dynamische/statische Bibliotheken Tutorial: vs2008+ogre+(campus modell) Architektur (allgemeine) OOP in
MehrVIRTUALISIERUNG IN MIKROKERN BASIERTEN SYSTEMEN
Fakultät Informatik Institut für Systemarchitektur, Professur Betriebssysteme VIRTUALISIERUNG IN MIKROKERN BASIERTEN SYSTEMEN Henning Schild Dresden, 5.2.2009 Definition Einführung von Abstraktionsschichten
MehrClemens Gull. Joomlal-Extensions. mit PHP entwickeln. Mit 322 Abbildungen
Clemens Gull Joomlal-Extensions mit PHP entwickeln Mit 322 Abbildungen 11 Inhaltsverzeichnis 1 Einführung 15 1.1 Wasistjoomla? 15 1.1.1 Content-Management-System 15 1.1.2 Open-Source-Software 16 1.2 Der
MehrDynamische Plug-ins mit Eclipse 3. Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org)
Dynamische Plug-ins mit Eclipse 3 Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org) Überblick Die Ausgangslage Dynamische Plug-ins Warum? Eclipse 3 Die OSGi-basierte
Mehrd e S I G n & d e v e L O P M e n T TYPO3 AdvAnced
DESIGN & DEVELOPMENT TYPO3 Advanced 1 Einleitung / Inhalt 2 / 13 Einleitung Dieses Dokument weist Sie durch die Funktion des Open Source CMS TYPO3. In wenigen, einfachen Schritten wird Ihnen bebildert
MehrOgre Einführung Teil 1
Inhalt -Einleitung -Installieren und Einrichten von Ogre -Die erste Anwendung Ogre Einführung Teil 1 Einleitung Eine 3D Engine ist eine sehr komplexe Software und besteht aus mehreren tausend Zeilen Programmcode.
MehrOpenCL Implementierung von OpenCV Funktionen
Multi-Core Architectures and Programming OpenCL Implementierung von OpenCV Funktionen julian.mueller@e-technik.stud.uni-erlangen.de Hardware/Software Co-Design August 18, 2011 1 Table of content 1 OpenCL
Mehroscan ein präemptives Echtzeit-Multitasking-Betriebssystem
ein präemptives Echtzeit-Multitasking-Betriebssystem 2011. Vector Informatik GmbH. All rights reserved. Any distribution or copying is subject to prior written approval by Vector. V0.9 2011-10-12 Management
MehrLabVIEW Power Programming. Amadeo Vergés www.zuehlke.com
LabVIEW Power Programming Aus der Praxis für die Praxis Amadeo Vergés www.zuehlke.com LabVIEW Power Programming Aus der Praxis für die Praxis the same procedure as every year? Running gags in der LabVIEW
MehrAlgorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015. Vorlesung 5, Donnerstag, 20.
Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 5, Donnerstag, 20. November 2014 (Wie baut man eine Hash Map, Universelles Hashing)
MehrEnterprise Java Beans Einführung
Enterprise Java Beans Einführung Vorlesung 8 Ralf Gitzel ralf_gitzel@hotmail.de 1 Themenübersicht Ralf Gitzel ralf_gitzel@hotmail.de 2 Übersicht EJBs im JEE Umfeld Verschiedene Typen von EJBs Von der Javaklasse
MehrGeneric Quickstart Guide zuerst Email: Tel: Flashtalking Creative Interface http://www.flashtalking.net/creative
Generic Quickstart Guide!!! Sollten Sie bisher noch keine Zugangsdaten für unser System haben, wenden Sie sich bitte zuerst an Ihr Flashtalking Team. Email: studiode@flashtalking.com Tel: +49 221 922 350
MehrJava und XML 2. Java und XML
Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Praktische Informatik und Medieninformatik Fachgebiet Telematik Java und XML Hauptseminar Telematik WS 2002/2003
MehrC++-Entwicklung mit Linux
C++-Entwicklung mit Linux Eine Einführung in die Sprache und die wichtigsten Werkzeuge von GCC und XEmacs bis Eclipse Thomas Wieland [Druckvorlage vom 10. August 2004] xiii Inhaltsverzeichnis 1 Programmieren
Mehr1. Einleitung. 1.1 Motivation. 1.2 Ziel der Arbeit. 1.3 Danksagung
1. Einleitung 1.1 Motivation Im Fach Systemprogrammierung des Informatik-Grundstudiums lernen die Studenten die Assembler-Sprache des Sparc-Mikroprozessors [6] kennen. Um mit dem Befehlssatz zu experimentieren,
MehrROOT Tutorial für HEPHY@CERN. D. Liko
ROOT Tutorial für HEPHY@CERN D. Liko Was ist ROOT? Am CERN entwickeltes Tool zur Analyse von Daten Funktionalität in vielen Bereichen Objekte C++ Skriptsprachen Was kann ROOT Verschiedene Aspekte C++ as
MehrApplikationsentwicklung Architekturübungen
Applikationsentwicklung Architekturübungen Aufgabe : Systeme und Subsysteme Gegeben ist das umfangreiche Softwaresystem eines modernen Passagierflugzeuges von der Steuerung und Navigation bis zum Bordunterhaltungssysstem
Mehr"15 Jahre APM - Wieso haben heutige Projekte immer noch Performance Probleme?"
"15 Jahre APM - Wieso haben heutige Projekte immer noch Performance Probleme?" Dienstag, 13. Mai 2014-16:45 bis 17:45 Goldsaal B JAX 2014 Stefan Siegl Stefan.siegl@novatec-gmbh.de NovaTec Consulting GmbH
MehrSortierverfahren für Felder (Listen)
Sortierverfahren für Felder (Listen) Generell geht es um die Sortierung von Daten nach einem bestimmten Sortierschlüssel. Es ist auch möglich, daß verschiedene Daten denselben Sortierschlüssel haben. Es
MehrTransparente Nutzung von Multi-GPU Cluster unter Java/OpenMP
Transparente Nutzung von Multi-GPU Cluster unter Java/OpenMP Dipl. Inf. Thorsten Blaß Programming Systems Group Martensstraße 3 91058 Erlangen Ausblick Motivation Einführung Java/OpenMP (JaMP) JaMP Sprache
MehrCOMPUTERGRAFIK 2014 UNIVERSITÄT OSNABRÜCK. Niels Meyering
COMPUTERGRAFIK 2014 UNIVERSITÄT OSNABRÜCK Niels Meyering 0 WAS IST BLENDER? 3D-Grafik-Software Open Source (GPL-lizenziert) FEATURES Modellierung Animation Rendering (zwei eingebaute Renderer) Compositing
MehrSicherheit wird messbar Lösungsansätze und Methoden. Email Case. 15. September 2009, Hotel St. Gotthard, Zürich
Sicherheit wird messbar Lösungsansätze und Methoden Email Case 15. September 2009, Hotel St. Gotthard, Zürich ActiveSync Div. Email Landschaft PeerToPeer -USB -Bluetooth Smart phone Netzwerk - Ethernet
MehrDesign Patterns. 5. Juni 2013
Design Patterns 5. Juni 2013 Überblick Was sind Design Patterns? Welche Design Patterns gibt es? Wann sollte man Design Patterns einsetzen? Refactoring und Design Patterns: Welchen Zusammenhang gibt es
MehrTechnologische Entwicklung von GIS und Internet der letzten Jahre
Technologische Entwicklung von GIS und Internet der letzten Jahre 10. Seminar GIS & Internet 10. bis 12. September 2007 UniBwMünchen Dr. Christine Giger Übersicht GIS vor 30 Jahren GIS vor 20 Jahren GIS
MehrARM Cortex-M Prozessoren. Referat von Peter Voser Embedded Development GmbH
ARM Cortex-M Prozessoren Referat von Peter Voser Embedded Development GmbH SoC (System-on-Chip) www.embedded-development.ch 2 Instruction Sets ARM, Thumb, Thumb-2 32-bit ARM - verbesserte Rechenleistung
MehrInhaltsverzeichnis. Danksagungen... 11
Danksagungen............................................ 11 Einführung............................................... 13 Über dieses Buch.......................................... 15 Voraussetzungen...................................
MehrDeploy von PHP-Applikationen
Deploy von PHP-Applikationen Jan Burkl System Engineer Zend Technologies Wer bin ich? Jan Burkl jan.burkl@zend.com PHP Entwickler seit 2001 Projektarbeit Bei Zend seit 2006 System Engineer Zend Certified
Mehr3D webservices - where do we stand? Emmanuel Belo +41 21 619 10 25 emmanuel.belo@camptocamp.com
3D webservices - where do we stand? Emmanuel Belo +41 21 619 10 25 emmanuel.belo@camptocamp.com Google Maps 2/32 Google Maps 3/32 Here maps (Nokia) 4/32 OpenWebGlobe 5/32 Cesium 6/32 Was wollen wir im
MehrContexts and Dependency Injection. W3L AG info@w3l.de
1 Contexts and Dependency Injection W3L AG info@w3l.de 2015 2 Inhaltsverzeichnis Teil 1: Motivation Teil 2: Inversion of Control Teil 3: Contexts and Dependency Injection Teil 4: Beispiel zurück 3 Motivation
MehrMultimediaschnittstelle. Microsoft DirectShow
Multimediaschnittstelle Microsoft DirectShow Gliederung 1. Grundlagen 1.1 VFW 1.2 WDM, KS, WMF 1.3 DirectShow - DirectX 1.4 Aufgaben von DirectShow 2. Architektur 2.1 COM - kurze Einführung 2.2 Filter
MehrVirtualisierung auf Mac OS X. Mar3n Bokämper Max Riegel 30. November 2008
Virtualisierung auf Mac OS X Mar3n Bokämper Max Riegel 30. November 2008 Inhalt Virtualisierung Konfigura3on eines virtuellen Rechners Virtualisierungslösungen für OS X Apple Boot Camp, keine Virtualisierungslösung!
MehrBlockseminar: Verteiltes Rechnen und Parallelprogrammierung. Sommer Semester 2015. Tim Conrad
Blockseminar: Verteiltes Rechnen und Parallelprogrammierung Sommer Semester 2015 Tim Conrad Staff Tim Conrad AG Medical Bioinformatics email: conrad@math.fu-berlin.de Telefon: 838-51445 Büro: Raum 138,
MehrTutorium Algorithmen & Datenstrukturen
June 16, 2010 Binärer Baum Binärer Baum enthält keine Knoten (NIL) besteht aus drei disjunkten Knotenmengen: einem Wurzelknoten, einem binären Baum als linken Unterbaum und einem binären Baum als rechten
MehrÜbungspaket 31 Entwicklung eines einfachen Kellerspeiches (Stacks)
Übungspaket 31 Entwicklung eines einfachen Kellerspeiches (Stacks) Übungsziele: Skript: 1. Definieren einer dynamischen Datenstruktur 2. Dynamische Speicher Speicherallokation 3. Implementierung eines
MehrGrundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny
Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.
MehrImplementation of a Framework Component for Processing Tasks within Threads on the Application Level
Implementation of a Framework Component for Processing Tasks within Threads on the Application Level Deutsches Krebsforschungszentrum, for Processing Task within Threads on the Application Level Motivation
MehrDie Integration zukünftiger In-Car Multimedia Systeme unter Verwendung von Virtualisierung und Multi-Core Plattformen
Die Integration zukünftiger In-Car Multimedia Systeme unter Verwendung von Virtualisierung und Multi-Core Plattformen 0. November 0 Sergio Vergata, Andreas Knirsch, Joachim Wietzke Echtzeit 0 Agenda Motivation
MehrOWASP Stammtisch München Sep 2014 XSS und andere Sicherheitslücken aus der Perspektive des Programmcodes
OWASP Stammtisch München Sep 2014 XSS und andere Sicherheitslücken aus der Perspektive des Programmcodes 1 XSS: Cross-Site Scripting 1.) Es gelangen Daten in den Web-Browser, die Steuerungsinformationen
MehrOne Vision One Platform. Eclipse als Plattform für die GUI Integration
One Vision One Platform Eclipse als Plattform für die GUI Integration Agenda PostFinance Eclipse Technologie Erkenntnisse/Erfahrungen Q&A Remo Lötscher Technologiemanager GUI-FW Project Lead Yet Another
MehrMobile Application Development
Mobile Application Development Android: Einführung Jürg Luthiger University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Lernziele Der/die Kursbesucher/in kann
MehrStaff. Tim Conrad. Zeitplan. Blockseminar: Verteiltes Rechnen und Parallelprogrammierung. Sommer Semester 2013. Tim Conrad
Blockseminar: Verteiltes Rechnen und Parallelprogrammierung Sommer Semester 2013 Tim Conrad Staff Tim Conrad AG Computational Proteomics email: conrad@math.fu-berlin.de Telefon: 838-51445 Büro: Raum 138,
MehrRed Hat Cluster Suite
Red Hat Cluster Suite Building high-available Applications Thomas Grazer Linuxtage 2008 Outline 1 Clusterarten 2 3 Architektur Konfiguration 4 Clusterarten Was ist eigentlich ein Cluster? Wozu braucht
MehrVMware. Rainer Sennwitz. <Rainer.Sennwitz@andariel.informatik.uni-erlangen.de>
VMware Rainer Sennwitz Lehrstuhl für Informatik IV Friedrich-Alexander-Universität Erlangen-Nürnberg 4. Juli 2007 Rainer Sennwitz VMware Inhalt Inhalt
MehrEinblick in die VMware Infrastruktur
Einblick in die VMware Infrastruktur Rainer Sennwitz Lehrstuhl für Informatik IV Friedrich-Alexander-Universität Erlangen-Nürnberg 4. Juli 2007 Rainer
MehrEntwicklungsmethoden
Slide 5.1 Entwicklungsmethoden Prof. Dr. Josef M. Joller jjoller@hsr.ch Development Methodologies Prof. Dr. Josef M. Joller 1 Session 5 Slide 5.2 TOOLS Development Methodologies Prof. Dr. Josef M. Joller
MehrCVS-Einführung. Sebastian Mancke, mancke@mancke-software.de
CVS-Einführung Sebastian Mancke, mancke@mancke-software.de Grundlagen Motivation und Anforderung Sobald ein Softwaresystem anwächst, ergeben sich Probleme im Umgang mit dem Quell Code. CVS (Concurrent
Mehr368 4 Algorithmen und Datenstrukturen
Kap04.fm Seite 368 Dienstag, 7. September 2010 1:51 13 368 4 Algorithmen und Datenstrukturen Java-Klassen Die ist die Klasse Object, ein Pfeil von Klasse A nach Klasse B bedeutet Bextends A, d.h. B ist
MehrRAC auf Sun Cluster 3.0
RAC auf Sun Cluster 3.0 Schlüsselworte RAC, OPS, Sun Cluster, Performance, Availability Zusammenfassung Oracle hat mit dem Real Application Cluster (RAC) aus einer Hochverfügbarkeitslösung eine Höchstverfügbarkeitslösung
MehrConfiguration Manager Hardware Inventory Erweiterungen. 22.05.2014 trueit TechEvent 2014 1
Configuration Manager Hardware Inventory Erweiterungen It s all about WMI 22.05.2014 trueit TechEvent 2014 1 Agenda Grundlagen Inventory Arten Welche Daten können inventarisiert werden Anpassungen an Default
MehrSoftware Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015
Software Engineering Zur Architektur der Applikation Data Repository Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: Mit acht bewährten Praktiken zu gutem Code 2 Schichtarchitektur
MehrJava für C++ Programmierer
Java für C++ Programmierer Alexander Bernauer bernauer@inf.ethz.ch Einführung in die Übungen zu Informatik II (D ITET) FS2010 ETH Zürich Ziel Allgemeiner Überblick Kennenlernen der Suchbegriffe Warum Java?
MehrJava Virtual Machine (JVM) Bytecode
Java Virtual Machine (JVM) durch Java-Interpreter (java) realisiert abstrakte Maschine = Softwareschicht zwischen Anwendung und Betriebssystem verantwortlich für Laden von Klassen, Ausführen des Bytecodes,
MehrDie Vision Landschaft und was sie mit Moore s Gesetz zu tun hat
Die Vision Landschaft und was sie mit Moore s Gesetz zu tun hat Horst A. Mattfeldt Produkt Manager Matrix Vision GmbH V1.0 10/2010 MATRIX VISION GmbH 1 Inhalt/Content: Vom Vision Sensor über Atom Boxen
MehrQuellcode-Repräsentation in Eclipse. Seminarvortrag PG Reclipse Jan Rieke
Quellcode-Repräsentation in Eclipse Seminarvortrag PG Reclipse Jan Rieke Gliederung Motivation Architektur von Eclipse Quelltext-Repräsentation in Eclipse Java-Modell Java DOM/AST Zusätzliche Konzepte
MehrEffiziente Anwendungs-Entwicklung mittels Business Software Framework BISON Solution
Effiziente Anwendungs-Entwicklung mittels Business Software Framework BISON Solution Thomas Seiler Product Manager Technology BISON Schweiz AG Agenda Vergleich - Business Software Framework zu.net Framework
Mehr