Book review: Practical Rust Projects: Building Game, Physical Computing, and Machine Learning Applications

As I’m starting my journey in Rust land, I was curious aout game engines, which is why I started reading this book. On top, I have a keen interest on electronics and machine learning, so all boxes were ticked here.

Discussion

As the book indicates, there are mainly three projects in the book, even if there are a few additional chapters (that I don’t remember, even if I do remember a little bit about the GUI example…).

The first project is actually the biggest of the book and consumes most of the space. It tackles game creation in Rust with the Amethyst crate. The first interesting aspect is that Amethyst is build on top of an ECS framework, which is very different from my usual reads on game engines. I wish more time was spent on the topic, but then at the same time, it’s not a book dedicated to this approach and there are lots of documentation available online. The example presented is from the official tutorial, so it would have been interesting to get something different. Maybe more state, or how to handle them, or handling the mouse. On top of this, the ECS framework under Amethyst will soon change, so there is a lower incentive to read this book in a year.

The second chapter is actually on interaction with hardware, especially the Raspberry Pi input/output pins. I’m not sure why it’s called physical computing, as for me, it’s called digital electronics. The chapter was still interesting, and could have been deeper with more examples or dedicated schematics to try.

The last chapter on machine learning was not great. First Artifical Intelligence is the global field that encompasses Machine Learning and other domains like Data Mining. So the definitions from the book are flawed. There are still interesting examples, some simplifications on the two main domains (I think we can argue now that reinforcement learning is just as important as unsupervised and supervised learning), but then still examples with existing crates. As often with people that are experts in the domain, the code may be interesting, but it’s not the most important part. What is important is why we write the code and in machine learning why we are using a specific model with a specific data set and a training methodology. This is missing from the book and will just help creating bad data scientists.

Conclusion

I think the book should have be split in different books, each one would have been enhanced with more tutorials, more explanations. Typically, for Python, the book I contributed to, is dedicated to machine learning. We spent time creating examples, modifying others and explaining what we were doing and why we were doing it. This part is missing in the first and last parts of the book (the digital electronics section was explained enough, just too small and not meaty enough).

So just read the documentation of crates instead of buying this book. You will learn just as much, or even more.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.