Who is Amethyst for right now?

(Erlend Sogge Heggen) #1

In the past 24h there’s been two very similar discussions about the arguably steep learning curve of Amethyst:

“I wanna learn Rust by making games. Is Amethyst right for me?”

From what I can tell, the answer right now should be an honest “no, use ggez”. Feel free to tell me that’s an unfair assessment.

It just seems to me like if you’re new to both Rust and ECS then it’s gonna be tough to learn both at the same time.

Regardless of my assessment, figuring out where the bar is set right now for development with Amethyst is very important. The better we can communicate who it is and is not for, the fewer disappointed users you’ll have.

Related:

By @maruru: (emphasis mine)

What exactly is the point here? What do you want to discuss? How to make Amethyst more appealing for a broader audience? How to improve communication/documentation?

imho, when making a simple game, Amethyst delivers a lot of things which are simple to use… once you wrap your head around all the concepts. Amethyst is not like SFML or similar, which many people creating small games might be used to. It delivers very scalable architecture for games. And it is not C. It is Rust, and Rust adds many hurdles. Things which might be faulty, but still work in smaller applications are not possible in Rust, which might add to frustration. As such I never even considered Amethyst to be made for small games. If you want to create a Space Invaders clone, there are better solutions. And let’s be honest here, none of them is native. Platform independence and system languages are a pain, when WebGL delivers on all modern browsers on all platforms and can be integrated into native apps if necessary (Electron, Cordova, etc.)

So, since you say that Amethyst does not appeal to creators of simple games, then yes, I never thought it should in the first place. Catering to everyone is impossible after all. If you want to appeal to game devs for very small and simple games, then you’d have to abstract a lot of things away and focus on a very different set of features.

As such, I think you should draw a clear line and decide on the audience for Amethyst. Which is not to say that Amethyst cannot cater to small games… just not as Amethyst itself.

Imho, if you want to appeal to game devs with simpler needs, a wrapper library may be created, which does the hard parts and implements the necessary niceties for simplicity, so that simple-game devs just call very simple functions in order to get up and running. Your typical example then should be <10loc to get a window open and render a triangle.

1 Like
(Marco Alka) #2

I want to add @Xaeroxe’s RFC here, which found a consensus in splitting Amethyst into a more abstract engine, and an in-depth framework (what we have today). In addition to what you quoted above, the engine would be even another option, imho.

While I think that the Rishav from your screenshot would still want to give the framework part a try, it would at least make creating Amethyst-based games a lot easier in the long run. The question is, how fast the engine part can be delivered, and if it even makes sense to announce the plan at this point.

Also, it’s important to not make the selection over-complex or even fragment the Amethyst community. Maybe a roadmap and a few defined goals for engine usability relative to developer level would be interesting to have, build from all mentioned arguments (and new ones, if you have some)

(Joël Lupien) #3

I wanna learn Rust by making games. Is Amethyst right for me?

I would reply yes.

I wanna learn game developement by using Rust (Amethyst or not). Is it right for me?

I would reply no.

To me, there’s a clear distinction between just focusing on making a game, and using an engine that is in alpha to make a game. You need either solid use cases or proper experience to do the latter effectively.