Beruflich Dokumente
Kultur Dokumente
Un par de preguntas...
Cuantos de ustedes han desarrollado una aplicacin Android? Cuantos de ustedes tienen un equipo Android? Cuantos de ustedes saben lo que es Android? Cuantos han escuchado alguna vez el nombre Android?
Por qu hacer juegos para plataformas mviles Qu es Android El estado del arte en Android Qu puedo hacer Primeros pasos Y cmo hago un juego? MMMMMM??? Tips and Tricks ( and DON'T's)
Por qu hacer juegos para plataformas mviles Qu es Android El estado del arte en Android Qu puedo hacer Primeros pasos Y cmo hago un juego? MMMMMM??? Tips and Tricks ( and DON'T's)
Si tienen pantallas tan chicas Poco procesador Limites de tamao Teclado de un celular es malo como joystick Cuando se pueda jugar Crysis en el celular avsenme Pregunta: Sabes cuanto cuesta desarrollar un juego AAA?
Gears of War
Mario Kart DS
Algunas cifras
iPhone: 79% de los usuarios han comprado al menos un juego Hay ms de 100 millones de Nintendo DS en el mundo Sony PSP ha vendido ms de 50 millones de dispositivos Nintendo Gameboy y Gameboy Advance en conjunto suman alrededor de 200 millones de unidades
Cifras estimadas el 2009
Estn siempre con el usuario Redes Sociales Altamente conectados Bajos costos de desarrollo Innovacin
Por qu hacer juegos para plataformas mviles Qu es Android El estado del arte en Android Qu puedo hacer Primeros pasos Y cmo hago un juego? MMMMMM??? Tips and Tricks ( and DON'T's)
Por qu hacer juegos para plataformas mviles Qu es Android El estado del arte en Android Qu puedo hacer Primeros pasos Y cmo hago un juego? MMMMMM??? Tips and Tricks ( and DON'T's)
Qu es Android?
o mejor dicho....
Quin es Android?
Quin es Android?
En serio
Android is a software stack for mobile devices that includes an operating system, middleware and key applications
http://developer.android.com/guide/basics/what-is-android.html
Qu es Android?
Cosas Importantes
Linux Kernel Dalvik VM SGL y Open GL ES SQLite Se programa en Java Ejecutables = .apk Open Source Notepad Tutorial
Componentes Principales
Activity Lifecycle
Esta activa si est en pantalla (foreground) Est pausada si otra Activity se coloc en frente, pero an es visible. Esta detenida si otra Activity la obscureci por completo.
Activity Lifecycle
Mas Info
Application Fundamentals
http://developer.android.com/guide/topics/fundamentals.html
Por qu hacer juegos para plataformas mviles Qu es Android El estado del arte en Android Qu puedo hacer Primeros pasos Y cmo hago un juego? MMMMMM??? Tips and Tricks ( and DON'T's)
Por qu hacer juegos para plataformas mviles Qu es Android El estado del arte en Android Qu puedo hacer Primeros pasos Y cmo hago un juego? MMMMMM??? Tips and Tricks ( and DON'T's)
Qu produjo el Cambio?
Mayo 2010; Se estima que para fines de ao los dispositivos con android 2.1 superarn el 50%
Primera Generacin
Segunda Generacin
Android Market
Android Market
Android Market
Android Market
Entonces...
No en todos los paises se pueden comprar ni vender aplicaciones, entre ellos.... CHILE :( 30 de septiembre: Se anuncia que desarrolladores 20 nuevos pases podrn vender, entre los cuales se incluyen Brasil y Argentina.
Por qu hacer juegos para plataformas mviles Qu es Android El estado del arte en Android Qu puedo hacer Primeros pasos Y cmo hago un juego? MMMMMM??? Tips and Tricks ( and DON'T's)
Por qu hacer juegos para plataformas mviles Qu es Android El estado del arte en Android Qu puedo hacer Primeros pasos Y cmo hago un juego? MMMMMM??? Tips and Tricks ( and DON'T's)
Qu Puedo Hacer
Pantalla Touchscreen Acelermetro GPS Sensor de Orientacin Bluetooth Wifi Trackball, Teclado y otros mtodos de input no siempre asegurados.
Primera Generacin
CPU Arm 400~500Mhz Open GL ES 1.0 1.1 + Extensiones Pantalla de 3.2 HVGA 320x480 ~5000 verts/frame @30fps ~1024 verts/frame @60fps Android 1.5 - 1.6
Fuente: Writing Real-Time Games For Android Redux, Chris Puett, Mayo 2010
Segunda Generacin
CPU 600Mhz 1 Ghz Open GL ES 2.0 1.1 + Extensiones Pantalla WVGA 480x800 ~27000 verts/frame @30fps FPS limitados por el tamao de pantalla Android 2.0 2.1 2.2
Fuente: Writing Real-Time Games For Android Redux, Chris Puett, Mayo 2010
Resultados de Profiler
Fuente: Writing Real-Time Games For Android Redux, Chris Puett, Mayo 2010
1.6: Pantallas con distinta relacin de aspecto 2.0: API de Bluetooth, multitouch Open GL ES
Cool Apps
Google Voice Google Googles Sky Map Barcode Scanner Chrome to Phone Abduction Replica Island
Por qu hacer juegos para plataformas mviles Qu es Android El estado del arte en Android Qu puedo hacer Primeros pasos Y cmo hago un juego? MMMMMM??? Tips and Tricks ( and DON'T's)
Por qu hacer juegos para plataformas mviles Qu es Android El estado del arte en Android Qu puedo hacer Primeros pasos Y cmo hago un juego? MMMMMM??? Tips and Tricks ( and DON'T's)
Primeros Pasos
Instalar el ultimo JDK Instalar Eclipse para Java Descargar Android SDK Instalar el Plugin ADT para Eclipse Crear emuladores Ir a Resources > Tutorials > Hello World Instrucciones detalladas en:
http://developer.android.com/sdk/installing.html
Manos a la obra!
Ver Tutorial: Hello World aqui
Por qu hacer juegos para plataformas mviles Qu es Android El estado del arte en Android Qu puedo hacer Primeros pasos Y cmo hago un juego? MMMMMM??? Tips and Tricks ( and DON'T's)
Por qu hacer juegos para plataformas mviles Qu es Android El estado del arte en Android Qu puedo hacer Primeros pasos Y cmo hago un juego? MMMMMM??? Tips and Tricks ( and DON'T's)
Primer approach
public class Tutorial2D extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(new Panel(this)); } class Panel extends View { public Panel(Context context) { super(context); } @Override public void onDraw(Canvas canvas) { Bitmap _scratch = BitmapFactory.decodeResource(getResources(), R.drawable.icon); canvas.drawColor(Color.BLACK); canvas.drawBitmap(_scratch, 10, 10, null); } } }
Primer approach
Segundo Approach
http://www.droidnova.com/playing-with-graphics-inandroid-part-ii,160.html
El approach anterior funciona si se dibujan pocas imgenes en pantalla Una escena de tiles puede tener ms de 30 En dispositivos de primera generacin el rendimiento cae considerablemente (~10fps) Que hacemos entonces? Open GL ES al rescate
Lo bsico: usar VBO Vertex Buffer Object GL_EXTENSIONS Texture compression: ATITC, PVRTC, ETC1 Drawing Methods
Lo bsico: usar VBO Vertex Buffer Object GL_EXTENSIONS Texture compression: ATITC, PVRTC, ETC1 Drawing Methods
SI
....quin?
Open Source Funciona en todos los dispositivos Alta complejidad Poca documentacin Cero tutoriales
CONTRAS:
...quien ms?
Facil de comenzar a usar Documentado Box 2D Casos de Exito: Drop Block No hay tutoriales avanzados No tiene motor de Tiles
CONTRAS:
Varios ejemplos Tiene motor de Tiles Motor de fsica pobre No encontr casos de xito
CONTRAS:
Por qu hacer juegos para plataformas mviles Qu es Android El estado del arte en Android Qu puedo hacer Primeros pasos Y cmo hago un juego? MMMMMM??? Tips and Tricks ( and DON'T's)
Por qu hacer juegos para plataformas mviles Qu es Android El estado del arte en Android Qu puedo hacer Primeros pasos Y cmo hago un juego? MMMMMM??? Tips and Tricks ( and DON'T's)
No hagas trabajo que no necesitas No pidas memoria si puede evitarlo Evite crear objetos
Algunos Consejos:
Los objetos no son gratis, usan memoria Un arreglo de ints es mejor que un arreglo de Integers 15% a 20% ms rpido
Ms Consejos de Performance
3x ms rpido
Responsiveness
ANR of Death
Responsiveness
No hay respuesta a un input event durante 10 segundos Un BroadcastReceiver no termina su ejecucin en 5 segundos Usar Threads!
Conclusin Clave
Referencias
http://developer.android.com/index.html
http://code.google.com/events/io/2010/sessions.html#Android
http://www.droidnova.com/playing-with-graphics-in-android-part-ii,160.html