Sign in to follow this  
Damian Pastorini

Base MMORPG - Node, MySQL, Colyseus, Parcel and Phaser 3

Recommended Posts

Hi everyone!

Before anything I wasn't sure if this was the correct place to post this, please moderators move it as you consider if this should go to some other place like Projects and Demos.

https://github.com/damian-pastorini/dwdgame

Also, please consider that this is my first implementation ever!
I've never used neither Node.js, even less Parcel, Colyseus or Phaser, my world before this first incursion in game development was all about PHP and Magento, so that should give you an idea from where I'm coming.
This quite awful but working example took me 75hs, including the time I've used for research and for decide which platform use for the server and the client.
After all the research, Node + Colyseus and Phaser 3 looked as the better start point since I was familiar with JS and HTML of course but had zero knowledge about Unity (the other option I would like to use), but I've prefered make the learn curve not so slow.

So....

This is a really simple base MMORPG game created based on the Colyseus samples:
https://github.com/gamestdio/colyseus-examples

And on the Phaser 3 implementation from Jacky Rusly:
https://github.com/jackyrusly/jrgame

As you will see I've considerable modified how the jrgame was interacting with Socket.io in order to make it works as how the Colyseus example was working, I've thought that was the better way to do it (follow up on server ready samples and break apart the client :P sorry Jacky!)

The game basics are login through DB, loader, scene change, players sync, but nothing like chat, items, or attacks was implemented here (so far).

Here's the link to the repo:
https://github.com/damian-pastorini/dwdgame

Please feel free to create any tickets or pull requests for questions, fixes or improvements, I would love to get good feedback!

I don't have a public link to show it yet but I'm planning to create a dev server soon (for now you will need to install it and run it to see it), at the end it will look like:
https://jrgame.herokuapp.com
But you will see the login screen first which in the server side will connect to the DB and all the players sync was done with Colyseus.

I saw comments from people looking for Colyseus integrated with a DB engine (in this case I've chosen MySQL), so at least that part should be useful.

I really hope this help more than one person, maybe someone like me who would love to get this as starting point.

Best,
Damian

Share this post


Link to post
Share on other sites

Hi @Wavertron, almost all the other implementations I saw were made with plain Socket.io / WebSockets, and all the sessions handlers and states sync were done "manually", which I was preferring to avoid.

Another options I saw were:

- Pomelo, but last update was 2 years ago... https://github.com/NetEase/pomelo

- ActionHero: https://github.com/actionhero/actionhero 

But Colyseus looked easier and cleanest.

Do you recommend any other?

Best,

Share this post


Link to post
Share on other sites

Hi everyone!

Just re-found this post and decided to keep it updated.

My old MMORPG platform is taking great shape! I've put it a new name I like "Reldens", and started to publish in a new repo:

https://github.com/damian-pastorini/reldens

The current release is v3.1.2, it has a lot of improvements and more features than the initial version published in this post, between the improvements:

- Full server physics as authority for every action.
- New graphics set.
- Better TiledMaps handlers which are used in the server side to create all the required objects using a few name conventions.
- Full chat implementation, with global, private and room chat.
- Basic players stats.

You can find the current docs here: https://github.com/damian-pastorini/reldens/wiki

And the demo: https://dev.reldens.com/

At this point version 3.x will be the last one since the new coming v4.0.0 has huge changes!
The entire architecture was modified, the code was optimized a lot and tons of new features will be included: 

https://github.com/damian-pastorini/reldens/tree/v4.0.0

 I hope you like it!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.