Add a Canvas GUI for painting pixels on the screen

Good to know about the performance part on limited-color animation and static images, but it is undeniable that having an official canvas object will increase the potential for abuse, since it will be more broadly discoverable as a feature and remove part of the technical hurdle. (e.g. the “awesome draw method” part that has to be implemented, and the fact that you might be able to efficiently draw full-color unmoderated animated sprites) There’s a difference between something officially shipping with Studio/engine and something you have to find a library for and drop it in and use.

2 Likes

This doesn’t feel like a valid argument. Adult content is adult content whether it’s in 480p or 4k. Having higher resolution doesn’t cause more harm imo. Especially not when it comes at the cost of not having CanvasUI or whatever it’d be called.

It’s quite easy to add adult content already, to the point where a specific API for it wouldn’t make it much easier at all.

15 Likes

I agree. The addition of this would be helpful for procedurally generated content, and I don’t think worrying about adult content is worth it considering it’s trivial for me to build things out of bricks that are inappropriate, use scripts to generate inappropriate meshes, use frames to generate inappropriate images, or even use sound playback location to perform sentence mixing in game to make speech audio say inappropriate things (even with Roblox-uploaded audio).

It’s just one of the risks involved. The chance of exploiter abuse is minimal because of client filtering, which means that it is still possible to track down who uploads disallowed content to their game because it has to have been the game’s creator or a developer. That’s what matters in my opinion, being able to pin a name to the occasional bad actor so that something can actually be done about it in the first place.

8 Likes

For the record (also @ other people above), I didn’t say Roblox shouldn’t have a canvas object eventually, I’m just emphasizing the safety challenges. I don’t think “it’s already easy to add adult content, so it doesn’t matter” is going to be a strong argument to convince many a product manager at Roblox that this may not impact content safety.

4 Likes

What you are speaking about isn’t an issue regarding whether or no they should add a canvas GUI, but rather how they can improve safety in general. Even if we disregard usage of frames as a mean of displaying adult content because of how slow it is, you can always render entire videos using ASCII.

Safety is not a reason not to include critical features; otherwise, Roblox would still be about building stuff out of virtual knockoff legos using wands and hammers.

11 Likes

Honestly the UI editor built-in Studio is very underwhelming, not only that but it’s a pain to import assets from professional third party tools like Figma, AdobeXD and Photoshop.

Adding this would be great for users to create inside of Studio, isn’t that what Roblox vision is?

Either give us better support for 3rd party tools or add this as a band-aid for now until better / professional workflow support arrives.

People will always find ways to break the rules, not that we shouldn’t prevent it but why would you hurt legit users?

Game development is already hard please don’t make it harder for us

11 Likes

As a workaround for now you can use @boatbomber’s GreedyCanvas. https://github.com/boatbomber/GreedyCanvas

It pretty much accomplishes exactly what you’re looking for. Obviously a built-in implementation of a Canvas GUI would be more efficient, but this is definitely a solid workaround.

Using it you could draw things like this:
image

You can also check out this twitter thread:

21 Likes

Ive been needing a feature like this for a loooong time. Currently, if i want any form of a canvas to draw pixels, it would have to be a gui with a bunch of frames as pixels (which can be really laggy and inefficient when creating or constantly updating the pixels)

There are so many use cases for this and I am surprised that we dont have a ui element like this yet.

But I guess a temporarily solution would be to use my grid-based CanvasDraw Module:

9 Likes

This only covers static images, which you could just upload at a higher quality anyways, so it doesn’t have much use besides being cool. The whole point of a canvas GUI is to dynamically generate an image like a map or a drawing canvas that can be frequently edited during runtime if needed.

1 Like

This is false, you can see an example of this is the twitter thread that was included in my post: https://twitter.com/BoatbomberRBLX/status/1459030873349795842

This does not change the fact that I still think this should be added as an official feature. Roblox could implement this way more efficiently than we ever could. That’s why I said it was a “workaround for now.”

2 Likes

What im saying is that the fidelity is too low for any vector like content. You run into the same issue as with JPEGs, where they are excellent at displaying photos, but add heavy noise and artifacting to anything vector like, which just happens to be the main use case of a canvas. Not saying that it doesn’t have its uses, just that it’s too niche to make it a proper alternative. It’s also still pretty heavy compared to a single image, making any use related to procedural sprites or 2D effects unimaginable.

5 Likes