[Open Source MMORPG] MU Online Client

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?

Left picture - without light map, right - with light map.
_mu_withoutLight _mu_withLight

  • 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

5 Likes

Nice! Sounds like there is to learn indeed, don’t hesitate to share with us what you learn :wink:

2 Likes

This is really cool !!!

I like this game a lot

Mu online has something… :smiley:

Cool project, I’ll be cheering for you.

Side question. As I understand OpenMu server is working on TCP so it means that original mu server also was working on TCP?

Seems that the loading will never be finished…

I think MU servers are able to handle tcp and upd as well.

OpenMU server supports only tcp.

So I wrote a small proxy to convert websocket ↔ tcp packets

Sorry, I should disable this label for now. It is related to client-server communication, but the game doesn’t have 3d objects right now. I’m figuring out how to parse SMD and play animations. After that I’ll add some client-server features.

2 Likes