Crea un Juego Con PlayCanvas en 2 Horas

Rate this content
Bookmark

En esta masterclass, construiremos un juego utilizando el motor WebGL de PlayCanvas desde el principio hasta el final. Desde el desarrollo hasta la publicación, cubriremos las características más cruciales como la escritura de scripts, la creación de UI y mucho más.


Tabla de contenido:

- Introducción

- Introducción a PlayCanvas

- Lo que vamos a construir

- Agregando un modelo de personaje y animación

- Haciendo que el personaje se mueva con scripts

- 'Falsa' carrera

- Agregando obstáculos

- Detectando colisiones

- Agregando un contador de puntuación

- Fin del juego y reinicio

- ¡Resumen!

- Preguntas


Nivel de la masterclass

Se recomienda familiaridad con los motores de juegos y los aspectos del desarrollo de juegos, pero no es obligatorio.

This workshop has been presented at JSNation 2023, check out the latest edition of this JavaScript Conference.

FAQ

Backplane Canvas es un motor web-first enfocado en utilizar la web al máximo, adoptando estándares abiertos como WebXR para experiencias de AR y VR, y soportando estándares gLTF para modelos y materiales.

Sí, el tiempo de ejecución del motor Backplane Canvas es totalmente de código abierto bajo la licencia MIT.

Backplane Canvas tiene una huella de menos de 400k después de aplicar gzip.

Se utiliza un editor en línea que permite construir experiencias visualmente, añadir modelos, subir texturas y modificar materiales a través del navegador.

Se ha añadido el soporte GLTF con Draco Mesh Compression, que permite comprimir mallas de muy alto detalle hasta una décima o vigésima parte de su tamaño original.

Los usuarios de PlayCanvas han desarrollado juegos multijugador y juegos integrados en plataformas de redes sociales como WeChat, Snapchat y Facebook.

Muchos desarrolladores han contribuido con características y soluciones a lo largo de los años, mejorando el motor junto con el equipo central.

Es importante estar consciente de las diferencias entre versiones de JavaScript, ya que PlayCanvas utiliza ES5 y muchos tutoriales nuevos utilizan ES6, que incluye clases y módulos.

Steven Yau
Steven Yau
116 min
09 Jun, 2023

Comments

Sign in or register to post your comment.
Video Summary and Transcription
Backplane Canvas es un motor web-first que adopta estándares abiertos como WebXR y admite gLTF. PlayCanvas ofrece un editor en línea para construir experiencias visualmente. Se discuten la arquitectura del motor, las trampas de JavaScript y la documentación de la API. La masterclass cubre la configuración del proyecto y la escena, la creación de un personaje jugador, la escritura de scripts personalizados, la adición de física y elementos de juego, y la implementación de UI y efectos de sonido. Se proporcionan recursos adicionales y sugerencias para mejorar el juego.

1. Introducción a Backplane Canvas

Short description:

Backplane Canvas es un motor web-first centrado en utilizar la web al máximo. Adopta estándares abiertos como WebXR y soporta gLTF. El tiempo de ejecución del motor es de código abierto bajo la licencia MIT y tiene una pequeña huella. PlayGamers ofrece un editor en línea para construir experiencias visualmente. Las últimas características incluyen soporte GLTF con Draco Mesh Compression. Muchos usuarios han creado juegos multijugador y experiencias para plataformas como WeChat y Snapchat. Estamos construyendo un pequeño juego para controlar un personaje jugador y evitar que las bolas golpeen el suelo.

Bueno, entonces Backplane Canvas es un motor web-first, lo que significa que están muy enfocados en utilizar la web al máximo. Esto incluye adoptar estándares abiertos como WebXR para experiencias de AR y VR, lo cual estoy muy contento de que el Apple Vision Pro esté habilitando en algún momento, y soportando los estándares gLTF para modelos y materiales. El tiempo de ejecución del motor, el código que ha publicado experiencias se ejecuta es totalmente de código abierto bajo la licencia MIT, y han tenido muchos desarrolladores que contribuyen con características y soluciones a lo largo de los años, así como el equipo central.

En términos de tamaño, tiene una huella de menos de 400k después de gzip y los desarrolladores están buscando soportar la toma de árboles desde el editor para hacerlo aún más pequeño, por lo que podría eliminar el código del motor que no estás utilizando. Utiliza un producto central de PlayGamers que es un editor en línea que puedes ver aquí y podemos construir experiencias visualmente, añadir modelos, subir texturas, modificar materiales a través del navegador, que es lo que estaremos utilizando hoy. Y aquí hay una selección de las últimas características. No voy a entrar en todas ellas ahora, pero las que sí quiero destacar es el soporte GLTF con Draco Mesh Compression que permite a los desarrolladores tomar mallas de muy alto detalle y comprimir hasta una décima o vigésima parte de su tamaño. Así que casi como una quinta parte del tamaño. Es algo que han añadido recientemente y es super impresionante.

Y muchos de los usuarios de PlayCanvas han hecho algunos juegos multijugador realmente geniales, juegos para multijugador. Así que déjame retroceder un poco. Así que básicamente lo que tengo hoy, quién soy, características. Muchos de los usuarios han hecho grandes juegos multijugador y juegos con plataformas de malla como WeChat, Snapchat, Facebook, Metaversos, Experiencias de Compra y Visualizaciones de Productos y Configuradores. Puedes encontrar trailers de esto bajo MaplePlayCanvas y enlazado aquí. Y esto es lo que estamos buscando construir hoy. Estamos buscando construir un juego muy pequeño donde controlas a tu personaje jugador y para evitar que las bolas golpeen el suelo. Así que básicamente intenta alejarlas del suelo porque cuando golpean el suelo, tu salud caerá. Vale.

2. JavaScript y Trampas de Play Canvas

Short description:

Nuestro plan es repasar tantas características como podamos, incluyendo las características fundamentales. Antes de eso, hablemos de algunas trampas con JavaScript y Play Canvas. Play Canvas utiliza una versión más antigua de JavaScript, y no tiene un paso de construcción para transpilar el código. JavaScript no tiene tipos de valor y permite la adición dinámica de propiedades en tiempo de ejecución. Las funciones son objetos y pueden ser poderosas, pero requieren un cuidadoso manejo del alcance. También cubriremos la arquitectura del motor de Play Canvas y cómo navegar por la documentación de la API.

Entonces, nuestro plan es básicamente repasar tantas características como podamos. las características fundamentales. Pero antes de eso, también quiero hablar sobre cómo hablar un poco sobre algunas trampas con JavaScript y Play Canvas. Así que toda la documentation para Play Canvas usa EDSA, utiliza jest ES5 que como todos saben es una versión bastante antigua de JavaScript. Si estás buscando como si eres nuevo en JavaScript especialmente y estás buscando tutoriales sobre JavaScript, encontrarás que van a estar escritos usando ES6, que son clases y modules. Generalmente no es un problema siempre y cuando estés consciente de las diferencias, pero tenlo en cuenta cuando mezcles tutoriales de fuera de Play Canvas y el material de Play Canvas en sí. Y esto es porque como Play Canvas realmente no tiene un paso de construcción aún, donde transpila JavaScript a ES5. Lo que hace, toma el code que escribes, y lo ejecuta directamente en el navegador. Así que, técnicamente siempre y cuando el navegador pueda ejecutar el code, puedes usarlo dentro del editor de Play Canvas. Y no sé si hay alguna persona que sea nueva en JavaScript aquí, pero si lo eres, hay algunas personas que vienen de Unity y C Sharp. Hay algunas trampas en las que la gente cae cuando usan Play Canvas por primera vez y no han usado JavaScript antes. Lo cual es, JavaScript no tiene concepto de tipos de valor, por lo que los objetos siempre se pasan por referencia. Y es un lenguaje dinámico donde puedes añadir propiedades dinámicamente en tiempo de ejecución. Así que no tienes la comprobación de tipos estáticos que normalmente tienes con lenguajes como C Sharp y C++. Y también, más importante, las funciones son objetos. Así que puedes pasar funciones como objetos a través del code, lo que lo hace increíblemente poderoso, pero también es algo de lo que hay que estar consciente cuando estás lidiando con el alcance. Y también quiero cubrir la arquitectura del motor de Play Canvas architecture, al menos muy ampliamente. Esto es algo a lo que vamos a volver a lo largo de la masterclass, y también usar esto para ayudar a mostrar cómo navegar por la API documentation especialmente.

Watch more workshops on topic

Cómo crear arte generativo increíble con código JavaScript simple
JS GameDev Summit 2022JS GameDev Summit 2022
165 min
Cómo crear arte generativo increíble con código JavaScript simple
Top Content
WorkshopFree
Frank Force
Frank Force
En lugar de dibujar manualmente cada imagen como en el arte tradicional, los artistas generativos escriben programas que son capaces de producir una variedad de resultados. En esta masterclass aprenderás cómo crear arte generativo increíble usando solo un navegador web y un editor de texto. Comenzando con conceptos básicos y avanzando hacia la teoría avanzada, cubriremos todo lo que necesitas saber.
PlayCanvas de principio a fin: la versión rápida
JS GameDev Summit 2022JS GameDev Summit 2022
121 min
PlayCanvas de principio a fin: la versión rápida
Top Content
WorkshopFree
João Ruschel
João Ruschel
En esta masterclass, construiremos un juego completo utilizando el motor PlayCanvas mientras aprendemos las mejores prácticas para la gestión de proyectos. Desde el desarrollo hasta la publicación, cubriremos las características más cruciales como la gestión de activos, scripting, audio, depuración, y mucho más.
Introducción a WebXR con Babylon.js
JS GameDev Summit 2022JS GameDev Summit 2022
86 min
Introducción a WebXR con Babylon.js
Workshop
Gustavo Cordido
Gustavo Cordido
En este masterclass, te presentaremos los conceptos básicos de la construcción de experiencias de Realidad Mixta con WebXR y Babylon.js.
Aprenderás lo siguiente:- Cómo agregar objetos de malla 3D y botones a una escena- Cómo utilizar texturas procedurales- Cómo agregar acciones a objetos- Cómo aprovechar la experiencia predeterminada de Realidad Cruzada (XR)- Cómo agregar física a una escena
Para el primer proyecto en este masterclass, crearás una experiencia interactiva de Realidad Mixta que mostrará estadísticas de jugadores de baloncesto a fanáticos y entrenadores. Para el segundo proyecto en este masterclass, crearás una aplicación WebXR activada por voz utilizando Babylon.js y Azure Speech-to-Text. Luego, desplegarás la aplicación web utilizando el alojamiento de sitios web estáticos proporcionado por Azure Blob Storage.
Masterclass de Codificación en Vivo de Juegos Pequeños
JS GameDev Summit 2023JS GameDev Summit 2023
115 min
Masterclass de Codificación en Vivo de Juegos Pequeños
Workshop
Frank Force
Frank Force
Sumérgete en el cautivador mundo del desarrollo de microjuegos con Frank Force en este interactivo masterclass de codificación en vivo. Diseñado tanto para desarrolladores experimentados como para curiosos principiantes, esta sesión explora los desafíos únicos y las alegrías de crear juegos y demos con restricciones extremas de tamaño.
Construyendo el Metaverso Interconectado y Traversable
JS GameDev Summit 2022JS GameDev Summit 2022
103 min
Construyendo el Metaverso Interconectado y Traversable
WorkshopFree
Avaer Kazmer
Avaer Kazmer
Basado en gran medida en Free Association en el Metaverso - Avaer @Exokit - M3, Avaer demostrará algunas de las formas en que los estándares abiertos permiten la travesía abierta y gratuita de usuarios y activos en todo el metaverso interconectado.

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

Optimización de juegos HTML5: 10 años de aprendizaje
JS GameDev Summit 2022JS GameDev Summit 2022
33 min
Optimización de juegos HTML5: 10 años de aprendizaje
Top Content
PlayCanvas is an open-source game engine used by game developers worldwide. Optimization is crucial for HTML5 games, focusing on load times and frame rate. Texture and mesh optimization can significantly reduce download sizes. GLTF and GLB formats offer smaller file sizes and faster parsing times. Compressing game resources and using efficient file formats can improve load times. Framerate optimization and resolution scaling are important for better performance. Managing draw calls and using batching techniques can optimize performance. Browser DevTools, such as Chrome and Firefox, are useful for debugging and profiling. Detecting device performance and optimizing based on specific devices can improve game performance. Apple is making progress with WebGPU implementation. HTML5 games can be shipped to the App Store using Cordova.
Construyendo Experimentos Divertidos con WebXR & Babylon.js
JS GameDev Summit 2022JS GameDev Summit 2022
33 min
Construyendo Experimentos Divertidos con WebXR & Babylon.js
Top Content
This Talk explores the use of Babylon.js and WebXR to create immersive VR and AR experiences on the web. It showcases various demos, including transforming a 2D game into a 3D and VR experience, VR music composition, AR demos, and exploring a virtual museum. The speaker emphasizes the potential of web development in the metaverse and mentions the use of WebXR in Microsoft products. The limitations of WebXR on Safari iOS are discussed, along with the simplicity and features of Babylon.js. Contact information is provided for further inquiries.
Haciendo Juegos Increíbles con LittleJS
JS GameDev Summit 2022JS GameDev Summit 2022
34 min
Haciendo Juegos Increíbles con LittleJS
Top Content
Little.js is a super lightweight and fast JavaScript game engine that has everything included to start making games right away. It has a tiny footprint and no dependencies, making it perfect for size-coding competitions like JS13K. Little.js is built with an object-oriented structure and comes with several classes. It provides a fast rendering system, a comprehensive audio system, and various starter projects for different game types. Little.js is designed to be simple and easy to understand, allowing you to look at and modify the code.
¡Mejora el rendimiento de tus juegos WebGL Unity!
JS GameDev Summit 2023JS GameDev Summit 2023
7 min
¡Mejora el rendimiento de tus juegos WebGL Unity!
The Talk discusses ways to boost the performance of WebGL Unity games, including issues with bundle size, memory usage, and runtime performance. It suggests using Brotli for compression and non-exception support for better performance. Choosing the appropriate texture compression format and experimenting with separate builds can also help. The Talk also covers optimizing textures, models, audio, and assets by reducing build size, using compression, disabling unnecessary models, and optimizing audio quality. Unity's optimization tools and profilers are recommended for analyzing performance and memory issues.
Cómo no construir un videojuego
React Summit 2023React Summit 2023
32 min
Cómo no construir un videojuego
The Talk showcases the development of a video game called Athena Crisis using web technologies like JavaScript, React, and CSS. The game is built from scratch and includes features like multiple game states, AI opponents, and map editing. It demonstrates the benefits of using CSS for game development, such as instant load times and smooth transitions. The Talk also discusses optimizing performance, supporting dark mode, and publishing the game to other platforms.
Mejora el rendimiento de tus juegos utilizando Canvas
JS GameDev Summit 2023JS GameDev Summit 2023
8 min
Mejora el rendimiento de tus juegos utilizando Canvas
The Talk discusses the use of the canvas element in games and web applications to improve performance. It compares the Canvas API and WebGL API, highlighting the advantages and disadvantages of each. The Canvas API allows for both CPU and GPU rendering, while WebGL API only uses GPU and hardware acceleration. Using the canvas element can significantly enhance performance, but it comes with increased complexity and development costs.