semana interop: desenvolvimento de games multi-plataforma com .net

37
Desenvolvimento de Games Multi-Plataforma com .NET

Upload: alessandro-binhara

Post on 25-May-2015

711 views

Category:

Technology


1 download

DESCRIPTION

Desenvolvimento de Games Multi-Plataforma com .NET Uso do mono em games, Unity3D , MonoGames, Exemplos

TRANSCRIPT

Page 1: Semana Interop: Desenvolvimento de Games  Multi-Plataforma com .NET

Desenvolvimento de Games Multi-Plataforma com .NET

Page 2: Semana Interop: Desenvolvimento de Games  Multi-Plataforma com .NET

Palestrantes− Alessandro Binhara

− Msc em Gestão de Projetos Complexos pela UTF-PR− Projeto Mono Brasil − [email protected]

− Rafael Ribeiro− Especialista em Desenvolvimento de Games pela UP− Projeto Taikodom www.gamersfirst.com/taikodom− Hoplon www.hoplon.com − [email protected]

− Sandro Bihaiko − Studio FluidPlay Games− [email protected]

Page 3: Semana Interop: Desenvolvimento de Games  Multi-Plataforma com .NET

Agenda

− A história de um Jogo− Por que usar Mono/.Net em jogos?− Quem usa?− Demo

Page 4: Semana Interop: Desenvolvimento de Games  Multi-Plataforma com .NET

A História de um Jogo

Page 5: Semana Interop: Desenvolvimento de Games  Multi-Plataforma com .NET

História de um Jogo

− Idéia Própria ou Remake− Brainstorm (levantamento de idéias)− GDD (especificação)− Pré-Produção− Marketing, Produção, Comercial, Estratégico, etc− 3 Atividades Simultâneas (operacional)

− Game Design: Iterativo, Revisão, Novas Features, etc− Arte: Concepts, Modelagem 3D, Animação, Som, etc− Desenvolvimento: Código, Ferramentas, QA

− Lançamento

Page 6: Semana Interop: Desenvolvimento de Games  Multi-Plataforma com .NET

Tamanho do Jogo (Esforço)− Gigantes

− MMOs (conteúdo)− RPGs

− Grandes− Simuladores− Ação

− Pequenos− Casuais− 2D/3D (simples)− GamePlay Simples

Page 7: Semana Interop: Desenvolvimento de Games  Multi-Plataforma com .NET

7

Games Multi-Plataforma .NET− Dificuldades

− Bibliotecas para Renderização 3D− OpenGL versus Directx− Porte do XNA para outros ambientes????− Linguagens suportadas− Suporte à diversas plataformas

Page 8: Semana Interop: Desenvolvimento de Games  Multi-Plataforma com .NET

Por que Mono em Jogos?

Page 9: Semana Interop: Desenvolvimento de Games  Multi-Plataforma com .NET

9

Por que Mono em Games?

− OpenSource− Performance− Embarcável − Portes para Iphone, Wii, PS3, Windows, MAC, PC− Compilação Estática e Dinâmica− Otimizações especializadas para manipulação de grandes

vetores− Mono.Simd

− http://tirania.org/blog/archive/2008/Nov-03.html− http://go-mono.com/docs/index.aspx?tlink=0@N%3aMono.Simd− http://tirania.org/blog/archive/2008/Nov-03.html− http://tirania.org/blog/archive/2008/Feb-26.html

MONO.SIMDSencondLive mudou do LSL para Mono- 50x a 300x mais rápido

Page 10: Semana Interop: Desenvolvimento de Games  Multi-Plataforma com .NET

10

Mono.XNA -> XNATouch

− Implementação do Framework XNA para o MonoTouch− Objetiva a compatibilidade em nível de código fonte

− Livre e Gratuita− Brasileiro! - José Antonio “jalf” Leal de Farias

− Xnatouch.codeplex.com− Implementação baseada no OpenGL ES 1.1

− Recursos e desempenho− Foco atual na parte 2D (SpriteBatch)

− 90% da API implementada− API 3D apenas no fim do ano− Versão 1.0 prevista para Janeiro− Colabore!

Page 11: Semana Interop: Desenvolvimento de Games  Multi-Plataforma com .NET

11

Miguel Pdc2008− Icaza, Miguel Pdc2008

http://mschnlnine.vo.llnwd.net/d1/pdc08/WMV-HQ/PC54.wmv

Page 12: Semana Interop: Desenvolvimento de Games  Multi-Plataforma com .NET

• Rendering• Shading• Scene• Animation• Geometry• GUI

Display

• Physics• Collision• Particles• Terrain

Simulation

• World rules

• Enemy AI• User

control• Camera• Behavior

Game Logic

• Audio• Input• Networkin

g

Support

Icaza, Miguel Pdc2008 http://mschnlnine.vo.llnwd.net/d1/pdc08/WMV-HQ/PC54.wmv

Page 13: Semana Interop: Desenvolvimento de Games  Multi-Plataforma com .NET

The ProblemGames are real-time programs

30 to 60 frames per second (0.016 seconds)

• User control• Network

events

Input

• Scripted, slow

• React to change

• Update scene

AI

• Render Graphics

• Play audio

Updates

Page 14: Semana Interop: Desenvolvimento de Games  Multi-Plataforma com .NET

Language Choices

Prod

uctiv

ity

Performance

Assembly Language

C/C++

Fully Dynamic

C#/Java

FastSlow

Difficult

Easy

Page 15: Semana Interop: Desenvolvimento de Games  Multi-Plataforma com .NET

Mono’s CLR is ideal for embedding Some examples

SecondLife: Switched from LSL to Mono 50x to 300x performance increase

Unity3D: Powers Cartoon Network’s FusionFall

Uses C#, UnityScript and Boo UnityScript is a strongly typed Javascript

Mono in Gaming TodayMoving from scripting to static/compiled

Page 16: Semana Interop: Desenvolvimento de Games  Multi-Plataforma com .NET

Exploring an innocent looking loop in C#:

3D Floating Point Vector OperationsAt the core of gaming engines

UpdatePos (Vector3f [] points, ref Vector3f delta){ for (int i = 0; i < points.Length; i++) points [i] += delta;}

xi

yi

zi

+δx

δy

δz

xi+δx

yi+δy

zi+δz

=

Vector3f static operator + (Vector3f a, Vector3f b){ return new Vector3f (a.x+b.x, a.y+b.y, a.z+b.z);}

Page 17: Semana Interop: Desenvolvimento de Games  Multi-Plataforma com .NET

Object-oriented APIs for Vector processing Vector4f, Vector4i, Vector2d,

Vector16b, etc Mapped to hardware operations

Mono.SIMD: Mapping To Native InstructionsSIMD aware runtime

• pos += deltaC#•call [Mono.Simd]Mono.Simd.Vector4f::op_Addition(

valuetype [Mono.Simd]Mono.Simd.Vector4f,

valuetype [Mono.Simd]Mono.Simd.Vector4f)

IL•movups (%eax),%xmm0•movups (%edi),%xmm1•addps %xmm1,%xmm0•movups %xmm0,(%eax)x86

Detect

SIMDuse

Page 18: Semana Interop: Desenvolvimento de Games  Multi-Plataforma com .NET

SIMD Operations MixDeveloper created tests

Page 19: Semana Interop: Desenvolvimento de Games  Multi-Plataforma com .NET

Mono.SIMD: SpeedupsPhysics simulations, no optimizations

Based on the C++ simulation code at sharp-gamedev.blogspot.com/2008/09/updated-c-version.html

Page 20: Semana Interop: Desenvolvimento de Games  Multi-Plataforma com .NET

Quem usa?

Page 21: Semana Interop: Desenvolvimento de Games  Multi-Plataforma com .NET

21

Unity 3D

− Mais de 258 jogos na AppStore− Mono foi embarcado à ferramenta− Mono roda os scripts C#, Boo e Unity3D

− Render 3D, IA, Animações, Interações, Lógica do Jogo− Compilação Estática para Wii, Iphone− Compilação JIT 20x mais rápido que os concorrentes

− http://tirania.org/blog/archive/2009/Jan-07.html

Page 22: Semana Interop: Desenvolvimento de Games  Multi-Plataforma com .NET

22

Mensão Honrosa− Rodrigo Bamboo

− Desenvolvedor Mono− Criador da Linguagem Boo http://boo.codehaus.org/

Um linguagem que combina características C# , Ruby e PythonLinguagem Script fortemente tipada com inferência de tipos dinâmicosPossibilidade de criação de macros em tempo de compilação através de

uma pipeline de compilação plugável− Responsável pela integração do mono no Unity3D− Montou toda a scriptagem do C# dentro do Unity3D− Desenvolveu o UnityScript − Atualmente trabalha na DB4O (lider mundial em Bancos de

Dados Orientados a Objetos) e para a Unity3D (Lider mundial em Engine de Jogos)

Page 23: Semana Interop: Desenvolvimento de Games  Multi-Plataforma com .NET

FusionFall - MMOG

http://www.fusionfall.comhttp://br.video.yahoo.com/watch/4169603/11222611#MAGIC

Page 24: Semana Interop: Desenvolvimento de Games  Multi-Plataforma com .NET

Super Volei Brasil - Casual

Page 25: Semana Interop: Desenvolvimento de Games  Multi-Plataforma com .NET

25

Primeiro Game para Wii em C#− My Animal Center

http://www.myanimalcentre.com/

− Totalmente escrito em C#− Usou Unity3D− Video: http://tirania.org/blog/archive/2009/Jan-06.html

Page 26: Semana Interop: Desenvolvimento de Games  Multi-Plataforma com .NET

26

Jogo no IPhone

− Compilação Estática no Mono− Rodando no Iphone− http://vimeo.com/2428637

Page 27: Semana Interop: Desenvolvimento de Games  Multi-Plataforma com .NET

27

Rodando na WEBRodando com plug-in no Browserttp://unity3d.com/gallery/live-demos/index.html#tropical-

paradise

Page 28: Semana Interop: Desenvolvimento de Games  Multi-Plataforma com .NET

Demo Torment

Page 29: Semana Interop: Desenvolvimento de Games  Multi-Plataforma com .NET

Torment (Remake) – FluidPlay

Page 30: Semana Interop: Desenvolvimento de Games  Multi-Plataforma com .NET

Torment (Remake) – FluidPlay

Page 31: Semana Interop: Desenvolvimento de Games  Multi-Plataforma com .NET

Torment (Remake) – FluidPlay

Page 32: Semana Interop: Desenvolvimento de Games  Multi-Plataforma com .NET

Torment (Remake) – FluidPlay

Page 33: Semana Interop: Desenvolvimento de Games  Multi-Plataforma com .NET

Torment (Remake) – FluidPlay

Page 34: Semana Interop: Desenvolvimento de Games  Multi-Plataforma com .NET

Torment (Remake) – FluidPlay

Page 35: Semana Interop: Desenvolvimento de Games  Multi-Plataforma com .NET

Torment (Remake) – FluidPlay

Page 36: Semana Interop: Desenvolvimento de Games  Multi-Plataforma com .NET

Torment (Remake) – FluidPlay

Page 37: Semana Interop: Desenvolvimento de Games  Multi-Plataforma com .NET

© 2009 Microsoft Corporation. All rights reserved. Microsoft, MSDN, the MSDN logo, and [list other trademarks referenced] are trademarks of the Microsoft group of companies.  The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation.  Because Microsoft must respond

to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. 

MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED, OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.