Hello everybody!
Me and my team at Katharos Technology are are starting a project to provide Amethyst with a full Blender integration, along the lines another game engine, Armory3D. We’re calling it Arsenal.
Me and my team have been planning on using Armory3D for our games, but after almost a year of being in the community and contributing to the engine, some concerns were brought up about the ability of Armory to scale to larger games because of its single-threaded core; something that is essentially irremediable without a complete rewrite of the core.
My team has big ambitions for our games and having limitations on the size or kind of game that we can make with our engine is not something that we can be satisfied with. After getting deep into Rust programming in the last month, we are convinced that Rust is the best language for writing a game engine and that led us to Amethyst.
Amethyst is very much in line with the vision that we have for a game engine. Written in Rust, highly parallel, built on great existing tools where applicable and building what doesn’t exist, all while trying to beat the big names in game engines such as Unreal and Unity.
The more I look into the things that will be necessary to create the engine that we are imagining for our games, the more Amethyst seems to be working towards similar goals. We need to be able to target consoles and web, support scripting languages, and provide a visual scripting solution; all things that Amethyst is already seeking out.
The biggest missing component of Amethyst, for us, is our favorite thing about Armory3D: the full Blender integration. To be able to build a scene in Blender, click a button, and see it instantly exported and ran as a game is an amazing experience. You can completely skip the potential nightmare of asset import-export. You also get to steal Blender’s amazing user interface and avoid having to build a competent editor. By using Blender you get a built-in modeler, rigger, sculpter, and animator.
Our goal is to provide an experience that is just as amazing as Armory3D’s for Amethyst. We want to make game building as easy and accessible to anybody as possible while not placing any limits on where you can take your game. We are planning on building Arsenal and contributing to Amethyst to make it happen.
There are a couple of things in Amethyst that are WIP that we will need for Arsenal. I may want to help with them if there is room for contribution: scripting support, and OpenGL support.
Scripting
In order to allow making games easily without having to re-compile Amethyst for every blend file that you open and try to run, we are going to need scripting support. I’ve read over the RFC and I think that it sounds like a good plan. If we can pull off all of the benefits of the plan outlined in the RFC I think it will be pretty amazing.
I couldn’t find a tracking issue for the RFC, which, if I understand the process, should have been created after the RFC’s PR was merged. I wanted to know if there was anything that was tracking that progress. I’d seen some threads on this forum, but nothing official.
Either way, I would like to know if there is any way that I might be able to help with that. I’m fairly good with Rust, but I wouldn’t have a great understanding of the Lua VM or how to integrate that. I might be able to help with the Rust driver, which would be sufficient for me to start using ( I don’t need Lua immediately ). I’m also fine just collaborating on design. Me and my team are good at solving technical problems.
OpenGL Support
A big deal for my team is being able to support hardware that is not necessarily extremely modern. We’re not wanting Amethyst to support ancient computers, especially where it would hurt the engine for more modern machines, but supporting OpenGL is important to us because it can run on pretty much anything and we want our games to be able to support smaller computers with low graphics and larger computers with great graphics.
I don’t really have much grasp on what the workings of any graphics API are, but I learn quickly if I’m given documentation or other learning material.
Also, we’ve still got to write the Arsenal Blender plugin, so we’ve got other stuff to work on if somebody is already working on those features and it would be more efficient to wait instead of trying to contribute.
Anyway, we’re really excited to start working with Amethyst and starting the new Arsenal project. We are writing documentation as we go and putting it here. You can find the source code on GitHub here. We have just started development so thing are completely experimental and nothing does anything yet, but all of our progress will be put on GitHub and in the docs as we go. The current plan is to dual license the project under MIT and Apache 2.0.
We’re open to any feedback you might have and are looking forward to collaborating with the Amethyst community!