@@ -88,10 +88,204 @@ include:
88
88
[ Tetra ] : https://github.com/17cupsofcoffee/tetra
89
89
[ steamworks ] : https://crates.io/crates/steamworks
90
90
91
+ ### [ CyberGate] [ cybergate-yt ]
92
+
93
+ ![ hundreds of colliding colored balls in the air] ( entities.png )
94
+ _ The server and clients are able to smoothly handle
95
+ over a thousand balls rained from above_
96
+
97
+CyberGate ([ YouTube] [ cybergate-yt ] , [ Discord] [ cybergate-dis ] ) by CyberSoul
98
+ is a new multiplayer project that aims at procedurally generating distinct
99
+ universes and gameplay experiences. CyberGate is the name of the main world
100
+ where universes can be created and accessed by quantum portals.
101
+
102
+ Recent updates:
103
+
104
+ - Bandwidth became 16 times smaller by implementing entity prioritization
105
+ \+ other techniques.
106
+ - Interpolation and Jitter prediction makes entities way smoother.
107
+ - Automatic and Reliable Spawn and Despawn of entities.
108
+ - Many other features and optimizations to do with rapier 3d physics,
109
+ wgpu renderer and quinn (quic) protocol.
110
+
111
+ [ Join the Discord server] [ cybergate-dis ] to participate in tests.
112
+
113
+ _ Discussions: [ /r/rust_gamedev] ( https://reddit.com/r/rust_gamedev/comments/vy7vms/multiplayer_stress_test_1_million_balls ) _
114
+
115
+ [ cybergate-yt ] : https://youtube.com/channel/UClrsOso3Xk2vBWqcsHC3Z4Q
116
+ [ cybergate-dis ] : https://discord.gg/R7DkHqw7zJ
117
+
118
+ ### [ Botnet]
119
+
120
+ ![ botnet screenshot] ( botnet.png )
121
+
122
+ [ Botnet] is an upcoming programming-based multiplayer game, where you write
123
+ scripts (compiled to WebAssembly) to control robots. Coordinate your network
124
+ of bots to gather resources, build new industry, and expand your control of
125
+ the server!
126
+
127
+ This month was primarily spent on BotnetReplayViewer - a visual program to
128
+ watch matches, and inspect entity data.
129
+
130
+ Additionally, the antenna structure was added. Building an antenna gives you
131
+ control over the bay (room) it's in, letting you build additional structures,
132
+ and increasing the total number of bots you can control. Bots can also use
133
+ antennas to store resources.
134
+
135
+ Interested in contributing? Head over to the
136
+ [ github discussion page] [ botnet_ideas ] and suggest some ideas!
137
+
138
+ [ Botnet ] : https://github.com/JMS55/botnet
139
+ [ botnet_ideas ] : https://github.com/JMS55/botnet/discussions/categories/ideas
140
+
141
+ ### [ Re-Rolling!]
142
+
143
+ ![ Re-rolling gameplay] ( re-rolling_gameplay.png )
144
+
145
+ [ Re-Rolling!] by [ @mystalice ] ( https://twitter.com/mystalice ) is a top-down 2D
146
+ survival shooter where you fight off a horde of rats using weapons you randomly
147
+ rolled.
148
+
149
+ The game was created for [ GMTK Jam 2022] [ rr_gmtk2022 ] in 48 hours and was
150
+ heavily inspired by [ 20 Minutes Till Dawn] [ rr_20minutes ] .
151
+
152
+ Re-Rolling! was made with Bevy using heron for physics, bevy_egui for in-game
153
+ UI, and a handful of other helpful crates and plugins. You can browse the source
154
+ on [ GitHub] [ rr_github ] .
155
+
156
+ [ Re-Rolling! ] : https://mystal.itch.io/re-rolling
157
+ [ rr_gmtk2022 ] : https://itch.io/jam/gmtk-jam-2022
158
+ [ rr_20minutes ] : https://store.steampowered.com/app/1966900/20_Minutes_Till_Dawn/
159
+ [ rr_github ] : https://github.com/mystal/re-rolling
160
+
91
161
## Engine Updates
92
162
163
+ ### [ Bevy v0.8] [ bevy-blog ]
164
+
165
+ ![ bevy terrain] ( bevy_terrain.jpg )
166
+ _ Bevy-shaped mountains in a Bevy-based Witcher 3 terrain texturing tool built by
167
+ rmemr_
168
+
169
+ [ Bevy] [ bevy ] is a refreshingly simple data-driven game engine built in Rust. It
170
+ is [ free and open source] [ bevy-git ] forever!
171
+
172
+ Bevy 0.8 was a massive community effort. You can check out the [ full release
173
+ blog post here] [ bevy-blog ] , but here are some highlights:
174
+
175
+ - [ New Material System] [ bevy-materials ]
176
+ - [ Camera-driven Rendering] [ bevy-camera ]
177
+ - [ Built-in Shader Modularization] [ bevy-shader-mod ]
178
+ - [ Spot Lights] [ bevy-spotlights ]
179
+ - [ Visibility Inheritance] [ bevy-visibility ]
180
+ - [ Upgraded to wgpu 0.13] [ bevy-wgpu ]
181
+ - [ Automatic Mesh Tangent Generation] [ bevy-tangent ]
182
+ - [ Renderer Optimizations] [ bevy-render-opt ]
183
+ - [ Scene Bundle] [ bevy-scene ]
184
+ - [ Scripting / Modding Progress] [ bevy-scripting ]
185
+ - [ ECS Query Ergonomics and Usability] [ bevy-ecs-ergo ]
186
+ - [ ECS Internals Refactors] [ bevy-refactors ]
187
+ - [ Reflection Improvements] [ bevy-reflect ]
188
+ - [ Hierarchy Commands] [ bevy-hierarchy ]
189
+ - [ Bevy UI Now Uses Taffy] [ bevy-taffy ]
190
+
191
+ _ Discussions:
192
+ [ /r/rust] ( https://www.reddit.com/r/rust/comments/wc0sqc/bevy_08/ ) ,
193
+ [ Hacker News] ( https://news.ycombinator.com/item?id=32287828 ) ,
194
+ [ Twitter] ( https://twitter.com/cart_cart/status/1553411157662187521 ) _
195
+
196
+ [ bevy ] : https://bevyengine.org
197
+ [ bevy-git ] : https://github.com/bevyengine/bevy
198
+ [ bevy-blog ] : https://bevyengine.org/news/bevy-0-8
199
+ [ bevy-materials ] : https://bevyengine.org/news/bevy-0-8/#new-material-system
200
+ [ bevy-camera ] : https://bevyengine.org/news/bevy-0-8/#camera-driven-rendering
201
+ [ bevy-spotlights ] : https://bevyengine.org/news/bevy-0-8/#spotlights
202
+ [ bevy-visibility ] : https://bevyengine.org/news/bevy-0-8/#visibility-inheritance
203
+ [ bevy-shader-mod ] : https://bevyengine.org/news/bevy-0-8/#built-in-shader-modularization
204
+ [ bevy-wgpu ] : https://bevyengine.org/news/bevy-0-8/#wgpu-0-13-new-wgsl-shader-syntax
205
+ [ bevy-tangent ] : https://bevyengine.org/news/bevy-0-8/#automatic-mesh-tangent-generation
206
+ [ bevy-render-opt ] : https://bevyengine.org/news/bevy-0-8/#render-phase-sorting-optimization
207
+ [ bevy-scene ] : https://bevyengine.org/news/bevy-0-8/#scene-bundle
208
+ [ bevy-scripting ] : https://bevyengine.org/news/bevy-0-8/#scripting-modding-progress-untyped-ecs-apis
209
+ [ bevy-ecs-ergo ] : https://bevyengine.org/news/bevy-0-8/#query-intoiter
210
+ [ bevy-refactors ] : https://bevyengine.org/news/bevy-0-8/#ecs-lifetimed-pointers
211
+ [ bevy-reflect ] : https://bevyengine.org/news/bevy-0-8/#bevy-reflection-improvements
212
+ [ bevy-hierarchy ] : https://bevyengine.org/news/bevy-0-8/#hierarchy-commands
213
+ [ bevy-taffy ] : https://bevyengine.org/news/bevy-0-8/#taffy-migration-a-refreshed-ui-layout-library
214
+
215
+ ### [ Dims] [ dims-website ]
216
+
217
+ ![ Concept art of a player creating a world in Dims] ( dims-concept-art.jpg )
218
+
219
+ [ Dims] [ dims-website ] ([ Twitter] [ dims-twitter ] , [ Discord] [ dims-discord ] ,
220
+ [ YouTube] [ dims-youtube ] ) is a pre-alpha collaborative open-world
221
+ creation platform.
222
+ Users can hop in sessions and build a game together, allowing everyone
223
+ to bring out their inner game-maker.
224
+
225
+ In July, development continued to make great strides. Some of the highlights
226
+ include:
227
+
228
+ - Continued work on the audio system, including in-game graphs of attenuation
229
+ and other audio-related functions
230
+ - The introduction of an intent system that allows for user actions to be
231
+ undone and replayed arbitrarily
232
+ - A complete UI facelift using Material UI icons and a new design language
233
+ - A new scripting system using WebAssembly + WASI and Rust as a guest language
234
+ (look forward to an article on this soon!)
235
+ - The beginnings of a shared asset database that lets you and your team easily
236
+ share assets amongst each other and with other projects
237
+ - Various infrastructural and rendering fixes, including more accurate PBR
238
+
239
+ Want to try Dims out for yourself? Come join the [ Discord] [ dims-discord ] to be
240
+ notified of future public tests, see the latest features before everyone else,
241
+ and to talk to the devs personally.
242
+
243
+ [ dims-website ] : https://dims.co
244
+ [ dims-twitter ] : https://twitter.com/DimsWorlds
245
+ [ dims-discord ] : https://discord.gg/Z5CAVmNE57
246
+ [ dims-youtube ] : https://youtube.com/channel/UCR5gOwS7uSl0a0dl7MLQoqg
247
+
93
248
## Learning Material Updates
94
249
250
+ ### Pathfinding in Rust
251
+
252
+ ![ Example of the results of doing an A* search from a start node to a goal node] ( astar-search.png )
253
+
254
+ [ Pathfinding in Rust: A tutorial with examples] ( https://blog.logrocket.com/pathfinding-rust-tutorial-examples )
255
+ is an article with examples of how to use the [ ` pathfinding ` ] ( https://crates.io/crates/pathfinding )
256
+ crate to do breadth-first, Dijkstra's, and A* search. It links to the
257
+ [ gregstoll/rust-pathfinding] ( https://github.com/gregstoll/rust-pathfinding )
258
+ repo which has working code for all of these.
259
+
260
+ ### [ Creating mountains from planes with vertex shaders and Bevy] [ chrisbiscardi-vid1 ]
261
+
262
+ [ ![ vertex shaders example] ( creating-mountains-from-planes-with-vertex-shaders-and-bevy.png )] [ chrisbiscardi-vid1 ]
263
+ _ Creating mountains from planes with vertex shaders and Bevy_
264
+
265
+ [ @chrisbiscardi ] published a [ video] [ chrisbiscardi-vid1 ]
266
+ about using the new Material shader APIs in Bevy 0.8 to transform the
267
+ vertex positions in a custom mesh plane using a vertex shader.
268
+
269
+ _ Discussions: [ Twitter] ( https://twitter.com/chrisbiscardi/status/1549089599971938304 ) _
270
+
271
+ [ chrisbiscardi-vid1 ] : https://youtube.com/watch?v=85uJc81SQZ4
272
+ [ @chrisbiscardi ] : https://twitter.com/chrisbiscardi
273
+
274
+ ### [ What's in a wgsl fragment shader? ft Bevy] [ chrisbiscardi-vid2 ]
275
+
276
+ [ ![ vertex shaders example] ( creating-mountains-from-planes-with-vertex-shaders-and-bevy.png )] [ chrisbiscardi-vid2 ]
277
+ _ What's in a wgsl fragment shader? ft Bevy_
278
+
279
+ [ @chrisbiscardi ] published a [ video] [ chrisbiscardi-vid2 ]
280
+ that introduces the new Material APIs in Bevy 0.8. It covers AsBindGroup,
281
+ uniforms, and using Perlin Noise in a fragment shader to render different
282
+ colors onto a cube in a variety of ways.
283
+
284
+ _ Discussions: [ Twitter] ( https://twitter.com/chrisbiscardi/status/1546909993726726144 ) _
285
+
286
+ [ chrisbiscardi-vid2 ] : https://youtube.com/watch?v=SOOOc9-joVo
287
+ [ @chrisbiscardi ] : https://twitter.com/chrisbiscardi
288
+
95
289
### [ Rusteroids] [ rusteroids-youtube-playlist ]
96
290
97
291
![ A screenshot of the latest Rusteroids tutorial] ( ./rusteroids-screenshot-tutorial15.png )
@@ -117,6 +311,27 @@ Twitter!
117
311
118
312
## Tooling Updates
119
313
314
+ ### [ NES Bundler] [ nes-bundler ]
315
+
316
+ ![ NES Bundler running Data Man with GUI showing] ( nes-bundler.png )
317
+ _ NES Bundler in action_
318
+
319
+ [ NES Bundler] [ nes-bundler ] by [ @tedsteen ] .
320
+ Did you make a NES-game but none of your friends own a Nintendo? Don't worry.
321
+ Put your ROM and configuration in NES Bundler and build an executable for Mac,
322
+ Windows or Linux. What you get is a single executable with
323
+
324
+ - Simple UI for settings
325
+ - Re-mappable Keyboard and Gamepad input (you bundle your default mappings).
326
+ - Save/Restore state
327
+ - Netplay!
328
+
329
+ It's early days, but the key features are there and work is ongoing
330
+ to make it more mature!
331
+
332
+ [ nes-bundler ] : https://github.com/tedsteen/nes-bundler
333
+ [ @tedsteen ] : https://github.com/tedsteen
334
+
120
335
### [ Blackjack]
121
336
122
337
![ Blackjack: A procedural bridge being edited in real-time] ( blackjack.gif )
@@ -165,6 +380,89 @@ compiles but fails to access the intended component.
165
380
[ hecs ] : https://github.com/Ralith/hecs
166
381
[ hecs-changelog ] : https://github.com/Ralith/hecs/blob/master/CHANGELOG.md#080
167
382
383
+ ### [ bevy_mod_wanderlust]
384
+
385
+ [ bevy_mod_wanderlust]
386
+ ([ GitHub] ( https://github.com/PROMETHIA-27/bevy_mod_wanderlust ) ) by
387
+ [ @PROMETHIA-27 ] is a character controller plugin for Bevy engine.
388
+
389
+ Inspired by [ this excellent video] ( https://www.youtube.com/watch?v=qdskE8PJy6Q ) ,
390
+ it is implemented on top of [ Rapier physics] ( https://rapier.rs/ ) and highly
391
+ customizable. Wanderlust includes a variety of settings to target many different
392
+ character controller types, including 2D/3D platformers, spacecraft, and
393
+ first/third person games.
394
+
395
+ [ bevy_mod_wanderlust ] : https://crates.io/crates/bevy_mod_wanderlust
396
+
397
+ ### [ Lyon]
398
+
399
+ ![ Variable width stroke in action] ( lyon.png )
400
+
401
+ [ Lyon] ([ GitHub] ( https://github.com/nical/lyon ) ) by [ Nical] ( https://github.com/nical )
402
+ is a collection of crates providing various 2D vector graphics utilities, including
403
+ fast tessellation algorithms, easy to integrate in typical GPU accelerated rendering
404
+ engines.
405
+
406
+ Lyon made its symbolic [ ` 1.0.0 ` release] ( https://crates.io/crates/lyon/1.0.0 )
407
+ reflecting the stability of the project. Highlights in this release include:
408
+
409
+ - Initial support for variable line width in the stroke tessellator.
410
+ - An efficient algorithm to query positions at given distances along a path.
411
+ - Improved support for specifying custom endpoint attributes in paths and algorithms.
412
+ - And more. You can read the [ announcement blog post here] ( https://nical.github.io/posts/lyon-1-0.html ) .
413
+
414
+ _ Discussions: [ /r/rust] ( https://reddit.com/r/rust/comments/vwdxim/announcing_lyon_100 ) ,
415
+ [ Twitter] ( https://twitter.com/nicalsilva/status/1546424285442473987?s=20&t=S1fXSoh2zWHbfTImCGYpPQ ) _
416
+
417
+ [ Lyon ] : https://github.com/nical/lyon
418
+
419
+ ### [ Renet]
420
+
421
+ ![ GIF of demo using renet and bevy] ( renet_bevy_demo.gif )
422
+ * Demo using renet and bevy*
423
+
424
+ [ Renet] by [ @lucaspoffo ] is a network library to create
425
+ games with the Server-Client architecture.
426
+
427
+ Built on top of UDP, it has its own protocol to send and receive reliable messages
428
+ more suited for fast-paced games than TCP. Some other features are:
429
+
430
+ - Connection management
431
+ - Authentication and encrypted connections
432
+ - Communication through multiple types of channels:
433
+ - Reliable Ordered: guarantee ordering and delivery of all messages
434
+ - Unreliable Unordered: no guarantee of delivery or ordering of messages
435
+ - Block Reliable: for bigger messages, such as level initialization
436
+ - Packet fragmentation and reassembly
437
+
438
+ Renet comes with [ bevy_renet] , a plugin for the Bevy engine, and also with
439
+ [ renet_visualizer] , an egui interface to visualize network metrics.
440
+
441
+ [ Renet ] : https://github.com/lucaspoffo/renet
442
+ [ @lucaspoffo ] : https://github.com/lucaspoffo
443
+ [ bevy_renet ] : https://github.com/lucaspoffo/renet/tree/master/bevy_renet
444
+ [ renet_visualizer ] : https://github.com/lucaspoffo/renet/tree/master/renet_visualizer
445
+
446
+ ### [ miniquad]
447
+
448
+ ![ miniquad fileopen] ( miniquad_gl2.gif )
449
+ * VirtualBox, gl2 as the only GPU accelaration available*
450
+
451
+ [ miniquad] is a safe and cross-platform rendering library
452
+ focused on portability and low-end platform support.
453
+
454
+ This month [ OpenGl 2.1/GLESv2] [ gl2pr ] PR got merged, adding support for old
455
+ android phones, virtual machines, and just old computers.
456
+
457
+ While the PR itself is quite small, it solved a very old design issue:
458
+ [ compatibilities proposal] [ mqcompat ] . Fixing this issue opened the door for
459
+ both lower-end backends, like gl1, and higher-level backends. Metal being the
460
+ next in line.
461
+
462
+ [ miniquad ] : https://github.com/not-fl3/miniquad/
463
+ [ gl2pr ] : https://github.com/not-fl3/miniquad/pull/305
464
+ [ mqcompat ] : https://github.com/not-fl3/miniquad/pull/176
465
+
168
466
## Popular Workgroup Issues in Github
169
467
170
468
<!-- Up to 10 links to interesting issues -->
0 commit comments