You've been selected for a chance to get one year of subscription to use Wikipedia for free!
As mentioned in the last Arsenal Development update, we have been moving in the direction of using our own clean core for Arsenal instead of building on the Amethyst game engine, but the recent announcement of the Bevy game engine could mean an incredible boost for our development of Arsenal.
Bevy has been worked on by an individual developer, Carter Anderson, for many months and has just recently been announced. Carter has taken much inspiration from Amethyst and the clean design for his new engine essentially matches what could be envisioned for an "Amethyst 2.0" engine. ( See this discussion for more on what this means for Amethyst and its future collaboration with Bevy ) The engine is looking, quite frankly, very impressive. With a strong focus on ergonomics and quick compile times, it is bringing a great developer experience to the lessons learned over years of Rust game engine development.
What does this mean for Arsenal, though? If no major blockers show up in the near future, we are going to experiment with Building Arsenal on top of the Bevy engine. Bevy is already doing much of what we wanted to do with Arsenal core and by building on Bevy we will get to share resources and avoid duplicating work.
Here are some of the major points that have made us consider Bevy for Arsenal.
Bevy is just coming out and has no stability guarantees that it has to worry about breaking. Amethyst already had many users and getting to a more stable point where they are not breaking their users' code with new releases was becoming increasingly important.
Bevy, though, is brand new and now is the time to change and experiment with things. This gives us a chance to influence the engine and help make sure that it will fit our use-cases while not having to be super paranoid of potentially radical changes. This has many of the advantages of writing it ourselves, but saves us a ton of work.
One of the major things that we wanted to do with Arsenal was to build its renderer on WGPU, and Bevy is already using WGPU for rendering. Using WGPU will make it easier for people to contribute to the renderer because it allows you to write rendering code in 100% safe Rust. Also, WGPU is, in our opinion, going to grow into the de-facto Rust graphics back-end. As WGPU and its community grows, it will only be a benefit to Arsenal, allowing us to piggy-back on the work of hundreds of developers.
In short Bevy will allow us to get months or even years ahead on Arsenal development. It has a relatively solid vision for its development and the maintainer is sensible and open and shares many of our goals. We are extremely excited to start working together on this and seeing what we can accomplish.
So what's next? As it has been for a while now, the next thing is scripting. Before we can get Arsenal games to do anything, we need to know that you can write game code in an easy scripting language such as Python, and that we can extend that scripting support to Rust, logic nodes, and anything else.
We have opened an issue on the Bevy GitHub repo to discuss scripting and we have started work on the first steps necessary.
If we can establish basic scripting support in Bevy, then we can work on porting Arsenal to use Bevy instead of Amethyst and then allow you to actually create an Arsenal game inside of Blender!
We are also working on finishing off an initiative to get OpenGL support in WGPU. This will help Bevy and Arsenal run on older computers without the latest graphics APIs.
Currently all Arsenal development is happening in our free time. If you want to help Arsenal become a reality you can sponsor us on GitHub.
Many thanks to our first sponsor, @nickfloyd! It means a lot to us. We hope to give back by producing an amazing Open Source game engine for beginners and experts alike.