Making a Multiplayer WEB RPG - Part 4: Roadmap Retrospective
Tags: babylonjs, colyseus, devblog, gamedev
Published: 2023-06-15 04:30:47

SOURCE HERE: [GITHUB](https://github.com/oriongunning/t5c)
DEMO HERE: [DEMO](https://t5c.onrender.com/)

---

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vb9x9nbhz2sxo4nsgn5e.png)

---

Hi all,

Six months later, it's time for another retrospective. Despite encountering a few challenges along the way, I managed to achieve significant progress. In this blog post, I will reflect on what has been accomplished, what remains to be done, and outline a more realistic roadmap for the upcoming months. So, let's dive in!

### Accomplishments

Over the past six months, with more than 250 commits, I have successfully implemented a basic version of the following features: 

- Basic name, logo & branding
- Basic levelling up & experience system
- Improve AI pathfinding & behaviour
- Completely revanped AI (using a simple FSM structure)
  - When in aggro mode, make sure AI does not go though walls
- Better monster and player selection
- New game UI
  - inventory panel
  - character stats panel (assigning stats points)
  - abilitiy panel (learn and unlearn abilities)
- Item drops from monsters
- Ability for players to pickup to inventory
- Items & Abilities database
- Better player camera (rotate and zoom)
- Every assets is now either made by me or is open source.
- Lots of improving in ability feedback (casting bar, etc…)
- Much better & flexible tooltip
- Player data can easily saved to DB is need be
- Arguably better assets loading
- initial colyseus state reduced (still more to do there)
- probably more stuff that I forgot about

---

### Pending Items

Unfortunately, there are a few items from the previous roadmap that I couldn't complete within this timeframe. I may have been overly ambitious, considering the scope of the project. The outstanding items include:

- Having NPC’s (may have been a little optimitisc on that one)
- Dropping item from inventory
- A few remaining bugs

---

### Marketing

I’ve also manage to do a little bit of promotion on a couple discord channel and made 3 small dev posts on DEV.TO :

DEV Blog #1 - Multiplayer 3d Top Down RPG using Babylon.js & Colyseus
DEV Blog #2 - Babylon.js Multiplayer RPG - Adding Items
DEV Blog #3 - Babylon.js Multiplayer RPG - Updating the interface

---

### Project Metrics

To gauge interest in the project and ensure it's worthwhile, I've been monitoring some metrics. Although I lack a benchmark for comparison, the numbers have been steadily growing, which is encouraging:

- BABYLON.JS: over 4900 views on my progress post as of today (woot!)
- GITHUB Forks: 10
- GITHUB Views: 600-1000 week
- GITHUB Clones: 90-120 week
- GITHUB Stars: currently standing at 39
- DEV.TO views: 500 views in total over 3 posts
- DEV.TO followers: 150 followers in total over 3 post
- DEV.TO comments: 0 in total over 3 post

---

### Features in Progress

Several features I've been working on are not yet implemented or showcased due to their complexity or current issues. These include:

- How to implement baked animation
- How to implement clothes and different materials (different face for example)
- Retargeting animations (not sure of the term but having the same animation set for multiple characters)

---

### Conclusion

Reflecting on this six-month sprint, I can confidently say that building a basic 3D multiplayer RPG is a massive undertaking. To achieve a playable prototype or come close to completion, I'll require additional time (which is limited) or assistance from others who excel in areas where I lack expertise, such as level design or character animations.

If anyone is interested in contributing, please feel free to join the project! Regardless, I'll continue working on it to the best of my abilities.

---

### Roadmap for Version 0.3.0

Considering the lessons learned, here is an updated roadmap for the upcoming months, with a more realistic scope:

[GAMEPLAY]
1. Calculate basic damage and stats based on relevant factors, such as items and character stats.
2. Enable the ability to drop items from the inventory onto the ground.
3. Implement the usage of items like health potions and mana potions.
4. Improve the hover effect for items on the ground.

[UI]
5. Allow players to equip and interact with armor and weapons in the relevant UI interface

[AI]
6. Enable AI to patrol in an area defined by an array of vector3 (x, y, z).
7. Implement AI's ability to patrol within a specific radius around a vector3 position.

[PLAYER]
8. On entity death, remove entity collision and hover/pick events to avoid hindering players from picking up dropped items.
9. Ensure the selected entity loses focus based on player distance.

[BUG]
10. Fix the issue where, after performing a basic attack, if the player starts moving and then stops, the attack animation continues instead of transitioning to the idle animation.
11. Resolve movement irregularities and delays when multiple players are present, some sort of bug there, to be investigated
12. If a player disconnects while being targeted by an AI, prevent the AI to continue attacking for a while before returning to patrol.

[RESEARCH]
13. Investigate how to add the Y-axis to my movement controller.
14. Research on the implementation of patrol areas, teleport events, NPC positions, and other dynamic elements in the world, probably via some sort of custom amade editor