Changes to Roblox Product Development Process

For common data types some optimisations could be done. For example for Color3s each compontent could be bitpacked (Or converted to a HEX string, both would take the same amount of bytes in JSON).
Other things to make the JSON format easier to store is instead of using direct property names like:

  • "ClassName": THEDATA
  • "Name": THEDATA
  • "Size": THEDATA

They could instead be HEX encoded indexes to an array table where the elements are property names. Like the indexes for instances would be:

  • "1": THEDATA
  • "5": THEDATA
  • "4F": THEDATA
    And the table where the indexes are stored would be like:
[
"ClassName",
SOME OTHER PROPERTY NAMES HERE
"Name",
SOME OTHER PROPERTY NAMES HERE
"Size"
]

This would make quite a lot of improvements in storage size but still keep the ease of implementation which JSON provides.

Let’s say we wan’t to deserialise or serialise models in Roblox Luau or a web application with javascript. A JSON implementation is by far the easiest to implement and upkeep and it still provides relatively good

A lot of people use XML instead of the binary format due to it’s ease of use, so a JSON format would definetly be in need.


Deserialisation of a JSON based format in Lua code would be as easy as doing

local typeHandlers = {
-- The type handlers
}

local function doStuff(data, parent, indexReferences, typeReferences)
	local object = Instance.new(data[1])

	for k, v in pairs(data[2]) do
		local rawK = indexReferences[k]

		if typeReferences[rawK] then
			object[rawK] = typeHandlers[typeReferences[rawK]](v)
		else
			object[rawK] = v
		end
	end

	for _, v in ipairs(data[3]) do
		doStuff(v, object, indexReferences, typeReferences)
	end
end

local tbl = game:GetService("HttpService"):JSONDecode(THEDATA)

doStuff(tbl[1], nil, tbl[2], tbl[3]).Parent = workspace

Here would be an example JSON serialised model (just an example):

[["Model",{"1":"ModelWithAPart","2":[0,0,0,0,0,0]},[["Part",{"2":[10,0.4523534,5,0,0,0],"3":[10,50,20],"4":10551051},[]]]],["Name","CFrame","Size","Color3"],{"CFrame":"CFrame","Size":"Vector3","Color":"Color3"}]

(The property indexes are HEX instead of numbers so they save some space for models with a lot of properties. Alternatively the indexes could be raw bytes (0-255 meaning all string characters) making them use even less character space)

1 Like

At the end of the day, a human readable format is going to be less efficient than a binary one. And when it comes to delivering game files to clients, they have to be as efficient as possible.

You’re welcome to argue in favor of a replacement to XML as a format (I would be open to something that’s easier to parse and write a schema for…) but you’ll have to trust me that giant tables of data aren’t any better.

Or even better, don’t take my word for it. Here’s Crossroads written as a Lua table:

I’m not sure how you’d write this in JSON but I’d imagine it’d be very similar. And equally undesirable.

3 Likes

I didn’t literally imply that there are problems with serialising to XML but rather I was implying that some people find the formats to be flawed or inconvenient to use (see @jitlua’s post, they pointed out an issue).

Great to see Roblox re-evaluating their priorities. Help the developers (small/big) who keep the platform fun and running.

1 Like

This is definitely a good thing. I’ve been waiting for this one. Love to hear you guys are planning to have a better response to feedback on updates, thank you

3 Likes

You can change the icons:

I’d recommend this:

Responses have been given on the icons, many infact. Some on the announcement itself. You can’t please everyone, new or old icons. Some prefer the new, some the old. You can also make your own now if you wish.

From the resources I linked, it seems they’ve communicated a ton and worked with the community on that issue. More of a response on that issue, I feel, would take away something else that would more benefit from a response.

An example of which could be developer made pause menus, or rather the lack of being able to create an effective one due to constant issues regarding CoreGui locked content.

5 Likes

This is my ultimate goal, or idea at least. Something like this would be great. Imagine if we could tackle a different issue each month or so. Maybe like a zoom meeting or something.

I don’t want this to sound weird but it could be like a government. Roblox is a digital country in a way and we could have a form of gathering, voting, and discussion.

I could create so many 5 paragraph essays or a whole book regarding different issues that plague my and others overall experiences on this platform. Would love to discuss each with players, developers, and Roblox staff one at a time.

Way too pretentious here, but a modern digital version of Alexander Hamilton and the forming of the United States. It’s an opportunity, ‘a shot’… or something.

3 Likes

Really hoping this means we will get an update on Apple Silicon Support for the Client/ Studio (approaching 3 years). Many. feature. requests. and discussions have. been. made but Roblox has remained completely silent. Any sort of news would be appreciated, and a roadmap or just some update on what is going on would be fantastic. I think I speak for all Apple Silicon users that we would appreciate at least acknowledgement from Roblox.

I know creating a native version isn’t easy, and I understand it takes time, but the lack of communication when many developers have been asking for years has been extremely disheartening.

Sorry for the long post, I guess I am just passionate about it. Really hoping this new leadership holds fast to their word, and I wish you all the best!

2 Likes

This is what i’m looking for, having to create a place with Team Create floods my place list so much even if i created a new file and enabled a setting where it turns Team Create off (my god they don’t function properly)

2 Likes

Hello Nick and Tian!

Welcome to Roblox!

I am wondering if Apple Silicon support is going to come to Roblox and Roblox Studio soon, because Roblox takes up a lot of battery and Ram currently.

4 Likes

I’m very dissatisfied with the current way things are being run and I am hoping this will change that. My bug reports and feature requests have ALL been seemingly disregarded for months on end. There’s been a lack of communication between the developers and … developer relations… yea. I’m glad initiative is being taken.

1 Like

I believe to truly have real transparency something similar to a discord chat should be created for the top developers and those who communicate with them, forgive me if this is already a thing but this would create real transparency and not the façade that emails back and forth uphold.

Thank you Elttob

1 Like

Team Create saving automatically has been a lifesaver for my lack of common sense.

1 Like

no further responses…
I get how you can’t respond to everything but on the post where you said you would hear from us you haven’t actually acknowledged us.

3 Likes

Great that you heard and listened to feedback about this. Now, could you listen to the feedback about the new ad system regarding U13 users not being able to see other user generated ads?

1 Like

if they do that they wont be coppa certified from a business standpoint its better for business

1 Like

But what about the COPPA agreement is violated? Preventing 3rd party sites from advertising to younger children U13 is understandable. But what’s wrong with user generated advertisements? They don’t track data of children U13, they never have…

2 Likes

You know, I was thinking the whole ‘this is a good update cuz it stops kids from seeing ads’, but I forgot about the part where COPPA agreements would only be violated if the ads tracked you, which is impossible since it’s a completely random bidding system.

3 Likes

Honestly, it was never a good idea. It’s horrible for business.

3 Likes

Yeah, I don’t understand why they did it. It isn’t needed at all and just hurts everyone equally.

2 Likes