Game Development 2 (Windows Phone)



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

Windows 10 > Fragen über Fragen

2. ERSTELLEN VON APPS MIT DEM ADT PLUGIN VON ECLIPSE

4.1 Download der App über den Play Store

Terminabgleich mit Mobiltelefonen

SANDBOXIE konfigurieren

C++ Tutorial: Timer 1

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista

iphone- und ipad-praxis: Kalender optimal synchronisieren

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Präsentation Von Laura Baake und Janina Schwemer

1 Was ist das Mediencenter?

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Windows wird nicht mehr unterstützt Was bedeutet das? Was muss unternommen werden? Compi-Treff vom 9. Mai 2014 Thomas Sigg

Einmalige Einbindung in Ihre Netzwerkumgebung

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Das Starten von Adami Vista CRM

Lokale Installation von DotNetNuke 4 ohne IIS

Installationshilfe und Systemanforderungen. Vertriebssoftware für die Praxis

COMPUTERIA VOM Wenn man seine Termine am Computer verwaltet hat dies gegenüber einer Agenda oder einem Wandkalender mehrere Vorteile.

Anleitung zur Software-Installation. ENDEAVOUR 1001 Version Deutsch

ACHTUNG: Es können gpx-dateien und mit dem GP7 aufgezeichnete trc-dateien umgewandelt werden.

PROBLEME BEIM INSTALLIEREN REALTEK HD AUDIO TREIBER

Datenübernahme von HKO 5.9 zur. Advolux Kanzleisoftware

Leichte-Sprache-Bilder

ltlasten in der Registrierdatenbank löschen

icloud nicht neu, aber doch irgendwie anders

Installations- und Bedienungsanleitung CrontoSign Swiss

Version smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1):

Benutzerleitfaden MobDat-CSG (Nutzung des Heimrechners für dienstliche Zwecke)

SJ OFFICE - Update 3.0

Kurzanleitung für das Bezahlen mit dem Kartenlesegerät von VASCO girocard im Internet

Anleitung über den Umgang mit Schildern

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

SECURE DOWNLOAD MANAGER

Einfach noch mehr rausholen. Bedienungsanleitung Medien BETA

Whitepaper. Produkt: combit Relationship Manager. SQL Server 2008 R2 Express um Volltextsuche erweitern. combit GmbH Untere Laube Konstanz

GeoPilot (Android) die App

Windows 7. Consumer Features Leben ohne Grenzen

Update von Campus-Datenbanken (FireBird) mit einer Version kleiner 9.6 auf eine Version größer 9.6

Windows 10. Vortrag am Fleckenherbst Bürgertreff Neuhausen.

Apple Train the Trainer 08 Developer Programs. Josef Kolbitsch

Secure Download Manager Übersichtsleitfaden Vertraulich Version 2.2

MSDE 2000 mit Service Pack 3a

Update und Konfiguraton mit dem ANTLOG Konfigurations-Assistenten

Vorbereitung einer Grafik zum Druck einer Glotze aus, Stadion an! -Zaunfahne Torsten Bunde, Stand 5. Juli 2014

ACDSee Pro 2. ACDSee Pro 2 Tutorials: Übertragung von Fotos (+ Datenbank) auf einen anderen Computer. Über Metadaten und die Datenbank

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

1. Einschränkung für Mac-User ohne Office Dokumente hochladen, teilen und bearbeiten

Family Safety (Kinderschutz) einrichten unter Windows 8

Firmware-Installationsanleitung für AVIC-F60DAB, AVIC-F960BT, AVIC-F960DAB und AVIC-F860BT

Management Selbst-Service: Szenarien

Öffnen Sie die Albelli Gestaltungssoftware

PAUL App. Anleitung für Studierende und Lehrende

Anleitung zur Installation von Klingeltönen für ios-geräte

Neue Schriftarten installieren

Nie wieder eine Sitzung verpassen unser neuer Service für Sie!

Updatehinweise für die Version forma 5.5.5

Umstieg auf Microsoft Exchange in der Fakultät 02

Anleitung zur Registrierung von MSDNAA (DreamSpark) und Erwerb der Microsoft Produkte

Anleitung für Zugriff auf Hosted Zarafa

Phoenix4 Live ios Control Anleitung

FTP-Server einrichten mit automatischem Datenupload für

Dokumentation von Ük Modul 302

Wie richten Sie Ihr Web Paket bei Netpage24 ein


Android Testautomatisierung mit dem Framework Robotium

TeamSpeak3 Einrichten

Samsung Large Format Display

Beruflichen Schule in Nidda

Bitte melden Sie sich als Administrator des Betriebssystems oder als Benutzer mit ausreichenden Installationsrechten an Ihrem PC an.

PC-Umzug: So ziehen Sie Ihre Daten von Windows XP nach Windows 8 um

Drucken von Webseiten Eine Anleitung, Version 1.0

1.3. Installation und Konfiguration von Filr Desktop

1 Voraussetzungen für Einsatz des FRITZ! LAN Assistenten

Monatstreff für Menschen ab 50 Temporäre Dateien / Browserverlauf löschen / Cookies

Installation der SAS Foundation Software auf Windows

Benutzerhandbuch MedHQ-App

neu aufsetzen. Daten sichern... 2 Was man nach dem "Aufsetzen" unbedingt braucht!... 5

Deutsch Kurzanleitung Installation Intelligente Farb LED Lampen

Installationsanleitung CLX.NetBanking

Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung

Übung - Konfigurieren einer Windows-XP-Firewall

10.1 Auflösung, Drucken und Scannen

Lizenzen auschecken. Was ist zu tun?

IBM SPSS Statistics Version 22. Installationsanweisungen für Windows (Lizenz für gleichzeitig angemeldete Benutzer)

Installation und Inbetriebnahme von Microsoft Visual C Express

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

Starten der Software unter Windows 7

Tipp: Proxy Ausschalten ohne Software Tools

Registrierung als Android Market Developer

X-RiteColor Master Web Edition

Family Safety (Kinderschutz) einrichten unter Windows 7

EchoLink und Windows XP SP2

zwanzignull8 DIE MODULARE VERTRIEBS SOFTWARE im Einsatz für die Sto SE & Co KGaA info@1a-p.com (0)

bizsoft Rechner (Server) Wechsel

Wie Sie mit einer Website tausend Geräte bespielen und das auch tun sollten

Inhalt. 1 Übersicht. 2 Anwendungsbeispiele. 3 Einsatzgebiete. 4 Systemanforderungen. 5 Lizenzierung. 6 Installation.

FrogSure Installation und Konfiguration

Transkript:

Game Development 2 (Windows Phone) Proseminar Objektorientiertes Programmieren mit.net und C# Igor Galochkin Institut für Informatik Software & Systems Engineering

Agenda Allgemein zu Windows Phone Tools/Voraussetzungen für Spielentwicklung Erste Schritte: Silverlight und XNA XNA: 2D Grafik, Input, Sound, Musik XNA: 3D Grafik Game Engines Distribution & Sales Zukunft 2

Allgemein zu Windows Phone Windows CE Familie Nachfolger von Windows Mobile (letzte Version 6.5.5), aber nicht rückwärtskompatibel Seit Oktober 2010 Mango Update GUI Design Metro Start Screen mit Live Tiles (Links zu Apps) Windows Marketplace WindowsLive Account Zune Synch-Software Jailbreak: ChevronWP7 3

Tools/Voraussetzungen für Spielentwicklung Mindestens Windows Vista (nicht Starter Edition), Windows XP geht nicht Für Emulator: Grafikkarte mit DirectX 10 Visual Studio 2010 (Express Edition) + Windows Phone Developer Tools (kostenlos) Windows Phone Developer Tools Update (Jan 2011) + Fix Windows Live Account (kostenlos) Echtes Device, z.b. HTC Mozart (auf ebay für 150 Euro, neues 300 Euro) Zune kostenlos herunterladen um Update zu installieren App Hub developer account für Windows Phone und X-Box Entwicklung ($99 pro Jahr) um auf physisches Device überhaupt installieren zu können und um auf Windows Marketplace Apps zu veröffentlichen Für US/Canada und auch Deutschland geht's frei für Studenten (muss auf DreamSpark Studentenstatus beweisen) Oder jailbreaken 4

Erste Schritte XNA oder Silverlight? XNA: Direkter Zugriff auf Hardware kann viel mehr Bilder pro Sekunde zeichnen Game Loop schon vorgegeben Silverlight: GUI Controls Seit Mango Update können in einer App kombiniert werden 5

Erste Schritte (Silverlight) 6

Silverlight Spiel Sehr einfaches Spiel Ihr seid Projekt Manager Computer ist der Programmierer Leider ist dieser Programmierer Bruder vom Geschäftsführer Ihr versucht mit dem Projekt weiter zu kommen Programmierer will nichts tun Ihr könnt ihn nicht feuern 7

XNA Wrapper für DirectX Version 4.0 2D und 3D Grafik, Sound, Input Erlaubt relativ einfach XNA-basierte Spiele für Windows und Xbox auch auf Windows Phone zu portieren einiges doch fehlt auf Windows Phone keine Shader Programmierung (nur ein Paar vorgegebene Shaders) Fürs Management von Ressources erstellt XNA ein zusätzliches Projekt Content, wird vom Spielprojekt referenziert Kompiliert Ressourcen nur einmal HD Grafiken für Xbox oder Windows Versionen vom Spiel können in anderen Content Projekten abgelegt werden Content Projekte können von mehreren Spielen referenziert werden 8

Erste Schritte (XNA Phone Game) 9

XNA: Game Loop Ziel: konstante Geschwindigkeit auf allen Geräten Trennung von reeler Zeit und Spielzeit Konzept vom Fixed Time Setup Wenn IsFixedTimeStep false: Update() und Draw() werden mit unterschiedlichen Zeitintervalen in Schleife aufgerufen (vergangene Zeit muss im Update z.b. beim Updaten von Position des Spielobjekt in Kalkulation einfließen) Pro: wird automatisch zu Refresh Rate angepasst. Auch auf langsamen Geräten Contra: Batterie unfreundlich, Tunneling bei Collision detection u.a. 10

XNA: Game Loop (2) Wenn IsFixedTimeStep true (default): Update() wird exakt jede TargetElapsedTime Millisekunden aufgerufen Danach Draw() Aufruf wenn Update() gerade nicht läuft Danach bis zum nächsten Update Prozessor freigeben Problem: Update + Draw Zeit > TargetElapsedTime IsRunningSlowly zu true und kein Draw() Update() ständig aufrufen bis wieder ok Hoffnung dass Update + Update + Draw in 2 Frames passen Update kann nach IsRunningSlowly prüfen und ggf. weniger Sachen machen um schneller zu werden 11

XNA: Sprites zeichnen Image Datei zum Projekt hinzufügen In LoadContent() als Texture2D laden texball = Content.Load<Texture2D>("ball"); Auch in LoadContent() spritebatch initialisieren spritebatch = new SpriteBatch(GraphicsDevice); In Draw() Sprite zwischen spritebatch.begin() und spritebatch.end() zeichnen Vector2 pos = new Vector2(100, 100); spritebatch.begin(); spritebatch.draw(texball, pos, Color.White); spritebatch.end(); In Update() positionen und Animationszustand ändern BallSmasher Demo 12

XNA: Transformationen von Sprites Unterschiedliche Versionen vom SpriteBatch.Draw() Methode erlauben: Nur einen Teil vom Sprite rendern Sprite rotieren (z.b. 35 Grad) Uniform oder Non-uniform skalieren Auch beim Skalieren Point of Origin setzen Skalieren um einen Rechteck mit dem Sprite zu füllen Color Tint macht Grayscale Bild zu Schatten von benötigter Farbe (z.b. Blau). Nützlich um Units uterschiedlicher Fraktionen in Laufzeit zu färben oder weniger Sprites für ähnliche Gegner zu haben Beim Draw Aufruf kann auch Z-depth angeben (Layers), sonst werden Layers implizit von der Zeichnenreinfolge bestimmt Eine Farbe als trasparent betrachten (Color Key) Kann auch Sprites als Schriftart fürs Rendern vom Text benutzen 13

XNA: Touches lesen Touches im Update() abfragen statt Callback implementieren! Bei 60 FPS sollte alle Taps merken Leichter als Event Handler zu implementieren TouchCollection touches = TouchPanel.GetState(); foreach (TouchLocation touch in touches){ } Kann auch high-level Gestures abfragen (Queue) while (TouchPanel.IsGestureAvailable) { GestureSample gesture = TouchPanel.ReadGesture(); switch (gesture.gesturetype) { case GestureType.Tap: 14

XNA: Sounds Sound-Datein zum Contents Projekt hinzufügen MP3s in Properties->Content Prozessor von Song zu Sound Effect umschalten Leider werden alle Sounds als raw WAV ohne Kompression gespeichert In LoadContent() laden sfxnewball = Content.Load<SoundEffect>("sfx_new_ball"); Play() Oder Play (volume, pitch, pan) Volume von 0.0 (silence) bis 1.0 (voll) relativ zu master Volume Pitch von -1 (1 Oktave niedriger) bis +1 (1 Oktave höher) Pan von -1 (nur linkes Micro) bis +1 (nur rechtes Micro) 15

XNA: Music Nur MP3, kein OGG! Microsoft verlangt, dass das Spiel den Benutzer fragt ob er die Musik einschalten will weil er schon andere Musik im hintergrund hören kann Song in LoadContent() laden und abspielen MediaPlayer kann auch nicht verfügbar sein. if (MediaPlayer.GameHasControl) { songmenuloop = Content.Load<Song>("menu_loop"); MediaPlayer.IsRepeating = true; MediaPlayer.Play(songMenuLoop); } 16

XNA: 3D Class-basierter.NET Wrapper für Direct3D Um Färbiges Quadrat zu zeichnen: private BasicEffect effect; private VertexPositionColor[] vertices = new VertexPositionColor[4]; protected override void Initialize() { effect = new BasicEffect(GraphicsDevice); effect.lightingenabled = false; effect.textureenabled = false; effect.vertexcolorenabled = true; float faspectratio = (float)graphicsdevice.viewport.width / (float)graphicsdevice.viewport.height; effect.projection = Matrix.CreatePerspectiveFieldOfView(MathHelper.ToRadians(45), faspectratio, 0.1f, 1000.0f); effect.view = Matrix.CreateLookAt(new Vector3(0, 0, 10), Vector3.Zero, Vector3.Up); effect.world = Matrix.Identity; vertices[0].position = new Vector3(-1, -1, 0); vertices[1].position = new Vector3(-1, 1, 0); vertices[2].position = new Vector3(1, -1, 0); vertices[3].position = new Vector3(1, 1, 0); vertices[0].color = Color.Red; vertices[1].color = Color.Yellow; vertices[2].color = Color.Blue; vertices[3].color = Color.Green; base.initialize(); } protected override void Draw(GameTime gametime) { GraphicsDevice.Clear(Color.CornflowerBlue); foreach (EffectPass pass in effect.currenttechnique.passes) { pass.apply(); GraphicsDevice.DrawUserPrimitives(PrimitiveType.TriangleStrip, vertices, 0, 2); } base.draw(gametime); } 17

XNA: 3D (2) Um Quadrat zu rotieren: In Update() angle updaten angle += MathHelper.ToRadians(5); In Draw() Wolrd-Matrix neu ausrechnen effect.world = Matrix.CreateRotationZ(angle); Texturen verwenden: Statt VertexPositionColor z.b. VertexPositionTexture Texturcoordinaten eingeben Textur zum Content Projekt hinfügen und in LoadConent() laden tex = Content.Load<Texture2D>("fallbirch_leaf_m_diffuse"); In Draw() die Textur an Effekt anbinden Um nicht-potenz 2 Texturen zu verwenden, Addressierung in SamplerState zu Clam setzen Ggf. Culling in RasterizerState ein/ausschalten usw. 18

Game Engines für Windows Phone Unity unterstützt Windows Phone leider nicht: David Helgason, Unity Technologies CEO: "[WP7] is a relatively closed system so you can't run native content, which means we can't really support it. We could, in theory, do what we've done with Flash, which is to rewrite the engine so it works inside a non-native environment. So it could be done, in theory, but it's very much in theory because that would require a huge amount of work and uncertain results." Commercial level: SunBurn 2.0 ($150 indie, $300 pro, $1000 studio Lizenz) Andere (nicht viele eigentlich): Popfly Delta Engine Sectors Engine Nine 19

Distribution & Sales App Hub developer account für Windows Phone und Xbox Entwicklung ($99 pro Jahr) um auf physisches Device überhaupt installieren zu können und um auf Windows Marketplace Apps zu veröffentlichen Für Studenten kostenlos Minimaler Preis von App $0.99, max $499.99 Approval Prozess Microsoft nimmt 30% von jeder Transaktion Geld wird an dem Developer ausgezahl erst wenn Gewinn $200 beträgt 100 kostenlose Apps pro Entwlickler, dann $19.99 pro Submission Unbeschränkte Anzahl von kostenpflichtigen Apps pro Entwickler Integration mit Xbox über XboxLive (Games Hub). Spieler kan mit seinen Xbox-Freunden chatten, Highscore anschauen und auch Rund-basierte Spiele spielen 20

Zukunft von Windows Phone Noch unklar (Stand Januar 2012) und aktiv diskutiert Kann 2012 auf den 3. Platz mit 5% (?) Marktanteil nach Android und ios kommen (mit Blackberry und Symbian auf Death spiral ) MS will zum 2015 auf dem 2. Platz nach Android sein Einige Argumente für Erfolg von Windows Phone: Leistungfähiges System (auf jeden Fall stärker als Android) Bessere Standartisierung als bei Android Kein ios clone (Benutzer vermutlich langweilen sich schon mit ios) Gute Entwicklungstools Riesiges Marketing Budget von Microsoft Noch nicht viele Entwicker (mehr Sales pro Entwickler) Vorteile aus XboxLive Integration, MS dominiert schon Desktop und TV 21

Zukunft von Windows Phone (2) Einige Argumente genen Erfolg von Windows Phone: MS ist zu spät da und der Markt ist schon verteilt (?) Windows Phone ist ein Me too Produkt und soll zuerst be vastly superior zu iphone und Android, was in den Augen des Benutzers nicht der Fall ist Es besteht die Gefahr dass die kritische Masse von Apps nie erreicht wird (und ein Smartphone ohne Apps nutzlos wird) Schlechter Ruf von Microsoft, auch von spezifischen Produkten: Internet Explorer, Bing, Zune, Office, die ohne Nahmensänderung in Windows Phone gewandelt haben iphone 5 und Android 4.0 kommen in 2012 Google und Apple haben auch riesiges Marketingkapital und generell besseres Image 22

Zukunft von Windows Phone (3) Statistiken soweit (Stand Ende 2011): In ersten 12 Monaten nach Release geschätzt 1-2Mio Geräte an End- Benutzer verkauft (keine offizielle Daten von Microsoft seit Januar 2011) Jetziger geschätzter Marktanteil 1-2%, zusammen mit Windows Mobile 5-7% MS ist enttäuscht aber hat Hoffnung für 2012 Technisch progressiert schnell (Mango Update vieles besser gemacht) Schon 40k Apps auf Windows Marketplace (Wachstumsrate schneller als am Anfang bei Android war) Generell positive Reviews in Medien Aber Carriers (Telefonanbieter) fast weltweit bevorzugen Android Einkommen von Entwickler geschätzt im Durchschnit 8 mal höcher als auf ios 23

Vielen Dank! Fragen? 24