2023/02/12

Rust et Fyrox sous Debian

J'ai exploré les moteurs de jeux vidéos avec Rust. Celui que j'ai réussi à faire fonctionner rapidement est Fyrox.

Avant de commencer, il faut installer quelques paquets:

apt-get install gcc pkg-config openssl
apt install gcc pkg-config openssl libasound2-dev cmake build-essential python3 libfreetype6-dev libexpat1-dev libxcb-composite0-dev libssl-dev libx11-dev libfontconfig1-dev
apt-get install g++ pkg-config libx11-dev libasound2-dev libudev-dev
apt-get install libwayland-dev libxkbcommon-dev
apt install libxcb-shape0-dev libxcb-xfixes0-dev libxcb1-dev libxkbcommon-dev libasound2-dev

La vraie liste de paquets est probablement plus petite, mais j'ai essayé le moteur Amethyst et le moteur Bevy avant d'essayer Fyrox.

Avec:

git clone https://github.com/FyroxEngine/Fyrox.git

cargo run --example 2d

on se retrouve avec ceci:


On peut facilement copier le continu du fichier 2d.rs dans son propre programme et charger un nouveau fichier png à la place du vaisseau spacial. Dans un répertoire, faire:

cargo new jeu 

cd jeu

git init

git add *

git commit -m "Début."

puis copier-coller le contenu de 2d.rs dans main.rs et créer un dossier image avec une image png rapidement dessinée à l'aide de gimp. Ensuite, remplacer le chemin vers le fichier png avec votre propre image. La ligne avec le chemin commence par .with_texture(resource_manager.request_texture(". 

Il faut aussi ajouter fyrox comme dépendance au projet dans le fichier Cargo.toml:

[dependencies]
fyrox = "0.29.0"

Ensuite, avec cargo run, on obtient ceci:


Ce n'est probablement pas la meilleure manière de commencer un vrai projet, mais c'est assez bien pour simplement jouer avec Fyrox un peu. Pour commencer un vrai projet, il vaut probablement mieux suivre cette section: https://fyrox-book.github.io/fyrox/beginning/scripting.html qui se résume de manière très succinte à:

cargo install fyrox-template
fyrox-template init --name my_game --style 3d
cargo run --package editor --release
cargo run --package executor --release

Liens utiles:

Le livre de Fyrox: https://fyrox-book.github.io/introduction.html

Le git de Fyrox: https://github.com/FyroxEngine/Fyrox

La documentation d'Amethyst: https://amethyst.rs/doc

La documentation de Bevy: https://bevyengine.org/learn/book/getting-started/setup/