- ggez es relativamente reciente. Por otra parte Piston es más estable y cuenta con más tiempo. Para Piston ya hay varios vídeos de ejemplo disponibles en Youtube. Piston parece ser muy modular y quisiera ver como se manejaría un motor de juegos más reciente, menos modular y más simplificado.
- Amethyst cuenta con un "Entity-Component-System" llamado specs. Estos sistemas de entidades-componentes es una forma de programar videojuegos en una forma orientada a datos de forma eficiente. A pesar que esto facilita la escala del juego de vídeo, creo que esto será demasiado para ejemplos simples ("Hola mundo", "Snake", etc.) Puede que mientras empiece a dominar estos juegos simples necesite implementar un modelo ECS y eventualmente utilizar el ECS de Amethyst.
- ggez está enfocado a gráficos 2D, mientras que Amethyst está enfocado a ambos: 2D y 3D.
Seguiremos la guía que proporciona ggez en su página de Github: https://github.com/ggez/ggez/blob/master/docs/guides/HelloGgez.md
La guía anterior nos guía a crear un programa simple que use ggez:
- Primero nos pide instalar Rust, estos pasos ya los realizamos.
- Luego Nos pide crear un "crate" para nuestro proyecto en este caso ya sabemos como hacerlo
cargo new hello_ggez01
ycd hello_ggez01
. - Luego nos pide abrir el archivo Cargo.toml y agregamos ggez como una dependencia. En el archivo podemos actualizar nuestros metadatos. Básicamente el archivo Cargo.toml es una archivo TOML ("Tom's Obvious, Minimal Language") que guarda los metadatos de las dependencias y versiones usadas para compilar el proyecto. Este es el Cargo.toml que utilicé, cambié ligeramente la versión:
1 2 3 4 5 6 7 8
[package] name = "hello_ggez01" version = "0.1.0" authors = ["MiUsuario <micorreo@correo.com>"] edition = "2018" [dependencies] ggez = "0.5.0-rc.1"
- Nos pide luego ejecutar el comando
cargo run
para que descargue y haga la compilación de ggez. Después de unos momentos debería de salir el "Hello world!" predeterminado como se ve en las captura siguientes.
![]() |
"cargo run" ejecutándose y descargando todas las dependencias.
Se muestra también el Cargo.toml abierto en Visual Studio Code.
|
![]() |
Resultado después de esperar a que se descarguen y se compilen las dependencias.
Como no modificamos el archivo obtenemos el "Hola, mundo!" predeterminado.
|
Este tiempo de espera que tardó en descargar y copilar se lo ahorra al ejecutar el comando "cargo run" nuevamente. Cargo detecta las versiones ya descargadas y compiladas de las dependencias y usa estas. De la misma forma Cargo puede detectar si cambió algún archivo fuente o podemos forzar a Cargo a hacer las descargas o compilaciones.
Navegación:
Primera parte
Siguiente parte
Parte anterior
Navegación:
Primera parte
Siguiente parte
Parte anterior
Fuentes para ggez (inglés):
- Documentación de ggez en Docs.rs: https://docs.rs/ggez/0.5.0-rc.1/ggez/
- ggez en crates.io: https://crates.io/crates/ggez
- Página oficial de ggez: https://ggez.rs/
- Github de ggez: https://github.com/ggez/ggez
- RustFest Zürich 2017 - Create Rust games easily by Lisa https://www.youtube.com/watch?v=str_mex__0M
Fuentes para Piston (inglés):
- Documentación de Piston: https://docs.piston.rs/
- Piston en crates.io: https://crates.io/crates/piston
- Página oficial de Piston: https://www.piston.rs/
- Github de Piston: https://github.com/PistonDevelopers/piston
- Docs.rs de Piston: https://docs.rs/piston/0.42.0/piston/
- Rust for Game Development https://www.youtube.com/watch?v=0xiBflBdels
- Rustlang Project: Snake Game https://www.youtube.com/watch?v=DnT_7M7L7vo
Fuentes para Amethyst (inglés):
- Documentación de Amethyst: https://www.amethyst.rs/doc/
- Amethyst en crates.io: https://crates.io/crates/amethyst/0.4.2
- Libro de Amethyst: https://www.amethyst.rs/book/master/
- Página oficial de Amethyst: https://www.amethyst.rs/
- Github de Amethyst: https://github.com/amethyst/amethyst
- Docs.rs de Amethyst: https://docs.rs/crate/amethyst/0.10.
- Everpuzzle - using the Amethyst Engine with Rust for Games https://www.youtube.com/watch?v=P_9A7P0uNpY
- Rust Auckland 2019-02-25: Amethyst Game Engine Engine https://www.youtube.com/watch?v=qe40FqD1E1A
No hay comentarios.:
Publicar un comentario