An honest critique of Flowlab

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.

@grazer @JR01

10 Likes

I honestly 100% agree.

2 Likes

One thing I’d like to tag in here, I’d really like a search bar for behaviors. We already have groupings for them, but as we’re getting more behaviors added to flowlab it becomes a bit difficult to find specific ones sometimes, so I think a search function, especially for new users would be absolutely amazing.

4 Likes

Great thought. I had never considered a search bar.

2 Likes

I’ve only had a year of experience with this stuff, yet I’m a little short of knowledge, but I haven’t really had a lot of complaints with the coding (asides from updates kinda/sort of/maybe ruining some games) since I’m sort of aspiring to try and adapt to new engines.

something else that would be cool is if both the free and indie users got a complete overhaul of new features.

Or better yet, when an indie and free user got into a collaberation, the objects used by indie won’t have any effect onto the free users limit (Ex: Indie has used 20 objects, but since free user hasn’t made any, he’ll still have 50 objects left)

2 Likes

yeah, you have no idea how annoying that can be at times.

That would just be giving out indie access, indie users can have unlimited games with teams. The alternative to that argument is not allow free users to be in teams.

5 Likes

oh, ok then. I just wish I had my own computer that wasn’t a Chromebook.

One of the biggest issues I’ve noticed is the fact that a free user can easily bypass the game limit with alternative emails.

Because those are alternate accounts.
Which you can do I suppose but several things is that you get very unorganized on which accounts have which games, and you still have a 3 game, 50 objects and 5 level limit. Honestly if you make more than 3 accounts, I would recommend trying to get an allowance or something to get indie to keep everything together and make more on what you want to do.

5 Likes

I have 50 bucks, but I cant buy anything using a school Chromebook.

use the money for the dlc for sonic x shadow gens

Same here, and I have yet to create a bank account

I don’t have a switch account, also off-topic.

1 Like

I said before that it was annoying how some of the updates change the coding which shouldn’t sound too bad, but I know a few people who had to almost completely change a few things from their games.

1 Like

Please keep off topic in off topic.

3 Likes

sorry

Updates that change how behaviors work or function are versioned to try to help prevent games from breaking. This isnt always the case depending how integration is with the engine, but in most cases they are versioned.

5 Likes