Esoteric Update #283 - Doors, Lies And Emotions
Update time. We have a few things to touch upon today.
Let's start with the door issue. The door issue is largely resolved; locks are not yet there, but I don't want to do door locks before I don't revise the code for box locks (i.e. locks on container items). Unfortunately, representing locks using container items doesn't quite work, so I need to brush up and extract the lock code as a separate module and then re-integrate it with both box and door locks.
Although the locks are not quite there, the door implementation is almost complete. The important things include the ability to handle doors from either side differently and full proper integration for doors and visibility. And this goes past doors blocking line of sight. There's a specific situation in the test adventure where a bookshelf is blocking access to a door, and the shelf has to be moved out of the way before the door can be accessed. This requires some pretty intricate handling, but fortunately, it's all there now.
I've also worked on a few other things related to the adventure, but it's more technical and, thus, not something easy to show. Some of it involves cleaning up the structure of adventures into something that runs smoothly and has no strange edge cases. However, some of it involves implementing a framework to support agents. There will be a pretty important agent in the test adventure, but we can also use agents for some unorthodox applications. There will be more about this eventually.
Additionally, I uhhh... I wrote a little tool for doing 2D wireframe renderings (projections) of 4D objects. It operates in three modes. The first mode allows for any arbitrary parallel projection. The second mode allows for a weak perspective projection from 4D to 3D and then a parallel projection from 3D to 2D. And a third is a mathematically unsound but visually solid projection using ideas inspired by weak perspective projection to take 4D into 2D directly.
Here are some examples using a hollow hypercube (a.k.a. a tesseract):
Oblique 4D to 2D parallel projection.
Trimetric 4D to 2D parallel projection with the 4th dimension extruded along an additional axis.
Weak perspective projection from 4D to 3D, oblique projection from 3D to 2D.
Custom "fake" perspective projection from 4D to 2D.
We've also been working on some new mechanics for conversations. These mechanics aren't really anything new, but they are a new way of using certain concepts we've developed before while interacting with NPCs and, more than that, informing you about the possible consequences of making those choices.
These are the in-game explanations for these mechanics (or rather, these symbols):
They come up early on in the newly revised intro. Right here, and there's a bunch of interesting interactions between mechanics that are at play here:
Now, I'll just get the little white snek of dishonesty out of the way: in this specific context, it doesn't matter. You can decide if you are telling the truth or lying when you make one of those two selections (dialogue option 1 or 2). I will say that I'm still not sure if we should be generating those responses separately or if they should always be identical (i.e. that dialogue options 1 and 2 are the same, and then 5, 6 and 7 are also the same), but that's a topic for another time.
Instead, I want to bring attention to the emotional tones of options 5 and 6 and their interplay with the thoughts that have their own emotional tones, particularly the disgusted thought.
So, first of all, the player may select the emotional (disgust) dialogue option without selecting a thought. As per the rules of the game, this forfeits the player's thought action, but we felt it should still result in the effects of feeling disgusted if done this way. This behaviour is largely automated.
Secondly, if the player selects an emotional thought it should reflect on what they can express with their dialogue. If the player has feelings of disgust, acting upon the disgust with the dialogue option works, but we also think it shouldn't double the effect of taking an emotionally charged action. So, if the thought is made first, the selection is limited to emotionally matching dialogue choices, but selecting those dialogue choices doesn't double the effect. This is also largely automated.
Thirdly, suppose the player selects an emotional thought that doesn't reflect any of the possible emotional tones (note that this includes selecting nothing, as that implies apathy to the situation). In that case, we've decided to still give the option to choose that line, but this time, it's treated as the player character trying to hide the emotional tone and trying to make it sound ambiguous. While this is not the only context in which an ambiguous tone might appear, it's a specific application of it and, once more, is largely automatable now.
This all offers ways for NPCs to react differently, including giving the player character the room to set herself up for having her bullshit called out, either in the short term or in the long term.
And we think that's interesting in its own right
Get Esoteric ♥ Esoterica
Esoteric ♥ Esoterica
A story driven erotic game about magic, supernatural forces, love and BDSM.
Status | In development |
Author | EsoDev |
Genre | Interactive Fiction |
Tags | Erotic, Experimental, Fantasy, Female Protagonist, Mystery, Procedural Generation, Romance, Story Rich, Text based |
Languages | English |
Accessibility | Color-blind friendly, High-contrast |
More posts
- Esoteric Update #291 - All Keys To All Doors3 days ago
- Esoteric Update #290 - Returning To Work10 days ago
- Esoteric Update #289 - A Convolution By Another Name25 days ago
- Esoteric Update #288 - Continuing On With Work32 days ago
- Esoteric Update #287 - Return Of The Cat: Long Update38 days ago
- Esoteric Update #286 - Hyperplanar Orthography59 days ago
- Esoteric Update #285 - Ugh My Head, Anyway, Coding66 days ago
- Esoteric Update #284 - Interface Update73 days ago
- Esoteric Update #282 - The Final Map, Fog Of War, Doors88 days ago
Leave a comment
Log in with itch.io to leave a comment.