@@ -66,6 +66,100 @@ If needed, a section can be split into subsections with a "------" delimiter.
6666
6767## Library & Tooling Updates
6868
69+ ### [ Bevy Engine] [ bevy ]
70+
71+ [ ![ bevy logo] ( bevy_logo.png )] ( https://bevyengine.org/ )
72+
73+ [ Bevy] [ bevy ] is a refreshingly simple data-driven
74+ game engine built in Rust. It is [ free and open source] [ bevy-repo ] forever! It
75+ aims to be:
76+
77+ - ** Capable** : Offer a complete 2D and 3D feature set.
78+ - ** Simple** : Easy for newbies to pick up, but infinitely flexible
79+ for power users.
80+ - ** Data Focused** : Data-oriented architecture using
81+ the Entity Component System paradigm.
82+ - ** Modular** : Use only what you need. Replace what you don't like.
83+ - ** Fast** : App logic should run quickly, and when possible, in parallel.
84+ - ** Productive** : Changes should compile quickly ... waiting isn't fun.
85+
86+ #### ** Bevy 0.2 Released**
87+
88+ This month, thanks to 87 contributors, 174 pull requests, and their
89+ [ generous sponsors] [ bevy-sponsors ] , ** Bevy 0.2** was released. You can view the
90+ [ full Bevy 0.2 announcement here] [ bevy-0-2 ] . Here are some highlights:
91+
92+ - ** Async Task System** : Bevy now has a brand new async-friendly task system,
93+ which enables the creation of context-specific task pools. For example, you might
94+ have separate pools for compute, IO, networking, etc. This also provides the
95+ flexibility to load balance work appropriately according to work type and/or priority.
96+ Bevy (and a number of other rust game engines and ecs frameworks using rayon)
97+ have received feedback that they were overly cpu hungry / usage was not proportional
98+ to "real" work done. This new task system completely replaces Rayon and the cpu
99+ usage wins were huge!
100+ - ** Initial Web Platform Support** : (A subset of) Bevy now runs on the web using
101+ WebAssembly/WASM! Specifically, Bevy apps can run Bevy ECS schedules, react to
102+ input events, create an empty canvas (using winit), and a few other things. This
103+ is a huge first step, but it is important to call out that there are still a
104+ number of missing pieces, such as 2D/3D rendering, multi-threading, and sound.
105+ - ** Parallel Queries** : Bevy ECS Queries are a flexible way to retrieve data from
106+ the Entity Component System. Systems that use queries already run in parallel,
107+ but before this change the queries themselves could not be iterated in parallel.
108+ Bevy 0.2 adds the ability to easily iterate queries in parallel, which builds on
109+ top of the new Async Task System.
110+ - ** Transform System Rewrite** : Bevy's old transform system used separate
111+ ` Translation ` , ` Rotation ` , and ` Scale ` components as the "source of truth",
112+ which were then synced to a ` LocalTransform ` component after each update. There
113+ are Good Reasons™ to use this approach, but it created a "lag" between the
114+ calculated LocalTransform and the source components and dataflow between components
115+ is hard to reason about. This problem was resolved by making a newer, simpler
116+ transform system that uses a consolidated ` Transform ` type.
117+ - ** Joystick/Gamepad Input** : The Bevy Input plugin now has cross-platform support
118+ for most controllers thanks to the gilrs library!
119+ - ** Bevy ECS Performance Improvements** :
120+ - * Generational Entity IDs* : Entity IDs have changed from being UUIDs to incrementing
121+ generational indices. Random UUIDs were nice because they could be created anywhere,
122+ were unique across game runs, and could be safely persisteto files or reused across
123+ networks.Unfortunately they ended up being too slow relative to the alternatives.
124+ The randomness had a measurable cost and entity locations had to be looked up
125+ using a hash map.
126+ - * Read Only Queries* : A "read only" trait was implemented for queries that
127+ don't mutate anything. This allows Bevy to guarantee that a query won't mutate
128+ anything.
129+ - * Lock-Free World Apis* : This gave a really nice speed boost. World APIs are
130+ still safe due to a combination of the new "read only queries" and changing
131+ World mutation apis to be a mutable World borrow.
132+ - * Direct Component Lookup* : As a result of the changes above, direct component
133+ lookup is about 4x faster than it used to be!
134+
135+ #### ** Community Plugin Updates**
136+
137+ - ** [ bevy_rapier] ( https://github.com/dimforge/bevy_rapier ) ** : Rapier Physics'
138+ official Bevy plugin was updated to support Bevy 0.2
139+ - ** [ bevy_ninepatch] ( https://crates.io/crates/bevy_ninepatch ) ** : Display 9-Patch
140+ UI elements, where you can specify how different parts of a PNG should grow
141+ - ** [ bevy_mod_picking] ( https://github.com/aevyrie/bevy_mod_picking ) ** : 3d cursor
142+ picking and highlighting
143+ - ** [ bevy_contrib_colors] ( https://crates.io/crates/bevy_contrib_colors ) ** : A
144+ simple color library
145+ - ** [ bevy_input_map] ( https://crates.io/crates/bevy_prototype_input_map ) ** : Converts
146+ user inputs from different input hardware into game specific actions. Ex: keyboard
147+ "Space" or joystick "A" can be mapped to a "Jump" Action.
148+ - ** [ bevy_prototype_lyon] ( https://github.com/Nilirad/bevy_prototype_lyon ) ** : Draw
149+ 2D shapes, like triangles, circles, and beziers
150+ - ** [ bevy_contrib_inspector] ( https://github.com/jakobhellermann/bevy-contrib-inspector ) ** :
151+ Visually edit fields of your bevy resources in a browser or native view.
152+
153+ _ Discussions:
154+ [ /r/rust] ( https://www.reddit.com/r/rust/comments/iw1yyp/bevy_02 ) ,
155+ [ hacker news] ( https://news.ycombinator.com/item?id=24530698 ) ,
156+ [ twitter] ( https://twitter.com/cart_cart/status/1307445918535315456 ) _
157+
158+ [ bevy ] : https://bevyengine.org
159+ [ bevy-repo ] : https://github.com/bevyengine/bevy
160+ [ bevy-0-2 ] : https://bevyengine.org/news/bevy-0-2
161+ [ bevy-sponsors ] : https://github.com/sponsors/cart
162+
69163## Popular Workgroup Issues in Github
70164
71165## Requests for Contribution
0 commit comments