New Game Engine with Three.js

editor
typescript
node-js
engine
#1

Hello Everyone! With a friend we’re creating a Game Engine using three.js. The environment was inspired by Unity, with an extendable Editor and a component driven development workflow. It’s an electron app, works in Windows, Mac and Linux and you can code with whatever editor you prefer. At the moment we can open files with VSCode within your project directory, but we will include a simple way to do this with the most popular ones.

The component system is a “non-invasive” extension of three.js, where we simply add some functions to the API. We also “proxy” the .add() and .remove() methods to accept instances of a Component. Components are stored in a separate state managed by the engine to avoid interfering with Object3d.

We use React for the UI of the editor and we provide a simple API to create your own editor windows. It will include a store to seamlessly publish and install extensions.

We don’t have a name for it yet, but since it’s a badass outlaw created by these nobodies who came out of nowhere, we’re referring to it as The Rogue Engine for now. You’re welcome to help with the name by the way!

It will be free, and there will be an Alpha available soon, which will include the barebones Editor and maybe a few game development tools. We’d like to know what, in your opinion, we should prioritise for the Alpha.

For now, you can follow up on its development on my Twitter https://twitter.com/BeardScript. When we have a name and some branding we’ll create social networks and a website for it.

Thanks for enduring this til the end, enjoy the video and I hope we can count you in for the Alpha.

6 Likes
#2

Looks cool. I like your binding between component classes and the UI. I think you’ll need to make that very explicit at some point though, otherwise supporting things like textures, curves etc. will become quite difficult. There are a few engines out there using three.js. My own engine’s biggest shortcoming is the editor, so it’s cool to see others paying significant attention to that. Curious to see what this will turn into!

2 Likes
#3

What will be the difference between The Rogue Engine and Unity/Unreal WebGL export? What makes it stand out? Why would someone choose your project over these giants? Not trying to be mean or demeaning, I absolutely love the idea :heart_eyes:. Just saying you have some big competition in front of ya :grimacing:

1 Like
#4

Thanks for the kind words. Yes, we are putting the biggest effort in the editor cause that’s where we believe the WebGL ecosystem in general is lacking. This project was born because we needed something like this and we couldn’t find it.

About the bindings, you are absolutely right, some inputs will need to be very explicit. At the moment, the component viewer, uses a factory to display the types of inputs that correspond to each property. For now it defaults to either Numeric, Text, Boolean or Object fields, but we’re working on an API to specify if you would like to see, for instance, a Range input instead of a Numeric field for a particular property.

There’s still a long way to go, but hopefully we’ll soon be releasing an Alpha. We hope to have you on board to try it out!

2 Likes
#5

Thanks for the support! Those are some very valid questions.

What’s the difference between The Rogue Engine and Unity/Unreal WebGL export?

First and foremost, this is pure WebGL. While Unity and Unreal are fantastic Engines, they don’t do great with WebGL in fact, at least in the case of Unity (the one I know the most), their WebGL exports work terribly or not at all on mobile, and the built package is huge.

This opens the doors to other things. You are working in a node.js environment, so you have all npm at your disposal. Any Javascript developer would feel at home right away.

You can fully integrate your built product with any website… try that with a Unity build. Other than embedding, anything else turns into a real pain.

Why would someone choose your project over these giants?

Besides all the above stated, for the same reason you would choose three.js, only this engine automates most of the tasks you have to endure when creating a three.js project from the ground up. The scope is having a Unity like environment for WebGL on your pc where you can use the API of the most popular rendering library out there. If you know javascript, you are one step ahead and if you also know three, you’re ready to roll.

2 Likes