Some days ago, I was asked on discord to give a little return on my experience with amethyst, and this morning, I was suggested by erlend_sh to copy it here to allow it to be a little more permanent than a chat history, so here it is (please forgive my bad english).
10:26 PM] web::shinra: So, I tried to think about my experience as a whole, @Moxinilian @Khionu , and I think some part of it can be of interest
[10:27 PM] web::shinra: at first, I feel like precising that I feel like amethyst is not really a game engine, but (game engine) engine
[10:30 PM] web::shinra: I mean, on a videogamedesign perspective, all of what is aviable is very low level
[10:30 PM] web::shinra: «i can draw a sprite» «I can build entities» «I can load ressources» etc.
[10:31 PM] web::shinra: then the boilerplate is not a problem, because you have to abstract it to be able to make a complex game with it
[10:32 PM] web::shinra: I don’t feel like an external tool for such an engine is a hard problem, for very good reasons
[10:32 PM] web::shinra: I feel like*
[10:34 PM] web::shinra: every tool give a way to interact with the problem it’s supposed to solve, and the versatility of amethyst make it hard for me to imagin a tool that will not «cut» the possibilities
[10:36 PM] web::shinra: unity or godot are relatively good at what they do, but tend to bend the designer in a specific direction, and thus influence the game you make with them, especialy if you don’t have a strict spécification beforehand
[10:38 PM] web::shinra: so, in that point of view, amethyst is the most interesting engine I heard of
[10:40 PM] web::shinra: it give a computational paradigm through specs, and does not force you to adopt the way the creator think you should build game
[10:40 PM] web::shinra: but it mean that you have to be a good programmer to architect a game practicaly with it
[10:42 PM] web::shinra: for a 2d game like mine, I have to engineer a way to get the sprite to draw in the right order
[10:42 PM] web::shinra: it’s not that hard, but it’s also the kind of stuff which badly done, would cause massive refactoring later
[10:45 PM] Khionu: As I’ve understood it, it’s the eventual goal to have Amethyst be usable with the same ease as Unity etc, but modular enough so you can use only what you want.
[10:45 PM] web::shinra: I’m not sure unity is as easy as most people think
[10:46 PM] web::shinra: it’s easy to do things up to a certain level of complexity, and after that unity get in your way
[10:47 PM] web::shinra: it’s something SPECS allow to overcome, for example, by separating gamplay concern from representation concern
[10:47 PM] web::shinra: (which is hard to do if your game engine see a game state as a graphic scene)
[10:47 PM] Khionu: I just realized, this conversation is more appropriate for #general ￼
[10:49 PM] web::shinra: yhea, you are right, but I’ll finish my first thought here to keep it one place, and we may continue in the right place after that, if you agree
[10:50 PM] web::shinra: to relatively conclude, I would say that what I miss in amethyst is more gameplay level stuff more than scene level ones.
[10:51 PM] web::shinra: I mean, having a sort of entity map is something you allways need to build a 2d game
[10:53 PM] web::shinra: then, I would be happy with some elementary bloc allowing to easely build and extend such stuff
[10:54 PM] web::shinra: (I mean, on the global computational flow side more than on a level editor)
[10:58 PM] web::shinra: and I would say that some stuff to allow a functional approach decoupling gameplaystate from represenationstate (and a communication paradigm beetween them) could be a good way to show how stuff can be built with amethyst without hanging yourself at some point
[10:59 PM] web::shinra: sorry, this return was messy, but that’s about it