VEngine: An Experimental Roblox Game Framework

VEngine has the objective of being a type-safe yet flexible roblox development framework. Making as little sacrificies in the name of Flexibility, yet performing as cleanly as just requiring.

Why does this exist?

On the time I have spent playing around with Roblox I was always attracted to the idea of frameworks.

Frameworks are good for big projects, but sometimes you end up using them for a simple external package… That being said, the majour flaw of Frameworks in my opinion? Breaking types. The type system that is built on top of Luau is not the best by any means, but it does the job, and it helps you do a lot when you are doing programming on the built-in Roblox Studio editor, and if you use a plugin like Roblox LSP on Visual Studio Code, it is magical.

Visual Studio Code with Roblox LSP:

But this all falls apart when a framework comes along, maybe because you are using a function such as, for example, import, you will not get this goodies, instead you will get plain old any

This, completely BREAKS the weak type system of Roblox.

“But just use the documentation on the web!” – Yes smart guy, the problem is, that completely interrupts my workflow. My workflow, as I have gotten used to from coding on languages with good type systems like C#, and not-so-good ones like C++, relies on the editor to provide documentation or my types, as that makes me program much faster…

Objective

Building a mostly-type-safe and friendly to beginners framework, which has the minimal amount of sacrifices in the name of flexibility than most others, while trying to not break the type system as much as possible.

This project is mostly isoterical in its current stage. Hopefully in the future, it will get out of this status, and maybe, get to be production ready someday. For now, it is in development

Source Code: SecondNewtonLaw/VEngine: A Roblox Luau type-safe game development framework. (github.com)

If you are interested in something like this, please, star the repo and maybe, give your opinion on the framework on issues, or on this forum post, lets try and make a framework which is easy to use, while remaining simple, friendly to beginners, and makes code easier to write overall!

(Sorry if there are any mistakes or sins on the repository, I began coding this barely an hour and a half ago and its quite late, and in the end, it is an experiment!)

1 Like

Seems interesting! Good luck with this.

2 Likes