Rust, Bevy game engine, and Data-Oriented Design
Rob is diving into Rust and feels like he has to relearn everything. JD has been diving into game engines, and has set up Bevy for their project. He's hacking around to get a gRPC API set up within the engine, and is blown away by learning about Entity-Component-Systems and Data-Oriented Design.
Rob is learning Rust, and feels like he's total beginner again. Rust's concept of ownership and its handling of strings are just different than any other language he has worked with, but JD ensures him that this is how everyone feels when starting with Rust...
JD spent the last week working on their game, starting with rewriting everything. He explored using a game engine instead of React for the visualization, and really likes the approach. He set up the new game engine Bevy, and hacked around to integrate it with a gRPC API. One problem he didn't anticipate is that querying state in the game can only happen during the game's core loop. Running at 60Hz, this means any API request takes at least 16ms. 😫 This will require some research in the future...
Diving deeper and deeper into game design and development, JD is amazed and inspired by the experience of the community. Looking specifically at user experience and Data-Oriented Design. For anyone who's interested in this, here are a few talks JD watched this week:
- Understanding Data-Oriented Design for Entity-Component-Systems (Unity at GDC '19)
- Building a Data-Oriented Future - Mike Acton
And here are the two blog posts mentioned in the episode:
- Introducing Bevy
- Specs and Legion, two very different approaches to ECS
Sorry for the audio quality in this episode. We had a small technical glitch and lost one of the high-quality recordings.
Stay in touch
Jan David: https://twitter.com/0x6a64