2d zombies survival game | codemotion 2016

31
2D Zombies survival game by @ AdriaMJ _ MADRID · NOV 18-19 · 2016

Upload: techdencias

Post on 12-Apr-2017

121 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: 2D zombies survival game | Codemotion 2016

2D Zombies survival gameby @AdriaMJ_

MADRID · NOV 18-19 · 2016

Page 2: 2D zombies survival game | Codemotion 2016
Page 3: 2D zombies survival game | Codemotion 2016

Adrià Manzano

@AdriaMJ_Desarrollador en Pasiona consulting

[email protected]@

Page 4: 2D zombies survival game | Codemotion 2016

MADRID · NOV 18-19 · 2016

DEMO (Single player)

Page 5: 2D zombies survival game | Codemotion 2016

MADRID · NOV 18-19 · 2016

¿ Cómo lo ha hecho ? Javascript basicamente, en el 99% de la aplicación

∘ Tecnologías usadas· Webpack· Gulp· Javascript· Phaser.io· SignalR (RTC Microsoft library)· .NET· ReactJS.NET

Page 6: 2D zombies survival game | Codemotion 2016

MADRID · NOV 18-19 · 2016

Webpack

Empaquetador de modulos de javascript Dispone de loaders que facilitan el compilado y la

transpilación de tu código a javascript nativo (Babel)

Page 7: 2D zombies survival game | Codemotion 2016

MADRID · NOV 18-19 · 2016

Gulp

Automatizador de tareas de javascript

Page 8: 2D zombies survival game | Codemotion 2016

MADRID · NOV 18-19 · 2016

Phaser.io

Framework de javascript para la realización de videojuegos - Build in ECMAScript6 - Open source - Funny!

Page 9: 2D zombies survival game | Codemotion 2016

MADRID · NOV 18-19 · 2016

ECMAScript 6

Standard de javascript que nos proporciona las herramientas clave para desarollar aplicaciones mantenibles en javascript

Page 10: 2D zombies survival game | Codemotion 2016

MADRID · NOV 18-19 · 2016

ECMAScript 6

Principales novedades

Arrow functions =>

Page 11: 2D zombies survival game | Codemotion 2016

MADRID · NOV 18-19 · 2016

ECMAScript 6

Principales novedades

Block-level-scope (let)

Page 12: 2D zombies survival game | Codemotion 2016

MADRID · NOV 18-19 · 2016

ECMAScript 6

Principales novedadesClasses

Page 13: 2D zombies survival game | Codemotion 2016

MADRID · NOV 18-19 · 2016

ECMAScript 6

Principales novedadesConstants

Page 14: 2D zombies survival game | Codemotion 2016

MADRID · NOV 18-19 · 2016

ECMAScript 6

Principales novedadesDefault parameters

Page 15: 2D zombies survival game | Codemotion 2016

MADRID · NOV 18-19 · 2016

ECMAScript 6

Principales novedadesDestructuring 

Page 16: 2D zombies survival game | Codemotion 2016

MADRID · NOV 18-19 · 2016

ECMAScript 6

Principales novedadesModules 

Page 17: 2D zombies survival game | Codemotion 2016

MADRID · NOV 18-19 · 2016

ECMAScript 6

Principales novedadesMap(que no el iterador map!! ¬¬) 

Page 18: 2D zombies survival game | Codemotion 2016

MADRID · NOV 18-19 · 2016

ECMAScript 6

Principales novedadesPromises 

Page 19: 2D zombies survival game | Codemotion 2016

MADRID · NOV 18-19 · 2016

ECMAScript 6

Promises [Promise.All]

Page 20: 2D zombies survival game | Codemotion 2016

MADRID · NOV 18-19 · 2016

ECMAScript 6

Promises [Elements.reduce]

Page 21: 2D zombies survival game | Codemotion 2016

MADRID · NOV 18-19 · 2016

ECMAScript 6

Promises tips

ReduceQueremos que se complete la accion antes de realizar la siguiente iteración.

Promise.All(Elements.map((element) => {});Queremos que en cada iteración se realice una promesa pero no queremos que espere a que termine la anterior.

Page 22: 2D zombies survival game | Codemotion 2016

MADRID · NOV 18-19 · 2016

Zombies GamePhaser.GroupRepresenta un grupo de sprites(imágenes), en función del orden del añadido de los mismos veremos los zombies o nos quedaran detrás del backgroundPhaser.SpriteRepresenta un solo sprite(imágen), esta misma clase tiene las propiedades y métodos de Phaser.Body, entre otros.Phaser.StateRepresentan los estados de la partida, muy útiles a la hora de precargar los assets etc...

Page 23: 2D zombies survival game | Codemotion 2016

MADRID · NOV 18-19 · 2016

Estructura

Src/assets => almacenamos todos los spritesheets y los json asociados a los mismos, las fuentes y los audiosprites.Src/common => Tendremos los estados del juego y las clases base de las que queremos extender, además de Utils y el hub de signalr.Src/config => ficheros javascript donde cargaremos los assets previamente almacenados, así como registrar las animacionesSrc/modules => Tendremos las clases que están extendiendo( o no) de nuestras clases base.

Page 24: 2D zombies survival game | Codemotion 2016

MADRID · NOV 18-19 · 2016

Spritesheet + JSON + JSzombie.png zombie.json atlases.js

Page 25: 2D zombies survival game | Codemotion 2016

MADRID · NOV 18-19 · 2016

Registrando assets

Page 26: 2D zombies survival game | Codemotion 2016

MADRID · NOV 18-19 · 2016

DEMO (Multiplayer)

Page 27: 2D zombies survival game | Codemotion 2016

MADRID · NOV 18-19 · 2016

SignalR¿ Qué es ?Apuesta de microsoft en real time comunication

¿ Qué nos proporciona?Envío massivo de datos entre los dispositivos conectados al hub

¿ Es díficil de implementar?Please…bitc..

Page 28: 2D zombies survival game | Codemotion 2016

MADRID · NOV 18-19 · 2016

SignalR flow

Page 29: 2D zombies survival game | Codemotion 2016

MADRID · NOV 18-19 · 2016

SignalR code

Page 30: 2D zombies survival game | Codemotion 2016

MADRID · NOV 18-19 · 2016

Special thanks

http://www.bionixwallpaper.com/

Unity3D

http://www.opengameart.org/

Page 31: 2D zombies survival game | Codemotion 2016

MADRID · NOV 18-19 · 2016

Q & A@AdriaMJ_

@[email protected]