I’ve been coding completely on my own a social 3D world for the last year. It’s called 3.land. You can visit it, no need to sign up.
It is a social modern webapp connected to the Solana blockchain, it mixes 2D sites with 3D spaces (using Vue 3 for the UI, and Three.JS for the 3D part)
This is how the 2D part looks:
(We have a 3D viewer embedded here to show objects)
This is how the 3D+2D part looks:
Demo of virtual room with lights and glass materials:
As you can see there’s a lot of interaction that happens by switching from the 2D to the 3D parts, I can even drag stuff between windows or drop stuff to the 3D part.
HTML + 3D canvas interaction is pretty crucial.
I also run HTML as iFrames as 3D objects, to render websites within the worlds, for example, a YouTube video hung on wall.
(This asdas.com thing is an embedded, interactive website)
It also includes lots of NPM packages to do several stuff like, P2P video/voice calling, Socket.IO, ChartJS, Solana NPM packages, and many more.
Working with Three.JS has allowed me to incorporate very easily NPM package to any 3D process, accessing variables from my 3D part to the 2D part it’s a piece of cake. No need to expose anything.
Unity has plugins yes, but in my case I’d rather have NPM packages installed, since there are more options and gives you more control.
I also don’t wanna try to make a comparison myself between both engines, and would like to hear opinions, since I’d say I’m an expert on Three.JS compared to Unity (Have made stuff in Unity too, but not that much)
Why am I bringing this topic to this board?
Because, I’ve been asking myself if staying with Three.JS would make my path for scaling, harder or easier?
I’m looking to scale the product and the dev team.
Right now 3.land has worked perfectly, and I’d stay with Three.JS on a 100%, but I want an external opinion, since I could be biased.
I’m very happy with how 3.land has been developed, and how cool its code has resulted. I don’t know if I gave enough information to familiarize readers with my perspective.
What would you do in this case? Would you stick with Three.JS and rock all of it’s features, or move to Unity and the world of no-code plugins.