Esoteric Update #278 - Spiders, Stereotypes and Stories


Alright, update time. But before that, let me re-iterate what happened last week and why there was no update around the 22nd.

In essence, I suffer from severe chronic pain issues that I take a specific regime of medicine to, at the very least, subdue enough that I can function. Unfortunately, this isn't as easy as I wish it were, and sometimes things go wrong. I spent a large part of that week unable to get the medicine working as it should, and as such, I struggled with the pain. It was bad enough that I had issues focusing on one thing for a longer time and decided to ignore the update, so I had one less thing to stress about.

Anyway, it wasn't a completely wasted week, but I'll just go over everything from the last fortnight.

So, I'll keep minor details out of this update. I did some work on the API, bug fixes, minor adjustments and improvements to the code. Those are not things that need to be discussed at any length.

Instead, I want to first mention writing. I wrote some bits of erotica and lore, both of which can be seen on Discord. The links expire some two weeks from now (it depends on the specific piece; for some it'll be closer to three weeks). I also worked on the items, as is currently my main focus. This is absolutely taking more work than I expected, but in practice, there are a few things related to items I didn't think about before. There are indeed some issues I've never thought I'd had to deal with. One of them is the difference between countable and uncountable nouns when summarising the contents of a container. Otherwise, it's just a lot of work organising an ontology of the items to be added and figuring out a sustainable file structure. However, there are many minor things in there, too, such as item grouping for summaries, figuring out the weights of items, etc.

Next, let's talk about archetypes and defining the opinions of your character about people. I will admit this mechanic seems to have been received very negatively, but I feel committed to it, and at least one person got it, which kept me going. This idea expands on a concept that was introduced very early on in development... indeed, there have already been some preparations to implement it, such as this branch in the general mind map that is meant to let you decide how you think about specific characters, among other things:


But individuals are one thing, and groups of people are another, and the idea here is to introduce the ability for players to define what their characters think about groups of people (i.e. humans vs non-humans, women vs men, different age groups, and various factions, where it applies). Some of these outlooks are neutral, others are positive while others still might be negative or even quite socially maladapted. The idea is to let the player define their character's view of people, which then ties into the skill and resource system (for example, if you talk with someone you enjoy being around, you might improve your mood, but it might also be harder for you to hide things from them).

This system is currently finalised design-wise but has not yet been implemented. Mostly, this is because of a lack of time/preference to focus on other issues, but I also have to figure out how to build the interface.

Finally, there are a bunch of changes and extensions to the item system that I implemented (or rather finished implementing; some of these things were started earlier) to support... being scared by a spider. Now, this might sound like a rather silly feature, but firstly, this is actually something we are putting in the game, and secondly, that's not the point. The point is that this feature requires a number of mechanics that we plan to use in different places, though not necessarily all of them, as they combine in many ways.

These features require:

  • Item generators: a method for the game to dynamically add spiders to containers (for example, drawers) so that they might spook the player character. Actually, this can also be used to find hidden things within containers or to service very symbolic containers that can change their contents on the fly (like grass in the park, not a typical abstraction, we know).
  • Similarly, the game needs ways to smoothly remove items from containers automatically. Spiders scurry away when noticed, but some other things might need to be removed once they are no longer required. I'll add that this on its own wasn't a problem; other things interacting with containers complicated it, though, and the resulting issues led to some code needing a rework along the way;
  • We also needed a way for the game to trigger code when an item is looked at. The problem is that looking at an object in a container doesn't go through our scripting language; it's a purely HTML/CSS interaction in the UI. So, we used our new JS interop functionality and hooked things up to the relevant events. For a spider, this is when the PC gets frightened, but it has more general applications. Imagine having to look at a clue so the player character can learn something. Previously, we could trigger code when the player looks into the container with the clue or upon clicking on the clue; now we can also use the additional hook of the player looking at the clue;
  • We also needed to account for backing up from the inventory for the frightening to function. This was made especially tricky because our inventories are recursive. But we have an elegant and stable way of doing it, which also plays well with everything else. This same functionality is used when time passes, and something happens in the background that requires the player character to be "pulled out" of the inventory view.

There's a bit more to it. But as I mentioned earlier, it falls under the details that are not worth discussing. Things like pre-written JS functions to help elegantly perform certain actions or places to hook up skill checks. Regardless, part of the issue was the extensive testing needed to ensure all this works correctly, particularly together.

Going back to working on the ontologies now.

Get Esoteric ♥ Esoterica

Leave a comment

Log in with itch.io to leave a comment.