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

Post on 25-May-2015

711 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

Desenvolvimento de Games Multi-Plataforma com .NET

Palestrantes− Alessandro Binhara

− Msc em Gestão de Projetos Complexos pela UTF-PR− Projeto Mono Brasil − binhara@monobrasil.org

− Rafael Ribeiro− Especialista em Desenvolvimento de Games pela UP− Projeto Taikodom www.gamersfirst.com/taikodom− Hoplon www.hoplon.com − voidribeiro@gmail.com

− Sandro Bihaiko − Studio FluidPlay Games− bihaiko@gmail.com

Agenda

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

A História de um Jogo

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

Tamanho do Jogo (Esforço)− Gigantes

− MMOs (conteúdo)− RPGs

− Grandes− Simuladores− Ação

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

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

Por que Mono em Jogos?

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

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!

11

Miguel Pdc2008− Icaza, Miguel Pdc2008

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

• 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

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

Language Choices

Prod

uctiv

ity

Performance

Assembly Language

C/C++

Fully Dynamic

C#/Java

FastSlow

Difficult

Easy

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

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);}

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

SIMD Operations MixDeveloper created tests

Mono.SIMD: SpeedupsPhysics simulations, no optimizations

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

Quem usa?

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

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)

FusionFall - MMOG

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

Super Volei Brasil - Casual

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

26

Jogo no IPhone

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

27

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

paradise

Demo Torment

Torment (Remake) – FluidPlay

Torment (Remake) – FluidPlay

Torment (Remake) – FluidPlay

Torment (Remake) – FluidPlay

Torment (Remake) – FluidPlay

Torment (Remake) – FluidPlay

Torment (Remake) – FluidPlay

Torment (Remake) – FluidPlay

© 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.

top related