Land of the Rair Dev Blog #2
Oct 19, 2019 • Seiyria
Welcome to week #2 of the Land of the Rair dev blog series! This week, there isn’t a lot to show, but there’s a lot of improvements I’d like to talk about all the same.
Item Storage Change
First up, there’s a big change in how items are being stored. Previously, when you got an item drop, it would give the client all of the data related to that item. It was pretty inefficient.
So, now when you get an item it only tracks the type of item you find. If a player modifies the item, those modifications are tracked as well, but this means the amount of data needing to be transmitted to the client is significantly reduced. For an average item, it used to be about 287 bytes. With this new system, it will be about 49 bytes (for an unmodified item). This is a significant, nearly 80% reduction!
Ideally, this means that ground items will be less problematic and there won’t need to be so many items flushed from the ground.
It also comes with another perk. If something needs to be buffed or nerfed, propagating those changes is significantly easier because it just has to be updated, and everyone will get that changed immediately. That means there will be less legacy gear floating around, which makes everything overall a lot easier, logistically.
Coupled with this, there’s now improved validation for all of the game content. Really, all this means is that when new content gets added to the game, it goes through a fairly rigorous validation process (more rigorous than before!). This has already corrected a few minor errors.
New Map Setup
The previous map architecture was a bit rough, there were a few conditions where gear could poof. In this new setup, it’s extremely unlikely for gear to poof. Overall, just a stability improvement but one that will make development easier.
With the new item/npc setup, all content is embedded directly into the client for easier lookup. This means there will be a bit more loading on the client, but this also means all the data is there for quicker access when rendering items and npcs on the map and in the npc box. If the client and server ever fall out of sync, there’s a warning that appears:
Last but not least, a little bit of improvement in the development experience for LotR. It now can utilize Docker to speed up getting a development environment set up. Previously, you would have to install a bunch of other software to get it running, but Docker makes that not necessary. It is optional, too.
That’s it for week 2! Not a lot to show yet, but lots of improvements on the server side.