diff --git a/content/posts/newsletter-017/index.md b/content/posts/newsletter-017/index.md index 39ac504a9..82fdb1e5d 100644 --- a/content/posts/newsletter-017/index.md +++ b/content/posts/newsletter-017/index.md @@ -308,6 +308,38 @@ Full December's devlogs: [learning-art]: https://reddit.com/r/gamedev/comments/k8i773/how_i_a_mere_programmer_am_learning [@chinedufn]: https://chinedufn.com +### [Swoop][swoop-itch] + +![Doing donuts while being overtaken](swoop.gif) +_Getting lapped by purple? - don't worry, it happens to everyone_ + +[Swoop][swoop-itch] by [@sdfgeoff] is a procedural racing web game +written in Rust from scratch. + +> I've tried to make games in a variety of engines, but invariably got frustrated. +> So I decided to throw out the engine and find out what makes game-making so complex. +> It turns out that the stuff below the game engine is only slightly less friendly +> than the stuff above it. +> +> All up this game was a large experiment: +> I'm not all that familiar with Rust, it was my first go at targetting WASM, +> I've never used WebGL before, and my linear algebra is worse than I thought. + +[The source code is available here][swoop-source] and +you can also read about about the process of making the game +here: ["WASM Games From Scratch"][swoop-book]. + +You can also play the game's [prototype version done in shadertoy][swoop-shadertoy] +and check out a [prototype of the next @sdfgeoff's project][swoop-next] +that is based on raymarching giant caves. + +[swoop-itch]: https://sdfgeoff.itch.io/swoop +[swoop-source]: https://github.com/sdfgeoff/wasm_minigames +[swoop-shadertoy]: https://shadertoy.com/view/WlScWd +[swoop-book]: https://sdfgeoff.github.io/wasm_minigames/a_first_game_swoop.html +[swoop-next]: https://shadertoy.com/view/tltyRB +[@sdfgeoff]: https://github.com/sdfgeoff + ### Harvest Hero ![Harvest Hero Gameplay](harvest_hero_snippet.gif) @@ -609,6 +641,36 @@ in [this Amethyst forum thread][thesis-thread]. [amethyst]: https://github.com/amethyst/amethyst [thesis-thread]: https://community.amethyst.rs/t/undergrad-thesis-on-game-scripting-for-legion/1753 +### [WASM Games From Scratch][wasm-scratch-book] + +![sprite transformation explanations](wasm_sprite_transform.svg) + +[@sdfgeoff] published a book that describes the process +of building the abovementioned web game [Swoop][swoop-itch] from scratch: +["WASM Games From Scratch"][wasm-scratch-book]. + +> Game engines are huge behemoths, and contain algorithms +> for handling everything and the kitchen sink. +> While that's normally good, if you want to do something small, +> or possibly do something outside the bounds of a normal game enine, +> you suddenly have to learn how to do everything yourself. +> +> Or perhaps you just like the "type it and run" style of development +> for shadertoy shaders and want something similar +> that you can host on your system as (pretty much) a single file. +> +> Either way, this book chronicles my adventures +> into creating WASM games from scratch in Rust. + +Some of the topics covered by the book: + +- Building for WASM, event handling, WebGL and shader basics. +- Map generation using a Fourier series. +- Camera positioning and drawing a map, ships and engine trails. +- Ship physics and simple AI. + +[wasm-scratch-book]: https://sdfgeoff.github.io/wasm_minigames + ## Library & Tooling Updates ### [Thermite SIMD]: Melt Your CPU diff --git a/content/posts/newsletter-017/swoop.gif b/content/posts/newsletter-017/swoop.gif new file mode 100644 index 000000000..9b2767a3d Binary files /dev/null and b/content/posts/newsletter-017/swoop.gif differ diff --git a/content/posts/newsletter-017/wasm_sprite_transform.svg b/content/posts/newsletter-017/wasm_sprite_transform.svg new file mode 100644 index 000000000..71be0bb62 --- /dev/null +++ b/content/posts/newsletter-017/wasm_sprite_transform.svg @@ -0,0 +1,225 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file