[OPEN SOURCE] Multiplayer 3D RPG Using Colyseus

I can’t agree more :muscle:

There are some videos about 3D RPG camera movement on YouTube. Check them out too!

2 Likes

@mawa Thanks, always nice to get some solid encouragement. Yes, doing the video really show me how much sound/music is missing, I better get onto it then :stuck_out_tongue:

@roland Thanks, appreciate that :slight_smile:

2 Likes

@oriongu This looks amazing !!!

2 Likes

Hi all,

A few updates:

  • Character Creation has been updated to reflect latest changes, I need to rework the UI
  • Reworked main blender humanoid character to avoid it looking “naked” + alot of minor improvements to the base mesh.
  • Added a new skeleton enemy
  • Added a training world so I can more easily fine tune systems without clutter
  • Added main music theme
  • Added player footsteps
  • BUG: Fireball now always hit targets (previously, if the target was moving, it would continue straight)
  • BUG: Fixed an issue where enemies would not respawn

6 Likes

Just a minor detail: If you use like 3 variations of the footstep sound and play one of them randomly per step, this will sound much nicer as takes out the monotony of the repeated “flop, flop, flop…”

2 Likes

definitely go with “flip, flop, flap” :hear_no_evil:

2 Likes

Haha, that’s a great idea. thanks for the suggestion :slight_smile:

Damn, do you guys ever get the feeling when looking at some of your older code and think: Geez, what the hell was I thinking!! I was going through some of the server code and some of it is so bad, I feel slightly ashamed :slight_smile:

3 Likes

lol, all the time, it proves that we are evolving :slight_smile:

3 Likes

Hi All,

I have not had too much time to work too much on this project, but still managed to get some stuff done:

  • Restructured the server to easily use a MYSQL database instead of SQL LITE for persistence
  • Working on improving combat to feel more responsive and impactful:
    – improved control on animation & timing
    – added sound effects to most abilities
    – enemies can now launch abilities just like the player
    – lots of minor timing improvements

I think I’ll be working on this for a while as it is very tricky to get right, especially over the network.

Anyway, here’s a quick preview of the current state, it definitely feels nicer to play now, but still along way to where I would like it to be.

What do you guys think?

5 Likes

Looks great :slight_smile: I see fireball dmg is displayed at the hit moment not cast (I noticed it before). Combat with sounds doesn’t feel ‘empty’ :slight_smile:

1 Like

Looking really good man! You can tell you have put quite a lot of work into this already. Keep it up :raised_hands: :rocket:

1 Like

Thanks, Not entirely sure of what you mean about the damage? Do you mean it’s displaying at the right time or the wrong time? Yeah, well placed sound is very effective.

@AncientA Thanks, bit by bit it’s improving :slight_smile:

It’s ok now :slight_smile:

1 Like

Hi All,

It’s time for a quick retrospective of this project and I thought it would be nice to do it in pictures.

Enjoy!

Use the link to view the full timeline:
https://raw.githubusercontent.com/orion3dgames/t5c/main/construction/Retrospective2024.jpg


It’s been a productive few months, and I have resolved many performance issues that were hindering me, lots of long standing bugs have been fixed and improved the feel of the game quite a bit and the current list of features have increased (and improved) quite a bit.

Features

  • vat animations and instances
  • fully player authorative movement with client side prediction and server reconciliation
  • scene management (login, register, character selection, etc…)
  • map management (ability to teleport to a different map (ex: a dungeon) or a location on the current map )
  • multiplayer animated characters
  • global chat (works accross zones)
  • chat bubbles appear above the character
  • uses a navmesh for collision detection
  • basic persistence with either mysql lite / mysql
  • basic enemies with simple AI behaviour (IDLE, PATROL, CHASE, ATTACK, DEAD)
  • enemies can drop items (based on a loot table)
  • 5 basic abilities ( autoattack, slice attack, fireball, poison, heal )
  • ability to target players and enemies
  • ability to pick up items and see them in your inventory
  • ability to equip items and see them on your character
  • basic player levelling with experience and ability points
  • fully functional UI (experience bar, abilities bar, draggable panels, etc…)
  • simple quest system
  • simple trainer system (learn abilities)
  • simple vendor system (buy and sell)
  • basic sounds and music
  • small background and world building
  • Nameplates for each entity
  • Small help panel
  • character customization (Multiple Heads / Multiple Skins)

All this running at a steady 60fps with any computer that has better than a integrated graphics card.

But thats not all, behind the scenes theres is so many small things happening that takes ages to fine tune, for example:

  • Improved map building workflow from Unity to Babylon.js
  • Improved character workflow from Blender to Babylon.js
  • How to handle everything in a network environment
  • Improving the maps JSON files so that the NPC appears in the right place, sells the right things or that monsters uses the right abilities, have the right damage and basically anything that is interactable in the world.

Let’s talk numbers

Let’s check the overall interest in the project in numbers:

  • BABYLON.JS: over 17400 views as of today (woot!) and a total of 354 posts.
  • GITHUB Forks: 26
  • GITHUB Views: 600-1000 / week
  • GITHUB Clones: 20 / week
  • GITHUB Stars: currently standing at 106
  • DEV.TO views: 1618 views in total over 10 posts
  • DEV.TO followers: 372 followers in total over 10 post
  • DEV.TO comments: 3 in total over 10 post

The future/Roadmap

Not sure, I’m running out of ideas.

I could of course keep improving each project systems but that would be a never ending battle and I’m not sure how productive it would be in practice.

Open to suggestion? (again!)

Thanks/Credits

  • A massive thanks to the BABYLON.js team and community with all their continuous support and encouragement, it would never have been possible to get this far without your continuous help
10 Likes

This is super cool :heart_eyes:

2 Likes

can’t agree more

1 Like

Congrats !!! Can t wait to try it !!!

1 Like

Let me know what you think. You can press the Numpad Enter to spawn lots of entities or use the numpad + - to adjust the enemies amount. Please crash the server :slight_smile:

And then you still find time to do a ‘retro’? :stuck_out_tongue_winking_eye: :dizzy_face: Seriously, how do you want us to compete? :man_superhero: :sweat_smile:
I’m so glad you didn’t give up. Clearly, you overcomed it against all odds and came out even stronger :mechanical_arm: This should be a lesson for all of us :student: Keep up the good work and keep us amazed :heart_eyes: May be still find some time to rest and enjoy this holidays period? :beach_umbrella: :cocktail: :sunglasses:

1 Like