news.volyx.in

Leaving Rust gamedev after 3 years (loglog.games)

1484 points by darthdeus · 841 days ago · 972 comments on HN

Article summary

The author, a game developer, shares their experience of using Rust for game development over the past three years and explains why they are leaving the Rust ecosystem. They discuss the challenges they faced, including the borrow checker, indirection, and the focus on technical aspects over gameplay. The author argues that Rust's values, such as maintainability and code quality, are not aligned with the needs of game development, which requires rapid prototyping and iteration. The author believes that other languages, such as C# or Unity, are more suitable for game development.

Main themes

  • Rust for game development
  • Borrow checker and indirection
  • Game development challenges
  • Language choice and ecosystem
  • Programming language design and trade-offs

What commenters say

  • The Rust community can be toxic and defensive when faced with criticism, which deters some developers from using the language.
  • Some developers argue that the benefits of Rust, such as memory safety, outweigh the challenges and are worth the investment of time and effort.
  • The idea that one needs to 'try harder' to overcome difficulties with Rust is not always helpful and can be alienating for developers who have already invested significant time and effort.
  • Other programming languages, such as Haskell, have similar challenges and steep learning curves, but their communities may be more supportive and less defensive.
  • The design of a programming language, including its trade-offs and priorities, can significantly impact its suitability for specific use cases, such as game development.
  • Some developers believe that Rust's focus on technical aspects, such as code quality and maintainability, can come at the cost of other important considerations, such as rapid prototyping and iteration.
  • The concept of 'toxicity' in online communities is complex and multifaceted, and its meaning can be subjective and context-dependent.
  • The evolution of a programming language and its community can be influenced by various factors, including its age, design, and user base.