@@ -66,6 +66,100 @@ If needed, a section can be split into subsections with a "------" delimiter.
66
66
67
67
## Library & Tooling Updates
68
68
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
+
69
163
## Popular Workgroup Issues in Github
70
164
71
165
## Requests for Contribution
0 commit comments