From 935370e13f1e574116531823cb66828b2c0eb36b Mon Sep 17 00:00:00 2001 From: Erlend Sogge Heggen Date: Fri, 5 Feb 2021 11:19:56 +0100 Subject: [PATCH 1/3] Shotcaller N18 --- content/posts/newsletter-018/index.md | 29 ++++++++++++++++++ .../posts/newsletter-018/shotcaller-full.png | Bin 0 -> 40678 bytes 2 files changed, 29 insertions(+) create mode 100644 content/posts/newsletter-018/shotcaller-full.png diff --git a/content/posts/newsletter-018/index.md b/content/posts/newsletter-018/index.md index a9649499c..020b66ea4 100644 --- a/content/posts/newsletter-018/index.md +++ b/content/posts/newsletter-018/index.md @@ -398,6 +398,35 @@ This month's major updates include: [wor-site]: https://www.anthropicstudios.com/way-of-rhea [wor-trailer]: https://www.youtube.com/watch?v=PRifdHcaswc + + +### [Shotcaller] + +![Custom art assets for Shotcaller](shotcaller-full.png) +_An art mockup of some Shotcaller action._ + +[Shotcaller] is a minimalistic MOBA. It focuses strictly on macro-play with few actions-per-minute, leaving only room for grand strategy decisions. + +The game is made with [bracket-lib](https://github.com/thebracket/bracket-lib) and our own [custom game engine](https://github.com/jojolepro/minigene) and [Plank ECS](https://www.jojolepro.com/blog/2021-01-13_planks_ecs/). + +- [Released v0.4.0](https://www.reddit.com/r/rust_gamedev/comments/kveih9/shotcaller_mobagame_v040_new_leaders_ui/); +- First batch of custom art assets completed; will be implemented in the month to come. +- [Alchemist leader](https://github.com/amethyst/shotcaller/pull/29) +- [Axe leader](https://github.com/amethyst/shotcaller/pull/30) +- [Rubick leader](https://github.com/amethyst/shotcaller/pull/34) +- [Centaur leader](https://github.com/amethyst/shotcaller/pull/36) +- [Bristleback leader](https://github.com/amethyst/shotcaller/pull/40) +- [Shadow Fiend leader](https://github.com/amethyst/shotcaller/pull/35) +- [Added gold system](https://github.com/amethyst/shotcaller/pull/31) +- [Headless option](https://github.com/amethyst/shotcaller/pull/44) (in preparation for AI/ML experimenting) +- [Added Fog of War](https://github.com/amethyst/shotcaller/pull/41) +- [Mouse support](https://github.com/amethyst/shotcaller/pull/46) + +[Shotcaller]: https://github.com/amethyst/shotcaller +[#shotcaller (Discord)]: https://discord.gg/qvJyTYM + + + ## Learning Material Updates ### [Exploring WebSocket with Rust and Tide] diff --git a/content/posts/newsletter-018/shotcaller-full.png b/content/posts/newsletter-018/shotcaller-full.png new file mode 100644 index 0000000000000000000000000000000000000000..b30629eed51b4f5a51429e6b461dc145bfec6045 GIT binary patch literal 40678 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 Y@amSb!Dr`%;GaYK#s_luJKXyJ0Ag`bY5)KL literal 0 HcmV?d00001 From 937546ae53da9c42113094ba08ca09fea59a0e30 Mon Sep 17 00:00:00 2001 From: Joe Clay <27cupsofcoffee@gmail.com> Date: Fri, 5 Feb 2021 13:57:46 +0000 Subject: [PATCH 2/3] Update index.md --- content/posts/newsletter-018/index.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/content/posts/newsletter-018/index.md b/content/posts/newsletter-018/index.md index 020b66ea4..67177187f 100644 --- a/content/posts/newsletter-018/index.md +++ b/content/posts/newsletter-018/index.md @@ -398,19 +398,21 @@ This month's major updates include: [wor-site]: https://www.anthropicstudios.com/way-of-rhea [wor-trailer]: https://www.youtube.com/watch?v=PRifdHcaswc - - ### [Shotcaller] ![Custom art assets for Shotcaller](shotcaller-full.png) _An art mockup of some Shotcaller action._ -[Shotcaller] is a minimalistic MOBA. It focuses strictly on macro-play with few actions-per-minute, leaving only room for grand strategy decisions. +[Shotcaller] is a minimalistic MOBA. It focuses strictly on macro-play with +few actions-per-minute, leaving only room for grand strategy decisions. -The game is made with [bracket-lib](https://github.com/thebracket/bracket-lib) and our own [custom game engine](https://github.com/jojolepro/minigene) and [Plank ECS](https://www.jojolepro.com/blog/2021-01-13_planks_ecs/). +The game is made with [bracket-lib](https://github.com/thebracket/bracket-lib) +and our own [custom game engine](https://github.com/jojolepro/minigene) and +[Plank ECS](https://www.jojolepro.com/blog/2021-01-13_planks_ecs/). - [Released v0.4.0](https://www.reddit.com/r/rust_gamedev/comments/kveih9/shotcaller_mobagame_v040_new_leaders_ui/); -- First batch of custom art assets completed; will be implemented in the month to come. +- First batch of custom art assets completed; will be implemented + in the month to come. - [Alchemist leader](https://github.com/amethyst/shotcaller/pull/29) - [Axe leader](https://github.com/amethyst/shotcaller/pull/30) - [Rubick leader](https://github.com/amethyst/shotcaller/pull/34) @@ -418,15 +420,14 @@ The game is made with [bracket-lib](https://github.com/thebracket/bracket-lib) a - [Bristleback leader](https://github.com/amethyst/shotcaller/pull/40) - [Shadow Fiend leader](https://github.com/amethyst/shotcaller/pull/35) - [Added gold system](https://github.com/amethyst/shotcaller/pull/31) -- [Headless option](https://github.com/amethyst/shotcaller/pull/44) (in preparation for AI/ML experimenting) +- [Headless option](https://github.com/amethyst/shotcaller/pull/44) + (in preparation for AI/ML experimenting) - [Added Fog of War](https://github.com/amethyst/shotcaller/pull/41) - [Mouse support](https://github.com/amethyst/shotcaller/pull/46) [Shotcaller]: https://github.com/amethyst/shotcaller [#shotcaller (Discord)]: https://discord.gg/qvJyTYM - - ## Learning Material Updates ### [Exploring WebSocket with Rust and Tide] From 6b52b5978fc98f8a8771df6fca5702b65e486e09 Mon Sep 17 00:00:00 2001 From: Andrey Lesnikov Date: Fri, 5 Feb 2021 19:10:24 +0300 Subject: [PATCH 3/3] N18: Shotcaller: Style & fmt tweaks --- content/posts/newsletter-018/index.md | 40 +++++++++++++++------------ 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/content/posts/newsletter-018/index.md b/content/posts/newsletter-018/index.md index 67177187f..3914ae29e 100644 --- a/content/posts/newsletter-018/index.md +++ b/content/posts/newsletter-018/index.md @@ -403,30 +403,36 @@ This month's major updates include: ![Custom art assets for Shotcaller](shotcaller-full.png) _An art mockup of some Shotcaller action._ -[Shotcaller] is a minimalistic MOBA. It focuses strictly on macro-play with -few actions-per-minute, leaving only room for grand strategy decisions. +[Shotcaller] ([Discord][shotcaller-Discord]) is a minimalistic MOBA +that focuses strictly on macro-play with few actions-per-minute, +leaving only room for grand strategy decisions. +The game is made with [bracket-lib], a [custom game engine][jojolepro/minigene] +and [Plank ECS][planks_ecs]. -The game is made with [bracket-lib](https://github.com/thebracket/bracket-lib) -and our own [custom game engine](https://github.com/jojolepro/minigene) and -[Plank ECS](https://www.jojolepro.com/blog/2021-01-13_planks_ecs/). +Recent updates include: -- [Released v0.4.0](https://www.reddit.com/r/rust_gamedev/comments/kveih9/shotcaller_mobagame_v040_new_leaders_ui/); +- [Version v0.4.0 was released][shotcaller-v0.4.0]. - First batch of custom art assets completed; will be implemented in the month to come. -- [Alchemist leader](https://github.com/amethyst/shotcaller/pull/29) -- [Axe leader](https://github.com/amethyst/shotcaller/pull/30) -- [Rubick leader](https://github.com/amethyst/shotcaller/pull/34) -- [Centaur leader](https://github.com/amethyst/shotcaller/pull/36) -- [Bristleback leader](https://github.com/amethyst/shotcaller/pull/40) -- [Shadow Fiend leader](https://github.com/amethyst/shotcaller/pull/35) -- [Added gold system](https://github.com/amethyst/shotcaller/pull/31) +- New leaders: + [Alchemist](https://github.com/amethyst/shotcaller/pull/29), + [Axe](https://github.com/amethyst/shotcaller/pull/30), + [Rubick](https://github.com/amethyst/shotcaller/pull/34), + [Centaur](https://github.com/amethyst/shotcaller/pull/36), + [Bristleback](https://github.com/amethyst/shotcaller/pull/40), + [Shadow Fiend](https://github.com/amethyst/shotcaller/pull/35). +- [Gold system](https://github.com/amethyst/shotcaller/pull/31). - [Headless option](https://github.com/amethyst/shotcaller/pull/44) - (in preparation for AI/ML experimenting) -- [Added Fog of War](https://github.com/amethyst/shotcaller/pull/41) -- [Mouse support](https://github.com/amethyst/shotcaller/pull/46) + (in preparation for AI/ML experimenting). +- [Fog of War](https://github.com/amethyst/shotcaller/pull/41). +- [Mouse support](https://github.com/amethyst/shotcaller/pull/46). [Shotcaller]: https://github.com/amethyst/shotcaller -[#shotcaller (Discord)]: https://discord.gg/qvJyTYM +[shotcaller-Discord]: https://discord.gg/qvJyTYM +[bracket-lib]: https://github.com/thebracket/bracket-lib +[jojolepro/minigene]: https://github.com/jojolepro/minigene +[planks_ecs]: https://www.jojolepro.com/blog/2021-01-13_planks_ecs +[shotcaller-v0.4.0]: https://reddit.com/r/rust_gamedev/comments/kveih9/shotcaller_mobagame_v040 ## Learning Material Updates