Skip to content

Commit d8c0979

Browse files
committed
N17: Bevy Engine
1 parent 20c1c7c commit d8c0979

File tree

2 files changed

+136
-0
lines changed

2 files changed

+136
-0
lines changed
13.4 KB
Loading

content/posts/newsletter-017/index.md

Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,142 @@ For full details and a list of breaking changes, see the
104104
[tetra]: https://github.com/17cupsofcoffee/tetra
105105
[tetra-changelog]: https://github.com/17cupsofcoffee/tetra/blob/main/CHANGELOG.md
106106

107+
### [Bevy Engine v0.4][bevy-0-4]
108+
109+
[![bevy logo](bevy_logo.png)][bevy]
110+
111+
[Bevy][bevy] is a refreshingly simple data-driven game engine built in Rust.
112+
It is [free and open source][bevy-repo] forever!
113+
114+
This month, thanks to 66 contributors, 178 pull requests, and their
115+
[generous sponsors][bevy-sponsors], Bevy 0.4 was released. You can view the
116+
[full Bevy 0.4 announcement here][bevy-0-4]. Here are some highlights:
117+
118+
- WASM + WebGL2
119+
- Bevy now has a WebGL2 render backend!
120+
- Cross Platform Main Function
121+
- By adding `#[bevy_main]` to your main function,
122+
you can now publish the same app code to Windows, MacOS, Linux, Android, iOS,
123+
and Web.
124+
- Live Shader Reloading
125+
- Changes to shaders are automatically recompiled and reloaded at runtime for
126+
fast iteration cycles
127+
- ECS Improvements
128+
- Flexible System Parameters
129+
- You can now specify system parameters in any order
130+
- Improved compile times
131+
- _Much_ simpler IntoSystem implementation
132+
- Easily define your own system parameters
133+
- Improved Query Filter API
134+
- Filters are now defined separately from components and read more naturally
135+
- System Inputs, Outputs, and Chaining
136+
- This allows interesting behaviors, such as system error handlers
137+
- Schedule V2
138+
- Custom Stages: implement your own stage logic
139+
- Run Criteria: only run stages when a certain criteria is met
140+
- Fixed Timestep: stages can now be run on a fixed timestep
141+
- Typed Stage Builders: ergonomically interact with custom stages
142+
- States
143+
- By popular demand, Bevy now supports States. These are logical "app states"
144+
that allow you to enable/disable systems according to the state your app is in.
145+
- GLTF Improvements
146+
- Camera Importing
147+
- Automatic pixel format conversion for images loaded from a GLTF
148+
- Default material loading
149+
- Hierarchy Fixes
150+
- Spawn Scenes as children
151+
- Scenes can now be spawned as children, which allows transforming them via
152+
their parent
153+
- Dynamic Linking
154+
- You can now force Bevy to dynamically link, which cuts compile times significantly
155+
An example that compiles in ~1.4 seconds now compiles in ~0.5 seconds!
156+
- Text Layout Improvements
157+
- Migrated text layout to `glyph_brush_layout`, which resolved a number of text
158+
bugs
159+
- Renderer Optimization
160+
- Made most of the cpu render logic incremental, which cut frame time by 2-4x
161+
- Optimized text rendering, cutting frame time by ~3x
162+
- Reflection API
163+
- Created a new general-purpose Rust reflection api, which enables interacting
164+
with Rust types dynamically. This replaced the `bevy_property` and `bevy_type_registry`
165+
systems
166+
- 3D Texture Assets
167+
- Logging and Profiling
168+
- Bevy now has a new LogPlugin, which uses the `tracing` crate internally
169+
- Created a custom android logcat `tracing` backend
170+
- Visualizing Bevy system execution is now possible using tracing-chrome
171+
- HIDPI
172+
- Bevy now handles HIDPI displays properly / displays crisp 2x renders in
173+
most cases
174+
- Timer Improvements
175+
- Quality-of-life improvements: pausing, field accessor methods, ergonomics improvements,
176+
and internal refactoring / code quality
177+
- Task System
178+
- Improved performance (~20% in the Breakout example) and resolved a
179+
deadlock in single-thread task pools.
180+
- Apple Silicon support
181+
182+
_Discussions:
183+
[/r/rust](https://www.reddit.com/r/rust/comments/kge7zy/bevy_04/),
184+
[hacker news](https://news.ycombinator.com/item?id=25480321),
185+
[twitter](https://twitter.com/cart_cart/status/1340376850560905218)_
186+
187+
[bevy]: https://bevyengine.org
188+
[bevy-repo]: https://github.com/bevyengine/bevy
189+
[bevy-0-4]: https://bevyengine.org/news/bevy-0-4
190+
[bevy-sponsors]: https://github.com/sponsors/cart
191+
192+
Join Bevy's [Discord][bevy-discord], [/r/bevy subreddit][bevy-reddit],
193+
and follow [@BevyEngine on Twitter][bevy-twitter].
194+
195+
[bevy-discord]: https://discord.com/invite/gMUk5Ph
196+
[bevy-reddit]: https://reddit.com/r/bevy
197+
[bevy-twitter]: https://twitter.com/BevyEngine
198+
199+
------
200+
201+
Community Plugin Updates:
202+
203+
- [bevy_webgl2](https://github.com/mrk-its/bevy_webgl2):
204+
WebGL2 renderer plugin for WASM target
205+
- [bevy_rapier](https://github.com/dimforge/bevy_rapier):
206+
Rapier Physics' official Bevy plugin was updated to support Bevy 0.4.
207+
- [bevy_megaui](https://github.com/mvlabat/bevy_megaui): A plugin for
208+
[megaui](https://crates.io/crates/megaui) integration into Bevy
209+
- [bevy_prototype_inline_assets](https://crates.io/crates/bevy_prototype_inline_assets):
210+
A simple plugin for bundling assets into your binary.
211+
- [bevy_doryen](https://github.com/smokku/bevy_doryen): A plugin integrating Bevy
212+
ECS with [doryen-rs](https://github.com/jice-nospam/doryen-rs) Ascii
213+
roguelike library.
214+
- [bevy_discovery](https://crates.io/crates/bevy_discovery): Automatically detects
215+
and registers systems for you.
216+
- [bevy_prototype_parallax](https://github.com/btrepp/bevy-prototype-parallax):
217+
A parallax scrolling background plugin.
218+
- [Kurinji](https://crates.io/crates/kurinji): Input Map for bevy. Converts user
219+
input from different input hardware into game specific actions, eg. keyboard
220+
"Space" or joystick "A" can be mapped to "Jump" Action. This allows decoupling
221+
of the game code from device specific input api.
222+
- [bevy-earcutr](https://github.com/frewsxcv/bevy-earcutr): Draw polygons
223+
- [bevy_stl](https://github.com/nilclass/bevy_stl): STL mesh asset loader plugin
224+
225+
Community Tutorial Updates:
226+
227+
- [Making Chess Clone in 3D](https://caballerocoll.com/blog/bevy-chess-tutorial):
228+
Walkthrough on how to make a Chess Clone with 3D pieces
229+
- [0.3 to 0.4 Migration Guide](https://sburris.xyz/posts/bevy-update-0-4/)
230+
- [Bevy Chinese Website(Bevy中文网)](https://bevyengine-cn.github.io/): Translate
231+
official website and The Bevy Book in Chinese
232+
233+
Community Game Updates:
234+
235+
- [Robbo](https://github.com/mrk-its/bevy-robbo):
236+
Bevy port of great 8-bit Atari game, working native and in the browser
237+
- [SiO2](https://github.com/dmitriy-shmilo/sio2): A simple powder toy clone
238+
- [snake_bevy](https://github.com/mtKeller/snake_bevy): It's Snake!
239+
- [DJMcNab/life-rs](https://github.com/DJMcNab/life-rs): Bevy reproduction of the
240+
rules of [Conway's Game of Life](https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life)
241+
on a randomised board. Alternative implementation: [Byteron/life-rs](https://github.com/Byteron/life-rs).
242+
107243
## Popular Workgroup Issues in Github
108244

109245
<!-- Up to 10 links to interesting issues -->

0 commit comments

Comments
 (0)