I can't help but be heavily skeptical of approaches to a (traditional) roguelike that use ECS. The idea is very entrenched in the rust gamedev community, but for a turn based tile based game there's extremely little benefit and a lot of added complexity. Bob Nystrom has an excellent talk on roguelike architecture [0] and rust as a language itself doesn't prevent any of these approaches. If anything, the existence of sum types as enums make many of them all the more powerful.<p>[0]: <a href="https://www.youtube.com/watch?v=JxI3Eu5DPwE" rel="nofollow">https://www.youtube.com/watch?v=JxI3Eu5DPwE</a>
Consistently interesting content coming out of Pragmatic Bookshelf publishers these days. Recently, I have particularly enjoyed the Ray Tracer Challenge (<a href="https://pragprog.com/titles/jbtracer/the-ray-tracer-challenge/" rel="nofollow">https://pragprog.com/titles/jbtracer/the-ray-tracer-challeng...</a>) and Web Development in Clojure (<a href="https://pragprog.com/titles/dswdcloj3/web-development-with-clojure-third-edition/" rel="nofollow">https://pragprog.com/titles/dswdcloj3/web-development-with-c...</a>)
I started reading this book a few months ago. It is pretty good, I really like learning while working on a "sort of real world" project.<p>However, being completely new to Rust I find that the author doesn't spend enough time discussing the language, it's syntax and nuances. It is hard to talk both about rust alongside video game design techniques.<p>I put it down after reading 1/4th of it. I'm planning to spend some time on a book that focuses on the language first and then get back to it ;)
Looks pretty good! I will say, as someone who programs in their day job and has been trying for ages to get into game dev as a hobby, love2d [0] has been excellent for getting started. My github has a few repos of previous attempts at making simple games (in .cpp, .rs, etc) which I abandoned from the amount of work it took.<p>If you're in a similar boat, I would recommend checking the framework out. Lua's a pleasure to program in and you can focus on the game development itself instead of getting bogged down in the details of rust / cpp. In fact I've been thinking lately about how easy it would be to use it for things other than games -- quick prototyping of graphical simulations, psychophysics experiments, etc.<p>[0]: <a href="https://love2d.org/" rel="nofollow">https://love2d.org/</a>
I don't think most non-rust programmers know what ECS is.<p>ECS is a pattern to manage composable logic and shared behavior. very very loosely like splitting logic in to class level and object level.
I worked through this book a couple of weeks ago and I had a blast. I heartily recommend it to roguelike fans that haven’t tried out participating in the 7DRL game jam yet.
Book is also online: <a href="https://bfnightly.bracketproductions.com/" rel="nofollow">https://bfnightly.bracketproductions.com/</a><p>and on Github: <a href="https://github.com/amethyst/rustrogueliketutorial" rel="nofollow">https://github.com/amethyst/rustrogueliketutorial</a>
It is a very good learning guide. Keep in mind I am someone who negotiates the borrow checker by adding-and-removing */&/to_owned() rather haphazardly.<p>I found it especially satisfying to port the game from racketlib/rltk to bevy afterwards.
It's a great book but I struggled with an additional overhead of ECS library usage. Don't know if it would have been better just roll out it's own simple logic for ECS , but then it would probably double the length of the book.
His explanations seem very clear and simple, I'd dig into it, just to get a better understanding of rust, and the game dev part also seems do-able, unlike other authors where they dive into some complex pieces causing frustration to the learner.
I recently finished this book and highly recommend it. Very fun stuff, a decent introduction to rust, and does a great job of setting the reader up for exploring further. Kudos to Mr. Wolverson.