Save the Programmable Block! Lua support, cycle limiter, editor improvements.

Auhrii shared this feedback 4 years ago
Submitted

This... is a huge ask, and by no means do I expect any of it to happen. The Programmable Block feels like a failed experiment, and the lack of interest in it beyond loading in pre-made scripts from the workshop has probably pushed it very far down the priority list.

But please at least hear me out.

  • First and foremost, Lua support. Why? Wouldn't this break all the scripts on the workshop?

I'll start with why. Lua is much easier to approach than C#, and is already used in many games: Gmod, Roblox, and apparently even Kerbal Space Program 2 for its modding scene. Additionally, it's an interpreted language, rather than assembled - it already requires a VM, and is sandboxed. Less risk to servers. It pays in performance, however I don't know if the current C# implementation is impacted by a similar system. Lua also has the benefit of automated memory management (please don't burn me at the stake).

As for breaking scripts, yes. Obviously it would. To mitigate this, a drop-down option for programmable blocks would be in order: Disabled, C# (or Legacy) and Lua (not sure what to call this). This way, old scripts on the workshop can still be used.

  • Second, a cycle limiter.

Another frequently cited reason why programmable blocks are never enabled on servers is that anyone could go and write a script that intentionally hogs server resources. Limiting the number of cycles a given script can use before it yields or throws an exception would mitigate this and weed out the worst offenders. As I understand it, there are already server plugins that do just this.

  • Finally, last but not least and in third place, editor improvements.

LINE NUMBERS. PLEASE, KEEN, DEAR GOD GIVE US LINE NUMBERS IN THE EDITOR. Other than that, a monospace font and syntax highlighting would go a very long way. There is one rather large elephant in the room, a stretch that by no means do I expect to ever be added but it bears mentioning anyway: IntelliSense.

That's all of it, I think.

Ding, you may now burn me at the stake.

Replies (2)

photo
1

I wouldn't like to see any Lua anywhere near ingame scripts.

photo
2

Any particular reason why?

photo
photo
2

Some love to the editor would be nice (yes, line numbers at least!). But the game is written in c#, the execution of scripts is almost as easy as an eval(), Implementing a brand new scripting engine, hooking it up with the games internals would require way too much work, without the equal benefits.

photo
1

This suggestion should be treated as multiple suggestions all glued together, and out of all of them I expect Lua to be the least likely to be added for exactly that reason. Adding an interpreter layer and then re-writing the APIs would be a huge undertaking.

photo
Leave a Comment
 
Attach a file