Hello guys!
I used to play a lot in MU in my childhood. And it was a dream to have mobile or web version to play not only on PC. And after 15 years I have enough experience to implement some of the features using BabylonJS!
MU Online is an Isometric medieval fantasy MMORPG, produced by Webzen, a Korean gaming company. It was introduced in 2001, and is still being supported and updated in 2024. Like most MMORPGs, players create a character among nine different classes and set foot on the MU Continent. To gain experience and thus level up, a player needs to fight monsters (mobs).
So as a start point there is a C++ code base: MuMain/Source Main 5.2/source at main · sven-n/MuMain · GitHub
Also I found Open Source server implementation (C#): GitHub - MUnique/OpenMU: This project aims to create an easy to use, extendable and customizable server for a MMORPG called "MU Online".
So what are the reasons to implement it using webgl?
- The game has some interesting technical stuff like splat maps for render terrain, baked light maps etc. I want to learn more about it. Lets check the terrain shader: muonlinejs/src/libs/mu/terrainMaterial.ts at master · afrokick/muonlinejs · GitHub
Left picture - without light map, right - with light map.
-
The second reason is to improve my webgl knowledge and how BJS works under the hood. Recently I’ve started to implement SMD parser for objects and I realised that I didn’t understand why we have rest, bind and local matrices for Bones, how it works, etc…
-
For fun! I like this game a lot and want to share something useful for our community, that’s why I decided to open source it!
Github: GitHub - afrokick/muonlinejs
Live DEMO: https://mujs.pages.dev