Looking to Build A Browser-Based MMORPG

Hey Everyone,

My name is Travis and I’m building a browser-based role-playing game (MMORPG). My intention here is essentially to create a virtual reality with a realistic economy. Players should be able to create a character, login, communicate with other players in real-time, and level-up their character.

The game should have its own native currency and money system. Trade and exchange should be an important part of the interaction. Statistical analysis and leaderboards.

I came to BabylonJS because it seems to me that this is the premier HTML5 3D game engine. My project wouldn’t work with a 2D game engine and from what I have seen, fairly complex 3D models can be made using BabylonJS.

What attracts me to open-source browser-based games is the potential efficiency of using HTML5 to render the most demanding game resources client side (as opposed to server side). I would like the client’s browser to handle most of the graphical and physical aspects of the game. The game is to be hosted on our own server. Users will not need to download anything, only navigate to our www website and login using credentials.

My question at this point: Is BabylonJS well suited for this project and if so, how can I get started?

I just came across this game engine today after researching HTML5 engines. I have been impressed with what I have seen thus far and need to learn more about WebGL.

2 Likes

Hello and welcome!

Yes.

Keep the game logic in a game core, UI in HTML, and render what is needed at the moment with Babylon.js

Hi, Travis. Good luck to you.

If you start from scratch, choose your starter pack from this topic. It helps you to begin faster.

Sounds ambitious, but I would love to see something like this done in Babylonjs. Personally playing with making my own VR world, and slowly making it more feature rich. I have been doing a similar world builder in VR in Unity before, but I wanted to try out using Babylonjs as the compile/deploy time is insanely fast in JavaScript compared to Unity. I build to a Tauri executable which uses Edge WebView2 underneath, basically chromium engine. One issue you will encounter is problem maintaining 72hz and in VR, any stuttering is a death sentence to any usage imo. The problem proved to be that chromium does not get enough GPU time to maintain the steady beat needed, so you need to use Nvidia control panel to set that WebView2 (or chrome) should get maximum performance for the GPU. Otherwise you will experience like I did, good days when everything was lovely and others where everything became a stuttering mess.

Note that with Babylonjs you are totally barebones, you have to make a lot of the engine yourself with how you treat objects, streaming in and out of AssetContainers, and lots and lots of optimizations to keep that fps up, down to managing how many actual objects you want to be affected by physics. You have to learn instancing and thin instancing to maintain as low draw calls as possible.

What is your target? Standard on-headset web view or PCVR? Those are different beasts with how much you can do in the world and how static vs alive they are. Most standalone VR games are often very static experiences with everything in pre-baked scenes that can almost be rendered with one draw call and then the other draw calls for anything with motion. A full dynamic world is way more difficult. It is often important to compartmentalize your experience, even an open world you would have to carefully manage chunks around the player.

A limitation to think about with PCVR that I have discovered. Haptics is not supported over WebXR link (cable or wireless) - it only works standalone on e.g. the Quest browser.

You will likely fiddle a lot with getting the performance correct in general, missing the timing for smooth framerates can make the experience horrible. Be prepared to spend a good chunk of your time just optimizing this a lot. Depending on whether you are going for a more flat cartoony World of Warcraft style, or full PRB with lighting and all bells and whistles that often defines how much time you will have to spend on this kind of optimization.

I should mentioned that WebGPU has replaced WebGL and seems to have changed the web development stack in a way that is favourable to 3D graphical rendering: WebGPU & the Future of Graphics: Building the 2026 Immersive Web

If this is your first game project I would suggest you do something smaller than an mmorpg, which will take years to complete. Unless you are prepared for that and want to build it as a hobby.

And regarding webgl, I do not think it is replaced with webgpu immediately. Perhaps in the long run, but there are a lot of quirks to be resolved before that happens.

I am prepared to spend years on the project if necessary. I don’t doubt it would be a serious undertaking. The idea is to release a stable 1.0 version that allows incremental updates and improvements without breaking compatibility.