Windows 8 dla twórców gier - rzut oka

55
Windows 8 nowe możliwości dla twórców gier Rafał Czupryński v- [email protected] m

description

Pierwszy rzut oka na Windows 8 z punktu widzenia programisty gier. Kilka słów o narzędziach itp. Zapraszam do kontaktu i przesyłania do mnie informacji, które zagadnienia mam rozwinąć i o czym jeszcze chcielibyście posłuchać/poczytać.

Transcript of Windows 8 dla twórców gier - rzut oka

Page 1: Windows 8 dla twórców gier - rzut oka

Windows 8 nowe możliwości dla twórców gier

Rafał Czupryń[email protected]

Page 2: Windows 8 dla twórców gier - rzut oka

O czym dzisiaj?

Dlaczego właśnie gry na Windows 8?

Nowe możliwości i wyzwania dla twórców gier

Narzędzia dla programistów i nie tylko

Page 3: Windows 8 dla twórców gier - rzut oka

Dlaczego właśnie gry

na Windows 8?

Page 4: Windows 8 dla twórców gier - rzut oka

Dlaczego właśnie gry na Windows 8?

Platforma łatwo dostępna dla deweloperów

(Stosunkowo) łatwo się je programuje

Bardzo duża baza odbiorców

jedyna możliwość jednoczesnego zaadresowania urządzeń

ARMowych

Nowe możliwości…

Page 5: Windows 8 dla twórców gier - rzut oka

34% wszystkich ściągniętych aplikacji stanowią gry

57% wszystkich płatnych ściągnięć to gry!!!

Czy wiecie, że…

Page 6: Windows 8 dla twórców gier - rzut oka

Windows 8 to wiele urządzeń

Page 7: Windows 8 dla twórców gier - rzut oka

Twoja gra jest w centrum uwagi

Page 8: Windows 8 dla twórców gier - rzut oka

Łatwość wykreowania własnej marki

Page 9: Windows 8 dla twórców gier - rzut oka

Łatwość w dystrybucji i zarabianiu

Poprzez Windows Store zainstalujesz grę na każdym urządzeniu z Windows 8

Wersje trial Płatności wewnątrz gry Reklamy

Page 10: Windows 8 dla twórców gier - rzut oka

Nowe możliwości i wyzwania dla twórców gier

Page 11: Windows 8 dla twórców gier - rzut oka

Platforma Windows 8

Communication

& Data

Devices & Printing

WinRT APIsGraphics &

Media

Desktop apps

CC++

Win32

C#VB

.NET SL

HTMLJavaScri

pt

Internet Explore

r

Windows Store apps

Application Model

XAML

JavaScript

HTML / CSS

CC++

C#VB

Windows Kernel Services

Syst

em

Serv

ices

Vie w

Mod

el

Con

trol

ler

Kern el

Page 12: Windows 8 dla twórców gier - rzut oka

DevicesSensor

sGeolocation

Portable

NFC

Communications & DataContracts

XML

Web

SMSNetworking

Notifications

Local & Cloud Storage

Streams

Background Transfer

User InterfaceHTML5/CSS XAML DirectX Controls

Input Accessibility Printing

Data Binding

TilesSVG

FundamentalsApplication

ServicesAuthenticatio

nCryptograph

yGlobalizatio

nMemory

ManagementThreading/Timers

MediaVisual Effects

Playback

PlayToCaptur

e

Windows Store App API

Page 13: Windows 8 dla twórców gier - rzut oka

Środowisko uruchomieniowe aplikacji

Jadro

syst

em

uwywołania Direct API

Brokerwywołania API

Brokera

Kontener aplikacji: podpisany i zwalidowany kod

Twoja gra

Win

RT A

PI

Game.exe

AppXManifest

Page 14: Windows 8 dla twórców gier - rzut oka

Uruchomienie gry

OS wczytuje Twoją grę

Gra urucha

mia Loadin

g Screen

Splash Screen Loading Screen

Gra działa

Gameplay

Menu Screen

Load() Run()

Page 15: Windows 8 dla twórców gier - rzut oka

Cykl życia gry

Gra działa

Uśpiona gra

suspendingKill grymało

zasobówresuming

Gra ma jeszcze 5 sekund działania zanim

zostanie zawieszona

Gra nie dostaje informacji, że będzie

„ubita”

Gra dostaje powiadomienie, że jest

wznawiana

Użytkownik

uruchamia grę

Page 16: Windows 8 dla twórców gier - rzut oka

Różne stany widoku

Gra otrzymuje informacje o zmianie widoku Można np. zapauzować grę w widoku Snapped Użytkownicy mogą mieć np. naszą grę otwartą w Filled i

serwis społecznościowy uruchomiony w Snapped

Filled4 x 3

Snappedtrochę jak

telefon

Full screen16 x 9

Page 17: Windows 8 dla twórców gier - rzut oka

ViewState

void MyApp::SetWindow(CoreWindow^ window){    window->SizeChanged +=      ref new TypedEventHandler<CoreWindow^, WindowSizeChangedEventArgs^>( this, &MyApp::OnWindowSizeChanged);     ApplicationView::GetForCurrentView()->ViewStateChanged +=      ref new TypedEventHandler <ApplicationView^, ApplicationViewStateChangedEventArgs^>( this, &MyApp::OnViewStateChanged);}

Page 18: Windows 8 dla twórców gier - rzut oka

Orientacje ekranu

Gra otrzymuje powiadomienia o zmianie orientacji ekranu Możemy zablokować grę w określonej orientacji Jak z tego korzystać?

Landscape

Portrait

Page 19: Windows 8 dla twórców gier - rzut oka

Preferencje rotacji{

DisplayOrientations::None; // Enable rotation by OS/AccelerometerDisplayOrientations::Landscape; // Lock rotation by OS/AccelerometerDisplayOrientations::LandscapeFlipped; // and enable this orientationDisplayOrientations::Portrait;DisplayOrientations::PortraitFlipped;

}

using namespace Windows::Graphics::Display;

DisplayProperties::AutoRotationPreferences = DisplayOrientations::Landscape |

DisplayOrientations::LandscapeFlipped;

Page 20: Windows 8 dla twórców gier - rzut oka

Gęstość pikseli (DPI)

Przy tworzeniu grafiki skup się na DPI

XAML jest właściwie niezależny od rozdzielczości

Uważaj na sterowanie dotykiem – ludzka dłoń ma taki sam

rozmiar niezależnie od rozmiaru ekranu

Ekrany 1080p mogą mieć różne rozmiary np. 10”, 30”, 75”

Page 21: Windows 8 dla twórców gier - rzut oka

Korzystaj z nowych możliwości sterowania

• Windows 8 umożliwia sterowanie grami poprzez dotyk

• Mysz i klawiatura są nadal jednym ze sposobów sterowania

Page 22: Windows 8 dla twórców gier - rzut oka

Nawigacja wewnątrz aplikacji

Semantic Zoom

Główny Hub Rozgrywka

Dodatki

Page 23: Windows 8 dla twórców gier - rzut oka

Żywe kafelki

Przyciągnij uwagę gracza do swojego

produktu – nawet jeżeli w tym momencie w

niego nie gra!

Page 24: Windows 8 dla twórców gier - rzut oka

Notyfikacje Toast

Page 25: Windows 8 dla twórców gier - rzut oka

Wykorzystaj możliwości „bump to play”

Page 26: Windows 8 dla twórców gier - rzut oka

Pamiętaj o Semantic Zoom

Semantic Zoom

Główny Hub

Page 27: Windows 8 dla twórców gier - rzut oka

Wykorzystaj akcelerometr

Page 28: Windows 8 dla twórców gier - rzut oka

Potrząśnij żeby wczytać od nowa level

Page 29: Windows 8 dla twórców gier - rzut oka

Charm Settings

Page 30: Windows 8 dla twórców gier - rzut oka

Charm Share: podziel się rozgrywką

Page 31: Windows 8 dla twórców gier - rzut oka

Charm Device = Extend + PlayTo

Page 32: Windows 8 dla twórców gier - rzut oka

?40,000,000 użytkowników

2,100,000,000 godzin gry / miesiąc

>6,300,000,000 przyznanych achievementów

176,802,201,383 zdobytych punktów gracza

Page 33: Windows 8 dla twórców gier - rzut oka

Wykorzystaj nowe możliwości C++

Page 34: Windows 8 dla twórców gier - rzut oka

Poprawiony edytor kodu

Kolorowanie koduPoprawia przejrzystość kodu

Podświetlanie referencjiZnajdź wszystkie odnośniki w kodzie

IntelliSenseWsparcie dla C++/CLI

Page 35: Windows 8 dla twórców gier - rzut oka

Testowanie, ALM i C++

Testy jednostkowe Poprawione możliwości

analizy kodu Diagramy zależności

Struktura projektuTesty jednostkowe

Pokrycie kodu Analiza kodu

Page 36: Windows 8 dla twórców gier - rzut oka

Specjalne rozszerzenie języka na potrzeby WinRT (pełne wsparcie C++ 11)

Między innymi: nowy sposób

tworzenia obiektów i referencji do nich

partial classes wsparcie dla typów

generycznych integracja z STL

Rozszerzenie języka C++/CXXAML:

<Button x:Name=“TestButton” Width = “50” Height= “20” Content=“Click Me” Click=“TestButton_Click” />

C++ (generated):Button^ TestButton = ref new Button();TestButton->Width = 50;TestButton->Height = 20;TestButton->Content = “Click Me”;

C++ (user editable):void MyPage::TestButton_Click(Object^ sender, RoutedEventArgs^ e){// do something}

Page 37: Windows 8 dla twórców gier - rzut oka

C++ AMP (Accelerated Massive Parallelism) Biblioteka oparta

na DirectX 11

Łatwe zrównoleglanie algorytmów

Znaczne przyspieszenie wykonywania obliczeń – przeniesienie ich na GPU

Poprawiony kompilator C++

#include <amp.h>using namespace concurrency;void AddArrays(int n, int *pA, int *pB, int *pC){    array_view<int,1> a(n, pA);    array_view<int,1> b(n, pB);    array_view<int,1> sum(n, pC);     parallel_for_each(sum.grid, [=](index<1> idx) restrict(amp) {        sum[idx] = a[idx] + b[idx];    } );}

Page 38: Windows 8 dla twórców gier - rzut oka

Co z DirectX?

Page 39: Windows 8 dla twórców gier - rzut oka

Wersje DirectX

Windows XP DirectX 9 Hardware Direct3D 9 API

Windows Vista DirectX 10 Hardware Direct3D 10 API

Windows 7 DirectX 11 Hardware Direct3D 11 API

Jak stworzyć grę na wszystkie te platformy?

Feature Levels umożliwiają dostosowanie do konkretnego sprzętuFeature_Level_9 DirectX 9 HardwareFeature_Level_10 DirectX 10 HardwareFeature_Level_11 DirectX 11 Hardware

Page 40: Windows 8 dla twórców gier - rzut oka

Feature Level 9(Available on ALL hardware)

• Vertex shaders• Pixel shaders• 8 Textures• 4 Render Targets• Cube maps• Volume textures• Anisotropic filtering• Antialiasing• HDR rendering• Texture compression

Page 41: Windows 8 dla twórców gier - rzut oka

Feature Level 10(Available on DirectX 10 and later hardware)

• Vertex shaders• Pixel shaders• 8 Textures• 4 Render Targets• Cube maps• Volume textures• Anisotropic filtering• Antialiasing• HDR rendering• Texture compression

• Geometry shaders• Stream out• 128 Textures per

shader• 8 Render Targets• Integers in shaders• Vertex textures• Shader sampling• Constant buffers• Alpha-to-coverage• Basic DirectCompute• Async resource

creation

Page 42: Windows 8 dla twórców gier - rzut oka

Feature Level 11(Available on DirectX 11 and later hardware)

• Vertex shaders• Pixel shaders• 8 Textures• 4 Render Targets• Cube maps• Volume textures• Anisotropic filtering• Antialiasing• HDR rendering• Texture compression

• Geometry shaders• Stream out• 128 Textures per

shader• 8 Render Targets• Integers in shaders• Vertex textures• Shader sampling• Constant buffers• Alpha-to-coverage• Basic DirectCompute• Async resource

creation

• Full DirectCompute• Random access writes• Tessellation shaders• New compression

formats• Shader linkage

Page 43: Windows 8 dla twórców gier - rzut oka

Narzędzia dla programistów i nie tylko

Page 44: Windows 8 dla twórców gier - rzut oka

Programiści C++ Unreal Engine (UDK)

Od Epic Games – kompletny profesjonalny framework do tworzenia gier

Page 45: Windows 8 dla twórców gier - rzut oka

Programiści C++ CoCos2d-X

Oparty o bibliotekę iOS -> taka sama struktura API

Page 46: Windows 8 dla twórców gier - rzut oka

Programiści C# XAML

Można stworzyć grę w Blendzie

Page 47: Windows 8 dla twórców gier - rzut oka

Programiści C# MonoGame

Framework oparty na XNA 4.0

Page 48: Windows 8 dla twórców gier - rzut oka

Programiści HTML5/JS Canvas

Stwórz grę wykorzystując element Canvas

Page 49: Windows 8 dla twórców gier - rzut oka

Programiści HTML5/JS CreateJS

Zestaw przydatnych bibliotek i narzędzi, umożliwiający tworzenie gier w HTML5

Page 50: Windows 8 dla twórców gier - rzut oka

Programiści C# Unity

Najpopularniejsze narzędzie cross-platformowe do gier 2D i 3D

Page 51: Windows 8 dla twórców gier - rzut oka

Programiści HTML5/JS ImpactJS

Oparty na JavaScript silnik umożliwiający tworzenie multiplatformowych gier w HTML5

Page 52: Windows 8 dla twórców gier - rzut oka

Programiści HTML5/JS GameMaker

Zestaw narzędzi dla początkujących umożliwający tworzenie cross-platformowych gier

Page 53: Windows 8 dla twórców gier - rzut oka

Programiści HTML5/JS GameSalad

Cross-platformowe gry budowane z klocków -> nie trzeba kodować

Page 54: Windows 8 dla twórców gier - rzut oka

Programiści HTML5/JS Construct2

Platforma dla początkujących

Page 55: Windows 8 dla twórców gier - rzut oka

Twórzmy fajne gry na Windows 8

[email protected]