Game Development 1. Proseminar Objektorientiertes Programmieren mit.net und C# Philipp Kaiser. Institut für Informatik Software & Systems Engineering

Ähnliche Dokumente
XNA. Alt Christian, Atzl Caroline, Gintner Peter, Huemer Sandra. January 16, 2009

GUI-Entwicklung 2: Windows Presentation Foundation

C++ Tutorial: Timer 1

Einführung in XNA

Einführung in die Programmierung

3D Rendering Praktikum XNA Game Programming. computer graphics & visualization

Grundlagen der Programmierung Prof. H. Mössenböck. 14. Schrittweise Verfeinerung

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Einführung in das Seminar Einführung in XNA Vorstellung der Teilnehmer Gruppenfindung

Persona-SVS e-sync GUI/Client Installation

Bitte wenden. Name: KURSARBEIT NR. 4 (10 DIFF GA) Seite 1

Programmieren in Haskell Einführung

Aktuelles SEPA Umstellung

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Anleitung für Mobildruck und -scan aus Brother iprint&scan (Windows Phone )

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

Installation OMNIKEY 3121 USB

Bilder. 2D Spiele programmieren in Java. Alpha channel. Formate. Optimierung. Empfehlung

Game Development 1 XNA Framework für PC und Xbox

Game Development 2 (Windows Phone)

Übung - Datenmigration in Windows Vista

Von Windows-Forms zu WPF mit Expression Blend? Thomas Müller conplement AG Nürnberg

Graphic Coding. Klausur. 9. Februar Kurs A

Um die Rücklagen ordnungsgemäß zu verbuchen, ist es wichtig, Schritt-für-Schritt vorzugehen:

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Anleitung für die Teilnahme an den Platzvergaben "Studio II, Studio IV und Studio VI" im Studiengang Bachelor Architektur SS15

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Das weltweit persönlichste Smartphone.

public class SternchenRechteckGefuellt {

Auf Diät Wie Sie Ihre Entwicklung verschlanken. Job Merkblätter. Einmal drucken pro Team

Visual Basic Express erstes Projekt anlegen

Objektorientierte Programmierung

Terminabgleich mit Mobiltelefonen

Erläuterung des technischen Hintergrundes des neues RIWA GIS-Zentrums

Cross-Plattform Spieleentwicklung mit der SDL

Mastermind. Testplan. Hochschule Luzern Technik & Architektur. Programmieren 2 FS12. Gruppe 10

Unified Communication Client Installation Guide

HOSTED EXCHANGE EINRICHTUNG AUF SMARTPHONES & TABLETS

Navigation. Drucken Klicken Sie auf ein Symbol, um nähere Informationen zu erhalten. Papierhandhabung Anzeigen der Online-Informationen

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.

Sound-Formate. SelfLinux Autor: Johnny Graber Formatierung: Torsten Hemm Lizenz: GFDL

Access Grundlagen für Anwender. Andrea Weikert 1. Ausgabe, 1. Aktualisierung, Juli inkl. zusätzlichem Übungsanhang ACC2010-UA

Erste Schritte mit

Erstellen der Barcode-Etiketten:

16 Sprachsteuerung Möglichkeiten der Sprachsteuerung

Die Backup-Voreinstellungen finden Sie in M-System Server unter dem Reiter "Wartung".

Technische Hochschule Georg Agricola WORKSHOP TEIL 3. IKT (Informations- und Kommunikationstechnik) an einer MorseApp erklärt

Erste Schritte am Rechner

Arbeiten mit UMLed und Delphi

1 Vom Problem zum Programm

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Einführung in die Programmierung

Schnittstelle zum Kalkulationssystem VI2000 der Firma Softwareparadies

GPS Navigation für PPC

Projekt Einführung SAP HCM Personalmanagement

Integrierte und automatisierte GUI-Tests in Java

Daniel Warneke Ein Vortrag im Rahmen des Proseminars Software Pioneers

Programmierkurs Java

GPS Garmin MapSource - Track erstellen und nutzen

Perspektiven: Spiele in ios

Übungen zu Grundlagen der Informatik I WS 2004/05

Typumwandlungen bei Referenztypen

Anwendungsentwicklung mit dem Windows Phone 7

D a s P r i n z i p V o r s p r u n g. Anleitung. - & SMS-Versand mit SSL (ab CHARLY 8.11 Windows)

ITT AQUAVIEW WEB-Server. Kurzbedienungsanleitung

Die IFC Schnittstelle in EliteCAD V11 AR ist ein objektorientierter Datentransfer und kann parametrisierte 3D-Modelldaten austauschen.

.Net Security. Proseminar Objektorientiertes Programmieren mit.net und C# Sabahattin Giritli. Institut für Informatik Software & Systems Engineering

Datenbanken Microsoft Access 2010

Adobe Encore Einfaches Erstellen einer DVD

desk.modul : ABX-Lokalisierung

AcQuickPrint / AcSetPrinter Publizieren leicht gemacht / Drucker in Layouts tauschen

Befehlssatz zum High Speed Interface-88-USB (HSI-88-USB) (ab Firmware 0.71) (Version 1.2)

Anmerkungen zur Erstellung, dem automatisierten Versand und der automatisierten Auswertung von pdf-formularen

ecaros Ford ETIS-FSA Werkstatt- & Rückrufaktionen Ford ETIS-FSA procar informatik AG 1 Stand: DP 11/2013 Eschenweg Weiterstadt

In diesem Bereich wird beschrieben, wie Sie eine Datensicherung der Software Jack Plus durchführen können.

HorstBox (DVA-G3342SD)

SCHULVERSUCH INFORMATIK IN BADEN-WÜRTTEMBERG. Gerhard Liebrich Peter-Petersen-Gymnasium Mannheim

Erwin Grüner

UP4DAR HOWTO: Firmware-Update via RS232- Schnittstelle

Methoden zur Entwicklung von Industrial Product Service Systems (IPS 2 )

> Soft.ZIV. Maple Mathematisches Software System

Java basierte Browser Plug-ins. Martin Kreis 3D-Graphik im Web WS 02/ Java basierte Browser Plug-ins 1. Übersicht

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Der Task-Manager

Exception Handling, Tracing und Logging

Inhaltverzeichnis 1 Einführung Zugang zu den Unifr Servern Zugang zu den Druckern Nützliche Links... 6

Haben Sie schon einmal aus einem ScreenCobol Requestor ein Java Programm aufgerufen?

XNA XNA s Not Acronymed. Vorlesung Virtual Reality Wintersemester 2007/2008 Jonas Schmidt, Martin Schiewe

AutoTexte und AutoKorrektur unter Outlook verwenden

Stepperfocuser 2.0 mit Bootloader

Ihr Ideen- & Projektmanagement-Tool

1 Hinweise zur Demo-Version

PowerPoint Vorträge professionell umsetzen

Praxisbeispiel: Mobile Lösung für Kontrollen im Agrarbereich mit durchgängigen Prozessen

Der SD-Kartenslot befindet sich an der rechten Gehäuseseite unterhalb der rechteckigen hellgrauen Gummiabdeckung.

Datenabgleich. Meine Welt auf einen Blick erleben.

-Login für Lernende der FREI'S Schulen

Bedienungsanleitung für den VM-1 MP-Dateibetrachter

Kurzanleitung Wireless Studenten (Windows 8) BGS - Bildungszentrum Gesundheit und Soziales Gürtelstrasse 42/ Chur

Transkript:

Game Development 1 Proseminar Objektorientiertes Programmieren mit.net und C# Philipp Kaiser Institut für Informatik Software & Systems Engineering

Agenda Allgemeine Spieleentwicklung XNA: Vereinte Programmierschnittstellen Entführung in die Praxis 06.02.2013 Game Development 1 2

Allgemeine Spieleentwicklung Geschichte der Spieleentwicklung Das Rundensystem Performanz Programmierschnittstellen 06.02.2013 Game Development 1 3

Geschichte der Spieleentwicklung Pong (1972) NES(1983) Wolfenstein (1992) Die Sims (2000) World of Warcraft (2004) Battlefield 3 (2011) 06.02.2013 Game Development 1 4

Das Rundensystem Spieleschleife Neue Berechnungsrunde Spielstart Spielende Initialisierung Inhalte laden Spieleingabe abfragen Szene neu berechnen Szene zeichnen Inhalte entladen 06.02.2013 Game Development 1 5

Perfomanz Die Spieleschleife muss für jedes Bild (Frame) einmal durchlaufen werden Für ein flüssiges Spielgefühl werden 30 frames per second (fps) benötigt Art und Aufwand des Spieles entscheiden über Rechenaufwand der Schleife Wahl der Programmiersprache 06.02.2013 Game Development 1 6

Programmierschnittstellen Entwicklung von Grafik-APIs aufgrund der enormen Komplexität der Grafikkarte Einfaches und grafikkartenunabhängiges Anzeigen von 2D und 3D-Grafik Die zwei bekanntesten sind OpenGL und DirectX 06.02.2013 Game Development 1 7

XNA: Vereinte Programmierschnittstellen Überblick und Geschichtliches Schnittstellen Ein neues Projekt Die Spieleschleife Die Content-Pipeline Das Zeichnen Input Kollision 2D und 3D 06.02.2013 Game Development 1 8

Überblick und Geschichtliches XNA (XNA's Not Acronymed) ist eine Technologie zur Spieleentwicklung für Microsoft Windows, Xbox 360, Microsofts MP3-Player Zune sowie Windows Phone 7. XNA Game Studio 1.0 erschien am 11. Dezember 2006 Aktuell: XNA Game Studio 4.0 vom 16. September 2010 06.02.2013 Game Development 1 9

Schnittstellen Direct3D (Ausgabe in 2D und 3D) XACT (Audioausgabe) XInput (Kommunikation mit Input-Geräten) 06.02.2013 Game Development 1 10

Ein neues Projekt XNA erstellt automatisch: Eine Game-Klasse Eine Main-Methode Ein Content-Verzeichnis für alle Bilder/Texturen, Musik, Sound, Schriftarten, 06.02.2013 Game Development 1 11

Die Spieleschleife (1) berechne warte zeichne 06.02.2013 Game Development 1 12

Die Spieleschleife (2) public class Game1 : Microsoft.Xna.Framework.Game { GraphicsDeviceManager graphics; SpriteBatch spritebatch; public Game1()[...] protected override void Initialize() [...] protected override void LoadContent() [...] protected override void UnloadContent() [...] protected override void Update(GameTime gametime)[...] } protected override void Draw(GameTime gametime)[...] 06.02.2013 Game Development 1 13

Contentpipeline (1) Ein Asset ist eine Ressource für das Spiel, z.b. 3D Modelle, Audiodateien oder Grafiken Die Content Pipeline von XNA ermöglicht es einfach Assets für das Spiel zu konvertieren XNA bereitet alle Dateien entsprechend dem Zielsystem auf (z.b. unteschiedliche Audioformate für Windows und XBox) Kein Problem mit verschiedenen Formaten 06.02.2013 Game Development 1 14

Die Contentpipline (2) [ ] private Texture2D baumtexture; private Texture2D bottletexture; private Texture2D grastexture; private SpriteFont scorefont; protected override void LoadContent(){ baumtexture = Content.Load<Texture2D>("Texture/Baum"); bottletexture = Content.Load<Texture2D>("Texture/Flasche"); grastexture = Content.Load<Texture2D>("Texture/Gras"); scorefont = Content.Load<SpriteFont>("ScoreSchrift"); } [ ] 06.02.2013 Game Development 1 15

Das Zeichnen Für 2D Zeichnungen benötigt man die Hilfe des SpriteBatch-Objektes protected override void Draw(GameTime gametime) { GraphicsDevice.Clear(Color.CornflowerBlue); spritebatch.begin(); spritebatch.draw(targettexture, target.position, Color.White); spritebatch.draw(baumtexture, new Vector2(x, y), Color.White); spritebatch.drawstring(font, "Level:, new Vector2(5, 25), Color.Black); } spritebatch.end(); 06.02.2013 Game Development 1 16

Input Alle Eingaben müssen extra abgefragt werden! GamePadState gamepad = GamePad.GetState(PlayerIndex.One); KeyboardState keyboard = Keyboard.GetState(); if (keyboard.iskeydown(keys.left) && bunny.position.x > 0) { bunny.position = new Vector2(bunny.position.X - SPEED * (float)gametime.elapsedgametime.totalseconds, bunny.position.y); } if (keyboard.iskeydown(keys.right)) { } if (keyboard.iskeydown(keys.up)) { } if (keyboard.iskeydown(keys.down)) { } if (keyboard.iskeydown(keys.space)) { bunny.jump = true; } if (keyboard.iskeydown(keys.escape)) { ingame = false; pause = true; } 06.02.2013 <Footer> 17

Kollision XNA bietet eine einfache Art 2D Kollision zu überprüfen. Rectangle target = new Rectangle(PositionX1, PositionY1, TextureWidth1, TextureHeight1); Rectangle hindernis = new Rectangle(PositionX2, PositionY2, TextureWidth2, TextureHeight2); if (hindernis.intersects(target)) { [ ] } Für 3D Anwendungen bietet XNA die BoundingBox und BoundingSphere Sonstige Kollisionsmodelle müssen selbst implementiert werden 06.02.2013 Game Development 1 18

2D und 3D XNA bietet eine einfache Möglichkeit für 2D Projekte 3D Projekte benötigen Modelle und Wissen im Umgang mit Vertices Vertexeigenschaften werden von XNA bereitgestellt Meist ist ein 3D-Projekt alleine nicht mehr zu bewerkstelligen 06.02.2013 Game Development 1 19

Entführung in die Praxis 06.02.2013 Game Development 1 20

Fragen? Vielen Dank für Ihre Aufmerksamkeit! 06.02.2013 Game Development 1 21