Mi experiencia haciendo un videojuego de 13kilobytes en JavaScript

@agar3s

MOTIVACIONES

Motor de juegos

Framework

Libs

Si, pero pocas...

CONSIDERACIONES

Es una oportunidad de explorar otros paradigmas y experimentar otras técnicas de programación

SPRITES

XOR

INTELIGENCIA ARTIFICIAL

NIVELES

RESULTADO

No porque algo este muy bien hecho técnicamente significa que genere valor al usuario…

GAME DESIGN

¿Qué puedo aprender de los demás?

SEGUNDO INTENTO

Domina las herramientas que usas, para poder explotarlas al maximo.

MASTER YOUR SKILLS

PLANEACIÓN

PARADIGMA

Arreglos como estructuras de datos

PARADIGMA

Arreglos como estructuras de datos

PARADIGMA

Cada estructura de datos es representada como un arreglo

Arreglos como estructuras de datos

PARADIGMA

Cada estructura de datos es representada como un arreglo

Cada estructura de datos es global

Arreglos como estructuras de datos

PARADIGMA

Cada estructura de datos es representada como un arreglo

Cada estructura de datos es global

Las funciones que modifican los valores de estos arreglos también son globales

Arreglos como estructuras de datos

PARADIGMA

Cada estructura de datos es representada como un arreglo

Cada estructura de datos es global

Las funciones que modifican los valores de estos arreglos también son globales

Arreglos como estructuras de datos

PARADIGMA

Cada estructura de datos es representada como un arreglo

Cada estructura de datos es global

Las funciones que modifican los valores de estos arreglos también son globales

No se usan módulos

Arreglos como estructuras de datos

PARADIGMA

Cada estructura de datos es representada como un arreglo

Cada estructura de datos es global

Las funciones que modifican los valores de estos arreglos también son globales

No se usan módulos

No se usan objetos

Arreglos como estructuras de datos

PARADIGMA

Cada estructura de datos es representada como un arreglo

Cada estructura de datos es global

Las funciones que modifican los valores de estos arreglos también son globales

No se usan módulos

No se usan objetos

No se usan clases

WEBGL POSTPROCESADO

getContext('2d')

getContext('webgl')

GRÁFICOS VECTORIALES

SPATIALHASHING

SPATIALHASHING

FUENTE PERSONALIZADA

Cada segmento tiene asociado una potencia de 2 expresado como un binario

14 on

3 on

6 on

2^1 + 2^2 + 2^3

2^1 + 2^2 + 2^3 +

2^4 + 2^8 + 2^12

2^0 + 2^1 ... + 2^13

FUENTE PERSONALIZADA

MÚSICA & FX

jsfxr

MÚSICA & FX

MÚSICA & FX

TinyMusic

COMPORTAMIENTOS

COMPORTAMIENTOS

Despliegue continuo sobre gh-pages

RETROALIMENTACIÓN

Despliegue continuo sobre gh-pages

RETROALIMENTACIÓN

Entre más pronto mejor

Despliegue continuo sobre gh-pages

RETROALIMENTACIÓN

Entre más pronto mejor

Tomar nota de cada comentario

Despliegue continuo sobre gh-pages

RETROALIMENTACIÓN

Entre más pronto mejor

Tomar nota de cada comentario

Entender la razón de cada comentario

Despliegue continuo sobre gh-pages

RETROALIMENTACIÓN

Entre más pronto mejor

Tomar nota de cada comentario

Entender la razón de cada comentario

Establecer prioridades para cada recomendación

RETROALIMENTACIÓN

...

RETROALIMENTACIÓN

LO MEJOR POSIBLE

RESULTADO

RESULTADOS

RESULTADOS

RESULTADOS

RESULTADOS

RESULTADOS

@agar3s

http://js13kgames.com/entries/evil-glitch