[OPEN SOURCE] Multiplayer 3D RPG Using Colyseus


I mostly worked on the inventory and how to deal with multiple actions (use, equip, drop, etc…). After different tries, I simply added a simple dropdown on item right click that display available actions ( I got that idea after playing BG3 as I’m sure plenty of you are doing :slight_smile: ).
To recap, you can now:

  • Pickup items
  • Drop Items
  • Equip Items (if equibable and slot available)
  • Use items (like potions)

I also improved the player picking up an item, it was very hit and miss, Now when you click an item, player will actually head towards the item and pick it up when in range.

BTW, I’m on my way to finishing my roadmap (1 item to go) :+1: :+1: :+1: :+1: :+1:

I also spent alot of time of figuring out how to integrate VAT animations, and thanks to the help of @Evgeni_Popov & @Alexander_Sosnovskiy I’ve got it working on my debug scene, and it does bring amazing performance, but brings alot of complexity. I will eventually integrate it to this project once I’m ready.

1 Like

Good news, I just finished my roadmap (2 weeks early, Woot!) and it is time to start really thinking about the gameplay loop of my project, and what exactly am I building? Is it a diablo like? Is it a mmo type game like t4c? an multiplayer action game?

I feel like I already asked this question before, but the project has evolved quite a bit since, and most features I was thinking about have been implemented. Some have even went further than I thought, like the AI.

Anyway, It is critical for me to answer this questions and determine exactly what I’m building and where to go from here. Having never done this exercize, do any of you have any idea how to approach it? Or what type of game this project could be? Any preference? The only condition: it’s must be small enough for me to be able to complete a viable prototype ( so forget MMO’s as much as I would love too :slight_smile: ).

I had a few ideas:

  • a 4 player deatmatch in a small arena where each player could choose a class that had 3-4 abilities, this once has be advantage of being very simple but not very original. (edit: did a quick recap: T5C - A four player deathmatch game - JustPaste.it)
  • a 10 player battle royale (not quite sure how this one could work, open to suggestions)
  • a sort of dungeon crawler, where players can wait in a 3d lobby town and then can initate dungeon runs with 3 other players that are also connected, and where completing dungeons could reward players with xp & better items (I like the idea of having harder dungeons as you delve deeper). The trickiest part here would be needing to make some sort of dungeon generator.
  • an small mmo, but even if it was small, it would require a massive amount of work for building all the required systems (npcs, dialogues, vendors, quests, etc…).
  • your idea?


PS: I always try to add a cool screenshot to my posts: I got a little sidetracked, and stumbled onto this high quality open sourced asset: KayKit - Character Pack : Adventurers by Kay Lousberg and had to give it a try. It only took me about 5 minutes to integrate it into the project, looks pretty good, what do you guys think?

This update after my summer vacation is great to read !!! huge progress !!! :slight_smile:


@sebavan thanks, slowly getting there :slight_smile:

While awaiting for some community feedback on my previous post, had a bit of fun tidying up the character creation page. I will need to do another pass to make things more dynamic and tidy, but it’s a good start.

1 Like

I think not everyone has to do the same thing. I would focus on mechanical gameplay first. Maybe in this order:
-target dummy (combat log, more meaning skills, chainable skills, resource systems, skill effects, player animations, etc)
-better monster ai (proximity, target priority system, reset distance, patrol patterns, etc)
-single player dungeon (try to get some people who do one every day)
-1v1 duels
-ffa arena (add leaderboard)
-a team dungeon (it could just be a single room 1 boss)
-3v3 arena
-open world pvp area with lootable monsters
-normalize instance pvp stats so gear/level doesnt matter
-work on open world economy

@jeremy-coleman Lots of ideas of good ideas there, thanks. Some of the AI is already there (proximity, reset distance, patrol patterns)

Just to be clear, it’s only me working on this project currently :slight_smile:

Improved the character selection screen

Improved the character creation screen, the right section will display all class stats and details

The game to me looked like Runescape and I personally believe that a lot of people still play old school RuneScape and I think that there might be a gap in the market for a competitor in that space.

I think you already did the right thing: “The only condition: it’s must be small enough” Can you come up with more of these constraints?

Other than constraints and since you are the project owner (business owner even), what is it that you want to achieve? E.g. do you want to get into network coding? Do you want to get more proficient with 3d modelling? Stuff like that.

So just for instance if you wanted network coding and if you are heavily constrained by time, then you probably do not want to additionally get into random/procedural level generation (which takes time to get right; I remember a blog post where the guy took a year!! to get its generator right).

Or in my case: I suck at art/design. So I am heavily constrained by available 3rd party assets. In fact, my entire game world is build around this constraint! E.g. it is evil two-legged space lizards because I could acquire this kind of asset and not evil space giraffes (I would have preferred).

As for concrete game(play) ideas, honestly I do not know. Does ChatGPT work for game ideas? Then you can even claim in your marketing your game was made with AI :smiley:

@carolhmj Hi Carol, maybe you can help me, I’m trying to have a fixed pixel sidebar, and the right gray rectangle to take the rest of the width available? What would be the best way to achieve that? Somehting like this: content.width = “calc(100% - 300px)”; ?

@Joe_Kerr thanks for your insight, it’s similar to what I’ve been thinking about. Also if I was to spend a year on something, I’d prefer to spend it on some sort of editor so I could layout monsters, npc, teleports, quests, etc…

I must admit the idea of space girafes is pretty funky :grinning:

PS: I’m reluctant to use that type of AI for a hobby (I may be a little old school on that one, but it feels like such a cheat)

To be honest, I would love to work on recreating something similar, but the amount of work is staggering

1 Like

You can do it with a grid:

I used an additional camera for the GUI to be able to set the viewport for the main area.

1 Like

Cool stuff, that’s very useful, thanks

She’s looking fearsome with the new helmet :slight_smile:


Dungeon level is working again, all teleport are now controlled by server.


I’ve been working on a new improved dungeon level, what do you guys think?

Also the main map now has a secret location, will anyone find it? :slight_smile:


Looks very nice! I love the artstyle :smiley:

Thanks @carolhmj

Small updates:

  • added damage text helpers (not idea how to call these, but shows damage taken)
  • better fireball & heal particule effects (subjective for sure)
  • new sword and shield
  • enemy and item label (shows on right click) is now much more readable
  • added a secret location
  • dynamic events like teleports or level change is much easier to add to game and is all contained in a tidy json structure for each level
  • improved animation handling (casting a spell now has an animation for example)
  • pressing left control will display all entities/items labels


For months now, on this project, everytime, I open the inspector and go to the performance tab, I keep getting this error, it’s really annoying. I can close the error but it keeps coming back

Anyone has any idea why?

Using latest chrome/no extension/latest windows
Using Babylon.js v6.18.0 - WebGL2 - Parallel shader compilation:

We would need a repro somewhere, even if not in the Playground, to be able to help find the problem.