[WIP] - Reldens - MMORPG Platform

Hi everyone!

V3 of my project Reldens was released!
hope you like it!

Features list: https://github.com/damian-pastorini/reldens/wiki/Features
The demo: https://dev.reldens.com/

I would love to get any feedback! Thanks!

6 Likes

I know youā€™ve provided a demo, but it might be nice if you included a description of the feature set and some screenshots here.

hi @jorbascrumps thanks for the recommendation, Iā€™ll prepare some screenshots and a feature list (and will try to include some videos as well).
:slight_smile:

Hi @jorbascrumps, Iā€™ve just included a Features list in Github with some screenshots, next will be the video.
Best,

Nice! Youā€™ve got a pretty neat little framework on your hands. Keep up the good work!

1 Like

Hello everyone!

Just to bring some updates on the platform Iā€™ve been working on.
V4 is coming! Iā€™ve stopped adding any new features in favor of clean up the code structure which will make everything easier for everyone.

Below you will find some of the big differences between v3 and v4:

  • A full folders restructure, everything is been moved into a ā€œsrcā€ folder and split in modules which are called from server or client.
  • A ā€œManagersā€ structure was implemented in the code which are used to handle different stuff. Everything will be documented in time, but for example we have the Config Manager or the features Manager to load and handle all the saved values in the storage.
  • A lot of name conventions are been followed to make everything easier to find (but this may still change).
  • Almost all the Promises were replaced by async/await and a small fix for Parcel (to include Babel plugin-transform-runtime), was introduced to handle the async/await on the client side.
  • All the hardcoded queries were removed and Objection JS was implemented to handle all models. If you are not related to Objection JS Iā€™ve strongly recommend you to check on it, it is not an ORM but like they claim an ā€œenhanced query builderā€ and is based on Knex JS so if you know Knex you will love Objection: https://vincit.github.io/objection.js/
  • The migrations system was re-implemented as well using Knex migrations, so now everything is under the same module.
  • All the hardcoded HTML code is been removed and replaced by templates. Mustache was implemented for this matter in combination of Phaser DOM and the scenes preload, this way we were able to preload the templates and then parse it with Mustache before render.
  • Almost all the TODOā€™s related to configurable values from the database were completed, and the plan is to clean up all the ones related to issues that were avoided with some ā€œcode hackā€.
  • The database structure was fully modified, all the JSON type fields were removed, and all the data was split in several related tables.
  • The introduction of users / players difference was implemented to prepare the platform to allow users have multiple players created in the future.
  • Players ā€œstatusā€ now has itā€™s own schema and players ā€œstatsā€ are handled in a private way using room messages.
  • Physics module is now are prepared to handle multiple collisions and not only players-walls.
  • Chat module was implemented as feature and it can be enabled/disabled from the config now.
  • All the code is been commented and documented.
  • Colyseus and Phaser are been upgraded to each available last version (as for this post Colyseus 0.11.15 and Phaser 3.19.0).

Thought this is still a work in progress you can find the code in the v4 branch: https://github.com/damian-pastorini/reldens/tree/v4.0.0
And the example database: https://www.dwdeveloper.com/media/reldens/reldens-install-v4.0.0-2019-09-30.sql

Whatā€™s coming?

  • After finish with the full refactor (a lot of client side is still old), the idea is to implement a lot of custom callbacks (beside the ones you can already use from Colyseus or Phaser), in order to make the platform work as package.
  • Implement the most basic important pending features: password recovery, NPC and enemies, collisions between players-enemies-NPCā€™s, and add some basic examples for animations in the maps.
  • And after these items then continue with the road map: https://github.com/damian-pastorini/reldens/wiki/Road-Map

As you can see V4 will be basically fully incompatible with the priors, it will be a fresh start but if you have any custom maps already created those will still work as the same in v3, you will only need to push the proper values in the database since the structure changes.

I hope you like it! Any feedback will be welcome!

Hello everyone! Iā€™m here with some news!
Iā€™ve pushed a new v4-NPM-ready branch: https://github.com/damian-pastorini/reldens/tree/v4.0.0-npm-setup-v1
I still didnā€™t merged it into the main v4 branch since Iā€™m not sure about if it is the right approach, it still need some work to make the process easier, and also because in any case we will need quite more events to be fully useful that way.
Iā€™ve also created an example doc here:
https://github.com/damian-pastorini/reldens/wiki/V4-NPM-Ready
The doc shows how to use npm link to make it work as if you really installed through npm and not locally.
The part that Iā€™m not sure about is the way the client part has to be installed and how itā€™s been build, also I donā€™t really like the idea of copy base files from the node_modules folder.

I would really appreciate if anyone could give me some input here.
Another idea was to create a separated skeleton branch that would be ready-to-run, and that users could clone it in the project root, but that would be adding more steps that wonā€™t change much how itā€™s now.
Iā€™m really trying to re-think this but is been quite hard so far, so any thoughts will really help!

Thanks!

I canā€™t play it, it tells me I have to make an account

Hi @tac thx for let me know Iā€™ve just realize that the registration form is not working for some reason, Iā€™m checking on it now.

Hi everyone!
Thanks to @tac ! registration is working again, feel free to give a try!

The current deployed version is a bit old though, all the last upgrade are been implemented in v4.

Thereā€™s also an NPM ready branch and some instructions if you like to try it:

Hope you like it! Progress is been done and ideally I would have v4 before the year ends.

do I have to register? can I play as a guest? registration is such a commitment :slight_smile:

hi @tac, yes, you need to register since we are saving the user related data to keep the position, scene and stats, and in the future we will need to save a lot more, like items, skills, etc.
That said you can use any test data for registration, the email does not require confirmation just to be a valid format, so you can put like asdasd@asdasd.com and it will work (if is not taken already :stuck_out_tongue: ).

Hello everyone!

If you like to give it a try to this project please checkout:


And then follow this guide: https://github.com/damian-pastorini/reldens/wiki/V4-NPM-Ready

Best,

Iā€™m glad to register while I wanna play a good game. But Itā€™s very uncomfortable when help someone to test game.

Hi @kloveq wellā€¦ I get your point, but considering this is not a game, itā€™s a platform, Iā€™m keeping the registration On to show up it is available as feature. Though I still didnā€™t include an option to enable / disable in an easier way anyone can do it on their own implementations.
That said I will try to include some guest feature for the devs who wantā€™s to see how the result game would work in a easy and quick way.
Best,

Player move Player is about to be pushed on v4 branch!

Alright!

Considering how much behind the v3 was getting Iā€™ve decided to do a beta release for v4!

This version is available on NPM:


And the installation is easier than before:

For that matter Iā€™ve created an Skeleton repository:

The dev server was updated as well
http://dev.reldens.com

And between all the huge refactor now you will find:

  • Almost everything now works based in events, so this will allow you implement a lot of customizations without need to rewrite almost anything.
  • In any case there are still some configuration files and the idea of having a ā€œgame-themeā€ was implemented, so you could easily use the skeleton theme for start.
  • At the same time a lot more stuff is now configurable just by changing some values in the database.
  • Maps animations were implemented (in the skeleton example you can see the river moving).
  • Objects with animations are also available in both public (broadcast), and private (for single client). For example: the doors will open > the player will change the room > but for the other users that are seeing the door open, a few seconds later the door will be closed.
  • A basic NPC was implemented. NPCā€™s are used like another object type that will just respond on specific actions. In the skeleton example you can click on the NPC (the guy with the hat) and it will show a message.
  • Targets System was implemented, you can click on any player or NPC, and the target will be selected.
  • With targets, short distance attacks are now available, if you are close enough to a player and click on it, then you can click on the action button or press the space bar to attack (for now we only have that action).
  • Related to attacks, the stats are now affected, atk and def are (for now) simple compared to validate the attack, and when the attack success (for now always since the atk and the def are the same for all the players), the HP will be reduced.
  • And for last! Now we have the Game-Over event when a player that die will be kicked out! Sorry, that was the quickest thing I was able to come up with.

In terms of roadmap, issues and progress tracking Iā€™ve started to complete the project board with all the tasks: https://github.com/damian-pastorini/reldens/projects/2

Hope you like all the new improvements, Iā€™ll keep adding new stuff and fixing the parts that can be improved.

Best,
Damian

Hello everyone!
Iā€™m back on the project and v4.0.0-beta.7 is about to be released!

Whatā€™s included in this beta?

  • Issues fixed! 5 issues were reported and the 5 were fixed https://github.com/damian-pastorini/reldens/issues
  • Battle mode is been implemented, you will be able to start a battle and set a battle time-off which will be considered after the last player attack (still incomplete since there are none rules for what happens on this mode, but itā€™s already available to setup any).
  • PvP with (for now), short distance attack was implemented using the battle mode.
  • A new ā€œForestā€ map was included with some enemies. PvE is still in progress but will be available with the beta.7 release.
  • A path finder was implemented (though it still can be improved, itā€™s working for a start point), now you can click on the scene and the player will move to that point. With this implementation enemies will also go after you.
  • Health bar is now visible for the current player.
  • Some new animations are been implemented and others were fixed: hit player and die.
  • All dependencies were updated: Colyseus 0.12.x, Phaser, etc.

Hereā€™s a small video to show you the progress!

Some time without publish a new release, so hereā€™s beta.11!

Whatā€™s new on this beta?

  • Made bundler optional and created an await class for the original process.
  • Packages updates.
  • Fixed issues from GitHub #54, #60, #62, #63.
  • Fixed monitor and included authentication.
  • Exported modules @reldens/utils and @reldens/storage.
  • Included SQL script for upgrade from beta.8 to beta.9.
  • PvE, PvP, different attacks short and long distance are fully working, though there still some improvements to be made these are fully operational.
  • Pathfinder was improved and pathfinder layers were included.

Hereā€™s the last video:

Hello everyone!

Long time without post any updates and thatā€™s because this is a big one.
Iā€™ve created two new websites, one for me dwdeveloper.com, and one for the project reldens.com
Along with this Iā€™ve also deployed a new beta of the project: v4.0.0-beta.14 which includes a lot of new features!

The main ones:

  • Inventory system.
  • Equipment.
  • Improvements on responsive screen and mobile experience.
  • A bit better performance related to some recursive unneeded queries to the database.
  • And a lot of other changes that you can check on the change log.

For last Iā€™ve also created accounts on Patreon and Ko-fi so any support will be really appreciated, this project can be a reality sooner if I can get any support.
Obviously by support I never mean only money, Iā€™m also looking for anyone that would like to collaborate on the graphics side and improve the demo.

Any feedback will be appreciated! Iā€™ve put a lot of effort on this and I will keep doing it! So I hope you like it!

Regards,
Damian

1 Like