Babylon.js Browser 3D MMO - Devlog

Hello,
I would like to share with You my first steps with babylon.js, typescript and in general with game development.
As You can see ‘MMO’ in the topic name aspirations are big :smiley:

I’m working on MMO game with similar gameplay to the mu online, diablo 2 etc. I decided to write server from scratch. I’ll implement whole game engine with collisions, combat, loot etc. From tech stack what I can share for now from UI side is TypeScript with Babylonjs. On the server side it will be mostly java, spring and also micronaut. Maybe in future some nodejs(to learn about it a little bit). Regarding databases I’m not sure yet if sql or nosql will be better choice.
Network communication is handled by socket.io but I’ll switch to raw Websocket’s. I also used redis pub/sub for communication inside server infrastructure.

I decided that I’ll document my journey since very beginning and I started recording Vlogs and I’m publishing them in the YT. My presentation skills are close to zero and I know that quality of my speaking and explaining is extremely low.
But improving my speaking and presentation skills are also purpose of my project.
And We will see how far I will go with them and with the game :stuck_out_tongue:

Root of the game is authoritative game engine, clients are responsible only for sending input, receiving state from the server and displaying it on the UI.
So far on my devlog I showed how I created prototype implementation, which can handle logging in multiple players, simple players movement, global chat and monsters which for now only chase players and very simple implementation(prove of concept) of player attacks.
Still there’s not much to share from the babylon.js side, just few meshes and ground but…
I want to show journey not the final result.

Recently I totally redesigned UI and server code and hopefully next episodes will be more interesting :stuck_out_tongue:
Especially for this occasion I’m sharing some insight from current state of the game:

link to the video:
https://youtu.be/UmN4pCFGXDM?si=ZKaR61XGjMpXRquB

This is link to my YT channel:
https://www.youtube.com/@MaiuDevLog
and link to the most recent video(at this moment):
https://youtu.be/HRGel_JegvE

Also You can find me on dev.to
https://dev.to/maiu

Hope You’ll like it :slight_smile: or at least not hate it :stuck_out_tongue:

9 Likes

This is a very cool project! You already did some pretty impressive stuff and I hope to see more updates in the future :smiley: You might be interested in @oriongu 's project as they’re also doing a MMO! [OPEN SOURCE] Multiplayer 3D RPG Using Colyseus - Demos and projects - Babylon.js (babylonjs.com)

1 Like

Thanks @carolhmj
For now I’m focusing mostly on general architecture to prepare solid foundation to keep mess in ‘smaller boxes’ this will allow me to iterate over more efficient logic implementations without refactoring all the stuff each time. And then I’m planning start adding new features like equipment, some combat, experience etc.
Regarding Oriongu project I saw it before and to be honest it inspired me to use babylonjs. I was thinking for some time about some game but I didn’t want to learn C++/C# :stuck_out_tongue: I was considering some java library or sth in Rust.
But opportunity of having game in the browser(which is much simpler to share with online audience) and learning TypeScript finally convinced me :slight_smile:

1 Like

There is OpenMU project - c# server for MU online. I have tested it with my test web client which communicated with the server through the ws-tcp proxy.

So maybe it is a good idea to implement only client side first to reduce the scope of work.

Anyway good luck!

1 Like

@Alexander_Sosnovskiy
I didn’t know about it. Thanks :slight_smile: Idea of the project is to learn mechanics etc also on the server side so I’ll stick to my implementation (at least for now). But I think this OpenMU project will be great source of knowledge. For sure I’ll investigate it a little bit.

Regarding progress, today I managed to implement entity interpolation. Even with 3 syncs/sec from the server other players movements looks very good. Next topic is client prediction and some collisions/or some kind of navmesh. Soon I’ll share some more info - I need to catch up with recording. I’m few episodes behind my current progress.

Hi there!
I recorded new episode for my devlog.
Episode is about new UI screens (login, registration etc.) and how I’m managing transitions between them :slight_smile:

link to the episode:

Some spoiler from current work. I managed to implement client/server clocks synchronization and client side player movement prediction. I added few meshes to the map and in the next days/weeks I’ll be working on implementing collisions (SAT 2D).

This is how game looks right now:

used assets: Quaternius • Free Game Assets