Lecciones aprendidas en desarrollo de apps aplicado los juegos

61
Lecciones aprendidas en desarrollo de apps aplicado los juegos

description

prototipos, plataformas, tacticas sucias

Transcript of Lecciones aprendidas en desarrollo de apps aplicado los juegos

Page 1: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Lecciones aprendidas en desarrollo de apps aplicado

los juegos

Page 2: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Roberto Brevé

•1997 Scream

•2000 Icoms

•2008 Blipea

•2011 Class.io

•2012 Freelance iOS Dev

Page 3: Lecciones aprendidas en desarrollo de apps aplicado los juegos

DEBERIA HACER UN JUEGO

Page 4: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Así que querés ser un indie game

developer?

Page 5: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Acepto El Reto

Page 6: Lecciones aprendidas en desarrollo de apps aplicado los juegos

QuickTime™ and aGIF decompressor

are needed to see this picture.

iPhone - Android - PC - Web - FlashXBox - Nintendo - PlayStation

Como comienzo? Que plataforma uso?

Page 7: Lecciones aprendidas en desarrollo de apps aplicado los juegos

TODAS LAS PLATAFORMAS!!

Page 8: Lecciones aprendidas en desarrollo de apps aplicado los juegos
Page 9: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Elegí primero, en la que más comodo te

sentís

Page 10: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Plataformas actuales

• iOS

•Android

•Web

•PC

Page 11: Lecciones aprendidas en desarrollo de apps aplicado los juegos

iOS

iOS Developer Program$99 / Año

iPhone o iPad> $300

Mac mini> $600

Page 12: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Ventajas iOS

•App Store (compra inmediata)

•Mercado atractivo (los usuarios si compran)

•Poca fragmentación (retina, non-retina)

•Buenas herramientas de desarrollo (xcode) y buena documentación

•Excelentes engines de desarrollo

Page 13: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Desventajas iOS•Tiempo de aceptación en el appstore es muy tardado

•Objective-C es complejo de aprender

•Puede ser caro para iniciar

•Muchísima competencia

•Difícil darse a conocer

•Sistema de reviews malo (no te dejan responder, te pueden atacar con 1 star reviews)

•Apple es estricto

Page 14: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Herramientas para hacer juegos en iOS

•Cocos 2D (Grátis)

•Box2D / Chipmunk (Engine de Física)

•Corona SDK

•Unity 3D

Page 15: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Android

PC> $600

Muchos Androids

Page 16: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Ventaja Android

• Java : Lenguaje familiar

•Aceptación en el Marketplace es rápido

•PC o Mac

•Eco sistema más abierto

•Mercado mayor, teléfonos más baratos

Page 17: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Desventajas Android

•Fragmentación

•Eco sistema demasiado abierto (te clonan los juegos)

•Piratería

•Pocos con$umidore$

•Modelo basado en anuncios

Page 18: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Web

•HTML 5

•Flash

• Java

Page 19: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Ventajas HTML 5

•Lenguaje familiar: Javascript

•Tecnología emergente (el futuro?)

•Fácil de aprender e iniciar (muchos tutoriales)

•Código fuente abierto

•Corre en la mayoría de los browsers

•Chrome, Safari, Firefox en PC o Smartphone

Page 20: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Desventajas HTML 5 / Javascript

•Puede ser lento en algunos smart phones

•Problemas de compatibilidad / touch

•Recursos Limitados

•Código fuente esta expuesto, hay que usar técnicas para esconder el código.

Page 21: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Engines para HTML 5

• Impact JS http://impactjs.com/

•Crafty JS http://craftyjs.com/

•LimeJS http://www.limejs.com/

•Cocos2D-javascript http://cocos2d-javascript.org/

Page 22: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Flash está muerto

Page 23: Lecciones aprendidas en desarrollo de apps aplicado los juegos
Page 24: Lecciones aprendidas en desarrollo de apps aplicado los juegos

JAVA???

Page 25: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Minecraft

Page 26: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Minecraft

•Notch sacó versión clásica al público en el 2009 en Alpha

•Poco a poco fué mejorandolo con actualizaciones automáticas

•En el 2011 vendió casi 2 millones de copias

•$33 millones en ingresos

•En el 2013 vendió 9 millones de copias

•En XBOX Live vendió 1 millón, 1er dia 400mil jugadores online

•Minecon (conferencia solo de minecraft)

Page 27: Lecciones aprendidas en desarrollo de apps aplicado los juegos

OK. Ya elegí mis herramientas, y

ahora?

Page 28: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Que relación tienen estos dos objetos?

Page 29: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Retrocedamos un poco

Page 30: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Antes de empezar a codear [self checkForTileCollisionWithCharacter:self.dude withLayer:self.bgTile.hazards withBlock:^{ [self characterDie:0]; }]; [self checkForTileCollisionWithCharacter:self.dude withLayer:self.bgTile.door withBlock:^{ [self goToLevelMenu]; }]; // [self setViewpointCenter:self.dude.bear.position];

}

-(void)setViewpointCenter:(CGPoint) position { CGSize winSize = [[CCDirector sharedDirector] winSize]; int x = MAX(position.x, winSize.width / 2); int y = MAX(position.y, winSize.height / 2); x = MIN(x, (self.bgTile.tileMap.mapSize.width * self.bgTile.tileMap.tileSize.width) - winSize.width / 2); y = MIN(y, (self.bgTile.tileMap.mapSize.height * self.bgTile.tileMap.tileSize.height) - winSize.height/2); CGPoint actualPosition = ccp(x, y); CGPoint centerOfView = ccp(winSize.width/2, winSize.height/2); CGPoint viewPoint = ccpSub(centerOfView, actualPosition); self.bgTile.tileMap.position = viewPoint;}

-(void) moveEnemies:(NSMutableArray *) enemies time:(ccTime )dt{ for (Character *enemy in enemies){ [enemy update:dt]; enemy.bear.position = enemy.desiredPosition;

Page 31: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Pensemos que vamos a hacer?

Page 32: Lecciones aprendidas en desarrollo de apps aplicado los juegos

QuickTime™ and aGIF decompressor

are needed to see this picture.

Acción - Aventura - Estrategia - 2D - 3D - Casual - Word game - educativo - música - carrera

Que tipo de juego hago?

Page 33: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Depende •Tus gustos y experiencia

•Capacidad (programar, gráficos, sonido)

•Limitaciones

•Conocimiento del mercado

•Tus objetivos

Page 34: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Quiero hacerme rico

Page 35: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Hmmm no es tan fácil

•20% de los desarrolladores ganan el 97% de todas las ganancias del app store.

•1% gana un tercio de todas las ganancias

•25% hacen más de $30 K dolares

•20% hace menos de $200

•25% hace entre $1000 - $10,000

Fuente: http://www.streamingcolour.com/blog/2011/09/28/results-ios-game-revenue-survey/

Page 36: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Primero estudiemos

Page 37: Lecciones aprendidas en desarrollo de apps aplicado los juegos

La grán mayoría de los

juegos son malísimos y aburridos

Page 38: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Porque son malos?•Errores comunes:

• Te obligan a leer la historia sin saltarla

• Te hacen volver a comenzar cuando te matan (GTA)

•Tenés que ser japones para poder jugarlo

•Tenés que dedicarle 20 horas al día

•Aburren rápido (muy difíciles o muy fáciles)

•Las empresas de juegos quieren hacer plata y usan tácticas sucias para hacer los juegos más adictivos.

Page 39: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Tácticas súcias

Page 40: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Logros / Niveles / Medallas

Page 41: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Skinner Box

Page 42: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Skinner Box!

Page 43: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Skinner Boxoperant condition chamber

•Creado por el Psicólogo B.F. Skinner

•La caja tiene una palanca y un recipiente de comida

•El raton puede apretar la palanca para obtener comida

•Cuando obtiene comida, el ratón comienza impulsivamente a apretar la palanca hasta quedar satisfecho.

•Los humanos no tienen libre albedrío, una acción humana es consecuencia de esa misma acción.

Page 44: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Otras tácticas

•Te obligan a usar redes sociales, a poner un status en tu twitter o fb

•El juego es grátis, al inicio es fácil, después de hace complicado y te obligan a comprar armas para poder pasarlo

•Fácil - Difícil -> nueva arma -> Fácil -> Difícil -> nuevo escudo ...

•Clones de otros juegos con pequeñas variaciones

Page 45: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Quitemole las tácticas a esos juegos

•Diablo sin gráficas, sin loot, sin niveles...

•COD sin achievements, sin premios, sin super armas

•Un Slot Machine que nunca ganes ni perdas dinero y sin decoraciones

Page 46: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Juegos buenos sin esas babosadas?

Page 47: Lecciones aprendidas en desarrollo de apps aplicado los juegos
Page 48: Lecciones aprendidas en desarrollo de apps aplicado los juegos
Page 49: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Pero hay buenos juegos

•Braid

•Limbo

•World of Goo

•Machinarium

•Sword & Sorcery

•Portal

Page 50: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Espectativas emocionales, nuevos géneros.

•Sentimientos al COD

•poderoso, enojado, frustrado

•Sentimientos al jugar BRAID, Limbo

• inteligente, relajado, intrigado, miedo

Page 51: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Reclasificación de Generos?

• Juegos de Terror (Amnesia)

•Divertidos (Cloning Clyde) http://www.youtube.com/watch?v=KtGYnJo_cqg

•De Pensar (Room, Braid, de aventura)

•Pensar en libros y películas (drama, suspenso etc..)

Page 52: Lecciones aprendidas en desarrollo de apps aplicado los juegos

OK Ya se que hacer...a codear!

Page 53: Lecciones aprendidas en desarrollo de apps aplicado los juegos
Page 54: Lecciones aprendidas en desarrollo de apps aplicado los juegos

MVP (Minimum Viable Product)Algo fácil, rápido simple de programar

que ayuda a evaluar si será un juego que vale la pena seguir desarrollando o no.

VALIDA TUS HIPOTESIS

Page 55: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Prototipo Simple•1. Hacer un prototipo simple sin gráficas, elegir un

lenguaje que podes programar, flash ok, html ok

•Prototipo de Braid http://youtu.be/ISutk1mauPM?t=27m6s

•Prototipo de super meat boy http://www.newgrounds.com/portal/view/463241

•2. Enviarselo a sus amigos

•3. Verlos jugar

•4. Tomar Notas

•5. Corregir y volver a hacer otro prototipo (volver a 2)

Page 56: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Data

Page 57: Lecciones aprendidas en desarrollo de apps aplicado los juegos

A/B Testing

•Hacer 2 Grupos de jugadores A y B

•Hacer una versión con pequeñas variaciones del juego en cada grupo

•Medir

•Analizar cual de los dos tiene mejor resultado

Page 58: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Análisis de Datos

•Google Analytics

•Crittercism https://www.crittercism.com/

•Flurry http://www.flurry.com/

Page 59: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Prototipo Funcionó

•Elegir una plataforma más seria iOS o Android

•Contratar diseñador gráfico , músico

•Sacarlo al público

• ????

•Profit!

•Comenzar a portar tu juego a otras plataformas

Page 60: Lecciones aprendidas en desarrollo de apps aplicado los juegos
Page 61: Lecciones aprendidas en desarrollo de apps aplicado los juegos

Roberto Brevé

•@rbreve

[email protected]