[OPEN SOURCE] Multiplayer 3D RPG Using Colyseus

OK, I managed to get the zones working, so now we can seamlessy jump from zone to zone. SO much fun! It’s hard to showcase, but it’s pretty cool :slightly_smiling_face:

I’ll work next on a global chat, and then maybe we can do a larger scale test with a few more people and see how the server holds up.

2 Likes

Thanks a lot for the sharing. A real nice contribution :heart_eyes: :heart_eyes: that I think can be very helpful knowing just how much effort it is to master all parts of game creation. There’s always so little about these parts (people tend to prefer showing a full-game and focus on design, faen shaders or gameplay). Where this part is certainly one of the most important (and most frustrating) to build. I think this clearly deserves a mention somewhere in the doc. And also deserves a hug :hugs: for your efforts.

2 Likes

appreciate the kind words @mawa ! I must admit it’s not the most gratifying part of the game building process but I want to have a good enough base before rushing into gameplay and level design. :slight_smile: My goal is to be able to handle correctly ~20 people per zone, anything higher is just too much work (in my opinion) for a single person to build.

2 Likes

Hi there,

A global chat was rather easy to add compare to the other stuff

I started experimenting with unity level export to GLB and it’s giving quite good results (size and quality), and I may just stick to unity for my level design.

3 Likes

I finalized a workflow between unity and babylon which works for me, so I quickly did up 2 basics scenes just for the sake of testing my upcoming collisions system (easy to say, much harder to make)

heres a screenshot for the fun

4 Likes

Quick progress update:

I managed to implement simple server controlled collisions to my game, follow the progress forum post here: How to manage networked collisions (babylon and colyseus) - #15 by oriongu

If that doesnt look great, I dont know what does! :stuck_out_tongue:

(I didnt realize, I had music playing on the video, hope you guys like alpha blondy :grinning: )

2 Likes

LOL

love the progress here !!!

1 Like

Hi there,

Just another quick update on character creation / database.

You can now login / registrer, create new character, then click one of the available characters to join the game. Additionnaly, as you move around, your position and zone is saved.

Despite initially wanting to use firebase/similar, I went with SQLite (mysql database in a file) to keep complexity levels low & reducing external services to the minimum.

3 Likes

having fun refining game ui :slight_smile:


1 Like

That’s some incredible progress! Smooth multiplayer is definitely one of the hardest parts of a game

2 Likes

Thanks @carolhmj Appreciate the encouragement!

It seems like every step is hard: the last week, I’ve been mostly integrating a database and it was harder than I expected. You have to make sure 3 states are in sync: the database, the server state, and the client, knowing that each of these are working at different timings (client is in the future, server is in the past, database is in between).

Multiplayer is a whole new level of complex! (I usually code in PHP which is a very different way of thinking)

Anyway, im progressing! Thats whats important :slight_smile:

Next step should be easier: working on a small but decent town & dungeon level

1 Like

Afternnon,

Quick update on the level design i’m working on.

Additionally, I got client side collision working (using a navmesh too, same as server)

Note: how the heck are you supposed to get nice shadows…? I’ve got the light, the shadow generator, i’m adding the player mesh to it, and nothing happens, and I spend ages in the inspector with no satisfying result!



1 Like

haha, you can now kill another player! What a terrible power to have, use it wisely.

(just click on another player and he will lose 5 health)

Added:

  • chat bubbles
  • player hover shows name and outline that reflect current player health
  • health bar
  • attack player on left click
  • tweaking of ui

5 Likes

this thread keeps amazing me :slight_smile:

2 Likes

You know no one will be wise with this power! :rofl:

2 Likes

Oh noes! How are you adding the player to the generator?

@carolhmj actually, since I’ve managed to get some decent shadow working (not pushed to demo yet)

Quick update:

  1. I’ve done a full refactoring pass on both the server and the client to tidy all the mess and made sure everyhting is where it should be.
  2. Started working on next feature: spawning monsters. (i think this one will take some time)

6 Likes

OMG, you are so efficient and prolific :clap:. I’m starting to question myself ‘what the faen’ I’m doing when working on my BJS project :grin: :sweat_smile: :hourglass_flowing_sand:

2 Likes

Everyone has their own pace, the most important thing is not giving up! :grin:

2 Likes

@mawa carolmj is 100% right, keep going on is the most important :slight_smile:

I will be slowing down the pace and step back a little, as the next feature on the roadmap is gonna take a while to research, figure out and fine tune:

  • mob spawning with basic ai (patrolling/idle/aggro)

Actually looking into using YUKA.JS for the ai and navmesh, it looks amazing, and I cannot wait to dig my teeth into it!

2 Likes