Bevy - Le Bottin des Jeux Linux

Bevy

🗃️ Specifications

📰 Title: Bevy 🕹️ / 🛠️ Type: Tool
🗃️ Genre: Development 🚦 Status: 04. Released (status)
🏷️ Category: Development ➤ Engine ➤ 2D & 3D ➤ Misc. 🌍️ Browser version:
🔖 Tags: Development; 2D & 3D engine; Rendering; GUI; Rust; Multi-platform 📦️ Package Name:
🐣️ Approx. start: 2019-11-10 📦️ Arch package:
🐓️ Latest: 2023-04-20 📦️ RPM package:
📍️ Version: Latest: 0.10.1 / Dev: e900bd9 📦️ Deb package:
🏛️ License type: 🕊️ Libre 📦️ Flatpak package:
🏛️ License: MIT | Apache 2.0 📦️ AppImage package:
🏝️ Perspective: Third person 📦️ Snap package:
👁️ Visual: 2D & 3D ⚙️ Generic binary:
⏱️ Pacing: Real Time 📄️ Source: ✓
👫️ Played: Single 📱️ PDA support: ✓
🎖️ This record: 5 stars 🕳️ Not used:
🎀️ Game design: 👫️ Contrib.: goupildb & Louis
🎰️ ID: 15964 🐛️ Created: 2020-12-28
🐜️ Updated: 2023-05-16

📖️ Summary

[en]: A libre, multi-platform, data-driven, simplicity-driven, game engine designed in Rust. It allows the development of 2D / 3D games, visualizations, user interfaces or other graphical applications. It is designed to be easy to learn for beginners, but infinitely flexible for experienced users, with a modular, data-oriented architecture using the Entity Component System (ECS) paradigm. It is fast and changes are quickly taken into account (less than 3 seconds to compile). [fr]: Un moteur de jeu libre et multi-plateforme, basé sur les données, axé sur la simplicité, et conçu en Rust. Il permet de développer des jeux en 2D / 3D, des visualisations, des interfaces utilisateur ou d'autres applications graphiques. Il se veut facile à prendre en main pour les débutants, mais infiniment flexible pour les utilisateurs expérimentés, avec une architecture modulaire, orientée données utilisant le paradigme Entity Component System (ECS). Il est rapide et les changements sont rapidement pris en compte (moins de 3 secondes pour compiler).

🚦 Entry status

💡 Lights on: ✓ 🦺️ Work in progress:
📰 What's new?: 🎩️ Enrichment of this entry 💥️ New version published (to be updated):
🎨️ Significant improvement: 🚧️ Some work remains to be done:
🕳️ Not used2: 👔️ Already shown:

🎥️ Videos

📰 Progress: Gamefromscratch (0.10/202303),


🦝️ From Users: Gamefromscratch (202008), Tantan (202009),


🕯️ How To: (202303), (202208), (202205),


🎮️ Showcase: bevy-hikari (202203), Amazon Lumberyard Bistro (202201),

🕸️ Links

🏡️ Website & videos
[Homepage] [Dev site] [Features/About] [Screenshots] [Videos cv(0.10/202303) t(202xxx) ts(202xxx) gd(202xxx) gu(202008) gu(202009) id(202xxx) r(202xxx) lp(202xxx) ht(202303) ht(202208) ht(202205) ht(202009) d(202201) g[fr](202xxx) g[de](202xxx) g[ru](202xxx) g[pl](202xxx) g[cz](202xxx) g[sp](202xxx) g[pt](202xxx) g[it](202xxx) g[tr](202xxx)] [WIKI 1 2] [FAQ] [RSS] [Changelog 1 2 3]

💰 Commercial: [Support their work (Donate)]

🍩️ Resources
• Bevy Assets (a collection of Bevy projects, tools, plugins & learning materials): [Bevy (Assets)]
• Bevy asset loader (Bevy plugin helping with asset loading and organization, MIT | Apache 2.0): [Homepage] [Dev site]
• bevy-hikari (Realtime Path Tracer, MIT | Apache 2.0): [Dev site] d(202203)
• seldom_state (component-based state machine plugin. Useful for AI, player state, & other entities that occupy different states, MIT | Apache 2.0): [Dev site]
• seldom_map_nav (a plugin that does navmesh generation, pathfinding, & navigation for tilemaps. Navmesh generation is available without Bevy dependency, MIT | Apache 2.0): [Dev site]
• seldom_fn_plugin (allows using Rust functions in place of Bevy plugins, MIT | Apache 2.0): [Dev site]
• seldom_interop (interoperability traits for Bevy components, MIT | Apache 2.0): [Dev site]

● Demos:
• Rust-bevy-ping (a simple ball game with rust and bevy, MIT): [Dev site]
• Rust-bevy-stealth (a simple stealth game with rust and bevy, free): [Dev site]

● Games:
• 💥️ Tetris (Classical tetris game made with bevy engine, MIT): [Dev site] d(202301)
• 💥️ Battle-city (Classical battle-city game made with bevy engine, MIT): [Dev site] d(202303)
• 💥️ Celeste (Celeste classic platformer game made with bevy engine, MIT): [Dev site] d(202304)

🛠️ Technical informations
[Open Hub] [PCGamingWiki] [MobyGames] [Showcase]

🐘 Social
Devs (Bevy Team 1 2 [fr] [en]): [Site 1 2] [Chat] [mastodon] [twitter] [PeerTube] [YouTube] [PressKit] [Interview 1(202xxx) 2(202xxx)]
Devs (Carter Anderson (cart) [fr] [en]): [Site 1 2] [GitHub Sponsor] [mastodon] [twitter] [PeerTube] [YouTube] [PressKit] [Interview 1(202xxx) 2(202xxx)]
The Project: [Blog] [Chat] [Forums] [mastodon] [twitter] [PeerTube] [YouTube] [PressKit] [reddit] [Discord] [Stack Overflow]

🐝️ Related
[Gamefromscratch]

📦️ Misc. repositories
[Repology] [pkgs.org] [Arch Linux / AUR] [openSUSE] [Debian/Ubuntu] [Flatpak] [AppImage] [Snap] [PortableLinuxGames]

🕵️ Reviews
[HowLongToBeat] [metacritic] [OpenCritic] [iGDB] [OpenCritic] [iGDB]


🕊️ Source of this Entry: [Gaming on Linux on Mastodon (20201222)]

🐘 Social Networking Update (on Mastodon)

🛠️ Title: Bevy
🦊️ What's: A libre, data-driven, simplicity-driven, game engine designed in Rust
🏡️ https://bevyengine.org
🐣️ https://github.com/bevyengine
🦉️ https://mastodon.social/@bevy
🔖 #LinuxGameDev #GraphicsEngine
📦️ #Libre
📖 Our entry: http://www.lebottindesjeuxlinux.tuxfamily.org/en/online/lights-on/

🥁️ Update: 0.10.1
⚗️ Hotfix 🐞️
📌️ Changes: https://mastodon.social/@bevy/110120011083051806
🐘 From: https://mastodon.social/@bevy/110120011083051806
📰(0.10) https://invidious.lunar.icu/3Br4QD1N7ZE

🦝️ https://invidious.lunar.icu/buUw0xAs4KM
🦝️ https://invidious.lunar.icu/Qjc0V58lB7A
🕯️https://invidious.lunar.icu/TQt-v_bFdao
🎮️ https://invidious.lunar.icu/820oTaJ_WBk

🕶️ Ruins scene illustrating Bevy's new material blend modes and fog. Based on original scene by Casey Hardy (CC Attribution)

Bevy is a libre, multi-platform, data-driven, simplicity-driven, game engine designed in Rust. It allows the development of 2D / 3D games, visualizations, user interfaces or other graphical applications. It is designed to be easy to learn for beginners, but infinitely flexible for experienced users, with a modular, data-oriented architecture using the Entity Component System (ECS) paradigm. It is fast and changes are quickly taken into account (less than 3 seconds to compile).

📕 Description [en]

📕🐧"A libre, multi-platform, data-driven, simplicity-driven, game engine designed in Rust"🐧📕.

Bevy is a refreshingly simple data-driven game engine built in Rust. It is free and open-source forever!

WARNING

Bevy is still in the very early stages of development. APIs can and will change (now is the time to make suggestions!). Important features are missing. Documentation is sparse. Please don't build any serious projects in Bevy unless you are prepared to be broken by API changes constantly.

Introduction

If you came here because you wanted to learn how to make 2D / 3D games, visualizations, user interfaces, or other graphical applications with Bevy ... you came to the right place! If not, stick around anyway. I promise it will be fun.

What's a BEVY?

A bevy is a group of birds!

But Bevy is also a refreshingly simple data-driven game engine built in Rust. It is free and open-source forever.

Bevy has the following design goals:

• Capable: Offer a complete 2D and 3D feature set
• Simple: Easy for newbies to pick up, but infinitely flexible for power users
• Data Focused: Data-oriented architecture using the Entity Component System paradigm
• Modular: Use only what you need. Replace what you don't like
• Fast: App logic should run quickly, and when possible, in parallel
• Productive: Changes should compile quickly ... waiting isn't fun

Bevy is built in the open by volunteers using the Rust programming language. The code is free and open-source because we believe developers should fully own their tools. Games are a huge part of our culture and humanity is investing millions of hours into the development of games. Why are we continuing to build up the ecosystems of closed-source monopolies that take cuts of our sales and deny us visibility into the tech we use daily? We believe that the developer community can do so much better.

For a more in-depth introduction, check out the Introducing Bevy blog post.

Stability Warning

Bevy aims to be a general purpose game engine capable of handling any 2D or 3D workload. However Bevy is still in its infancy. We are currently in the prototyping phase: important features are missing and APIs will change constantly. If you are currently trying to pick an engine for your Next Big Project™, we recommend that you check out Godot Engine. It is currently much more feature-complete and stable. And it is also free, open-source, and scriptable with Rust!

Phew! If you haven't been scared away yet, lets move on to learning some Bevy!


● Data Driven
All engine and game logic uses Bevy ECS, a custom Entity Component System
• Fast: Massively Parallel and Cache-Friendly. The fastest ECS according to some benchmarks
• Simple: Components are Rust structs, Systems are Rust functions
• Capable: Queries, Global Resources, Local Resources, Change Detection, Lock-Free Parallel Scheduler

● 2D Renderer
Render real-time 2D graphics for games and apps
• Features: sprite sheets, dynamic texture atlases, cameras, textures, and materials
• Extensible: custom shaders, materials, and render pipelines
• Common Core: builds on top of Bevy's Render Graph

● 3D Renderer
A modern and flexible 3D renderer
• Features: lights, cameras, meshes, textures, materials, gltf loading
• Extensible: custom shaders, materials, and render pipelines
• Common Core: built on top of Bevy's Render Graph

● Render Graph
Compose custom render pipelines using a graph structure
• Parallel: Render Graphs are automatically rendered in parallel
• Modular: Build composable and reusable render logic using Render Graph nodes
• Backend Agnostic: Not tied to a specific graphics api

● Cross Platform
Support for all major desktop platforms:
• Windows, MacOS, Linux
With more on the way:
• Android, iOS, Web

● Bevy UI
A custom ECS-driven UI framework built specifically for Bevy
• Built directly on top of Bevy's ECS, Renderer, and Scene plugins
• Compose UIs dynamically in code or declaratively using the Bevy Scene format
• Use a familiar "flex box" model to layout your UIs

● Scenes
Create, save, and load ECS worlds using Bevy's Scene system
• Loading: Loading scenes preserves entity IDs (useful for save games)
• Instancing: Instancing creates linked duplicates of scenes with new entity IDs
• Hot Reloading: Changes to scene files are automatically applied to running apps

● Sound
Load audio files and play them on demand
• Load mp3 audio files as Assets
• Play audio files using the AudioOutput resource

● Hot Reloading
Get instant feedback on your changes without app restarts or recompiles
• Asset changes are immediately reflected in running Bevy apps
• You can currently hot-reload scenes, textures, and meshes
• Any asset type can be integrated

● Productive Compile Times
Game development is an iterative process. You can't afford to wait for compiles
• With Bevy you can expect 0.8-3.0 seconds with the "fast compiles" configuration
• Compare that to other popular Rust game engines, which can take over 30 seconds to compile a single newline insertion!

● Free and Open Source
An engine made by and for the developer community
• 100% free. Forever and always
• Open Source under the permissive MIT license
• No contracts
• No license fees
• No sales cuts

📕 Description [fr]

Un moteur de jeu orienté données, axé sur la simplicité, et conçu en Rust, par la Bevy Team, initié par Carter Anderson (cart).
En Rust.

Bevy est un moteur de jeu libre et multi-plateforme, basé sur les données, axé sur la simplicité, et conçu en Rust. Il permet de développer des jeux en 2D / 3D, des visualisations, des interfaces utilisateur ou d'autres applications graphiques. Il se veut facile à prendre en main pour les débutants, mais infiniment flexible pour les utilisateurs expérimentés, avec une architecture modulaire, orientée données utilisant le paradigme Entity Component System (ECS). Il est rapide et les changements sont rapidement pris en compte (moins de 3 secondes pour compiler).

Voir aussi / See also (Rust Game Engine): Bevy, Fyrox,


Bevy est un moteur de jeu basé sur les données, d'une simplicité rafraîchissante, construit en Rust. Il est libre et open-source pour toujours !

AVERTISSEMENT

Bevy n'en est encore qu'à ses débuts. Les API peuvent changer et changeront (c'est le moment de faire des suggestions !). Des fonctionnalités importantes font défaut. La documentation est peu abondante. Veuillez ne pas construire de projets sérieux dans Bevy, à moins que vous ne soyez prêt à être interrompu par les changements d'API en permanence.

Introduction

Si vous êtes venu ici parce que vous vouliez apprendre à faire des jeux en 2D / 3D, des visualisations, des interfaces utilisateur ou d'autres applications graphiques avec Bevy ... vous êtes au bon endroit ! Sinon, restez quand même. Je vous promets que ce sera amusant.

C'est quoi un BEVY ?

Un bevy est un groupe d'oiseaux !

Mais Bevy est aussi un moteur de jeu basé sur des données, d'une simplicité rafraîchissante, construit en Rust. Il est libre et open-source pour toujours.

Bevy a les objectifs de conception suivants :

• Capable : Offrir un ensemble complet de fonctionnalités en 2D et 3D
• C'est simple : Facile à prendre en main pour les débutants, mais infiniment flexible pour les utilisateurs expérimentés
• Focalisé sur les données : Architecture orientée données utilisant le paradigme Entity Component System
• Modulaire : N'utilisez que ce dont vous avez besoin. Remplacez ce que vous n'aimez pas
• Rapide : La logique de l'application doit fonctionner rapidement et, si possible, en parallèle
• Productif : Les changements doivent s'accumuler rapidement... attendre n'est pas amusant

Bevy est construit de manière ouverte par des bénévoles utilisant le langage de programmation Rust. Le code est libre et open-source parce que nous pensons que les développeurs doivent s'approprier pleinement leurs outils. Les jeux font partie intégrante de notre culture et l'humanité investit des millions d'heures dans le développement de jeux. Pourquoi continuons-nous à créer des écosystèmes de monopoles à source fermée qui réduisent nos ventes et nous privent de la visibilité des technologies que nous utilisons quotidiennement ? Nous pensons que la communauté des développeurs peut faire beaucoup mieux.

Pour une introduction plus approfondie, consultez l'article du blog Introducing Bevy.

Avertissement sur la stabilité

Bevy se veut un moteur de jeu généraliste capable de gérer n'importe quelle charge de travail en 2D ou 3D. Cependant, Bevy n'en est qu'à ses débuts. Nous sommes actuellement en phase de prototypage : des fonctionnalités importantes manquent et les API vont changer constamment. Si vous essayez actuellement de choisir un moteur pour votre prochain Big Project™, nous vous recommandons de consulter le moteur Godot. Il est actuellement beaucoup plus complet et stable. Et il est également libre, open-source, et scriptable avec Rust !

Ouf ! Si vous n'avez pas encore eu peur, passons à l'apprentissage de Bevy !

● Axées sur les données
Tous les moteurs et la logique de jeu utilisent Bevy ECS (Entity Component System), un système personnalisé de composants d'entités
• Rapide : Massivement parallèle et compatible avec les caches. L'ECS le plus rapide selon certains critères
• C'est simple : Les composants sont des structures Rust, les systèmes sont des fonctions Rust
• Capable : Requêtes, ressources globales, ressources locales, détection des changements, planificateur parallèle sans verrouillage

● Rendu 2D
Rendu 2D en temps réel pour les jeux et les applications
• Caractéristiques : feuilles de sprites, atlas de textures dynamiques, caméras, textures et matériaux
• Extensible : ombres, matériaux et enduits personnalisés
• Coeur commun : s'appuie sur le graphique de rendu de Bevy

● Rendu 3D
Un système de rendu 3D moderne et flexible
• Caractéristiques : lumières, caméras, maillages, textures, matériaux, chargement gltf
• Extensible : ombres personnalisées, matériaux, et pipelines de rendu
• Coeur commun : construit sur le graphique de rendu de Bevy

● Graphique de rendu
Composer des pipelines de rendu personnalisés à l'aide d'une structure graphique
• Parallèle : Les graphiques de rendu sont automatiquement rendus en parallèle
• Modulaire : Construire une logique de rendu composable et réutilisable en utilisant les nœuds du Graphique de rendu
• Agnostique : non lié à une api graphique spécifique

● Multi-plateforme
Prise en charge de toutes les principales plateformes de bureau :
• Windows, MacOS, Linux
Et ce n'est pas fini :
• Android, iOS, Web

● Interface Utilisateur Bevy
Un environnement d'interface utilisateur sur mesure, piloté par l'ECS et conçu spécifiquement pour Bevy
• Construit directement sur les plugins ECS, Renderer et Scene de Bevy
• Composer les interfaces utilisateur dynamiquement en code ou de manière déclarative en utilisant le format Bevy Scene
• Utilisez un modèle de "boîte flexible" familier pour la présentation de vos documents d'information

● Scènes
Créer, sauvegarder et charger des mondes ECS en utilisant le système Scene de Bevy
• Chargement : Le chargement des scènes préserve les identifiants des entités (utile pour la sauvegarde des jeux)
• Installer : L'installation crée des doublons de scènes liés avec de nouveaux identifiants d'entités
• Rechargement à chaud : Les modifications apportées aux fichiers de scènes sont automatiquement appliquées aux applications en cours d'exécution

● Son
Charger des fichiers audio et les lire à la demande
• Charger des fichiers audio mp3 en tant que données
• Lire des fichiers audio en utilisant la ressource AudioOutput

● Rechargement à chaud
Obtenez un retour d'information instantané sur vos modifications sans avoir à redémarrer ou recompiler l'application
• Les changements de données sont immédiatement répercutés dans l'exécution des applications Bevy
• Vous pouvez actuellement recharger à chaud des scènes, des textures et des maillages
• Tout type de données peut être intégré

● Des Temps de Compilation Productifs
Le développement de jeux est un processus itératif. Vous ne pouvez pas vous permettre d'attendre les compilations
• Avec Bevy, vous pouvez vous attendre à 0,8-3,0 secondes avec la configuration "fast compiles".
• Comparez cela aux autres moteurs de jeu populaires de Rust, qui peuvent prendre plus de 30 secondes pour compiler une seule insertion de nouvelle ligne !

● Libre et Open Source
Un moteur fait par et pour la communauté des développeurs
• 100% libre. Pour toujours et à jamais
• Open Source sous la licence permissive du MIT
• Pas de contrats
• Pas de frais de licence
• Pas de réduction des ventes