I think there are three levels of things we need to agree on as the Amethyst Developers*:
- “Why” - what is our shared motivation that never changes.
- “How” - the general strategy we use to get there.
- “What” - the specific thing we are going to ship next.
*How do we refer to ourselves, to those of us working on Amethyst? Most of us are not part of the non-profit Amethyst Foundation via employment or legal association, so I hesitate to use that as the name of the group. Amethyst Developers? Amethystians?
Another name for this is “the vision” or “the dream” or “the big audacious goal”. This is WE believe and are always reaching for. It is specific enough that we can use it to judge whether something
That’s getting close! We need a “why” that resonates with the group. What about this?
We make open source tools to bring game development dreams to life.
The why we agree on should constantly guide our internal decisions, our marketing, and affect everything we do. It’s worth spending some time and getting it right. It is not branding. It is not a slogan. It is not something that gets changed with our moods. It is about who we are and why we are doing this. It will be evident in everything that we do and it will be a constant attractive force to those who it resonates with, both internal developers and “user” developers.
Can you ever be finished making all the open source tools necessary to bring all game development dreams to life? Hopefully not. It is best for the “Why” to be open-ended. A never-ending journey.
This is how we’re going to accomplish some of our why. Something we’ll put a lot of energy into over a long time. I think we’ve got this one nailed down for the next several years: we’re making a game engine called Amethyst. You may have heard of it:
In the long term, we may change or add additional hows in ways that fits with our why. This is a relatively rare, though.
Side note: I think our ECS is just a sidenote of our How. An important sidenote, to be sure, but I don’t think it’s worth obsessing over. I don’t think game developers choose an engine based on the technical merits of a single subsystem, no matter how impressive or fundamental it is to our architecture. Our “Data-driven game engine…” tag line hints at the ECS and more, which is fantastic. I would like to better define what exactly “data-driven” means to us in some other thread some other time. ECS? Hot-loading? Prefab? Lots of configs? External files?
Getting people to agree on what to focus on next is important. It enables making rapid progress in a specific direction. At the moment, I think the group of people actively working on Amethyst is small enough to be considered a single group, so we just need a single what. (If we had multiple teams, we’d need a bigger what for the organization and a smaller what for each team).
Right now, “switch to Legion” is our de-facto what. I’d like to be intentional about picking the next what before we get there.
“2D features first” is an attempt at proposing a next what. I anticipate that any 2D features we provide would be implemented in the context of a 3D engine. It is most definitely not a suggestion for making Amethyst a 2D only engine. My proposal is not the only option. We could do something else! I don’t have any better ideas at the moment. Perhaps some of you do?
Most of our daily life revolves around the what. Having an inspiring why and a great how makes it easier to pick a what to work on that feels satisfying and fulfilling.