|
|
Just completed support for item equipping and equipment in general. This includes:
- Ability to equip items defined in item metadata (item-data.json file)
- Ability to unequip items
- Two handed weapon support
- Item bonuses that reflect on the equipment screen
The pull request and code for this system can be found here: [Only registered and activated users can see links. ]
Equipment:
Equipment with bonuses:
![]()
Ran a couple tests today around player updating. Found a few issues and fixed them up. Also created a command line param for spawning around 80 fake bot players that all walk around at random to test performance. Everything looked and ran well, though this was only 80 players as I don't yet have a system for chunking out large amounts of players for player updating... That said, all of these fake players go through the same processing as a real player would, minus packets being sent and received from a game client.
These changes were pushed up to master. To spawn the fake players, either run "npm start -- --fakePlayers" or "npm run fake-players". The game server will start up and automatically spawn 80 random bot players in the Lumbridge castle.
![]()




Cool start so far. Glad to see some divergence/experimentation into other languages.
I had done a prototype with basic login 5-10 years back with js/node when v8 was being hyped. Ultimately realized that I hated writing js almost as much as I hated php and never bothered thinking about how I would flesh out the design.
This is actually pretty damn cool. A lot of parts/aspects of the design remind me very strongly of hyperion.

I was considering pursuing this in the past so I'm interested to see your progress, good luck.
I've always wondered if the node runtime would be fast enough for this kind of CPU intense load. In your last performance test how long on average did it take to complete a game cycle?
Thank you! I got a lot of inspiration from Hyperion actually. I used it a lot when it first came out, so perhaps that has given me a certain style of writing things lol.
I didn't do any actual benchmarks for this first test, just wanted to see how the server handled 80 or so players in one place moving around - also to fix any issues with player updating, of which there were a couple. Unfortunately I can only do about 80 right now since I don't have a system for chunking players for player updating just yet... So it'd crash any client I log in on. That said, I suppose I could spawn a bunch and just see how the server performs without logging in myself on another player... I may try that.
I'll get some benchmarks up soon though!
EDIT:
Here's some quick and dirty trial runs of just bots walking around Lumbridge:
Spoiler for 100 Players:
Spoiler for 1000 Players:
Keep in mind that this does not include player updating for any of these players, but it DOES include them walking randomly and path validation for EVERY player.
EDIT 2: Did a tiny bit of work towards chunking the addition of new players... They all walk around and send their updates like they should. Got up to 250 in a region here:
![]()
Those little benchmarks got me in the mood to go ahead and better flesh out how player updating handles large amounts of players. With today's changes it will now:
- Load 80 new players at a time (per game cycle)
- Run updating on a maximum of 255 players
- Prioritize the players closest to the player in question when adding new players
All of this is up on the master branch if anyone wants to take a look.
A picture of a player loading into an area with 1000 players, showing it having loaded the closest 255 players:
Now a shot of the player walking towards the graveyard in Lumbridge where there are more players, rendering them in when it is able:
A final shot after having let the bot players walk around randomly and spread out for a little while:
![]()

I'd love to help out a little, could you maybe create a slack server for development?
Thank you! Just published a second "release" today, 0.2.0
Hadn't really considered that yet honestly, seems a bit early for that level of thing. I do have a Discord though if you'd like to communicate. That said the project is open source on github so you're free to fork and submit PRs. I may or may not accept them depending on what I'm planning for whatever the feature is, but right now I don't have a lot of plans honestly haha.
Anyways, I just published v0.2.0 on Github: [Only registered and activated users can see links. ]
The release has some release notes on it, and you can find everything in it on my Kanban Board in the "Released" column here: [Only registered and activated users can see links. ]
But for those not wanting to go over there to see, here's a list of things done since the initial 0.1.0 tag:
- Implemented an item configuration system; issue #1, commits 2ca93b9 & cc1fb09
- Added support for item swapping within a player's inventory; issue #20, commit 2b21c92
- Added REST endpoints for retrieving specific item info and updating specific item info; commit 902dc16
- Implemented support for player equipment with updating; issue #2, commit 3b77315
- Modified player updating to send a player's current face direction when registering them; commit 1a3f8b2
- Support for player input commands; issue #11, commit 96a54b1
- Modified player updating to prioritize nearest players first; commit 328d17e
- Made player game client settings save and load on login and logout respectively; issue #3, commit 3a74085
- Implemented the ability for players to toggle run mode, issue #4, commit 3a74085
- Implemented basic support for Non-Player Characters - NPC updating, spawns via a YAML config file, random movement with clipping, and definition reading from the game cache; issue #24, commit aa96ab6
- Restructured many packages and imports to be better readable and easier to navigate; commit 7b1bfb1
- Removed concept VueJS UI from project in favor of the control-panel package; commit 5650b5e
And finally a few pictures:
Spoiler for Media!:

| « Project Decipher-rsps. | 🌟HeavenX ll Custom Server || Dedicated Team NEEDED!🌟 » |
| Thread Information |
Users Browsing this ThreadThere are currently 1 users browsing this thread. (0 members and 1 guests) |
| Tags for this Thread |