Conversion to Play: El Arte de Cargar

Rate this content
Bookmark

En la web, los juegos no están preinstalados, sino que se descargan en el momento de jugar. Por lo tanto, la experiencia de carga es una parte clave del éxito de tu juego. Durante esta charla, Kasper Mol de Poki te presentará el concepto de Conversión a Jugar y qué métodos están disponibles para lograrlo.

31 min
08 Apr, 2022

Video Summary and Transcription

La charla analiza el arte de cargar en los juegos web y su impacto en el éxito. Proporciona consejos para mejorar la conversión a jugar, optimizar la carga y crear un camino claro para jugar. Se muestran ejemplos de juegos que mejoraron la carga. Se destaca la importancia del tamaño del archivo y el diseño de juegos teniéndolo en cuenta. El orador comparte desafíos en matemáticas y programación, así como su experiencia con juegos WebXR y blockchain. También se discute la gestión del tiempo para el desarrollo de juegos independientes.

Available in English

1. Introducción al Arte de Cargar en Juegos Web

Short description:

Hoy quiero hablarles sobre el arte de cargar y sus impactos en la creación de un juego web. Ser consciente de esto desde el inicio del desarrollo de tu juego puede mejorar en gran medida tus posibilidades de éxito.

Hola a todos. Es bueno estar aquí. Creo que esta es una de las primeras conferencias dedicadas específicamente a los juegos web. Así que sentí que realmente necesitaba estar aquí, porque eso es algo en lo que he estado dedicando la mayor parte de mi vida profesional. Así que hoy quiero hablarles sobre el arte de cargar y los impactos que esto tiene en lo que consideramos una de las cosas más importantes a tener en cuenta cuando quieres crear un juego web. Y ser consciente de esto y tenerlo en cuenta desde el inicio del desarrollo de tus juegos mejorará en gran medida tus posibilidades de éxito. Así que cubriré una amplia gama de temas. En lugar de profundizar en un solo aspecto.

2. De Desarrollador Indie a Líder Técnico en Pokey

Short description:

Hoy quiero hablarles sobre el arte de cargar y sus impactos en la creación de un juego web. Ser consciente de esto desde el inicio del desarrollo de tu juego puede mejorar en gran medida tus posibilidades de éxito.

profundamente, mi objetivo principalmente es crear conciencia y hacer que te importe. Así que sí, empecemos. Primero de todo, permíteme presentarme. Mi nombre es Kasper. Vivo en los Países Bajos, en Ámsterdam, y soy líder técnico en Pokey, donde he estado trabajando durante varios años. En total, tengo alrededor de ocho años de experiencia en la industria de juegos web. Y además de eso, también soy desarrollador independiente de juegos web. Los dos juegos que puedes ver aquí a la izquierda, Supernova, a la derecha, Joyrider, son dos de mis proyectos personales. Estoy muy orgulloso de ellos. Juega a ellos si alguna vez tienes la oportunidad. También, un poco sobre Pokey, en caso de que aún no nos conozcas. Pokey es una plataforma de juegos web. Puedes ver nuestra página de inicio aquí. Tenemos alrededor de 30 millones de usuarios activos mensuales. Y estamos tratando de construir los mejores parques de juegos en línea y establecer nuevos estándares para los juegos web. Sin embargo, creo que estamos más orgullosos de nuestras relaciones directas con alrededor de 300 desarrolladores de juegos, desde grandes estudios establecidos hasta equipos de una sola persona que han construido su negocio desde cero en nuestra plataforma. Las cosas que hacemos van desde llevar éxitos móviles como Subway Surfers y Stickman Hoops a la web, hasta revivir clásicos de Flash en HTML5 como Bubble Trouble, la Colección Nitrome y Impossible Quiz, así como hacer posibles nuevas producciones originales de juegos web como Plumgy Rockets o Narrow One. Visítanos cuando tengas tiempo en tu computadora o dispositivo móvil en poki.com. Entonces, como mencioné, esta charla trata sobre la conversión para jugar, por lo que deberías saber qué es y por qué deberías preocuparte por ello. Así que empecemos diciendo que por supuesto, la web está bajo demanda. Los juegos en la web son un poco diferentes de los juegos en otras plataformas porque no están preinstalados. Se descargan en el momento de jugar. Eso significa que los usuarios ven algo que les gusta, hacen clic y en ese momento tienen que descargar el juego antes de comenzar a jugar. Esta es una barrera inicial para que los jugadores disfruten o incluso vuelvan a intentarlo y eso lo hace muy importante. La experiencia de carga es realmente clave. Si se hace mal o se ignora, tendrá consecuencias bastante importantes. Hemos visto juegos en los que solo el 20% de las personas interesadas terminarían jugando, lo cual es una cantidad muy pequeña y significa que estás perdiendo muchos jugadores antes de que siquiera lleguen a lo que probablemente estés muy orgulloso, que es tu juego.

Entonces, Conversión para Jugar. Básicamente es el nombre de la métrica que hemos definido para hacer un seguimiento de esto específicamente. Puedes ver aquí en el flujo cómo funciona. Así que a la izquierda,

3. Mejorando la Conversión para Jugar en Juegos Web

Short description:

Para mejorar la conversión para jugar en tu juego web, considera elegir el motor adecuado, optimizar los activos, hacer que la carga sea interesante, cargar solo lo necesario y mantener el camino hacia el juego claro. Al elegir un motor, considera el tamaño de tu equipo y su experiencia técnica. Se recomienda mantenerse cerca de JavaScript para minimizar la sobrecarga. Prueba la velocidad de carga del motor sin ningún código de juego.

Cuando un jugador ve la miniatura de tu juego. Hacen clic en ella. Están interesados. Luego abren la página de tu juego. Comienzan a cargar tu juego. Luego tienen que pasar por los menús de tu juego y finalmente comienzan a jugar tu juego. Entonces, lo que definimos como Conversión para Jugar es este momento desde la vista de la página del juego hasta el juego en sí. El porcentaje de usuarios que visitan tu juego y realmente terminan jugando. Para trabajar en esto, hay algunas cosas que puedes hacer. Así que lo que quiero hacer es repasar las más importantes. Y aquí tienes una primera descripción rápida. Por cierto, el juego de la derecha, Plungy Ball, es un lanzamiento muy reciente de un amigo nuestro, BlumG, realmente increíble. Las cosas en las que deberías pensar son, en primer lugar, elegir el motor adecuado. Además, debes optimizar tus activos. Debes hacer que la carga sea interesante. Debes cargar solo lo necesario. Y debes mantener el camino hacia el juego claro. Comencemos eligiendo el motor adecuado. Es un tema importante por sí solo. Y en realidad hay más personas hablando de esto durante la conferencia. Así que recomendaría escuchar a más personas. Pero principalmente voy a hablar desde la perspectiva de la conversión para jugar. En primer lugar, siempre importa elegir algo que se ajuste a tu equipo y ambiciones. Si tienes un equipo más grande, probablemente quieras un motor diferente al de alguien que trabaja solo. Si tienes un equipo técnico, probablemente quieras un motor diferente al de un equipo de artistas. Por lo tanto, esto siempre será diferente. Afortunadamente, ahora hay muchas buenas opciones en el espacio de HTML5. Pero lo que recomendaría es tratar de mantenerse lo más cerca posible de JavaScript. Si tu código tiene que ser convertido, compilado, todas estas cosas, obviamente agregarán sobrecarga a tu juego, lo cual puede ser un problema. Algunas cosas que recomendaría probar es verificar qué tan grande es el motor sin ningún código de juego. Así que descarga el motor, crea un proyecto sin tu juego y mira qué hay. Mira qué tan grande es.

4. Optimización de la Carga y Hacerla Interesante

Short description:

Observa cuánto tiempo tarda en cargar. Verifica el control que tienes sobre la experiencia de carga. Ten en cuenta el tamaño de las bibliotecas de terceros. Optimiza los activos investigando las extensiones de archivo, comprimiendo los activos, utilizando hojas de sprites para imágenes y considerando fuentes de mapa de bits. Haz que la carga sea interesante aprovechando el tiempo de espera para establecer expectativas, emocionar a los jugadores y proporcionar visuales e información sobre el juego.

Observa cuánto tiempo tarda en cargar. Verifica el control que tienes sobre la experiencia de carga. Algunos motores te permiten cambiar todo. Otros motores impondrán sus propias barras de carga. Algunos motores tendrán múltiples barras de carga. Todo esto marca la diferencia, así que echa un buen vistazo. Y finalmente, también debes tener en cuenta el tamaño de cualquier biblioteca de terceros que utilices. No es necesariamente específico del motor, pero si estás utilizando un motor de física de terceros gigante u otras cosas similares, debes ser consciente del peso que eso agrega a tu juego, porque cada kilobyte cuenta. Luego, optimiza tus activos. Probablemente sea la parte menos divertida, pero es importante. En general, asegúrate de investigar las extensiones de archivo y utilizar las correctas. PNG y JPEG son un buen ejemplo. Averigua cuál usar para cada imagen, porque eso marca la diferencia. También comprime todos tus activos, para que no necesites tus JPEG con una calidad del 120%, y para el audio, también recomendaría ponerlo en mono. Si tienes muchas imágenes, considera ponerlas en hojas de sprites. Ahora, los navegadores son un poco mejores para manejar muchas solicitudes paralelas, por lo que ya no es lo más importante, y dependiendo del motor, incluso renderizar imágenes por separado podría estar optimizado, pero una vez que tienes una gran cantidad de imágenes, realmente deberías agruparlas. Además, si estás utilizando fuentes personalizadas, considera utilizar fuentes de mapa de bits, y si no puedes, al menos deberías eliminar los caracteres que no necesitas del archivo. Luego, haz que la carga sea interesante. No importa cuánto lo intentes, siempre tendrás alguna forma de pantalla de carga. Pero mientras las personas esperan, podrías aprovechar ese tiempo. Una cosa que las personas suelen subestimar es cuánto tiempo le llevará realmente a un usuario promedio cargar un juego. Por ejemplo, Poki es, como dije, una marca global. Por lo tanto, tenemos personas de todo el mundo, personas con conexiones a Internet más lentas que las tuyas o máquinas más lentas que las tuyas. Asegúrate de probar en máquinas más lentas y asegúrate de limitar tu conexión. Te sorprenderá cuánto tiempo las personas están mirando estas pantallas que has estado ignorando porque solo te llevan unos segundos. Entonces, mientras tienes este tiempo, asegúrate de usarlo correctamente. Establece las expectativas de cómo será el juego. Emociona a los jugadores mientras esperan. Muéstrales artes clave, capturas de pantalla, controles del juego, muéstrales cuán grande es el juego que están descargando.

5. Carga Eficiente y Ruta Clara para Jugar

Short description:

Asegúrate de utilizar el espacio de manera eficiente. Es importante cargar las cosas según sea necesario. Solo carga los activos cuando se necesiten. No descargues todos los activos a la vez. Transmite música para evitar bloquear la carga. Mantén la ruta clara para jugar. Evita pantallas y menús innecesarios. Lleva a los usuarios directamente al juego. Comprime y asegúrate de tener una buena cobertura de CDN.

Asegúrate de utilizar este espacio de manera eficiente. Otro aspecto importante es cargar las cosas según se necesiten. Esto depende mucho del juego y de lo que puedas hacer. Pero lo principal es que solo debes cargar las cosas cuando las necesites. Esto significa que si tu juego tiene, por ejemplo, 20 mapas o entornos diferentes, y cada uno tiene sus propios activos, su propia música, no necesitas descargarlos todos antes de que el jugador juegue el primer nivel.

En la imagen de la derecha, puedes ver un gif de Finch, y puedes observar que puedes acceder al menú principal rápidamente, aunque en segundo plano todavía se están cargando los modelos, las texturas, y demás. Y tan pronto como comiences a jugar, se cargará el mapa que necesitas, etc. Cualquier activo que necesites más adelante, puedes descargarlo durante el juego, puedes descargarlo durante los menús, especialmente la música. Normalmente, recomiendo a las personas que solo comiencen a descargar, que transmitan la música, para no bloquear la carga. Pero déjala transmitir y si alguien tiene una conexión rápida, tendrá la música tan pronto como comience a jugar. Para alguien con una conexión más lenta, ya pueden disfrutar del juego, pero la música comenzará un poco más tarde.

Y finalmente, mantén la ruta clara para jugar. Como mostré en la descripción general al principio, la conversión para jugar no solo se ve afectada por la carga del juego, sino también por los menús del juego. Así que ten en cuenta cuántas pantallas pones entre el inicio de tu juego y el comienzo del juego. No necesitas 3 pantallas de carga. Si pones pantallas de presentación o tienes una historia al comienzo de tu juego, eso puede ser agradable, pero asegúrate de que las personas puedan saltarlas fácilmente. Por supuesto, asegúrate de que el botón de jugar sea fácil de encontrar, no lo ocultes. Y uno de mis favoritos, como se ilustra en el gif de la derecha de Syncith, considera llevar a los usuarios que juegan por primera vez directamente al juego. Si están comenzando, ni siquiera saben qué van a jugar. Entonces, ¿por qué obligarlos a pasar por menús en los que no están interesados? Solo llévalos al tutorial, déjalos jugar. Y luego, si les gusta, pueden explorar las otras funciones más adelante. Además, solo como una nota adicional, navegar por tu juego sí marca la diferencia. Estamos en la web. Eso significa que debes navegar por tu juego a través de navegadores web. Aquí hay algunas cosas importantes, por ejemplo, comprimir de manera adecuada y tener una buena cobertura de CDN. Para un desarrollador individual que hace uno o dos juegos, no es muy fácil de hacer porque también es un conjunto de habilidades diferente. Pero afortunadamente, si trabajas con una plataforma, probablemente ellos se encarguen de eso por ti. Nosotros también lo hacemos. No tienes que preocuparte por esto. Así que eso fue mucha información.

6. Ejemplos de Mejoras en la Carga de Juegos

Short description:

Quiero mostrar dos ejemplos específicos de juegos que trabajaron en mejorar la carga y obtuvieron buenos resultados. El primer ejemplo es Apple Knights, un juego de plataformas de acción en 2D hecho en Unity. Optimizaron los activos, utilizaron paquetes de activos y eliminaron pantallas de menú innecesarias, lo que resultó en una mejora significativa en la jugabilidad. El segundo ejemplo es Stickman Hook, que cambió de Unity a nativational 5 utilizando Pixy.js y experimentó un gran aumento en la conversión para jugar.

Probablemente sea bueno detenerse un poco y explicar por qué todo esto es realmente importante. Y para hacer eso, quiero mostrar dos ejemplos específicos que trabajaron en este problema y lograron obtener buenos resultados.

Primero, Apple Knights. Apple Knights es el juego de Limitless LLC. Es un juego de plataformas de acción en 2D donde juegas como un caballero, comes manzanas y golpeas enemigos. Es un juego hecho en Unity, y es una exportación de Unity WebGL. Desde la perspectiva de jugar, no es un punto de partida ideal. Sin embargo, con el trabajo adecuado, aún se pueden obtener resultados razonables.

El estudio realmente trabajó muy duro y realizó algunas cosas clave. Repasando la lista de verificación nuevamente, trabajaron en cargar las cosas según se necesitan, optimizaron sus activos y mantuvieron el camino claro para jugar. En primer lugar, comenzaron a utilizar paquetes de activos de manera extensiva. Los paquetes de activos son una característica de Unity que te permite descargar tus activos más adelante como parte de las cargas iniciales. Ya tenían todos sus activos optimizados porque Unity es bastante bueno en eso, pero estaban utilizando muchas bibliotecas de terceros grandes que al final realmente no necesitaban, así que eliminaron la mayoría de ellas. Luego, finalmente, también eliminaron muchas pantallas de menú innecesarias, lo que hizo que el camino para jugar fuera mucho más claro. Eso los llevó de un juego que tenía, creo, 8 megabytes al inicio a un juego que está más cerca de los 30 megabytes, y con eso lograron mejorar su jugabilidad de interfaz del 74 por ciento al 64 por ciento, lo que básicamente significa que cada mil usuarios potenciales, 170 personas más están jugando su juego. Así que eso es increíble.

Ahora, lo que podrías estar pensando es, bueno, pero el 64 por ciento aún es un poco bajo, y en parte tienes razón. Para un juego de Unity, una vez más, es bastante bueno. Y pusieron mucho esfuerzo en eso. Pero como dije antes, mantenerse cerca de JavaScript es una buena idea, así que quiero mostrar el siguiente ejemplo para eso, que es Stickman. Stickman Hook es un juego de Mathbox. Ya fue un gran éxito en las tiendas de aplicaciones, y decidieron poner su juego también en la web. Después de estar en la web en Unity por un tiempo, hablamos y nos dimos cuenta de que el juego realmente se beneficiaría al hacer una reconstrucción. Y eso es lo que hicieron. Reconstruyeron el juego desde cero en nativational 5, utilizando Pixy.js, solo como una biblioteca gráfica. Y los resultados son realmente buenos. Como puedes ver, antes de las versiones de Unity, tenía una conversión para jugar del 35 por ciento. Y después de cambiar a versiones nativas con pixy, eso terminó en el 81 por ciento. Así que en mil usuarios potenciales, eso son 460 personas más jugando el juego. Lo cual es increíble.

7. El Impacto de los Usuarios Jugando un Juego

Short description:

El impacto de los usuarios jugando un juego puede ser mayor que solo el número de jugadores. Aquí tienes una lista de verificación para ayudarte a comenzar con tu juego web: elige el motor correcto, optimiza los activos, haz que la carga sea interesante, carga las cosas según sea necesario y mantén el camino claro para jugar. Si ya tienes un juego, estos consejos pueden ayudarte a mejorar. Estamos contratando y puedes jugar en pokey.com. Es genial ver que el 53% de los encuestados han desarrollado juegos web. Un buen objetivo de tamaño de archivo para tu juego es lo más pequeño posible.

Y además de eso, el hecho de que cambiaran a compilaciones nativas también les permitió tener un mejor soporte en la web móvil. Y además de eso, debido a que nuestros algoritmos de recomendación les gustan los juegos que se juegan, hay un efecto acumulativo aquí. Por lo tanto, el impacto real de la cantidad de usuarios que juegan su juego fue mucho mayor que solo este número aquí, dice.

Entonces, solo como un resumen rápido, aquí está la lista de verificación nuevamente. Asegúrate de elegir el motor correcto. Asegúrate de optimizar tus activos. Haz que la carga sea interesante. Carga las cosas según sea necesario y mantén el camino claro para jugar. Espero que esto te ayude a tener un buen comienzo en tu juego web. Y si ya tienes uno, tal vez esto te ayude a mejorar. Gracias por escuchar.

Sí, ven y juega en pokey.com o si tienes un juego, envíalo a nosotros. Y también estamos contratando. Gracias. Sí, has preguntado, ¿has desarrollado juegos web antes? Y el 53% ha respondido que sí. ¿Qué opinas al respecto? Eso es genial. Estaba un poco inseguro si tendríamos principalmente desarrolladores web como desarrolladores de JavaScript o también desarrolladores de juegos web aquí. Así que es bueno ver realmente a muchos desarrolladores de juegos. Eso es agradable. Sí, en realidad es muy agradable. No pensé que tanta gente hubiera desarrollado juegos para la web antes. No somos muchos en general. Así que sí. De hecho, antes de la cumbre, pensé que estaba solo en el mundo. Así que es bueno ver a tanta gente como 8000 personas sintonizando.

Tenemos algunas preguntas para ti. La primera es, ¿qué crees que es un buen objetivo de tamaño de archivo para mi juego? Esa es una buena pregunta. Por supuesto, mi respuesta favorita sería lo más pequeño posible. Cada megabyte cuenta. Así que realmente lo más pequeño que puedas conseguirlo.

8. Choosing Game Engines and Getting Started

Short description:

Si puedes lograr estar por debajo de cinco, estás haciendo un trabajo increíble. Y si estás por debajo de diez, estás haciendo un buen trabajo. Hasta ahora he hecho dos juegos y estoy trabajando en el tercero. Para el primero, solo usé Tree.js. Pero luego, para el segundo juego, el juego de carreras en 2D, cambié a Pixi para los gráficos con Box2D. Me gusta estar muy cerca del código. Es mejor si estás empezando en el desarrollo de juegos porque puedes aprender realmente los conceptos básicos de cómo funcionan los juegos, la física y cosas así. Hay mucha matemática involucrada.

Pero obviamente esto va a variar para cada juego y para cada motor. Así que diría que si puedes lograr estar por debajo de cinco, estás haciendo un trabajo increíble. Y si estás por debajo de diez, estás haciendo un buen trabajo. Estos son probablemente los objetivos que te recomendaría. Pero cada pequeña mejora que puedas hacer, es buena.

Sí, entiendo. Sé a lo que te refieres. Otra pregunta es, ¿qué motor de juegos usas para tus propios proyectos? Hasta ahora he hecho dos juegos y estoy trabajando en el tercero. Para el primero, solo usé Tree.js. Así que más bien es una biblioteca que un motor de juegos en sí. Hice ese juego con la idea de simplemente juntar un montón de código hasta que funcione. No pensé mucho en la arquitectura y esas cosas. Pero eso me ayudó a lograr algo porque mi objetivo era simplemente terminar un juego, lo cual es más difícil de lo que parece si no lo has hecho antes.

Pero luego, para el segundo juego, el juego de carreras en 2D, cambié a Pixi para los gráficos con Box2D. Así que tampoco es uno de los motores que mencioné en las diapositivas. También está más cerca del código. Y construí, escribí mi propio tipo de marco, podrías decir, sobre RxJS, que puede ser familiar para algunas personas más relacionadas con la web. Básicamente, es una biblioteca de transmisiones. Y ahora lo estoy usando. Para mí, la razón principal es porque me gusta estar muy cerca del código. Me gusta tener todo el control sin tener que sumergirme en cosas específicas del motor, lo cual es mucho más lento, pero si te gusta, está bien. Pero si no te gusta, no lo recomendaría. Elegiría cualquiera de los otros motores que mencioné en las diapositivas.

Sí, exactamente. De hecho, es mejor si estás empezando en el desarrollo de juegos porque puedes aprender realmente los conceptos básicos de cómo funcionan los juegos, la física y cosas así. A mí también me gusta eso. Cuando estaba empezando a aprender, leía mucho sobre matemáticas y cosas así para descubrir las colisiones, las fórmulas y cosas así, y conocer el desarrollo de juegos en sí, cómo funcionaría.

Sí, creo que eso también fue lo que más me sorprendió del desarrollo de juegos, viniendo de un trasfondo de desarrollo web. Hay mucha matemática, mucha matemática.

9. Challenges in Math and Coding

Short description:

Hubo algunas veces en las que recuerdo que escribí como tres o cuatro páginas en un cuaderno para resolver alguna ecuación. Luego le pregunté a alguien porque estaba completamente atascado, y luego me dijeron que había una fórmula súper simple. Todo el mundo la conoce, solo úsala. Y yo estaba como, ah.

Sí, es mucha matemática. Sí, debería ir a mi padre por eso. Así que no sabría mucho. Así que volvería a mi padre y le preguntaría algunas cosas de matemáticas, y él me las explicaría, y yo las codificaría. Y fue realmente increíble. Eso es inteligente. Hubo algunas veces en las que recuerdo que escribí como tres o cuatro páginas en un cuaderno para resolver alguna ecuación. Luego le pregunté a alguien porque estaba completamente atascado, y luego me dijeron que había una fórmula súper simple. Todo el mundo la conoce, solo úsala. Y yo estaba como, ah.

QnA

WebXR Games, Blockchain, and Reducing Game Size

Short description:

Tuve una experiencia similar con los juegos de WebXR. Personalmente, creo que es increíble y fácilmente accesible. En Pokey, no trabajamos con ello debido a la adecuación al público, pero estoy emocionado por su potencial. Pokey está investigando activamente los juegos de blockchain y cripto para brindar experiencias gratuitas a más personas. Actualmente no tenemos ningún juego de cripto. Tuvimos una interesante charla sobre metrigaming y el futuro de los juegos con criptomonedas y NFT. Uno de los desafíos para reducir el tamaño del juego es comenzar con el tamaño del archivo en mente.

En realidad, tuve una experiencia similar. Y tenemos otra pregunta de Panther, y están preguntando, ¿qué opinas sobre los juegos de WebXR y su potencial? Buena pregunta. En primer lugar, personalmente, creo que es súper increíble. Me gusta la web porque es muy abierta y todos pueden usarla. Es muy fácilmente accesible. Y creo que es genial ver cómo las nuevas tecnologías llegan tan rápido a la web. Pero en Pokey, realmente no trabajamos con ello, simplemente porque no encaja con una gran audiencia. Así que no dedico mucho tiempo a mirarlo, tampoco. Pero estoy muy emocionado por ello, más desde fuera de nuestro caso de uso específico de nuestra plataforma de juegos, solo por el potencial de no tener que instalar nada y entrar directamente en la realidad virtual. El único problema es que aún necesitas auriculares de realidad virtual, por supuesto. Así que no sé. Me gusta. Creo que todo debería llegar a la web. Así que en ese sentido, estoy emocionado. Sí, exactamente.

Es muy emocionante. Y tenemos otra pregunta que están haciendo. ¿Cuál es la postura de Pokey sobre blockchain y los juegos de cripto? También es una buena pregunta. No estoy seguro de ser la mejor persona para responder esa pregunta. No es algo que estemos persiguiendo activamente. Creo que es algo que estamos investigando activamente, principalmente porque queremos llevar juegos gratuitos a tantas personas como sea posible. Eso es lo principal. Queremos brindar experiencias increíbles a tantas personas como sea posible de forma gratuita. Entonces, si puede ayudarnos con eso, entonces es muy interesante. Creo que hicimos algunas colaboraciones con la NaNoFoundation, pero nuevamente, no quiero profundizar demasiado en ello porque no he estado muy involucrado. No quiero decir cosas incorrectas. Pero sí, actualmente no tenemos ningún juego de cripto, al menos.

Sí, de hecho, no sé si viste eso, tuvimos una charla con Paul de OpiGames, y habló sobre metrigaming y lo que podría suceder. ¿Cuál es el futuro de eso con los juegos, con criptomonedas y NFT? Y fue una charla interesante. En realidad, tengo otra pregunta, ¿cuáles fueron tus mayores desafíos para reducir el tamaño de tus juegos? Creo que para el primer juego no fue un gran desafío en realidad, porque comencé desde el principio con el tamaño del archivo en mente.

Designing Games with File Size in Mind

Short description:

Diseñar un juego teniendo en cuenta el tamaño del archivo puede ser relativamente fácil. El arte procedural y generar el entorno con matemáticas puede mantener el tamaño del archivo pequeño. Para juegos en 2D, generar niveles de forma procedural a partir de datos de vértices y elegir un motor liviano con menos bibliotecas de terceros puede ayudar a reducir el tamaño del archivo. Spine 2D es una herramienta que puede disminuir significativamente el tamaño de las animaciones en 2D al exportar JSON que maneja la animación.

Creo que si diseñas un juego desde el principio teniendo en cuenta el tamaño del archivo, puede ser relativamente fácil. El mayor desafío es no usar un motor. Porque todo el arte es procedural, excepto los personajes principales, todo el entorno se genera solo con matemáticas. Sí, más matemáticas. Eso mantiene el tamaño del archivo muy pequeño. Así que eso fue bastante sencillo.

Y luego, para los juegos en 2D, se vuelve un poco más difícil porque necesitas los gráficos. Pero allí tomé el mismo enfoque. Generé los niveles de forma procedural a partir de datos de vértices. Tengo una publicación en el blog al respecto. Tal vez pueda compartirla. Y luego hay algunos desafíos para que se vea bien. A los dispositivos móviles no les gustan las texturas enormes. Entonces tienes que hacer algunas divisiones y cosas así. Pero creo que el mayor obstáculo para la mayoría de los juegos para reducir el tamaño del archivo realmente depende del motor con el que comiences y cuántas cosas de terceros tiendes a usar. Porque si eliges un motor muy liviano y no usas muchas bibliotecas de terceros, entonces tienes mucho control para eliminar cosas. Así que creo que comenzar de la manera correcta marca la mayor diferencia.

Exactamente. Y estoy aprendiendo algo llamado Spine 2D. No sé si has oído hablar de eso. Estaba usando hojas de cálculo para mis animaciones en 2D en mi juego. Y podía ocupar mucho espacio debido a los fotogramas. Y Spine tiene esta característica de tener partes para los personajes. Tiene extremidades y cosas así, partes separadas. Y exporta JSON que maneja la animación. Entonces realmente puede reducir el tamaño de tu juego. No sé si estás al tanto de eso. ¿Tienes alguna opinión al respecto? Sí. Creo que hay muchos trucos como este. Deberías tenerlo en cuenta mientras haces el juego y considerar todas las cosas que estás haciendo, por eso estoy tratando de predicar esto.

Managing Time for Indie Game Development

Short description:

Trabajar en el desarrollo de juegos independientes requiere mucho tiempo y un enfoque similar al de una maratón. Actualmente, trabajo en un juego de simulación de montañas rusas que implica programación gráfica y matemáticas. Aunque es un desafío, estoy emocionado por su progreso. No tenemos tiempo para preguntas, pero siéntete libre de continuar la conversación en Discord.

Porque cuanto más tarde comiences, más difícil se vuelve. Sí, exactamente. También tengo otra pregunta. No está relacionada con tu charla. Pero vi que estás en el doblaje de juegos en tu tiempo libre, y trabajas con Poki. Entonces probablemente sea tu trabajo diario. Y quería preguntarte, ¿cómo administras el tiempo para dedicar a tus juegos independientes? Bueno, para empezar, soy holandés. Y a los holandeses no les gusta trabajar demasiado. Así que solo trabajo cuatro días. Esa es la primera parte. Tengo los viernes libres para trabajar en proyectos personales. Y la segunda parte no es fácil. Simplemente lleva mucho tiempo. Así que el segundo juego, creo que me llevó dos años hacerlo. Y eso se distribuye en períodos muy largos. Así que a veces tengo una semana en la que soy muy productivo. Y luego tengo tres meses en los que no lo toco. Así que es más, ¿cómo se llama? Es más una maratón que una carrera. Mantén el enfoque en el objetivo final y tal vez planifica una semana libre para trabajar en ello. También estoy trabajando en el nuevo juego en mi viaje de esquí. Así que encuentra el tiempo que tienes y sigue adelante hasta que llegues allí, creo. Sí, te entiendo. Además, ¿en qué consiste el nuevo juego en el que estás trabajando? Será un juego de montañas rusas. Así que estoy simulando algunas montañas rusas, lo que me obliga a programar gráficos, que nuevamente implica más matemáticas. Y no soy bueno en eso. Así que llevará algo de tiempo. Llegará allí, eventualmente. Puedes contactar a mi padre si tienes alguna pregunta. Eso sería genial. Es realmente emocionante escuchar eso. Me encantaría jugarlo. Genial. Creo que en realidad se nos está acabando el tiempo para preguntas. Sí, fue muy agradable hablar contigo. Gracias por responder mis preguntas. Y también puedes seguir haciéndome preguntas en Discord. Y Casper es lo suficientemente amable como para responder en su sala de conferencias en Discord. Gracias, Casper. Gracias por recibirme. 🎵suena música de cierre🎵

Check out more articles and videos

We constantly think of articles and videos that might spark Git people interest / skill us up or help building a stellar career

React Advanced Conference 2022React Advanced Conference 2022
25 min
A Guide to React Rendering Behavior
Top Content
React is a library for "rendering" UI from components, but many users find themselves confused about how React rendering actually works. What do terms like "rendering", "reconciliation", "Fibers", and "committing" actually mean? When do renders happen? How does Context affect rendering, and how do libraries like Redux cause updates? In this talk, we'll clear up the confusion and provide a solid foundation for understanding when, why, and how React renders. We'll look at: - What "rendering" actually is - How React queues renders and the standard rendering behavior - How keys and component types are used in rendering - Techniques for optimizing render performance - How context usage affects rendering behavior| - How external libraries tie into React rendering
React Summit 2023React Summit 2023
32 min
Speeding Up Your React App With Less JavaScript
Too much JavaScript is getting you down? New frameworks promising no JavaScript look interesting, but you have an existing React application to maintain. What if Qwik React is your answer for faster applications startup and better user experience? Qwik React allows you to easily turn your React application into a collection of islands, which can be SSRed and delayed hydrated, and in some instances, hydration skipped altogether. And all of this in an incremental way without a rewrite.
React Summit 2023React Summit 2023
23 min
React Concurrency, Explained
React 18! Concurrent features! You might’ve already tried the new APIs like useTransition, or you might’ve just heard of them. But do you know how React 18 achieves the performance wins it brings with itself? In this talk, let’s peek under the hood of React 18’s performance features: - How React 18 lowers the time your page stays frozen (aka TBT) - What exactly happens in the main thread when you run useTransition() - What’s the catch with the improvements (there’s no free cake!), and why Vue.js and Preact straight refused to ship anything similar
JSNation 2022JSNation 2022
21 min
The Future of Performance Tooling
Top Content
Our understanding of performance & user-experience has heavily evolved over the years. Web Developer Tooling needs to similarly evolve to make sure it is user-centric, actionable and contextual where modern experiences are concerned. In this talk, Addy will walk you through Chrome and others have been thinking about this problem and what updates they've been making to performance tools to lower the friction for building great experiences on the web.
JS GameDev Summit 2022JS GameDev Summit 2022
33 min
Building Fun Experiments with WebXR & Babylon.js
Top Content
During this session, we’ll see a couple of demos of what you can do using WebXR, with Babylon.js. From VR audio experiments, to casual gaming in VR on an arcade machine up to more serious usage to create new ways of collaboration using either AR or VR, you should have a pretty good understanding of what you can do today.
Check the article as well to see the full content including code samples: article. 

Workshops on related topic

React Summit 2023React Summit 2023
170 min
React Performance Debugging Masterclass
Featured WorkshopFree
Ivan’s first attempts at performance debugging were chaotic. He would see a slow interaction, try a random optimization, see that it didn't help, and keep trying other optimizations until he found the right one (or gave up).
Back then, Ivan didn’t know how to use performance devtools well. He would do a recording in Chrome DevTools or React Profiler, poke around it, try clicking random things, and then close it in frustration a few minutes later. Now, Ivan knows exactly where and what to look for. And in this workshop, Ivan will teach you that too.
Here’s how this is going to work. We’ll take a slow app → debug it (using tools like Chrome DevTools, React Profiler, and why-did-you-render) → pinpoint the bottleneck → and then repeat, several times more. We won’t talk about the solutions (in 90% of the cases, it’s just the ol’ regular useMemo() or memo()). But we’ll talk about everything that comes before – and learn how to analyze any React performance problem, step by step.
(Note: This workshop is best suited for engineers who are already familiar with how useMemo() and memo() work – but want to get better at using the performance tools around React. Also, we’ll be covering interaction performance, not load speed, so you won’t hear a word about Lighthouse 🤐)
JSNation 2023JSNation 2023
116 min
Make a Game With PlayCanvas in 2 Hours
Featured WorkshopFree
In this workshop, we’ll build a game using the PlayCanvas WebGL engine from start to finish. From development to publishing, we’ll cover the most crucial features such as scripting, UI creation and much more.
Table of the content:- Introduction- Intro to PlayCanvas- What we will be building- Adding a character model and animation- Making the character move with scripts- 'Fake' running- Adding obstacles- Detecting collisions- Adding a score counter- Game over and restarting- Wrap up!- Questions
Workshop levelFamiliarity with game engines and game development aspects is recommended, but not required.
JSNation 2023JSNation 2023
170 min
Building WebApps That Light Up the Internet with QwikCity
Featured WorkshopFree
Building instant-on web applications at scale have been elusive. Real-world sites need tracking, analytics, and complex user interfaces and interactions. We always start with the best intentions but end up with a less-than-ideal site.
QwikCity is a new meta-framework that allows you to build large-scale applications with constant startup-up performance. We will look at how to build a QwikCity application and what makes it unique. The workshop will show you how to set up a QwikCitp project. How routing works with layout. The demo application will fetch data and present it to the user in an editable form. And finally, how one can use authentication. All of the basic parts for any large-scale applications.
Along the way, we will also look at what makes Qwik unique, and how resumability enables constant startup performance no matter the application complexity.
React Day Berlin 2022React Day Berlin 2022
53 min
Next.js 13: Data Fetching Strategies
Top Content
WorkshopFree
- Introduction- Prerequisites for the workshop- Fetching strategies: fundamentals- Fetching strategies – hands-on: fetch API, cache (static VS dynamic), revalidate, suspense (parallel data fetching)- Test your build and serve it on Vercel- Future: Server components VS Client components- Workshop easter egg (unrelated to the topic, calling out accessibility)- Wrapping up
JS GameDev Summit 2022JS GameDev Summit 2022
121 min
PlayCanvas End-to-End : the quick version
Top Content
WorkshopFree
In this workshop, we’ll build a complete game using the PlayCanvas engine while learning the best practices for project management. From development to publishing, we’ll cover the most crucial features such as asset management, scripting, audio, debugging, and much more.
React Advanced Conference 2023React Advanced Conference 2023
148 min
React Performance Debugging
Workshop
Ivan’s first attempts at performance debugging were chaotic. He would see a slow interaction, try a random optimization, see that it didn't help, and keep trying other optimizations until he found the right one (or gave up).
Back then, Ivan didn’t know how to use performance devtools well. He would do a recording in Chrome DevTools or React Profiler, poke around it, try clicking random things, and then close it in frustration a few minutes later. Now, Ivan knows exactly where and what to look for. And in this workshop, Ivan will teach you that too.
Here’s how this is going to work. We’ll take a slow app → debug it (using tools like Chrome DevTools, React Profiler, and why-did-you-render) → pinpoint the bottleneck → and then repeat, several times more. We won’t talk about the solutions (in 90% of the cases, it’s just the ol’ regular useMemo() or memo()). But we’ll talk about everything that comes before – and learn how to analyze any React performance problem, step by step.
(Note: This workshop is best suited for engineers who are already familiar with how useMemo() and memo() work – but want to get better at using the performance tools around React. Also, we’ll be covering interaction performance, not load speed, so you won’t hear a word about Lighthouse 🤐)