iolivia / rust-sokoban

Rust Sokoban book and code samples
https://sokoban.iolivia.me
MIT License
155 stars 29 forks source link

Further performace improvements for rendering (image caching) #89

Open NiklasEi opened 3 years ago

NiklasEi commented 3 years ago

First of all, thank you for the awesome book! I just started learning Rust and it was fun and helpful to build the game.

I had the issue that even after implementing batch rendering the FPS were somewhere between 40 and 50, but never 60. After finishing the book I continued playing around with the code trying to reach 60 FPS. I managed by introducing a cache for the images. Now the game reaches 60 FPS after a few seconds. Would this be an addition to the book you would be interested in?

I am not sure if my implementation is well done (really new to rust), but if you are interested: The biggest change is https://github.com/NiklasEi/sokoban-rust/blob/master/src/systems/rendering_system.rs#L56-L63

iolivia commented 3 years ago

hey @NiklasEi, glad you enjoyed it!

yep loading the image every frame is certainly not ideal, this would be an awesome addition, I think we have an issue about this somewhere. the code looks pretty good to me, maybe you can submit a draft PR? I think you can make the change directly in the 3.4 chapter since it's pretty small, maybe just towards the end after the batch rendering changes.