Criando jogos para o windows 8

2,434 views
2,285 views

Published on

Apresentação da Campus Party Recife sobre a criação de jogos para Windows 8.

1 Comment
1 Like
Statistics
Notes
  • 8---Boa tarde amigos,venham participar do
    MEGA EVENTOS DE FÉRIAS jogando.net/mu/
    Venham conhecer nossos Servidores de Mu
    Online Season 6 e participar dos EVENTOS
    De Férias que preparamos para vocês.
    CONFIRAM = http://www.jogando.net/mu/
    >>muitos kits novos;
    >> Nossos GMs online em todos os servers
    Fazem eventos todos os dias:
    Fazemos sua Diversão com qualidade,há mais de 5 anos
    Servers ON 24 horas por dia.
    Vários Server esperando por você.Venha se divertir de verdade.
    >>CURTA nossa Fan page no Facebook e concorra a prêmios.
    SORTEIO de 2 pacotes de 100 JCASHs mais 15 dias VIP Premium
    Site http://www.jogando.net/mu/ Benvindos ao nosso servidor.
    HYCLEN Divulgadora Oficial !!!
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
2,434
On SlideShare
0
From Embeds
0
Number of Embeds
14
Actions
Shares
0
Downloads
0
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide
  • Disclaimers
  • Disclaimers
  • Disclaimers
  • Disclaimers
  • Criando jogos para o windows 8

    1. 1. Criando Jogos para oWindows 8José Antonio “jalf” Leal de FariasCEO – Stairs Game StudioMicrosoft Most Valuable Professional
    2. 2. http://www.stairs.com.brhttp://www.sharpgames.net
    3. 3. Introdução• Aplicações estilo Metro focadas em Tablet / toque• Roda em processadores ARM, Intel, e AMD• GUI 100% acelerada via hardware• Desktop clássico ainda vive• Se seu PC roda o Windows 7 ele pode rodar o Windows 8
    4. 4. • $10B em games por ano• 145M de jogadores ativos somente nos EUA• Mais de 50% de todas as „apps‟ são games• Windows está se espalhando por uma gama maior de dispositivos
    5. 5. Top Questões sobre o Windows 8• Qual a Diferença entre o Windows 8 o Windows 8 Pro e o Windows RT?• WinRT API• Ainda vai rodar o Battlefield??• Usar o que? HTML5, XAML, C++, DirectX, Javascript, C#,…..• E o Flash??• E a Top Top Question: E O XNA???
    6. 6. Metro style Apps Desktop App View XAML HTML / CSSController C C# Model JavaScript HTML C C++ VB JavaScrip t C++ WinRT APIs System Services Communication Graphics & Devices & & Data Media Printing Application Model Internet Explorer Win32Kern Windows Kernel Services el
    7. 7. Game Components Típicos Seu Jogo Game Local ConnectedGraphics Audio Cut Scenes Tools Input Services Services Activatio Compiler 3-D Touch Sound FX Streaming User ID n s Distributi Debugger2-D, Text Sensors Music Effects Storage on s Game Search & Asset UI Controlle Settings Roaming ProcessoControls rs … rs
    8. 8. ref class MyApp : public IFrameworkView{public: MyApp(); // IFrameworkView Methods virtual void Initialize(CoreApplicationView^ applicationView); virtual void SetWindow(CoreWindow^ window); virtual void Load(String^ entryPoint); virtual void Run(); virtual void Uninitialize();
    9. 9. void MyApp::Run(){ auto dispatcher = CoreWindow::GetForCurrentThread()->Dispatcher; while (!m_windowClosed) { dispatcher->ProcessEvents(CoreProcessEventsOption::ProcessAllIfPresent); m_renderer->Update(); m_renderer->Render(); m_renderer->Present(); }}
    10. 10. Full Filled Snappedscreen 4x3 Phone-like16 x 9
    11. 11. 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);}
    12. 12. {{ DisplayOrientations::None; // Habilita a rotação pelo S.O./Acelerômetro DisplayOrientations::Landscape; // Trava a rotação pelo S.O./Acelerômetro DisplayOrientations::LandscapeFlipped; // E habilita esta orientação DisplayOrientations::Portrait; DisplayOrientations::PortraitFlipped;}using namespace Windows::Graphics::Display;DisplayProperties::AutoRotationPreferences = DisplayOrientations::Landscape | DisplayOrientations::LandscapeFlipped;
    13. 13. void MyApp::OnSuspending(Object^ sender, SuspendingEventArgs^ args){ SuspendingDeferral^ deferral = args->SuspendingOperation->GetDeferral(); task<void>([=]() { auto localState = ApplicationData::Current->LocalSettings->Values; auto roamingState = ApplicationData::Current->RoamingSettings->Values; localState->Insert( "GameTime", PropertyValue::CreateSingle(m_gameTime)); roamingState->Insert( "MaxLevel", PropertyValue::CreateUInt32(m_maxLevelUnlocked)); }).then([=]() { deferral->Complete(); });}
    14. 14. void MyApp::Load(String^ entryPoint){ LoadMyGameStateAsync().then([=]() { auto localState = ApplicationData::Current->LocalSettings->Values; auto roamingState = ApplicationData::Current->RoamingSettings->Values; m_gameTime = safe_cast<IPropertyValue^> (localState->Lookup("GameTime"))->GetSingle(); m_maxLevelUnlocked = safe_cast<IPropertyValue^> (roamingState->Lookup("MaxLevel"))->GetUInt32(); }).then([=]() { m_loadingComplete = true; });}
    15. 15. task<byte*> LoadSkyAsync(){ auto folder = Package::Current->InstalledLocation; return task<StorageFile^>( folder->GetFileAsync("sky.dds")).then([](StorageFile^ file){ return FileIO::ReadBufferAsync(file); }).then([](IBuffer^ buffer){ auto fileData = ref new Array<byte>(buffer->Length); DataReader::FromBuffer(buffer)->ReadBytes(fileData); return fileData->Data; });}...LoadSkyAsync().then([=](byte* skyTextureData){ CreateTexture(skyTextureData); m_loadingComplete = true;});
    16. 16. // Setas ou WASDauto upKeyState = window->GetKeyAsyncState(VirtualKey::Up);auto wKeyState = window->GetAsyncKeyState(VirtualKey::W);if (upKeyState & CoreVirtualKeyStates::Down || wKeyState & CoreVirtualKeyStates::Down){ m_playerPosition.y += 1.0f;}
    17. 17. if ( m_xinputState.Gamepad.wButtons & XINPUT_GAMEPAD_A ){ m_aButtonWasPressed = true;}else if ( m_aButtonWasPressed ){ m_aButtonWasPressed = false; // Dispare uma vez, quando soltar o botão TriggerSoundEffect();}
    18. 18. // Cria o XAudio2 engine e o mastering voice na placa de audio default// Carrega todo o audio e efeitos em memória new// Cria um único source voice para o som// Dispara o som: enfileira na memória da placa e deixa pronto para tocar…
    19. 19. • Opções para Servidor • WNS, ASP, WCF, Azure • WebSockets – agora é um web standard o/• Opções para Cliente • IPv4 TCP/UDP • IPv6 – é o futuro!• Cenários • Nuvem, peer to peer, etc.• Melhores Práticas
    20. 20. • 1 60Hz 16.66666ms • 2 30Hz 33.33333ms • 3 20Hz 50ms • 4 15Hz 66.66666msPresent1( /* SyncInterval = */ 2, … ); // set to 30Hz
    21. 21. • Interoperável com o DirectX • <SwapChainBackgroundPanel> • <ImageBrush ImageSource=[DXGI Surface]>
    22. 22. José Antonio “jalf” Leal de FariasMicrosoft Most Valuable Professionaljalf@sharpgames.netwww.sharpgames.netwww.stairs.com.brTwitter: @sharpgames

    ×