2
2
title = " This Month in Rust GameDev #13 - August 2020"
3
3
date = 2020-09-07
4
4
transparent = true
5
- draft = true
6
5
+++
7
6
8
7
Welcome to the 13th issue of the Rust GameDev Workgroup’s
@@ -34,8 +33,6 @@ Table of contents:
34
33
- [ Popular Workgroup Issues in Github] ( #popular-workgroup-issues-in-github )
35
34
- [ Meeting Minutes] ( #meeting-minutes )
36
35
- [ Requests for Contribution] ( #requests-for-contribution )
37
- - [ Jobs] ( #jobs )
38
- - [ Bonus] ( #bonus )
39
36
40
37
<!--
41
38
Ideal section structure is:
@@ -115,8 +112,8 @@ for you to listen and subscribe:
115
112
116
113
### [ Crate Before Attack] [ cba-site ]
117
114
118
- [ ![ Camera debugging in Crate Before Attack] ( crate-before-attack.png )] [ cba-site ]
119
- _ Debugging camera motion: highlighted areas are points of interest. _
115
+ [ ![ Camera debugging in Crate Before Attack] ( crate-before-attack.jpeg )] [ cba-site ]
116
+ _ Debugging camera motion: highlighted areas are points of interest _
120
117
121
118
[ Crate Before Attack] [ cba-site ] by [ koalefant (@CrateAttack )] [ @CrateAttack ]
122
119
is a skill-based multiplayer game where frogs combat their friends
@@ -146,7 +143,7 @@ More details are in [August DevLog-entry][cba-august-update].
146
143
147
144
### [ Veloren] [ veloren ]
148
145
149
- ![ Landscape] ( veloren-landscape1.png )
146
+ ![ Landscape] ( veloren-landscape1.jpeg )
150
147
_ Landscape with new LoD and lighting_
151
148
152
149
[ Veloren] [ veloren ] is an open world, open-source voxel RPG inspired by Dwarf
@@ -173,16 +170,18 @@ You can read more about some specific topics from August:
173
170
- [ Airshipper 0.4.0 Progress] ( https://veloren.net/devblog-79#airshipper-0-4-progress-by-songtronix )
174
171
- [ Animation and Movement Updates] ( https://veloren.net/devblog-79#animation-and-movement-updates-by-slipped )
175
172
- [ Particle Timing] ( https://veloren.net/devblog-80#particle-timing-by-lobster )
176
- - [ 0.7 Release Party Statistics] ( https://veloren.net/devblog-81#0-7-release-party-statistics )
177
- - [ 0.7 Release Party Kick Disaster] ( https://veloren.net/devblog-81#0-7-release-party-kick-disaster-by-xmac94x )
173
+ - 0.7 Release: [ Party Statistics] ( https://veloren.net/devblog-81#0-7-release-party-statistics )
174
+ and [ Kick Disaster] ( https://veloren.net/devblog-81#0-7-release-party-kick-disaster-by-xmac94x )
178
175
- [ Lighting and World Changes] ( https://veloren.net/devblog-81#sharp-s-lighting-and-world-changes-branch )
179
176
- [ 0.8 Intro Meeting] ( https://veloren.net/devblog-82#0-8-intro-meeting )
180
177
- [ Audio SFX] ( https://veloren.net/devblog-82#audio-with-ellinia )
181
178
- [ Photo Gallery] ( https://veloren.net/devblog-83#photo-gallery )
182
179
183
180
August's full weekly devlogs: "This Week In Veloren...":
184
- [ #79 ] ( https://veloren.net/devblog-79 ) , [ #80 ] ( https://veloren.net/devblog-80 ) ,
185
- [ #81 ] ( https://veloren.net/devblog-81 ) , [ #82 ] ( https://veloren.net/devblog-82 ) .
181
+ [ #79 ] ( https://veloren.net/devblog-79 ) ,
182
+ [ #80 ] ( https://veloren.net/devblog-80 ) ,
183
+ [ #81 ] ( https://veloren.net/devblog-81 ) ,
184
+ [ #82 ] ( https://veloren.net/devblog-82 ) ,
186
185
[ #83 ] ( https://veloren.net/devblog-83 ) .
187
186
188
187
In September, work on 0.8 will continue. Some large systems being worked on
@@ -229,7 +228,7 @@ Egregoria was previously known as Scale,
229
228
but was renamed to fit the theme better.
230
229
231
230
The [ 5th devlog] [ egregoria-blog-post ] was published, talking about
232
- the renaming, project managment , buildings and scripting.
231
+ the renaming, project management , buildings and scripting.
233
232
234
233
A [ Discord] [ egregoria-discord ] server was launched to discuss the project.
235
234
@@ -244,10 +243,10 @@ _Discussions:
244
243
245
244
[ ![ Dodging bullets and carrying Cary to temporary safety] ( cary_screenshot.png )] [ Cary ]
246
245
247
- In [ Cary] the player has to bring the titular character to the exit by carying
246
+ In [ Cary] the player has to bring the titular character to the exit by carrying
248
247
them or otherwise making sure they don't – nor the player themselves –
249
248
touch any of the traps.
250
- Easier said then done when you have limited stamina and Cary keeps running
249
+ Easier said than done when you have limited stamina and Cary keeps running
251
250
into spikes.
252
251
253
252
Made with hecs and wgpu (no framework), but uses WebGL on the web
@@ -313,7 +312,7 @@ the [Bar Painting][vangers-bars-blog] post of the blog.
313
312
![ screenshot: concrete, trees, shadows] ( garden.jpeg )
314
313
315
314
[ Garden] [ garden ] is an upcoming game centered around growing realistic plants.
316
- Some of the updates from [ the Jule & August devlog] [ garden-devlog ] :
315
+ Some of the updates from [ the July & August devlog] [ garden-devlog ] :
317
316
318
317
- A new player inventory system;
319
318
- Better collision detection and camera movement;
@@ -352,7 +351,7 @@ Chillscapes is written using an early-in-development 2d engine,
352
351
### [ Dwarf Seeks Fortune] [ dsf-github ]
353
352
354
353
[ ![ Dwarf Seeks Fortune] ( dwarf_seeks_fortune.png )] [ dsf-github ]
355
- _ Collect all keys to unlock the door to the next level. _
354
+ _ Collect all keys to unlock the door to the next level _
356
355
357
356
[ Dwarf Seeks Fortune] [ dsf-github ] is a puzzle-platformer made with the Amethyst game
358
357
engine. Its developer, Jazarro, has partnered with the Amethyst organization
@@ -401,7 +400,7 @@ _One of SIMple Mechanic's Lua presets, a colorful wave of bouncing circles_
401
400
402
401
[ SIMple Physics] [ simple-physics-site ] by [ @mkhan45 ] is a set of educational physics
403
402
simulators meant to help students and teachers conduct labs without expensive equipment
404
- or in person classes. Each simulator uses serializeable graphs, object inspection,
403
+ or in person classes. Each simulator uses serializable graphs, object inspection,
405
404
Lua scripting, and a few other features to help students learn. Currently, there
406
405
is a simulator for mechanics/projectile motion and one for universal gravitation,
407
406
but the goal is to include one for electronics/magnetism and one for waves/optics.
@@ -444,19 +443,19 @@ work with graphics in Rust using [SDL2][sdl2] library.
444
443
### [ Beginning Game Development with Amethyst] [ rustconf-talk-video ]
445
444
446
445
[ ![ youtube preview] ( rustconf-amethyst-talk.png )] [ rustconf-talk-video ]
447
- _ Click to [ watch the talk] [ rustconf-talk-video ] . _
446
+ _ Click to [ watch the talk] [ rustconf-talk-video ] _
448
447
449
448
Getting started with Rust + gamedev can be intimidating. At
450
449
[ RustConf 2020] [ rust-conf-2020 ] , [ Micah Tigley] gave a talk about their experience
451
450
beginning game development using the [ Amethyst] [ amethyst-link ] game engine and
452
451
learning about ECS by implementing examples that aim to be accessible for
453
452
beginners.
454
453
455
- Supporting blog posts for talk:
454
+ Supporting blog posts for the talk:
456
455
457
- - [ Creating a Simple Spritesheet Animation with Amethyst] [ micah-blog-part1 ]
458
- - [ Running Animation] [ micah-blog-part2 ]
459
- - [ Camera Follow System] [ micah-blog-part3 ]
456
+ - [ " Creating a Simple Spritesheet Animation with Amethyst" ] [ micah-blog-part1 ]
457
+ - [ " Running Animation" ] [ micah-blog-part2 ]
458
+ - [ " Camera Follow System" ] [ micah-blog-part3 ]
460
459
461
460
The source code for the [ demo can be found here] [ micah-demo-src ] .
462
461
@@ -548,7 +547,7 @@ CPU version of PhysX, and often slightly faster than Box2D.
548
547
- joint constraints;
549
548
- optional serialization of the physics state;
550
549
- optional cross-platform determinism on IEEE-754 compliant targets;
551
- - optional explicit SIMD and parallelism.
550
+ - optional explicit SIMD and parallelism;
552
551
- JavaScript bindings with official NPM packages.
553
552
554
553
This new physics engine is developed by the recently created [ Dimforge]
@@ -567,11 +566,11 @@ _Discussions:
567
566
568
567
### [ NeoCogi's Libraries] [ neocogi-repo ]
569
568
570
- ![ Jude3D] ( jude3d.png )
569
+ ![ Jude3D] ( jude3d.jpeg )
571
570
572
571
[ Jude3D] ( https://neocogi.com ) is a web based 3D sculpting application.
573
572
It's a WebAssembly application, written in C/C++ and compiled using Emscripten
574
- but after much thinking the authors decided to move the development to Rust!
573
+ but after much thinking, the authors decided to move the development to Rust!
575
574
576
575
Many problems arise when moving existing C/C++/WebAssembly code to Rust.
577
576
The two most important ones:
@@ -581,7 +580,7 @@ The two most important ones:
581
580
582
581
These led the authors to drop using Rust's std in favor to their own libs (` !#[no_std] ` ),
583
582
at least until the std library crates are split up accordingly and stabilized,
584
- for example the ` alloc ` crate.
583
+ for example, the ` alloc ` crate.
585
584
586
585
The good news is that they are
587
586
[ releasing most of the libraries as they make them as open source] [ neocogi-repo ] !
@@ -602,7 +601,7 @@ cute-c2 is a 2D collision detection library that has had its first release to
602
601
603
602
The library can detect collisions between circles, rectangles, capsules and
604
603
up to eight-sided convex polygons. There are also functions for manifold
605
- generation, the GJK algorithm and ray casting operations. There is an example
604
+ generation, the GJK algorithm, and ray casting operations. There is an example
606
605
program in the repository.
607
606
608
607
[ cute-c2 ] : https://crates.io/crates/c2
@@ -618,7 +617,7 @@ as well as per-vertex attributes.
618
617
619
618
All that's required to define a base shape are the initial vertices, triangles
620
619
based on the indices of the vertices in the initial vertices, and numbered
621
- edges. As long as the winding of the triangles remains consistend throughout
620
+ edges. As long as the winding of the triangles remains consistent throughout
622
621
the base mesh, all of the resulting triangles will retain that winding.
623
622
624
623
This library also provides a few interesting base shapes (which can be used alone
@@ -708,7 +707,7 @@ Some of the updates:
708
707
- Dynamically sized multi-binding support.
709
708
- Improved entrypoint debug printing.
710
709
- Better manifest merging method for pipeline construction.
711
- - Bugfixes and various small API improvments .
710
+ - Bugfixes and various small API improvements .
712
711
713
712
_ Discussions: [ /r/rust_gamedev] [ spirq-discussion ] _
714
713
@@ -799,11 +798,11 @@ See discussion at [/r/rust_gamedev][wgpu-instancing-reddit].
799
798
![ KAS text layout] ( kas-text-layout.png )
800
799
801
800
[ KAS] by [ @dhardy ] is a general purpose UI toolkit; its
802
- initial aim is "old school" desktop apps with good keyboard and touchscreen
801
+ initial aim is "old school" desktop apps with a good keyboard and touchscreen
803
802
support. Unlike many modern immediate-mode UIs, KAS's widgets retain state,
804
803
allowing minimal per-frame updates. KAS supports embedded WebGPU graphics now,
805
804
and will (eventually) support being embedded within other contexts (requiring
806
- only a supply of input events and implemention of some basic graphics routines).
805
+ only a supply of input events and implementation of some basic graphics routines).
807
806
808
807
KAS v0.5 switches to a new crate for text layout,
809
808
[ KAS-text] . KAS-text is a text layout
@@ -820,12 +819,14 @@ For more, see the article ["Why I created KAS-text"][kas-article].
820
819
821
820
### [ Egui]
822
821
822
+ ![ Egui] ( egui.png )
823
+
823
824
[ Egui] is a highly portable immediate mode GUI library in pure Rust.
824
825
Egui can be integrated anywhere you can paint textured triangles.
825
826
You can compile Egui to WASM and render it on a web page using [ egui_web]
826
827
or compile and run natively using [ egui_glium] .
827
828
828
- [ Click to run Egui web demo] ( https://emilk.github.io/egui/index.html )
829
+ Check out the [ Egui web demo] ( https://emilk.github.io/egui/index.html ) .
829
830
830
831
Example:
831
832
@@ -840,8 +841,6 @@ Window::new("Debug").show(ui.ctx(), |ui| {
840
841
});
841
842
```
842
843
843
- ![ Egui] ( egui.png )
844
-
845
844
_ Discussions:
846
845
[ /r/rust] ( https://reddit.com/r/rust/comments/hzwvsk/emigui_deserves_more_love ) _
847
846
@@ -968,9 +967,9 @@ While it is still under heavy development, a lot can be done already:
968
967
[ Tetra] is a simple 2D game framework, inspired by XNA and Raylib. This month,
969
968
versions [ 0.4.1] [ tetra-041 ] and [ 0.4.2] [ tetra-042 ] were released, featuring:
970
969
971
- - Improved Serde support
972
- - Various fixes and improvements to the built-in ` Camera ` type
973
- - Many documentation improvements, based on user feedback
970
+ - Improved Serde support;
971
+ - Various fixes and improvements to the built-in ` Camera ` type;
972
+ - Many documentation improvements, based on user feedback.
974
973
975
974
In addition, Tetra 0.5 is planned for release in early September. For more
976
975
information on the upcoming changes, see the [ changelog] [ tetra-changelog ] .
@@ -1049,7 +1048,7 @@ has released a new ECS library [Nano-ECS].
1049
1048
1050
1049
This ECS design stores all components in a single array
1051
1050
and uses bit masks for enabling/disabling components.
1052
- An entity can have maximum 64 components and must be initalized
1051
+ An entity can have maximum 64 components and must be initialized
1053
1052
with all components it uses in the future.
1054
1053
Each entity has a slice into the array that stores all components.
1055
1054
The ` World ` object, ` Component ` and systems are generated using macros.
@@ -1255,6 +1254,15 @@ Amongst them:
1255
1254
1256
1255
## Popular Workgroup Issues in Github
1257
1256
1257
+ - [ rust-gamedev/wg] ( https://github.com/rust-gamedev/wg ) :
1258
+ - [ #89 "Moving ecs_bench to GDWG"] ( https://github.com/rust-gamedev/wg/issues/89 ) ;
1259
+ - [ #93 "Consider creating a game math library benchmark for the working group"] ( https://github.com/rust-gamedev/wg/issues/93 ) ;
1260
+ - [ rust-gamedev/rust-gamedev.github.io] ( https://github.com/rust-gamedev/rust-gamedev.github.io ) :
1261
+ - [ #233 "Custom Domain"] ( https://github.com/rust-gamedev/rust-gamedev.github.io/issues/233 ) ;
1262
+ - [ rust-gamedev/ecs_bench_suite] ( https://github.com/rust-gamedev/ecs_bench_suite ) :
1263
+ - [ #6 "Benchmark compile times"] ( https://github.com/rust-gamedev/ecs_bench_suite/issues/6 ) ;
1264
+ - [ #13 "How results will be updated?"] ( https://github.com/rust-gamedev/ecs_bench_suite/issues/13 ) ;
1265
+
1258
1266
## Meeting Minutes
1259
1267
1260
1268
<!-- Up to 10 most important notes + a link to the full details -->
@@ -1295,17 +1303,6 @@ or [join the next meeting][join].
1295
1303
[ simm-issues ] : https://github.com/mkhan45/SIMple-Mechanics/labels/good%20first%20issue
1296
1304
[ bevy-issues ] : https://github.com/bevyengine/bevy/labels/good%20first%20issue
1297
1305
1298
- ## Jobs
1299
-
1300
- <!-- An optional section for new jobs related to Rust gamedev -->
1301
-
1302
- ## Bonus
1303
-
1304
- <!-- Bonus section to make the newsletter more interesting
1305
- and highlight events from the past. -->
1306
-
1307
- Just an interesting Rust gamedev link from the past. :)
1308
-
1309
1306
------
1310
1307
1311
1308
That's all news for today, thanks for reading!
0 commit comments