Skip to content

Commit e9800d5

Browse files
sdfgeoffozkriff
andauthored
N17: Swoop (#429)
* Wrote about the swoop game that I made, and some of my thoughts on making it * N17: Swoop: 1st person, split into 2 sections Co-authored-by: Andrey Lesnikov <[email protected]>
1 parent 18d55d4 commit e9800d5

File tree

3 files changed

+287
-0
lines changed

3 files changed

+287
-0
lines changed

content/posts/newsletter-017/index.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,38 @@ Full December's devlogs:
308308
[learning-art]: https://reddit.com/r/gamedev/comments/k8i773/how_i_a_mere_programmer_am_learning
309309
[@chinedufn]: https://chinedufn.com
310310

311+
### [Swoop][swoop-itch]
312+
313+
![Doing donuts while being overtaken](swoop.gif)
314+
_Getting lapped by purple? - don't worry, it happens to everyone_
315+
316+
[Swoop][swoop-itch] by [@sdfgeoff] is a procedural racing web game
317+
written in Rust from scratch.
318+
319+
> I've tried to make games in a variety of engines, but invariably got frustrated.
320+
> So I decided to throw out the engine and find out what makes game-making so complex.
321+
> It turns out that the stuff below the game engine is only slightly less friendly
322+
> than the stuff above it.
323+
>
324+
> All up this game was a large experiment:
325+
> I'm not all that familiar with Rust, it was my first go at targetting WASM,
326+
> I've never used WebGL before, and my linear algebra is worse than I thought.
327+
328+
[The source code is available here][swoop-source] and
329+
you can also read about about the process of making the game
330+
here: ["WASM Games From Scratch"][swoop-book].
331+
332+
You can also play the game's [prototype version done in shadertoy][swoop-shadertoy]
333+
and check out a [prototype of the next @sdfgeoff's project][swoop-next]
334+
that is based on raymarching giant caves.
335+
336+
[swoop-itch]: https://sdfgeoff.itch.io/swoop
337+
[swoop-source]: https://github.com/sdfgeoff/wasm_minigames
338+
[swoop-shadertoy]: https://shadertoy.com/view/WlScWd
339+
[swoop-book]: https://sdfgeoff.github.io/wasm_minigames/a_first_game_swoop.html
340+
[swoop-next]: https://shadertoy.com/view/tltyRB
341+
[@sdfgeoff]: https://github.com/sdfgeoff
342+
311343
### Harvest Hero
312344

313345
![Harvest Hero Gameplay](harvest_hero_snippet.gif)
@@ -609,6 +641,36 @@ in [this Amethyst forum thread][thesis-thread].
609641
[amethyst]: https://github.com/amethyst/amethyst
610642
[thesis-thread]: https://community.amethyst.rs/t/undergrad-thesis-on-game-scripting-for-legion/1753
611643

644+
### [WASM Games From Scratch][wasm-scratch-book]
645+
646+
![sprite transformation explanations](wasm_sprite_transform.svg)
647+
648+
[@sdfgeoff] published a book that describes the process
649+
of building the abovementioned web game [Swoop][swoop-itch] from scratch:
650+
["WASM Games From Scratch"][wasm-scratch-book].
651+
652+
> Game engines are huge behemoths, and contain algorithms
653+
> for handling everything and the kitchen sink.
654+
> While that's normally good, if you want to do something small,
655+
> or possibly do something outside the bounds of a normal game enine,
656+
> you suddenly have to learn how to do everything yourself.
657+
>
658+
> Or perhaps you just like the "type it and run" style of development
659+
> for shadertoy shaders and want something similar
660+
> that you can host on your system as (pretty much) a single file.
661+
>
662+
> Either way, this book chronicles my adventures
663+
> into creating WASM games from scratch in Rust.
664+
665+
Some of the topics covered by the book:
666+
667+
- Building for WASM, event handling, WebGL and shader basics.
668+
- Map generation using a Fourier series.
669+
- Camera positioning and drawing a map, ships and engine trails.
670+
- Ship physics and simple AI.
671+
672+
[wasm-scratch-book]: https://sdfgeoff.github.io/wasm_minigames
673+
612674
## Library & Tooling Updates
613675

614676
### [Thermite SIMD]: Melt Your CPU
1.56 MB
Loading

0 commit comments

Comments
 (0)