Hello all,
Rambling
You may know me, or you may not. I am one of the older users of the Flowlab game engine, starting way back eight or nine years ago. I was a total buffoon and did not make many good projects at all. Since then and primarily due to this engine’s openness, I have pursued Game Design as a hobby, degree choice, and eventual profession. I have learned the basics of GameMaker and Blender, am dabbling in Unity and Unreal, have programmed in c++, js, GMcode, Lua, and python, and have nearly completed two major games. Simply put, I have had a lot of experience in the game design world and coming back to flowlab makes me thankful for such a resource. As such, I hope to see its continual improvement and growth. Below are my honest suggestions after plenty of thought and experience, and although I am by no means an expert in game engines, I think these critiques would objectively enhance the user experience. Thank you for reading my ramble, and here are my thoughts.
Sprite Editor
The Sprite Editor is shockingly well made, even in comparison to professional game engines and AAA editors. Everything it was intended to do it can do, and I won’t complain about the 32-pixel size or the sprite orientation. It works. However, there are a few issues with the controls:
- Hotkeys. After using pixilart.com and GameMaker’s native app for a while now, not being able to hit draw, eyedropper, and bucket from the WASD position drives me crazy. Even if the default isn’t changed, at least give us an option to change them!
- Panning. In every editor I have used there has been a hotkey for moving that is reasonable. Middle mouseclick or alt+LMB would make this so much more livable for larger sprite editing.
- An auto-mapper for importing animations would be super awesome but absolutely not a necessity. I do not expect to see it but if it came that would be incredible.
Code
A lot of game engines have a block code and a scripting option, and while I and a select few others would love to have a go at this (I think JavaScript?) code, I understand that this is not the intention of Flowlab. Instead, here are my thoughts on the preexisting engine:
- Proximity. This block is super useful but the lack of shaping it is an arbitrary technological barrier. Being able to stretch and reshape the proximity shape would be incredibly helpful (e.g. ground detection, view radius).
- Raycast. The raycast alone is excellent but colliding with non-colliders has driven me insane. Please, please add an option to only check for certain collision groups! Coding it manually obliterates any hopes of optimization. Saying “stop at first ___ object” would also be epic but once again unlikely to actually happen.
- In View. I would love it if we could make objects activate shortly after they are inside our view, not just before. This, to my understanding, which could be measly, would be an easy implementation. The primary reason I hope for this is so my lighting system won’t catch my computer on fire.
- Degrees. Just a random note that you cannot input a negative degree angle. This could easily be added and in fact already works in-game, just not in-editor.
- Globals. Having a “local get” for globals is long overdue. Everything else would be things I would think makes the engine better. Not having this is just awful. Having it activate multiple times per frame and having to put switches on everything is a waste of time.
Concepts
The chances of these being implemented are incredibly slim but I have to beseech the great cat in the sky nonetheless. The level of quality they could grant us all is invaluable.
- Object ids. We already have texts, arrays (bro why call em lists), and numbers. Having the ability to grab object and object type IDs and send them to raycasts, extractors, proximities, and the like would DRAMATICALLY improve efficiency and the robustness of the engine. Out of the two this is less needed, but regardless having some way to dynamically change object-specific blocks would be super helpful.
- “Run As” groups. This is a MUST HAVE. Let me repeat that, please Grazer, MUST HAVE. Every coding language I have worked with, even outside of game engines, lets you send code to other objects. Having to make an entire message function that removes your ability to use messages for that block at all is insanely frustrating. AI cannot communicate with pathfinding and LOS at the same time, you cannot send multiple values back to multiple targets in one frame consistently, etc. This is loosely tied to the idea of object IDs, but honestly even simply incorporating this into the “last raycasted target” would work wonders for efficiency and performance.
- Fonts. The ability to upload your own fonts would be incredibly useful!
Thank you very much for listening, and I hope that this feedback can help this place I so dearly love prosper for many more years to come.