At the beginning of the weekend, John Shedletsky, Roblox’s creative director, announced on the blog that bytecode is no more.
What is Bytecode?
Bytecode is the result of compiling code. In order for it to work, it needs to be readable by the computer. What may be a simple “hello, world!” script will turn out to be this in Bytecode:
00000000 1B 4C 75 61 51 00 01 04 04 04 08 00 12 00 00 00 .LuaQ………..
00000010 3D 57 6F 72 6B 73 70 61 63 65 2E 53 63 72 69 70 =Workspace.Scrip
00000020 74 00 01 00 00 00 03 00 00 00 00 00 00 02 04 00 t……………
00000030 00 00 05 00 00 00 41 40 00 00 1C 40 00 01 1E 00 ……A@…@….
00000040 80 00 02 00 00 00 04 06 00 00 00 70 72 69 6E 74 €……….print
00000050 00 04 0C 00 00 00 48 65 6C 6C 6F 20 57 6F 72 6C ……Hello Worl
00000060 64 00 00 00 00 00 04 00 00 00 02 00 00 00 02 00 d……………
00000070 00 00 02 00 00 00 03 00 00 00 00 00 00 00 00 00 …………….
00000080 00 00 ..”
Why was it removed?
Shedletsky gave two reasons on the Roblox blog post about it: security, and it isn’t future-proof. The loadCharacter function would allow for identity spoofing, and httpGet could’ve been used for a DDoS on Roblox from themselves.
Why should anyone care?
Some people have used it as an obfuscation method to prevent stealing from exploits, which are widespread. However, as Shedletsky stated in their blog post, people’s games that are using it after this update won’t work until the code is deobfuscated.
I expect that some people will not be happy with this (such as clan leaders), but balancing the risks and the benefits, this was probably a good move.
Do you think this was a good move? Leave a comment with your thoughts!
Filed under: Roblox, Roblox Updates | Tagged: Bytecode, httpGet, John Shedletsky, loadCharacter, Lua, Lua programming, obfuscation, Roblox, Shedletsky | Leave a comment »