Yesterday (January 26, 2019) I pushed versions 0.1.0 and 0.2.0 of TimberWolf to GitHub. Neither of these are true releases, and they are both not production (or even development) ready, but they are significant in that they represent the move from C++ to the Rust programming language.
TimberWolf 0.1.0: The C++ Update
This release represents the first and final release of the C++ edition of the engine. It does have a functional graphics engine, although the API is far from production-ready. This release exists as a reference to be used in the Rust edition to guide the API design and ensure the engine remains on the trajectory designed for it. Going forward, however, C++ will no longer be used in the TimberWolf engine.
TimberWolf 0.2.0: The Rust Update
This update, released on the exact same day as 0.1.0, is the beginning of the move to the Rust programming language. This version has a probably functional log subsystem, and a Game struct. That’s pretty much all it does for now, but new features are forthcoming. This version is available on crates.io as “timberwolf”.
The Future on Rust
I made the decision to make the (likely painful and difficult) move to rust while the engine is still young, because delaying any longer would only increase the difficulty of the move. From the start, I thought that Rust would be an optimal language for game development, but as somebody already familiar with C-style languages and Java-style object oriented languages, using C++ seemed to be easier to me.
Shortly after beginning work on the engine, I started my own company for game development, and I realized that the time that it would take to learn such a new and different language would slow me down more than I deemed acceptable, so I continued the C++ path.
Don’t misunderstand this change, I love C++, and I believe that I always will. But I think Rust will be a better option in this case, and probably most cases where C++ has excelled in the past. The better management of memory and threads is one particular area that I’m quite excited to make use of.
So going forward, Rust is the way for TimberWolf. I am still learning the language, so development will be slow for a while, but I think the move will produce an awesome game engine, and the goal of learning a new language will be a great motivator for me, and hopefully other developers who want to learn Rust.