Esoteric Update #104 - 2nd Year Summary
Ah, two years now, time for a new summary!
I think it's best I divide this up into a few sections:
1) Project overview
2) Development methodology
3) Mechanics
4) Storytelling
5) Issues
6) Questions
Due to multiple topics, I want to discuss here, this post might be a bit on the long side. Though I'll try not to babble for too long either.
Even if you're not interested in reading the full length of this post, maybe you could at least look at the questions at the end?
1) Project overview:
The central concept of this game remains as it always was - a role-playing/simulation game with mature themes and erotic content that tries to present both of these things in a serious, respectable way. The game itself runs on a custom engine using custom programming languages that are aimed at solving the specific problems the game presents - in particular concerning procedurally generating text. The game is inspired by quite a few things: the writing of HP Lovecraft, real-life occult and religion, actual BDSM practices, a whole slew of things really.
This was the idea from the start. What changed was the scope. When I got into this project, I expected to be working as part of a half-a-dozen to a dozen people team. This didn't work out. For the majority of the last two years, I've been working on the project mostly alone. Though it's important to note there were minor contributions from people here and there. This change led me to cut down on the planned scope, from six to three romanceable characters and halving each of the storylines to make them more manageable. What these characters and storylines are I'll return in a bit.
I'll also quickly mention that this project isn't my full-time "job" or anything of that sort, it's something I develop on my own time, mostly as a way of expressing myself. That last part is why some of the features or themes of the game might seem so eclectic. While I can put in some work reliably almost every day, it's just a bit of time, in between my actual job and my personal life.
2) Development methodology
From the moment I started this project, I realised it's not going to be an easy one. This game is based on some technical principles that are not exactly well established. While examples of everything I'm doing can be found out there in the wild, games that use multiple of my approaches and use any of them extensively are hard to find.
Because of the above, I have a limited fallback in terms of existing solutions to the problems I'm having. And while I try to use them wherever it's possible (I'm not crazy enough to re-write HTML/CSS rendering on my own) in many places I have to build solutions up from the very based. Because of this, in particular over the last year, I adopted and plan to stick to the following general development methodology:
• Stong fundamentals;
• Proper abstraction and separation;
• Proof of concepts and experiments;
• Bottom-up construction;
• No premature content.
But what does this mean?
Obviously, the sheer fundamentals of what I work with are the languages I've designed. If these weren't capable of doing their job, I wouldn't be able to get anywhere. During the last year, I've done a lot of work on both of my languages, which I (very originally) call Esoteric Script and Esoteric Grammar. While the first underwent many changes, mostly iterative extensions and quality of life improvements, I wouldn't really say it changed that much in terms of how I use it. The other one, though? Completely different story. I might as well be called it Esoteric Grammar++ because it changed a lot. It's faster, but more importantly, more flexible than it has ever been, allowing me to tackle problems in ways I couldn't do before. But this goes further. Many of the things I write using these languages are also fundamental to the game. And in this regard, I have to admit, I made some errors. Some of the modules I wrote at the beginning were not as good as they could be, and more importantly, not as good as I needed them to be for the strong fundamentals I needed to build the game on. Fortunately, at this point, many of these mistakes have been resolved.
Because the design of the game is very modular, and many modules interact with the same data. In general, it's not a good idea to have these different modules to communicate directly with the game's data. And the reason for this is straightforward - consistency. Let's use an example here. So what if I have two different events that slightly lower the PC's mood. I can code in specific changes to the mood variable stored on the player character, but if both are to lower the mood only "slightly", I have to coordinate the values between the two modules. And this is fine up until the moment I need to change the meaning of what slightly actually is. Due to this, there's a general rule in my coding - any module may only directly interact with its own data, any interactions with global data must be separated out and abstracted to some semantic representation. That is to say, literally defining what it means to "lower the player character's mood slightly". That way, I can work on the implementation independent of its usage elsewhere.
Due to the rather unusual nature of many things I work on, I find it essential to try running a proof of concept on anything I make. Only when I see that it works in a way that satisfies my expectations do I move on. Many of these experiments linger in the game as very minor features. The reason for this is simple. When doing experiments, I might as well aim for something that can exist in the game without worrying I'll need to remove and redo it later (more about this in a moment). The EASMR feature, while easily written off as a joke, is also a testbed for a lot of techniques I find uses for elsewhere. And while I experiment on it, it's not critical for the game to output amazing EASMR. If I instead used, say, sex scenes to test the features, I can tell with absolute certainty, that I'd also need to remove and redo those scenes.
Ultimately this leads to a simple conclusion - the game is built primarily bottom-up. When I implement a module, I try to make sure it has all the support it needs already there and draw from it. On a lower level, it doesn't seem that important, but with more complex modules, it starts being an apparent issue in development to not have these "lower down" elements already prepared, developed and tested. An excellent example of this is character interactions. There are social skills and magic at play in the game. These options need to be accounted for when presenting the player with choices and need to be counted into the reactions from the characters. Though possible, it's hard to iteratively expand (or change) the pool of options each time one of the underlying mechanics is added, extended or modified.
The final conclusion of this is to avoid premature implementations. I've already been pressured to do so before. Eventually, I've found myself to regret everything I've done in this way in all cases. It's easy to talk about the need for new content to keep your audience engaged. It's a different thing to face the reality of implementing fake content, and then either face being stuck with content you can't work with, or effectively erasing your work on it to redo it again.
So, if you were wondering about how I develop the game? I just try to follow what I wrote above. The less of a mess I make and the fewer things I make that I know I'll need to remove, the better. It might take longer, but I'd like to think this is a choice of quality vs quantity.
3) Mechanics
In a systemic game, mechanics come before story, because they are the means by which the player shapes it. Within the scope of the game, of course.
There's a few I'm actively working on right now. Clothing is on its way out (to being finished that is), it requires content at this point, not additional code. It turned out to be a chokepoint of sorts because as it turns out, a lot of modules need clothing to work. Sex, for example, interfaces with it in many ways: stripping, dancing, impromptu sex, touching, etc. There's a lot of things I can only work on when I have a good grasp on how the clothing functions.
Magic is another mechanical aspect that's getting a push at the current time. I scrapped my initial plans for how it was to be implemented in favour of a more involved approach. To explain, in the original magic was just used as a check, there were no specific mechanics associated with any of the schools. This turned out not only to be hard to manage but also didn't offer much to the player. In the current iteration, the Theory for all magic schools has a new system backing it already. Oneiromancy is finalised designed wise, but due to limited time not yet implemented. Xenomancy and Necromancy have some work done, but there's more to do. Oneiromancy I've been sleeping on, I have ideas, but no concrete decisions have been made so far. There are also rituals, a mechanic that has a full write-up and is about quarter implemented.
A lot of the other systems are there, they might be under-implemented, but they are most definitely in a state where I can finish those implementations without disturbing the existing components. An example of this might be making a shopping cart for the shopping system or finishing the back/forward buttons for the in-game Internet browser. The majority of what existing systems suffer from is definitely content, but unfortunately, it comes down to time - I have only so much of it to focus on any one system, and often I need breaks from one system to not burn out from working on it.
A lot of systems, including some pretty advanced AI features (for NPC decision making), are waiting inside of the game to be used. Something that should be apparent if you're somehow following what I've been doing for a longer time.
4) Storytelling
For storytelling, we have three aspects to discuss. There's the lore, the plot outline and significant characters (the romanceable ones).
For the background lore... With 126 finished document (~140 counting WIP texts), I feel I'm approaching the 50% line of what I want in the game. At least to begin with. I know lore has been an under-represented aspect of the game on Patreon, Itch and even my own blog, but I hope this is something people are interested in. In fact, I have a question about that later on. For the moment I mostly post lore texts on Discord, and even then not all of them, not always. Since a lot of them are supposed to be easily accessible in the game (I mean... the game does prominently feature a library), I don't see posting these are a spoiler.
Now, for the plot outline... there are five main storylines in the game: one for each school of magic and an overarching plot for the whole game. Of course, some minor stories will likely pop up as well, but I simply don't intend to make any plans and promises for those. If I (or we, as I have people helping out again) come up with something good, it'll get included. If not, they won't. The main plot is reasonably well sketched out, but as it's not something that kicks off immediately. Until some other elements are there, it's not going to be touched more. For the schools of magic, I'd say Oneiromancy is the most complete, owing to its mechanics being the furthest along. For Necromancy, I have a clear idea of what I want, but I'm still struggling with the details. I think some of the lore I've put out recently is taking that whole thing in the right direction, though. For Xenomancy there's a good number of planned stories, too many in fact! Only a few of them are further along though, so pruning a story concept here or there isn't an issue or a loss of time. Similarly to the mechanics, I've been sleeping on the Oculomancy stories. I know what I want from it, I've just not put in the time to flesh it out, and I'll start that with the mechanics.
Finally, for the characters... Cornelius is the current focus of content development. Considerations have been made for Edythe, as many of the modules Cornelius uses are gender-neutral (or gender adjustable). The friendly tentacle monster, though it had a good deal of conceptual work, will also require separate modules due to its rather inhuman nature. I would also say that the world itself is a character, in its own way. I want to develop it to feel alive, in both praeternatural and mundane ways.
So let's focus on Cornelius for the moment. My current goal is building him up as a character and offering more interactions. The goal I've set for myself is getting to know him and befriending him, with the potential (optional) aspect of becoming lovers. There's quite a lot to that, including elements often omitted in games. In particular, one thing I want to express is the character's agency and interest in developing the relationship. In essence, it's not just about you pursuing Corny, it's also about Corny pursuing you.
Unfortunately, many of these elements are hard to convey in Discord or, in general, through this kind of informative writing.
5) Issues
Of course, not everything is sunshine and rainbows. The development of this game has its issues. The biggest one should be obvious, it's the lack of manhours being put into it. Alone I can only do so much, and without help, the pace at which it progresses suffers. For the moment, I'll continue doing what I can, of course, but I still have lofty dreams of building a bigger team.
The second is a pure fact that the development of this game is difficult. So far, no issue I've encountered proved unsolvable, and I don't think any will prove to be, but some of the solutions required some serious planning and thinking to overcome. The biggest resulting issue is that the game has become quite... esoteric (HA!) in its coding at this point. It's not a problem for me (after all I wrote every single line of code in the game), but it does make bringing new people in difficult. Especially with how the writing and coding interweave here, due to the text generation/procedural aspects. Some of the approaches used to ensure the generated text is of high enough quality require marking the base writing. And I've found the average writer to be quite code averse.
The writing in itself is an issue. Broadly, what this game requires, is more writing. And while I accept this and grind out as much writing as I can, on some days I just don't feel I can write. I get frustrated, or I'm just tired. It never happens to me with coding or design, but I also feel a lot more comfortable in those fields, while writing... well, in my eyes my wordsmithing has a long way to go before I can be genuinely proud of it. As it is now, I often find myself throwing writing out. More often than not, what ends up in the game or in the archive is the second or third pass.
What I'm getting at here is that working on this game is hard. And while some things are worth doing specifically because they are hard, it does mean development can be unpleasant. But... the actual reason I'm writing this is that I wanted to add a bit of positivity to the end. While the number of people vocally in support of my work is small, it's enough for me to be happy working on it. And speaking of being vocal...
6) Questions
Do you have any questions? I'd like to hear them if you do, in the meantime, I have some questions of my own.
• Would you like to see lore posts on my blog or elsewhere?
• How did you find this game? (Some website you frequent? Word of mouth?)
• What games are you interested in? (Both erotic and not.)
• Have you had any issues with the language the game is using? (If yes, what's the context? Is English your not-first language?)
• Do you have any suggestions? (I can't promise I'll implement anything you suggest, but I want to hear them regardless.)
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 #294 - ACK! (Give Your Opinion, Ok?)5 days ago
- Esoteric Update #293 - A Touple Of Things12 days ago
- Esoteric Update #292 - Keys And Snakes And Charts, Oh My18 days ago
- Esoteric Update #291 - All Keys To All Doors26 days ago
- Esoteric Update #290 - Returning To Work33 days ago
- Esoteric Update #289 - A Convolution By Another Name48 days ago
- Esoteric Update #288 - Continuing On With Work55 days ago
- Esoteric Update #287 - Return Of The Cat: Long Update61 days ago
- Esoteric Update #286 - Hyperplanar Orthography82 days ago
- Esoteric Update #285 - Ugh My Head, Anyway, Coding89 days ago
Comments
Log in with itch.io to leave a comment.
Hello!
I tried this game out at the start of this year, the fact that you're basically making this game from the ground up impressed and attracted me (since I want to learn programming myself) but the lack of content made me sad although I expected it
I left it alone until now in wait for content, and it seems that you have made an impressive amount of progress since then.
Now I have a question for you instead: (Since you don't post changelogs, it seems) What's new, content-wise?
If you are looking for things to actually do in game? Nothing worth mentioning. Like I wrote in the post, I'm currently not interested in pushing content changes.