diff --git a/content/posts/newsletter-007/crow-akari.png b/content/posts/newsletter-007/crow-akari.png new file mode 100644 index 000000000..d15fd65f9 Binary files /dev/null and b/content/posts/newsletter-007/crow-akari.png differ diff --git a/content/posts/newsletter-007/index.md b/content/posts/newsletter-007/index.md index 56647f2a9..21e200423 100644 --- a/content/posts/newsletter-007/index.md +++ b/content/posts/newsletter-007/index.md @@ -1,6 +1,6 @@ +++ title = "This Month in Rust GameDev #7 - February 2020" -draft = true +date = 2020-03-05 +++ @@ -74,10 +74,10 @@ _Discussions: This month, it received some major updates: -* All of the site's data files have been unified into a consistent TOML schema, making it easier to add new links. -* Categories have been added for games and resources, and you can now add an item to multiple categories without duplicating the data. -* Page load times have been reduced (especially on the homepage). -* The styling has been improved to make the site look better on mobile, and to resolve some accessibility issues. +- All of the site's data files have been unified into a consistent TOML schema, making it easier to add new links. +- Categories have been added for games and resources, and you can now add an item to multiple categories without duplicating the data. +- Page load times have been reduced (especially on the homepage). +- The styling has been improved to make the site look better on mobile, and to resolve some accessibility issues. [Ownership was also recently transferred across to the gamedev working group][awgy-wg], to allow for more people to help with maintainance. @@ -113,62 +113,204 @@ channel on the [community-run Discord server][discord-community-invitation]. [@logicsoup] - one of the developers behind [Garden][garden] - [is planning to organize][tallinn-ann] the first (and hopefully one of many) -Rust Hack'n'Learn meetup in Tallinn in March. +Rust Hack'n'Learn meetup in Tallinn on March 13. -If you're interested, follow [@RustTallinn] - more details will be announced soon. +> A Hack'N'Learn is an event where we get together and work on personal +> (or open-source) projects on our own computers. + +If you're interested, visit **[tallinn.rs]** and follow [@RustTallinn]. [tallinn-ann]: https://twitter.com/logicsoup/status/1224404367723454478 [@RustTallinn]: https://twitter.com/RustTallinn [@logicsoup]: https://twitter.com/logicsoup +[tallinn.rs]: https://tallinn.rs/events/2020-03-hacknlearn/ ## Game Updates ### [Rusty Shooter][rusty-shooter] -[Rusty Shooter][rusty-shooter] is a Quake3-like first person shooter written in Rust using [rg3d engine][rg3d-engine]. - ![Rusty Shooter in-game screenshot](rusty-shooter-in-game.jpg) -Small gameplay video (work-in-progress): -[![Rusty Shooter game](rusty-shooter-youtube.PNG)][rusty-shooter-video] +[Rusty Shooter][rusty-shooter] is a Quake3-like first-person shooter written in Rust using [rg3d engine][rg3d-engine]. Features: -- Common FPS elements: bots, items, weapons. -- Single game mode - deathmatch. -- More or less modern graphics (shadows, deferred shading, particle systems etc.) -- Fully animated bots using animation blending state machines. -- Single map - something like legendary Q3DM6. -- Path finding using navmesh -- Save/load functionality -- GUI: main menu, options, HUD, leader board (using [rg3d-ui library][rg3d-ui]) -- Binaural sound (using [rg3d-sound library][rg3d-sound]) +- Common FPS elements: bots, items, weapons; +- Single game mode - deathmatch; +- More or less modern graphics (shadows, deferred shading, particle systems etc.); +- Fully animated bots using animation blending state machines; +- Single map - something like legendary Q3DM6; +- Path finding using navmesh; +- Save/load functionality; +- GUI: main menu, options, HUD, leader board (using [rg3d-ui library][rg3d-ui]); +- Binaural sound (using [rg3d-sound library][rg3d-sound]). + +Small gameplay video (work-in-progress): +[![Rusty Shooter game](rusty-shooter-youtube.PNG)][rusty-shooter-video] [rg3d-engine]: https://github.com/mrDIMAS/rg3d [rg3d-ui]: https://github.com/mrDIMAS/rg3d-ui [rg3d-sound]: https://github.com/mrDIMAS/rg3d-sound [rusty-shooter]: https://github.com/mrDIMAS/rusty-shooter -[rusty-shooter-video]: https://www.youtube.com/watch?v=UDn8ymyXPcI +[rusty-shooter-video]: https://youtube.com/watch?v=UDn8ymyXPcI -### [Antorum] +### [Colony Genesis][colony-itch] -![Spider NPCs](antorum.jpg) +![itch.io page: ASCII art logo with an ant, game features, video and screenshots](colony-genesis.png) -[Antorum] is a multiplayer RPG where players build their characters and fight against the growing threats on the isle. The game server is authoritative and written in Rust, while the client is written in Unity/C#. +[Native Systems] is working on "Colony Genesis" - +an ant colony sandbox game with ASCII graphics. + +> Establish a new colony and help it grow or let it develop on its own. -This month, the focus was on the cooking skill. This includes recipies and cookware. Players will need a cooking appliance, such as a stove or campfire to cook some Chonkrat Stew inside a pot. A heavy refactor to the interaction system had to be made, as well as changes to networking. Check out [@dooskington]'s devlog here: +This month an alpha version was published on itch: [check it out here][colony-itch]. -- [#18 "Cooking"](https://dooskington.com/dev-log/18) +[colony-itch]: https://nativesystems.itch.io/colony +[Native Systems]: https://nativesystems.rs -[antorum]: https://dooskington.com -[@dooskington]: https://twitter.com/dooskington +### [Veloren][veloren] -### [Everpuzzle] +![Rolling mountain landscape](veloren1.png) -[Everpuzzle] is a Tetris Attack like action-puzzle game written in Rust. +^ _Rolling mountain landscape_ + +[Veloren][veloren] is an open world, open-source voxel RPG inspired by Dwarf Fortress and Cube World. + +At the beginning of the month, the team met for a 0.6 intro meeting. It was decided that 0.6 would focus on things for the player to do, and hence will be called "The Content Update". + +Research has been done on multiple areas this month. One domain is level of detail, which is allowing mountains off in the distance to be rendered much faster. Another domain is server persistence. Finding a way for the server to efficiently persist player information is a large part of what is needed for The Content Update. + +Here is the February changelog: + +```text +- Fixed NPCs attacking the player forever after killing them +- Extend run sfx to small animals to prevent sneak attacks by geese +- Added sfx for wielding/unwielding weapons +- Added new orc hairstyles +- Added gamma setting +- Configurable fonts +- Translation status tracking +- Fixed /give_exp ignoring player argument +- Allow spawning individual pet species, not just generic body kinds +- Added daily Mac builds +- Removed highlighting of non-collectible sprites +- Added zoomable and rotatable minimap +- Added rotating orientation marker to main-map +- Brighter / higher contrast main-map +- Added music system +``` + +[![veloren development](veloren3.gif)](https://youtube.com/watch?v=1ldHQfxCT24) + +^ _1 year of Veloren development. Click for the full video!_ + +You can read more about some specific topics: + +- [0.5 Release](https://veloren.net/devblog-53#0-5-release) +- [0.6 Intro Meeting](https://veloren.net/devblog-54#0-6-intro-meeting) +- [Settlements](https://veloren.net/devblog-54#settlements) +- [Mac Builds](https://veloren.net/devblog-55#the-mac-build-situation-by-angelonfira) +- [Achievements](https://veloren.net/devblog-55#achievement-implementation-by-thedip) +- [Persistence](https://veloren.net/devblog-56#persistence-by-angelonfira) + +![Hanging out](veloren2.png) + +In March, there will be a heavy focus on completing level of detail work as well as persistence. Modding support will be explored further. Player achievements will be merged into the game, and we will start looking at where more content can be added. + +February's full weekly devlogs: "This Week In Veloren...": +[#53](https://veloren.net/devblog-53), +[#54](https://veloren.net/devblog-54), +[#55](https://veloren.net/devblog-55), +[#56](https://veloren.net/devblog-56). + +[veloren]: https://veloren.net + +### [Oxidator][oxidator] + +[![Gameplay demo: two giant tank armies clashing](oxidator-play.gif)][oxidator-video-play] + +^ _gameplay demo (35000 units)_ + +[Oxidator][oxidator] by [@Ruddle] is a real-time strategy game/engine +written with Rust and WebGPU. +It's inspired by Total Annihilation, Supreme Commander, Spring Engine, +and Zero-k. + +The project's goal is to provide a modern, carefully crafted, +minimal and highly constrained set of tools for players/designers +to create mods without programming knowledge. + +Some of the current features: + +- Simulation: + working draft of flock behavior and collision detection, + basic health and damage computation, + construction and repair; +- Rendering: basic display of a heightmap & 3D models (with instancing), + fxaa, screen-space reflections; +- UI: select units (picking and rectangle selection), + move & build orders; +- Multiplayer: working PoC localhost tcp client/server; +- Map editor: raise, lower, flatten, blur, noise pencil; +- Unit editor: basic editor with joint & mesh selection and parameter editing + (speed, turn rate, health, etc); + +[![Unit editor demo: move agent's parts](oxidator-unit-editor.gif)][oxidator-video-unit-editor] + +^ _Demo of the unit editor_ + +[![Map editor demo: use pencil tool to instantly create a lake and mountains](oxidator-map-editor.gif)][oxidator-video-map-editor] + +^ _Demo of the map editor_ + +[oxidator]: https://github.com/Ruddle/oxidator +[@Ruddle]: https://github.com/Ruddle +[oxidator-video-play]: https://streamable.com/499j0 +[oxidator-video-unit-editor]: https://streamable.com/ywr44 +[oxidator-video-map-editor]: https://github.com/Ruddle/oxidator/blob/be4863e74/etc/map_editor.gif + +### [Univer City v1.0 and Open Source Release][univer-1-0-opensource] + +[![logo](univer-logo.jpg)][univer-steam] + +[UniverCity][univer-steam] is an isometric university management game: + +> Manage your staff, professors and students and try +> and build the best UniverCity around! +> Build up your UniverCity solo or against friends and build many different +> types of classes whilst trying to ensure students get good grades, +> or maybe just try and build the best looking UniverCity. + +This month, [v1.0 was released on Steam][univer-1-0-opensource] +along with [releasing the game's sources under GPL-3][univer-source]. + +> This update _marks the end of development for now_ +> and adds in some basic workshop support. + +![Demo: builing a classroom](univer-city-demo.gif) + +> The license is GPL-3 and the code is the same +> as the version released on Steam +> (the Steam version is built with the 'steam' feature enabled). +> Due to the GPL licensing the steamworks support is disabled +> by default which breaks things like the 'modding' menu and multiplayer. +> +> The assets _are not included_ with the release +> and will have to be copied from the game on Steam. + +_Discussions: +[/r/rust](https://reddit.com/r/rust/comments/f5fiii/univercity_open_source_release_university)_ + +[univer-1-0-opensource]: https://steamcommunity.com/gid/103582791461907043/announcements/detail/1694978169192631655 +[univer-steam]: https://store.steampowered.com/app/808160/UniverCity +[univer-source]: https://github.com/Thinkofname/UniverCity + +### [Everpuzzle] ![Everpuzzle preview](everpuzzle-020-preview.gif) +[Everpuzzle] is a Tetris Attack like action-puzzle game written in Rust. + Everpuzzle aims to become a similar game like Tetris Attack and expand on its concepts. The project was recently rewritten with minimal dependencies to achieve small compile times and gain more control over the underlying engine architecture. @@ -176,19 +318,33 @@ In the past Everpuzzle was using Amethyst with ECS, however there were some issu Everpuzzle's big goals are AI, Multiplayer and different Game modes. Big changes coming in version 0.2, full list [here](https://github.com/Skytrias/everpuzzle/blob/master/CHANGELOG.md): -* Gamepad support (singleplayer) -* Multiple grids -* AI Bot -* Better Randomization of blocks -* Combos / Chains - with Highlighting -* Better animations -[Latest releases](https://github.com/Skytrias/everpuzzle/releases) +- Gamepad support (singleplayer) +- Multiple grids +- AI Bot +- Better Randomization of blocks +- Combos / Chains - with Highlighting +- Better animations -[Everpuzzle rewrite - Code Walkthrough (code outdated)](https://www.youtube.com/watch?v=qA2zcaUVRKY) +[Latest releases](https://github.com/Skytrias/everpuzzle/releases). + +Video: [Everpuzzle rewrite - Code Walkthrough (code outdated)](https://youtube.com/watch?v=qA2zcaUVRKY). [Everpuzzle]: https://github.com/Skytrias/everpuzzle +### [Antorum] + +![Spider NPCs](antorum.jpg) + +[Antorum] is a multiplayer RPG where players build their characters and fight against the growing threats on the isle. The game server is authoritative and written in Rust, while the client is written in Unity/C#. + +This month, the focus was on cooking skill. This includes recipes and cookware. Players will need a cooking appliance, such as a stove or campfire to cook some Chonkrat Stew inside a pot. A heavy refactor to the interaction system had to be made, as well as changes to networking. + +Check out te full devlog: [#18 "Cooking"](https://dooskington.com/dev-log/18). + +[antorum]: https://dooskington.com +[@dooskington]: https://twitter.com/dooskington + ### [Scale] ![Traffic lights](scale.png) @@ -196,7 +352,7 @@ Big changes coming in version 0.2, full list [here](https://github.com/Skytrias/ [Scale] is a recent project about modern day society simulation from the bottom-up by [Uriopass]. -In february, the Inspector for specs entities was mostly finished and the +In February, the Inspector for specs entities was mostly finished and the traffic simulation made great progress. A second [blog post][scale-blog-post] was released about it. @@ -223,7 +379,7 @@ Blips, in turn, activate blocks. [Leod] is currently working on the core design: How to make the game fun and what blocks to add. He posted about their thoughts and progress on a -[reddit comment][ultimate-scale-post]. +[Reddit comment][ultimate-scale-post]. Regularly, videos are posted on their [youtube channel][ultimate-scale-youtube-channel] showing different machines made in game such as an [extensible counter modulo 10][ultimate-scale-video-1] @@ -242,8 +398,8 @@ _Discussions: [ultimate-scale]: https://github.com/leod/ultimate-scale [ultimate-scale-video-1]: https://youtu.be/zmKRJAF4xcI [ultimate-scale-video-2]: https://youtu.be/IM3BRM_MZrE -[ultimate-scale-post]: https://www.reddit.com/r/rust_gamedev/comments/f3cll6/ultimate_scale_counting_modulo_three/fhhu5ol/ -[ultimate-scale-youtube-channel]: https://www.youtube.com/channel/UChSw7WP2i0GIw61FIeTeGsA +[ultimate-scale-post]: https://reddit.com/r/rust_gamedev/comments/f3cll6/ultimate_scale_counting_modulo_three/fhhu5ol +[ultimate-scale-youtube-channel]: https://youtube.com/channel/UChSw7WP2i0GIw61FIeTeGsA ### [Tennis Academy Dash][tennis-academy-dash] @@ -255,20 +411,37 @@ The game is still a work in progress, but the demo version has been uploaded to [tennis-academy-dash]: https://iolivia.itch.io/tennis-academy-dash +### [Dwarf World][dwarf-world] + +[![New site with links to Twitter, Discord, and Twich](dwarf-world.png)][dwarf-world] + +[Alexandru Ene] is working on a dwarf colony management game "Dwarf World". + +This month, the project got an official site: [dwarf.world][dwarf-world]. + +Also, check out development streams: +every Sunday at 19:30 PM GMT [on Twitch][dwarf-twitch]. + +[Alexandru Ene]: https://alexene.dev +[dwarf-world]: https://dwarf.world +[dwarf-twitch]: https://twitch.tv/nomad_pixel + ### [Lonely Star][lonely-star] -> *Space is a lonely place, but at least you've got the music to keep you company.* +[![Lonely Star screenshot](lonely-star.png)][lonely-star] + +> _Space is a lonely place, but at least you've got the music to keep you company._ [Lonely Star][lonely-star] is a side-scrolling infinite runner, with simple generative music. You collect orbs and fly through rings in order to play notes and stay alive. It was developed by [17cupsofcoffee][17cupsofcoffee], using the [Tetra][tetra] 2D game framework, for [Weekly Game Jam #135](weekly-game-jam-135). -[![Lonely Star screenshot](lonely-star.png)][lonely-star] +------ Tetra itself also received two small updates recently: -* [Version 0.3.2 was released][tetra-0.3.2], with bugfixes and some tools for simple AABB collision detection. -* [The Pong tutorial was updated with a new chapter][tetra-pong], showing how to use Tetra's graphics and input APIs. +- [Version 0.3.2 was released][tetra-0.3.2], with bugfixes and some tools for simple AABB collision detection. +- [The Pong tutorial was updated with a new chapter][tetra-pong], showing how to use Tetra's graphics and input APIs. [lonely-star]: https://17cupsofcoffee.itch.io/lonely-star [17cupsofcoffee]: https://twitter.com/17cupsofcoffee @@ -281,7 +454,7 @@ Tetra itself also received two small updates recently: ![High detail terrain chunk with PRR](akigi.png) -> Sampling a heightmap in the vertex shader and also computing the normal, tangent and bitangent vectors in the vertex shader. +^ _Sampling a heightmap in the vertex shader and also computing the normal, tangent and bitangent vectors in the vertex shader._ [Akigi][akigi] is a multiplayer online world where most believe that humans are inferior. @@ -316,101 +489,6 @@ network play][designing_network_play]. [designing_network_play]: https://azriel.im/will/2020/02/29/designing-network-play/ [will_network_play]: will_network_play.png -### [Oxidator][oxidator] - -[![Gameplay demo: two giant tank armies clashing](oxidator-play.gif)][oxidator-video-play] - -^ _gameplay demo (35000 units)_ - -[Oxidator][oxidator] by [@Ruddle] is a real-time strategy game/engine -written with Rust and WebGPU. -It's inspired by Total Annihilation, Supreme Commander, Spring Engine, -and Zero-k. - -The project's goal is to provide a modern, carefully crafted, -minimal and highly constrained set of tools for players/designers -to create mods without programming knowledge. - -Some of the current features: - -- Simulation: - working draft of flock behavior and collision detection, - basic health and damage computation, - construction and repair; -- Rendering: basic display of a heightmap & 3D models (with instancing), - fxaa, screen space reflections; -- UI: select units (picking and rectangle selection), - move & build orders; -- Multiplayer: working PoC localhost tcp client/server; -- Map editor: raise, lower, flatten, blur, noise pencil; -- Unit editor: basic editor with joint & mesh selection and parameter editing - (speed, turn rate, health, etc); - -[![Unit editor demo: move agent's parts](oxidator-unit-editor.gif)][oxidator-video-unit-editor] - -^ _Demo of the unit editor_ - -[![Map editor demo: use pencil tool to instantly create a lake and mountains](oxidator-map-editor.gif)][oxidator-video-map-editor] - -^ _Demo of the map editor_ - -[oxidator]: https://github.com/Ruddle/oxidator -[@Ruddle]: https://github.com/Ruddle -[oxidator-video-play]: https://streamable.com/499j0 -[oxidator-video-unit-editor]: https://streamable.com/ywr44 -[oxidator-video-map-editor]: https://github.com/Ruddle/oxidator/blob/be4863e74/etc/map_editor.gif - -### [Univer City v1.0 and Open Source Release][univer-1-0-opensource] - -[![logo](univer-logo.jpg)][univer-steam] - -[UniverCity][univer-steam] is an isometric university management game: - -> Manage your staff, professors and students and try -> and build the best UniverCity around! -> Build up your UniverCity solo or against friends and build many different -> types of classes whilst trying to ensure students get good grades, -> or maybe just try and build the best looking UniverCity. - -This month, [v1.0 was released on Steam][univer-1-0-opensource] -along with [releasing the game's sources under GPL-3][univer-source]. - -> This update _marks the end of development for now_ -> and adds in some basic workshop support. - -![Demo: builing a classroom](univer-city-demo.gif) - -> The license is GPL-3 and the code is the same -> as the version released on Steam -> (the Steam version is built with the 'steam' feature enabled). -> Due to the GPL licensing the steamworks support is disabled -> by default which breaks things like the 'modding' menu and multiplayer. -> -> The assets _are not included_ with the release -> and will have to be copied from the game on Steam. - -_Discussions: -[/r/rust](https://reddit.com/r/rust/comments/f5fiii/univercity_open_source_release_university)_ - -[univer-1-0-opensource]: https://steamcommunity.com/gid/103582791461907043/announcements/detail/1694978169192631655 -[univer-steam]: https://store.steampowered.com/app/808160/UniverCity -[univer-source]: https://github.com/Thinkofname/UniverCity - -### [Dwarf World][dwarf-world] - -[![New site with links to Twitter, Discord, and Twich](dwarf-world.png)][dwarf-world] - -[Alexandru Ene] is working on a dwarf colony management game "Dwarf World". - -This month, the project got an official site: [dwarf.world][dwarf-world]. - -Also, check out development streams: -every Sunday at 19:30 PM GMT [on Twitch][dwarf-twitch]. - -[Alexandru Ene]: https://alexene.dev -[dwarf-world]: https://dwarf.world -[dwarf-twitch]: https://twitch.tv/nomad_pixel - ### [Way of Rhea's New Trailer][rhea-steam] [![logo](way-of-rhea.jpg)][rhea-steam] @@ -446,7 +524,7 @@ WIP Box2D physics game prototype: were posted by [@logicsoup]. Some of the updates: -- ๐ŸŒ˜ Physically based shading +- ๐ŸŒ˜ Physically-based shading - ๐Ÿ•น 3D model loading and texturing for richer environments - ๐Ÿ’ฆ Soil moisture content - ๐ŸŒ  Alpha mipmapping @@ -456,77 +534,6 @@ Some of the updates: [garden-jan]: https://cyberplant.xyz/posts/january [garden-feb]: https://cyberplant.xyz/posts/february -### [Colony Genesis][colony-itch] - -![itch.io page: ASCII art logo with an ant, game features, video and screenshots](colony-genesis.png) - -[Native Systems] is working on "Colony Genesis" - -an ant colony sandbox game with ASCII graphics. - -> Establish a new colony and help it grow or let it develop on its own. - -This month an alpha version was published on itch: [check it out here][colony-itch]. - -[colony-itch]: https://nativesystems.itch.io/colony -[Native Systems]: https://nativesystems.rs - -### [Veloren][veloren] - -![Rolling mountain landscape](veloren1.png) - -> Rolling mountain landscape - -[Veloren][veloren] is an open world, open-source voxel RPG inspired by Dwarf Fortress and Cube World. - -At the beginning of the month, the team met for a 0.6 intro meeting. It was decided that 0.6 would focus on things for the player to do, and hence will be called "The Content Update". - -Research has been done on multiple areas this month. One domain is level of detail, which is allowing mountains off in the distance to be rendered much faster. Another domain is server persistence. Finding a way for the server to efficiently persist player information is a large part of what is needed for The Content Update. - -Here is the February changelog: - -```text -- Fixed NPCs attacking the player forever after killing them -- Extend run sfx to small animals to prevent sneak attacks by geese -- Added sfx for wielding/unwielding weapons -- Added new orc hairstyles -- Added gamma setting -- Configurable fonts -- Tanslation status tracking -- Fixed /give_exp ignoring player argument -- Allow spawning individual pet species, not just generic body kinds -- Added daily Mac builds -- Removed highlighting of non-collectible sprites -- Added zoomable and rotatable minimap -- Added rotating orientation marker to main-map -- Brighter / higher contrast main-map -- Added music system -``` - -[![veloren development](veloren3.gif)](https://www.youtube.com/watch?v=1ldHQfxCT24) - -> 1 year of Veloren development. Click for the full video! - -You can read more about some specific topics: - -- [0.5 Release](https://veloren.net/devblog-53#0-5-release) -- [0.6 Intro Meeting](https://veloren.net/devblog-54#0-6-intro-meeting) -- [Settlements](https://veloren.net/devblog-54#settlements) -- [Mac Builds](https://veloren.net/devblog-55#the-mac-build-situation-by-angelonfira) -- [Achievements](https://veloren.net/devblog-55#achievement-implementation-by-thedip) -- [Persistence](https://veloren.net/devblog-56#persistence-by-angelonfira) - -![Hanging out](veloren2.png) - -In March, there will be a heavy focus on completing level of detail work as well as persistence. Modding support will be explored further. Player achievements will be merged into the game, and we will start looking at where more content can be added. - -February's full weekly devlogs: "This Week In Veloren...": -[#53](https://veloren.net/devblog-53), -[#54](https://veloren.net/devblog-54), -[#55](https://veloren.net/devblog-55), -[#56](https://veloren.net/devblog-56). - -[veloren]: https://veloren.net - ### [Grumpy Visitors First Update. Winter Progress][grumpy_visitors] ![Magic missiles in Grumpy Visitors](grumpy_missiles.jpg) @@ -534,6 +541,7 @@ February's full weekly devlogs: "This Week In Veloren...": Grumpy Visitors is a top-down 2D co-op action/arcade game highly inspired by Evil Invasion. It runs on Amethyst game engine. This winter Grumpy Visitors received some updates with the focus on graphics and UI: + - Repainting mage sprites with shaders - New missiles graphics - Monsters death animations @@ -547,7 +555,7 @@ Check them out in the [latest winter devlog][grumpy_visitors]. ![cities, planes and keys](china.png) -> Turn back planes to the port, by clicking right keys to the virus beat. +^ _Turn back planes to the port, by clicking right keys to the virus beat._ [Make China Great Again][china-great] ([source][china-great-src]) by [@PsichiX] is a GlobalGameJam game written using [Oxygengine]. @@ -647,11 +655,33 @@ The examples are very well explained, and can easily be translated to other engi [fyt-ggez]: https://joetsoi.github.io/fix-your-timestep-rust-ggez/ [fyt]: https://gafferongames.com/post/fix_your_timestep/ +### [This Month in RustSim #9 (Nov 2019 to Feb 2020)][rustsim-9] + +![Salva logo](logo_salva_full.svg) + +Main updates: + +> - New pressure resolution methods. +> - Viscosity, surface tension, and elasticity can now be simulated. +> - Ability to remove fluids/boundaries/collider couplings after their addition. +> - Ability to add particles to a fluid that has already been created. + +Watch a ["Salva 0.2: DFSPH, viscosity, surface tension, and elasticity"][rustsim-video] +demo video. + +[Read the full devlog here.][rustsim-9] + +_Discussions: +[/r/rust](https://reddit.com/r/rust/comments/fcyp7c/this_month_in_rustsim_9_november_february_2020)_ + +[rustsim-9]: https://rustsim.org/blog/2020/03/01/this-month-in-rustsim +[rustsim-video]: https://youtube.com/watch?v=NBoSEanWHE4 + ### savefile 0.6.1 [savefile] is a serialization crate used to effortlessly serialize rust crates and enums into a binary format. Anything implementing the `Write` trait can -be serialized and deserialized. First class versioning support and introspection +be serialized and deserialized. First-class versioning support and introspection are some other features available. Version 0.6.1 includes a fix and should be updated to if compilation using @@ -687,31 +717,268 @@ For more details, please see the [`specs` changelog]. [specs]: https://crates.io/crates/specs [`specs` changelog]: https://github.com/amethyst/specs/blob/0.16.1/CHANGELOG.md#0161-2020-02-18 +### [Riven][riven] + +![Riot Games API logo: steampunk](riot-api.jpg) + +[riven] is a [Riot API][riot-api] library for Rust. + +> Riven handles rate limits and large requests with ease. +> Data structs and endpoints are automatically generated from the +> [Riot API Reference][riot-api-ref] ([Swagger][riot-swagger]). + +_Discussions: +[/r/rust](https://reddit.com/r/rust/comments/exj48k/riven_100_my_rust_lib_for_the_riot_games_league)_ + +[riven]: https://github.com/MingweiSamuel/Riven +[riot-api]: https://developer.riotgames.com/ +[riot-api-ref]: https://developer.riotgames.com/api-methods +[riot-swagger]: http://www.mingweisamuel.com/riotapi-schema/tool + +### [weasel] + +[weasel] by [@Trisfald] is a customizable battle system for turn-based games. + +- Simple way to define the combat's rules, + taking advantage of Rust's strong type system. +- Battle events are collected into a timeline to support save and restore, + replays, and more. +- Client/server architecture; all battle events are verified by the server. +- Minimal performance overhead. + +> The idea behind this crate is to provide a structured +> and safe framework to manage the game state. +> Users can create a battle and evolve it by applying events. +> Then, weasel takes care of keeping a historical timeline. +> It also help with serializing/deserializing save files +> or sharing and verifying events between clients and server. +> The game logic is defined through traits, which is nice because +> it can benefit from Rust's type system and compile time checks. + +Check out [examples][weasel-examples] to see how it works in practice. + +[weasel]: https://github.com/Trisfald/weasel +[weasel-examples]: https://github.com/Trisfald/weasel/tree/master/examples +[@Trisfald]: https://github.com/Trisfald + ### [Shipyard] v0.3 -Take a look at [this](https://www.reddit.com/r/rust/comments/fbo8wf/shipyard_03_release/) Reddit thread for a discussion on the update. +[Shipyard] is an ECS library built on top of sparse sets. -[Shipyard] is an Entity Component System crate. ECS is a pattern mostly used in games but not only. It fits really well with Rust, allowing easy composition and lifetime management. +Some of [the v0.3 updates][shipyard-v0-3-ann]: -- [User guide] Learning to use a crate with the documentation can be hard. There's now a guide to explain what can be done with Shipyard and how. -- No need to register components anymore Components had to be registered before accessing them by using World::new or World::register. -Storages are now automatically created when they are first accessed. -- !Send and !Sync components All components had to be Send + Sync, this is a strict limitation to make sure storages can use parallel features. With 0.3 !Send and !Sync types can be stored and accessed while still following Rust's rules. These rules limit threading for these types but doesn't always prevent it. -- Unique components When we only need a single instance of a component, keeping an id around to access it can be annoying. A Unique component won't be attached to any entity but will have the storage all for itself. -- Components sorting -- no_std support +- There's now a [User guide][shipyard-guide] to explain what can be done + and how; +- No need to register components anymore, + storages are now automatically created when they are first accessed; +- !Send and !Sync components; +- Unique components; +- Components sorting; +- no_std support. [Shipyard]: https://crates.io/crates/shipyard -[User guide]: https://leudz.github.io/shipyard/book +[shipyard-guide]: https://leudz.github.io/shipyard/book +[shipyard-v0-3-ann]: https://reddit.com/r/rust/comments/fbo8wf/shipyard_03_release + +### [image] v0.23 + +[image] crate provides basic imaging processing functions and methods for converting to and from image formats. + +Check out [the release blog](https://blog.image-rs.org/2020/02/07/release-0.23.0.html) for 0.23! It comes with improvements to error handling, and the buffer and loading interfaces. + +[image]: https://github.com/image-rs/image + +### [superluminal-perf-rs] + +![Logo](superlumunal.png) + +[Superluminal][superluminal] is a next-generation CPU sampling profiler for C/C++ on Windows +that has [recently got an official Rust support][superluminal-rust]. + +[![UI example](superluminal-app.png)](superluminal-app.png) + +------ + +Embark have recently open-sourced [superluminal-perf-rs] - +a small crate that integrates with Superluminal profiler on Windows. + +Example usage: + +```rust +superluminal_perf::begin_event("my-event"); +calc(); +superluminal_perf::end_event(); + +superluminal_perf::begin_event("my-event2"); +calc2(); +superluminal_perf::end_event(); +``` + +[superluminal]: https://superluminal.eu/ +[superluminal-perf-rs]: https://github.com/embarkStudios/superluminal-perf-rs +[superluminal-rust]: https://superluminal.eu/rust + +### Rust on [RG-300 Consoles][rg-300] + +[![Real-world demo of using Rust on RG-300](rg-300.jpeg)][rg-300-video] + +[@alexpdp7 shared their experience][rg-300-rust-ann] +of writing an interactive application in Rust +for the retro [RG-300][rg-300] console. + +> The process is complex for a lot of reasons: +> +> - Cross-compiling for MIPS is tough <...> +> - Graphics is done through the Linux framebuffer <...> +> - Sound uses old-style Linux OSS <...> +> +> It's a bit clunky, but it works! +> There are quite a few devices with very similar hardware +> this should work with. +> It should be possible to make simple games for such devices, +> which I find particularly motivating :) + +You can find a working example that does graphics, sound and controls +with some explanations at [alexpdp7/retrofw2-rust][retrofw2-rust]. + +[See it in action here.][rg-300-video] + +[rg-300-rust-ann]: https://reddit.com/r/rust_gamedev/comments/fabgof/wrote_a_rust_program_that_demonstrates_graphics +[rg-300]: https://retrogame300.com/products/retro-game-300 +[rg-300-video]: https://youtube.com/watch?v=Rtf8ZEVALjQ +[retrofw2-rust]: https://github.com/alexpdp7/retrofw2-rust ### [crow] v0.3 -[crow] is a 2D rendering engine based on OpenGL. It is designed to be easy to use while still allowing for nearly everything one might want while using pixel art. +[crow] is a pixel perfect 2D rendering engine based on OpenGL. +It is designed to be easy to use while still allowing +for nearly everything one might want while using pixel art. A showcase game is [being developed](https://github.com/lcnr/akari) with crow. +![Akari WIP screenshot](crow-akari.png) + [crow]: https://crates.io/crates/crow +### miniquad: ["Rust 2D Engine 2020 Roadmap"][fedor-road] + +![mainloop async/await experiment in macroquad](miniquad-sample.png) + +^ _mainloop async/await experiment in macroquad_ + +[miniquad] by [@fedor_games] is a safe cross-platform rendering library +focused on portability and low-end platforms support. + +This month: + +- miniquad and related crates set up yearly goals: + ["Rust 2D Engine 2020 Roadmap"][fedor-road]; +- A first try on the higher-level engine design was tried: [flappy bird.rs][macroquad-bird]; +- [miniquad was successfully built for Android][miniquad-android]. + +[miniquad]: https://github.com/not-fl3/miniquad +[@fedor_games]: https://twitter.com/fedor_games +[fedor-road]: https://patreon.com/posts/34230612 +[macroquad-bird]: https://github.com/not-fl3/macroquad/blob/126773535/examples/flappy_bird.rs +[miniquad-android]: https://twitter.com/fedor_games/status/1223602773532520448 + +### [luminance v0.39][luminance-v0-39-ann] + +[luminance] by [@phaazon] is a type-safe, type-level and stateless +graphics framework. + +This month [luminance v0.39 got released][luminance-v0-39-ann]. +Updates: + +- Remove the concept of layering in textures. + Texturesโ€™ layerings (i.e. either flat or arrayed) is now encoded directly + in the dimension of the texture. +- Add support for texture arrays. They can now be passed constructed + and passed as uniforms to shader programs. + +[@phaazon]: https://twitter.com/phaazon_ +[luminance]: https://github.com/phaazon/luminance-rs +[luminance-v0-39-ann]: https://reddit.com/r/rust/comments/fbe3l0/luminance039 + +### [glium] v0.26 + +[glium] is an elegant and safe OpenGL wrapper. + +It's no longer actively developed by its original author, +but maintenance is continued by the surrounding community. + +This month [glium v0.26 was released][glium-v0-26]: + +- Updated glutin to [version 0.23.0][glutin-v0-23]. +- Removal of some unsound code that rustc warns about. +- Report the precise shader stage in which a shader failed compilation. + +[glium]: https://github.com/glium/glium +[glium-v0-26]: https://github.com/glium/glium/blob/master/CHANGELOG.md#version-0260-2020-02-09 +[glutin-v0-23]: https://github.com/rust-windowing/glutin/blob/master/CHANGELOG.md#version-0230-2020-02-06 + +### [gfx] & [wgpu] + +![wgpu-rs logo](wgpu-logo.png) + +Here're some of the [gfx]/[wgpu] ecosystem February updates: + +- Check out a new ["Lear WGPU" tutorial][learn-wgpu]. + +- [@kvark] gave a "Building WebGPU with Rust" talk at FOSDEM. + [You can watch the recorded video here][kvark-talk]. + + [![A slide from the talk: "wgpu-rs project structure"](wgpu-talk.png)][kvark-talk] + +- [naga] is a new experimental shader translation library + for the needs of gfx-rs project and WebGPU. + It's meant to provide a safe and performant way + of converting to and from [SPIR-V][spir-v]. + +- The abovementioned [Oxidator][oxidator] RTS game is based on wgpu. + +- [nbodysim] is a realtime 3D N-Body-Simulation. + + ![Simple demo with two bodies](n-body-sim.gif) + +- [nannou] in an open-source creative-coding toolkit for Rust. + This month its graphics backend [was transitioned to wgpu][nannou-pr]. + + [![nannou demo](nannou.gif)][nannou-simple-draw] + +- [An extremely helpful `vertex_attr_array` macro was added to wgpu][wgpu-macro]. + +- After [the support for unstable WebIDL was added to wasm-bindgen][wasm-bindgen-pr] + the work on integrating web-sys into wgpu-rs has begun. + +[gfx]: https://github.com/gfx-rs/gfx +[wgpu]: https://github.com/gfx-rs/wgpu-rs +[wgpu-macro]: https://github.com/gfx-rs/wgpu-rs/pull/179 +[@kvark]: https://github.com/kvark +[kvark-talk]: https://fosdem.org/2020/schedule/event/rust_webgpu +[learn-wgpu]: https://sotrh.github.io/learn-wgpu +[nbodysim]: https://git.koesters.xyz/timo/nbodysim +[naga]: https://github.com/gfx-rs/naga +[spir-v]: https://en.wikipedia.org/wiki/Standard_Portable_Intermediate_Representation +[nannou]: https://github.com/nannou-org/nannou +[nannou-pr]: https://github.com/nannou-org/nannou/pull/452 +[nannou-simple-draw]: https://github.com/nannou-org/nannou/blob/9596fd31b/examples/simple_draw.rs +[wasm-bindgen-pr]: https://github.com/rustwasm/wasm-bindgen/pull/1997 + +### [tikan] + +[tikan] by [@siebencorgie] is a Rust/Vulkan based 3d engine that tries +to use high-resolution voxels to real-time ray-trace the final picture. + +This month a [new video was released][tikan-video] +to showcase new voxel renderer: + +[![youtube screenshot: glowing spheres](tikan-youtube.png)][tikan-video] + +[tikan]: https://gitlab.com/tendsinmende/tikan +[tikan-video]: https://youtu.be/98XdA3BpWZU +[@siebencorgie]: https://twitter.com/siebencorgie + ### [Patchwork] [Patchwork] is a convenient crate for drawing tiles from a tilesheet using a 'SpriteBatch' with `ggez`. It is an update to the `Mosaic` crate by [Repnop](https://github.com/repnop/mosaic), which is no longer maintained. @@ -720,19 +987,39 @@ A showcase game is [being developed](https://github.com/lcnr/akari) with crow. ### [KAS] GUI v0.3 +![KAS widgets example](kas.png) + [KAS], the tool**K**it **A**bstraction **S**ystem, is a general-purpose GUI toolkit. -0.3 is a decent sized release, focussing primarily on drawing, themes and layouts. Highlights include a new FlatTheme, many small visual improvements, access to medium-level and low-level drawing APIs for custom widgets, window size limits, and switchable themes and colour schemes. +0.3 is a decent sized release, focussing primarily on drawing, themes and layouts. +Highlights include: + +- a new FlatTheme, +- many small visual improvements, +- access to medium-level and low-level drawing APIs for custom widgets, +- window size limits, +- and switchable themes and colour schemes. [KAS]: https://github.com/kas-gui/kas -### [image] v0.23 +### [Pushrod][pushrod] v0.2.27: SDL2-based GUI -[image] crate provides basic imaging processing functions and methods for converting to and from image formats. +![Layout example](pushrod-layout.png) -Check out [the release blog](https://blog.image-rs.org/2020/02/07/release-0.23.0.html) for 0.23! It comes with improvements to error handling, and the buffer and loading interfaces. +[Pushrod][pushrod] by [@KenSuenobu] +is a Cross Platform UI Widget Library for Rust that uses SDL2 +and leans heavily towards the KISS principle. -[image]: https://github.com/image-rs/image +This month [0.2.27 was released][pushrod-0-2-27-ann]. +Some of the updates: + +- Improved documentation & examples; +- Tile Widget; +- Tab Bar Widget. + +[pushrod]: https://github.com/KenSuenobu/rust-pushrod +[@KenSuenobu]: https://github.com/KenSuenobu +[pushrod-0-2-27-ann]: https://reddit.com/r/rust/comments/f1fcya/pushrod_0227_sdl2based_gui ### [Oxygengine][oxygengine] @@ -740,7 +1027,7 @@ Check out [the release blog](https://blog.image-rs.org/2020/02/07/release-0.23.0 This month [Oxygengine][oxygengine] got new version 0.7.0 with [Visual Novel and Animation][oxygengine-vn-anim-ann] -modules that allows users to focus on making VN games easily, with virtually no code needed to be written - it is a groundbreaking start in developing a set of tools for the profesional game developers. +modules that allows users to focus on making VN games easily, with virtually no code needed to be written - it is a groundbreaking start in developing a set of tools for the professional game developers. > As few might notice, Oxygengine is starting to get more complex modules, there is a reason for that - this engine is made with one big goal in mind, which is: to became a tool used by professionals, giving easy way to make complex games easily, therefore the current milestone is about bringing a basic game editor with first game maker module along with blueprints-like visual scripting and animation tool - the most important tools for visual novel game designers! @@ -752,9 +1039,58 @@ Another thing that was shipped in last milestone was a module that allows to mak Next milestone is focused on delivering a base for professional modular game editor that will allow users to easily create a complex and animated Visual Novel games using Visual Scripting - game makers for another genres are currently in planning stage. [oxygengine]: https://github.com/PsichiX/Oxygengine -[oxygengine-vn-anim-ann]: https://www.reddit.com/r/rust_gamedev/comments/fd7kza/oxygengine_visual_novel_and_animation_modules_are/ +[oxygengine-vn-anim-ann]: https://reddit.com/r/rust_gamedev/comments/fd7kza/oxygengine_visual_novel_and_animation_modules_are [oxygengine-vn-test-src]: https://github.com/PsichiX/Oxygengine/tree/master/demos/visual-novel-testbed +### [bracket-lib (RLTK)][rltk_rs] & [Roguelike Tutorial][rl-book] + +![Different font makes the log easier to read](roguelike-tutorial.jpg) + +[The Roguelike Tutorial][roguelike-book] by [@blackfuture] +includes more than 70 chapters now and continues to grow! + +Some of February's updates: + +- C71: adds easy to use, colored, logging and an achievement counter system + to track your progress through the dungeon. +- C72: 2nd layer (VGA) for the log, refactors for batched draw calls. +- C73: Systems use Specs dispatch on native, and single-thread on WASM. + +[rl-book]: http://bfnightly.bracketproductions.com/rustbook +[@blackfuture]: https://patreon.com/blackfuture + +------ + +[bracket-lib][rltk_rs] (previously [rltk_rs]) by [@blackfuture] +is a Rust implementation of [C++ Roguelike Toolkit][rltk-cpp]. + +This month the project was renamed and split into many crates: + +> This is RLTK, renamed because it is increasingly finding +> usage outside of just Roguelikes. +> It's also been divided into a number of crates, +> to make it easy to pick-and-choose the features you need. +> +> - `rltk` crate wraps bracket-lib and re-exports +> in the `rltk::` and `rltk::prelude` namespace. +> This preserves compatibility with all existing RLTK projects. +> - `bracket-algorithm`-traits exposes the traits required +> for the various algorithm systems in other crates. +> - `bracket-color` is my RGB/HSV color management system. +> - `bracket-geometry` exposes various geometric primitives and helpers. +> Supports other crates. +> - `bracket-noise` is a port of Auburn's FastNoise to Rust. +> - `bracket-pathfinding` provides a high-performance +> A* (A-Star) pathing system, as well as Dijkstra maps. +> - `bracket-random` is a dice-oriented random number generator, +> including parsing of RPG-style dice strings such as 3d6+12. + +[Read the full announcement post here][bracket-lib-ann]. + +[rltk_rs]: https://github.com/thebracket/rltk_rs +[rltk-cpp]: https://github.com/thebracket/rltk +[bracket-lib-ann]: https://reddit.com/r/rust_gamedev/comments/fbdg7d/rltk_is_now_bracketlib + ### [Neovide][neovide] ![Neovide Animated Cursor Example](neovide-cursor.gif) @@ -768,6 +1104,16 @@ It uses vulkan and skia for rendering. +- [rust-gamedev/wg](https://github.com/rust-gamedev/wg): + - [#75 "Standardised API for sharing thread pools"](https://github.com/rust-gamedev/wg/issues/75); + - [#89 "Moving ecs_bench to GDWG"](https://github.com/rust-gamedev/wg/issues/89); + - [#90 "Rust on Consoles"](https://github.com/rust-gamedev/wg/issues/90); + - [#91 "Should the wg volunteer to maintain winapi?"](https://github.com/rust-gamedev/wg/issues/91); +- [rust-gamedev/arewegameyet](https://github.com/rust-gamedev/arewegameyet): + - [#100 "Categorise games"](https://github.com/rust-gamedev/arewegameyet/issues/100); + - [#252 "Split games and resources into categories"](https://github.com/rust-gamedev/arewegameyet/issues/252); + - [#261 "Make .rs domain primary?"](https://github.com/rust-gamedev/arewegameyet/issues/261); + ## Meeting Minutes @@ -811,6 +1157,28 @@ and highlight events from the past. --> Just an interesting Rust gamedev link from the past. :) +![A screenshot of the beginning of the game](not-cool.png) + +["It's Not Cool"][not-cool-itch] is a [LD42] turn-based strategy game +by [@Ratysz]. +It's based on the GGEZ game engine. + +> Assume role of the mayor of a small coastal city, caught +> in the middle of hilariously rapid global warming spurt. +> +> Build a freezer for the polar bears! + +[The source code can be found here][not-cool-src]. + +_Discussions: +[/r/rust_gamedev](https://reddit.com/r/rust_gamedev/comments/977dpc/my_ludum_dare_42_jam_entry_is_pure_rust), +[/r/rust](https://reddit.com/r/rust/comments/977g2t/my_ludum_dare_42_jam_entry_is_pure_rust)_ + +[not-cool-itch]: https://ratys.itch.io/its-not-cool +[not-cool-src]: https://github.com/Ratysz/ludumdare42 +[@Ratysz]: https://github.com/Ratysz +[LD42]: https://en.wikipedia.org/wiki/Ludum_Dare + ------ That's all news for today, thanks for reading! diff --git a/content/posts/newsletter-007/kas.png b/content/posts/newsletter-007/kas.png new file mode 100644 index 000000000..66354901f Binary files /dev/null and b/content/posts/newsletter-007/kas.png differ diff --git a/content/posts/newsletter-007/logo_salva_full.svg b/content/posts/newsletter-007/logo_salva_full.svg new file mode 100644 index 000000000..fb342b28a --- /dev/null +++ b/content/posts/newsletter-007/logo_salva_full.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/content/posts/newsletter-007/miniquad-sample.png b/content/posts/newsletter-007/miniquad-sample.png new file mode 100644 index 000000000..24dacd9f1 Binary files /dev/null and b/content/posts/newsletter-007/miniquad-sample.png differ diff --git a/content/posts/newsletter-007/n-body-sim.gif b/content/posts/newsletter-007/n-body-sim.gif new file mode 100644 index 000000000..2c9750278 Binary files /dev/null and b/content/posts/newsletter-007/n-body-sim.gif differ diff --git a/content/posts/newsletter-007/nannou.gif b/content/posts/newsletter-007/nannou.gif new file mode 100644 index 000000000..789f55531 Binary files /dev/null and b/content/posts/newsletter-007/nannou.gif differ diff --git a/content/posts/newsletter-007/not-cool.png b/content/posts/newsletter-007/not-cool.png new file mode 100644 index 000000000..540a483c3 Binary files /dev/null and b/content/posts/newsletter-007/not-cool.png differ diff --git a/content/posts/newsletter-007/pushrod-layout.png b/content/posts/newsletter-007/pushrod-layout.png new file mode 100644 index 000000000..678658149 Binary files /dev/null and b/content/posts/newsletter-007/pushrod-layout.png differ diff --git a/content/posts/newsletter-007/rg-300.jpeg b/content/posts/newsletter-007/rg-300.jpeg new file mode 100644 index 000000000..c3161704c Binary files /dev/null and b/content/posts/newsletter-007/rg-300.jpeg differ diff --git a/content/posts/newsletter-007/riot-api.jpg b/content/posts/newsletter-007/riot-api.jpg new file mode 100644 index 000000000..bf83a16b0 Binary files /dev/null and b/content/posts/newsletter-007/riot-api.jpg differ diff --git a/content/posts/newsletter-007/roguelike-tutorial.jpg b/content/posts/newsletter-007/roguelike-tutorial.jpg new file mode 100644 index 000000000..2280cc75f Binary files /dev/null and b/content/posts/newsletter-007/roguelike-tutorial.jpg differ diff --git a/content/posts/newsletter-007/superluminal-app.png b/content/posts/newsletter-007/superluminal-app.png new file mode 100644 index 000000000..3032f6d5a Binary files /dev/null and b/content/posts/newsletter-007/superluminal-app.png differ diff --git a/content/posts/newsletter-007/superlumunal.png b/content/posts/newsletter-007/superlumunal.png new file mode 100644 index 000000000..f2ed1fbeb Binary files /dev/null and b/content/posts/newsletter-007/superlumunal.png differ diff --git a/content/posts/newsletter-007/tikan-youtube.png b/content/posts/newsletter-007/tikan-youtube.png new file mode 100644 index 000000000..0c584176d Binary files /dev/null and b/content/posts/newsletter-007/tikan-youtube.png differ diff --git a/content/posts/newsletter-007/veloren3.gif b/content/posts/newsletter-007/veloren3.gif index 5e2b825f2..74e68a19b 100644 Binary files a/content/posts/newsletter-007/veloren3.gif and b/content/posts/newsletter-007/veloren3.gif differ diff --git a/content/posts/newsletter-007/wgpu-logo.png b/content/posts/newsletter-007/wgpu-logo.png new file mode 100644 index 000000000..baa93c525 Binary files /dev/null and b/content/posts/newsletter-007/wgpu-logo.png differ diff --git a/content/posts/newsletter-007/wgpu-talk.png b/content/posts/newsletter-007/wgpu-talk.png new file mode 100644 index 000000000..5374bb5f4 Binary files /dev/null and b/content/posts/newsletter-007/wgpu-talk.png differ