Take a GUI object and it's decendents and make the final product usable on an ImageLabel

I’m making a new game that requires a large amount of frames on the screen at one time to create sprites.
The only issue is, it is INCREDIBLY laggy.

The reason I need to do it this way is because players will be able to create their own sprites in the game. (Player moderation will be used, also, I will most likely have a team of people that go through the assets that are created by players and have them moderated that way as well).

My proposed solution to this issue is that we should be able to select a frame and take everything that the player sees rendered inside of that frame (Decedents, etc.) and make that result usable in an image label.

This would greatly cut back on CPU costs for 2D games that use similar methods to this.

I made an image for this a while back.

The image explains pretty much everything, so hopefully someone sees this and makes it a feature :slight_smile:

Thanks for taking time to read this post and have a great day.

4 Likes

This is your best bet.

Now, before you ask ‘why not simply what you’re asking’? I don’t know other 2D games that use this on Roblox, and it doesn’t seem like a widely used case. Vector graphics drawing looks like the ideal way to go and if you still want your way of drawing pixelated images with frames you can always get it’s properties and bake it into a single canvas object without all the lag.

Here’s the feature thread as well.

Alright thank you! I just hope it gets added…

Why are you implementing an image editor instead of just letting people input decal ids?

Roblox Decals wouldn’t look good as tiles in the game (it’s like a tile based platformer). Also, decals wouldn’t work with my collision system.

What? A decal is just an image. You take the user’s input and plug it into an ImageLabel or whatever.

No no no, my point is that

  1. People would just use really cruddy, resized images (The image editor fixes this because the tiles would most likely have “pixels” that aren’t just 1x1 in size. Tiles would have pixels that are ranging from 2x2 to maybe 8x8. The tiles are 32x32. Also, users would be able to rate the tiles and that would allow the higher quality tiles to get shown to more users than the bad ones.
  2. My collision system is going to be reliant on the specific pixels of the tiles, not just the box that the tile occupies. I would most likely make the collision boxes BEFORE making the “image”

I don’t see a large use-case for this because the common work-around for this is just taking a picture of the GUI being made and uploading it with the maximum resolution.
And that works great for the most part.

The problem with that lies in that players will be creating the sprites, not me. And these sprites need to run at a non-garbage performance rate.

I understand what you are saying but it just doesn’t work for my current situation.

But that’s the thing though, for features to be added in I’m pretty sure you need a non special-case feature.
Like why would ROBLOX put in developer time for a feature that would be seldom used?

ALSO Suggestion: Why can’t they just use their own decals as the sprites in your game?

It’s so that the game can have a consistent style/uniformity. It would be quite the mess with people using 1-1024x1024 decals or having fully transparent/invisible sprites.