Posted July 08, 2024 by EsoDev
This is Bear. Eso can't do the update today because of some unfortunate and unpleasant events that happened on the Discord server. So I'm here to fill you in on recent developments and Eso should be back to updates next week once she feels better.
I think I'll start with the biggest thing. Eso has been working on the details of the item distribution system (as she calls it). The module that decides how items are assigned to containers within a room. This is a pretty critical element for the game, as a lot of detail in the environment is controlled by the randomisation here, and to work correctly, there needs to be a tagging system for items that allows for proper allocation of the items in the location. Eso went over a few different solutions for this, trying to make something that's both all-encompassing and easy to work with on the development side (since this would be the standard for how we handle everything in the future), and eventually settled on a solution that combines detailed item tagging with container archetypes. For those of you who might read the Discord, there was a system presented there; the final version is very similar to that but replaces rooms as a tag with an additional archetype abstraction layer.
Additionally, Eso did some more work on the items that go into the rooms, just more writing, and she did this because she had problems focusing after what happened last week.
Eso also implemented a new way of inserting images into the game. This might not be too obvious as to its functionality, but it stems from how the game handles assets. It's a JS solution that mimics how text assets are managed by Eso's custom scripting language, such as scripts and data for the scripts. It allows images to be stored within ZIP files and obey override order and is also faster than base 64 insertion.
As a continuation of the preceding, Eso also implemented full interoperability between JS and her scripting language. It is now possible to run and return data from JS into EsoScript, as well as run and return data from EsoScript into JS. This might require a revision to some older bits of code and will be used in the future as needed.
As I've mentioned before, Eso will handle the next update.