
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
Mi experiencia haciendo un juego en 13k
By Giovanny Beltran
Mi experiencia haciendo un juego en 13k
charla que presente en jsconf.co 2016 acerca de mi participación en el game jam js13k
- 1,029