SamuKata
splendidostrich
splendidostrich

patreon


Inner Circle post for 0.4.10

Hi all!

So, I haven't posted much lately. I sometimes get stressed out about posting online so I find that my work goes smoother if I just stick to my little coding/writing bubble and ignore the outside world for a bit.


Progress on the next version is going well. Initially it looked like supporting conditionals was going to be a major challenge in the custom scene content. That's things like restricting a follow-up action based on a trait or whatever.


After puzzling over it for some time I had a sudden epiphany and was able to bring in a solution that was not only way easier to implement but will also be easier for writers to use. It seems obvious in hindsight so I'm not sure whether to be overjoyed at a great idea or annoyed with the amount of wasted time before I came up with it. I'm going to be optimistic though and say that I'm proud of myself.


This means that the custom scene content is going very well indeed. I have a working framework added to the game along with a way of testing custom scenes. I've even tackled most of the error handling. There are a lot of things that can go wrong when trying to convert yml & xml into a Newlife scene so there's an awful lot of that. Without the support of compile-time errors and an IDE custom content will be very bug-prone compared to scenes I write directly in the Java, but that feels like an unavoidable issue with moving structured content out of the code itself.


Incidentally, custom scenes are composed of 2 files. A yml file that contains the scene structure, and an xml one with its text.


Next up, there's still some major tasks remaining:


- Exposing more information to the users. Newlife has a huge number of internal variables and I need to decide which won't be needed, which can be exposed directly and which will need to be modified first. For instance, arousal is increased numerically based on a "what feels right at the time of writing" approach. This is not good enough for custom content which should use standardised increase values.

- Implementing & testing helper methods like picking from a weighted list.

- Adding more options for scene structure. At present custom scenes take a simple structure where player-actions have a list of follow-up actions (with possible conditions) until one flags the scene as complete. This is sufficient only for quite simple scenes and needs to be extended to support things like turn-based action lists, npc actions and scene transitions.

- Adding the option to change values from the yml structure file, such as changing arousal or money values.

- Allowing custom scene writers to set and read arbitrary flags that can be passed onto any follow-on scenes.

- Allowing an NPC to be flagged as active, affecting PC's arousal levels based on their attractiveness and making them retrievable as the active NPC rather than by their ID.

- Getting custom scene content working through build and deployment. Perhaps this will be straightforward, or perhaps not...

- Writing documentation for all of this: probably the largest single task

- Preparing framework scenes and ideally a short example scene using the Custom framework that'll actually be accessible in-game.



So, lots to do but progress is going quite well. I'm thinking that once I have the custom content working and I'm doing the documentation I'll put a dev version out for you to have a play with. It'll certainly be useful to get feedback on how easy the system is to use, whether there are any methods that need to be exposed to writers, which areas need more error handling and what the documentation needs to focus on.


More Creators