Lecciones aprendidas en desarrollo de apps aplicado los juegos

Post on 18-Dec-2014

220 views 2 download

description

prototipos, plataformas, tacticas sucias

Transcript of Lecciones aprendidas en desarrollo de apps aplicado los juegos

Lecciones aprendidas en desarrollo de apps aplicado

los juegos

Roberto Brevé

•1997 Scream

•2000 Icoms

•2008 Blipea

•2011 Class.io

•2012 Freelance iOS Dev

DEBERIA HACER UN JUEGO

Así que querés ser un indie game

developer?

Acepto El Reto

QuickTime™ and aGIF decompressor

are needed to see this picture.

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

Como comienzo? Que plataforma uso?

TODAS LAS PLATAFORMAS!!

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

sentís

Plataformas actuales

• iOS

•Android

•Web

•PC

iOS

iOS Developer Program$99 / Año

iPhone o iPad> $300

Mac mini> $600

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

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

Herramientas para hacer juegos en iOS

•Cocos 2D (Grátis)

•Box2D / Chipmunk (Engine de Física)

•Corona SDK

•Unity 3D

Android

PC> $600

Muchos Androids

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

Desventajas Android

•Fragmentación

•Eco sistema demasiado abierto (te clonan los juegos)

•Piratería

•Pocos con$umidore$

•Modelo basado en anuncios

Web

•HTML 5

•Flash

• Java

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

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.

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/

Flash está muerto

JAVA???

Minecraft

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)

OK. Ya elegí mis herramientas, y

ahora?

Que relación tienen estos dos objetos?

Retrocedamos un poco

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;

Pensemos que vamos a hacer?

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?

Depende •Tus gustos y experiencia

•Capacidad (programar, gráficos, sonido)

•Limitaciones

•Conocimiento del mercado

•Tus objetivos

Quiero hacerme rico

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/

Primero estudiemos

La grán mayoría de los

juegos son malísimos y aburridos

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.

Tácticas súcias

Logros / Niveles / Medallas

Skinner Box

Skinner Box!

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.

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

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

Juegos buenos sin esas babosadas?

Pero hay buenos juegos

•Braid

•Limbo

•World of Goo

•Machinarium

•Sword & Sorcery

•Portal

Espectativas emocionales, nuevos géneros.

•Sentimientos al COD

•poderoso, enojado, frustrado

•Sentimientos al jugar BRAID, Limbo

• inteligente, relajado, intrigado, miedo

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

OK Ya se que hacer...a codear!

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

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)

Data

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

Análisis de Datos

•Google Analytics

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

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

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

Roberto Brevé

•@rbreve

•rbreve@gmail.com