Should I switch into Roblox TS

I recently learned knit game framework on Roblox studio. A friend of mine encouraged me to learn Roblox TS, a compiler for TypeScript and Luau compiler. However, I don’t find many resources and I don’t know how to use github, vs code properly (im just dumb). But switching into Roblox TS means switching my knowledge into something entirely new, I have to relearn almost everything including giving up knit and switch to flamework learn new things. I know learning new things is beneficial but is it actually worth it to switch from Roblox’s original language to Roblox TS? Sorry if I have some information wrong here, I am still learning. Feel free to correct me. I want to try it out, but Roblox TS is just a really small community and barely any tutorials online that can support me. If you have any resources post it here so I can get more support.

Honestly idk where to put this topic to, I’m thinking Development Discussion can suit on this topic but scripting still works? I can’t really tell

2 Likes

I don’t think anyone is going to be able to answer this for you. Most developers that switch to the TypeScript ecosystem because of the extensive tooling and packages it offers, so unless you have a necessity to take advantage of that I would say it’s probably not worth switching to.

3 Likes

From my experience working on many games, Knit is all you need. A tiny percentage of games are written in TS and it’s not worth the switch.

2 Likes

Roblox developers typically switch to TypeScript for its more extensive type system. (Who would’ve guessed?) If that’s something you’re interested in, go right ahead. Though it is worth mentioning that a rewrite of Luau’s type solver is in the works, and many pain points of the current Luau type system will be addressed.

Personally I have never worked with TS, so I can’t speak on its type system or tooling, but I do advocate for incorporating VSCode and Git into your workflow. They are both industry standard tools that will make your workflow much smoother by providing proper version control and some awesome tooling. You will also want to learn how to use VSCode and Rojo before switching to TS as I don’t believe there is a studio-version compiler(?).

I suggest starting with VSCode/Rojo and worrying about GitHub later (unless you’re working with other programmers or want a more granular version control system). They are tricky to learn, partially because standard Roblox development never prepares you for any of it - Roblox Studio’s barrier to entry is so low because it holds your hand through everything and provides every tool most developers need in-house. So don’t feel bad for getting confused - I certainly was when I first started using them. However, if you are truly considering the switch from Luau to TypeScript, you’ll want to get the basics of VSCode/Rojo down.

Even if you don’t switch to TS, learning to use industry standard tools like VSCode and GitHub will come in very handy if you ever want to branch outside of Roblox development (for example, developing a Discord bot or Unity/Unreal games).

That’s my two cents.

1 Like

Can you give the link to where they said that they are reworking the type system for luau?

It’s down to preference, don’t listen to the whole “industry standard” part of it.

For me personally, I hate Roblox-ts with a passion.

The way I see it, there is no reason to use a web programming language on a 3d video game engine. Sure, it has great typechecking, but you’re transpiling to a different language with a different purpose, which just makes things messy and less readable. It makes so much more sense, in my eyes, to use Luau natively since software is the purpose of that language.

That being said, some people like the robust tools that come with it, such as immense support with live UI development. It sounds cool, but to me, it’s not worth it.

Last issue is onboarding. If you’re ever wanting to own a project and want to work with others, you’re going to have a much harder time onboarding/hiring people who can understand and work with the codebase. As a business owner this is a nightmare problem and sacrifices more than it benefits.

4 Likes

I think Spam means using VSCode and Github, not typescript as industry standard, or I am also interpreting you wrong. I use typescript cause of the typings, syntax and packages it offers, e.g. amazing react hooks, reflex. Plus I usually work on my own and for most games you wouldn’t want to have too many scripters. Buy in the end as you said it’s down to preference. Just my take on it, but since I am using typescript I could be a little biased.

2 Likes

I’m not sure if it has been posted anywhere on the devforum, but it’s been mentioned quite a few times in the Roblox OSS Discord server.

Absolutely, everything you need to make a Roblox game can be created natively within studio (though I have a very strong preference for Blender over CSG). Most of what I said was just going on a tangent about using external programs that are ultimately unnecessary or even overkill for the vast majority of projects on Roblox, not necessarily about TypeScript itself. Because in the end, you will have to learn to use them (excluding GitHub) before working with Roblox-TS.

I do agree that using a tool or application just because it’s “industry standard” is naive. It’s something you’ve got to judge for yourself. I am partial to Rojo because it forced me to keep all of my scripts in specific locations, making it much easier to maintain my project. Of course it’s trivial to do the exact same thing in studio, but the behavior isn’t forced, and frankly my organization is completely inconsistent when left unchecked. So tools like Rojo and StyLua are greatly beneficial to me.

That’s my personal anecdote, and I am definitely biased when it comes to using external software. So take whatever I say with a grain of salt.

1 Like

I have mixed opinion on it, it’s amazing, because I get really extensive tooling for refactoring, searching, going to a definition, and so on (all of it being project wide), not to mention incredibly flexible type system. However, the downside is that you’re writing in TypeScript, and not in Luau, so lose control over the Luau code, you can’t fine tune it, and it’s an extra step when debugging. Also some features that JavaScript offers are not available due to Roblox-TS limitations, such as getters, and setters.

2 Likes

This is one of the most major issues I see everywhere. Where someone will say “use this/do this because X”. These “solutions” are for problems that don’t really exist and become confusing for the wrong people. You don’t need to learn or use Roblox TS at all, it won’t magically make you into a better developer. Same with Knit(sleitnick doesn’t recommend it anymore article link), Github or VSCode.

They are just tools at the end of the day, they aren’t for everyone. But they shouldn’t be neglected either, in your spare time learn and try them, see if you can apply it to your own workflow. If it works out well then great! If not, then just leave it and forget it about it. Don’t bother stressing over the things that you don’t need.

3 Likes

It looks like there isn’t anymore discussions here. I will close this by choosing my answer as the solution. Thank you for discussing and helping me view different viewpoints!

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.