Monday, 18 September 2017

Custom Scene Example part 4: Filling in the action text

Hi all,

My last post went over defining the first part of the blackmail scene's actions. At that point the actual text in the .vm file was mostly just todo comments. The next stage is to actually fill that in.

This also involved a few adjustments to the yaml file, so you should download both of the new ones before running the scene: the yaml and the velocity.

It's important to run tests as you go. I found issues in almost every single action while testing, although these have all been corrected in the above files - let me know if you spot any undetected bugs.

In my next few posts I'll be putting the spotlight on certain specific parts of the text and discussing them. Let me know in the comments if there are any you want to focus on.

Thursday, 14 September 2017

Custom scene example part 3: Starting with the YAML for the first part of the scene

Hi all!

This is the 4th post in this series about making new scenes for Newlife. For the earlier posts see: Intro, Overview &Preconditions, Planning.

A quick warning: there are some changes to things like method names coming in 0.4.12. As such, the examples given here will not work properly in older versions.

After planning a scene, the next step to actually making content. There are a number of ways to do this, and you might find your process is different from mine – that's fine.

One approach I sometimes use is to simply write out a key path from the scene in a text document and then convert it into actions.

For this scene though, I'm taking the opposite approach: I'm going to define the actions first and then I'll fill them in with actual text later. This has the advantage of letting me run tests early on while the files are quite simple.

I'm also splitting the scene up into sections. To start with, I'm just doing the parts in the Part1 diagram from the planning stage. This makes sense for this scene because part1 covers the path where the PC complies with blackmail while all the other paths split off from a single action: the one where her partner finds out about her cheating.

You'll see some slight changes from the planning stage such as the new "agree meekly" action and in later posts you'll see that I end up making some changes to the yaml files as well.

That's normal. Scenes usually get refined as I work through them and come up with new ideas. The plan is supposed to help organise my thoughts and understand how the scene will flow: it shouldn't be an inflexible commitment.

I've uploaded these first-step files: YAML and VM. You can run them the normal way, by copying them into the newlife/additional_scenes/user_custom_scenes folder, enabling custom scene testing in the game options and then choosing the test custom scene weekday-evening action. 
You'll need to use 0.4.12 or later for this to work - that isn't possible at the time of writing, but I'll try to get a dev version out with these custom-scene changes soon.

Saturday, 9 September 2017

Custom scene example part 2: Planning the scene

Hi all!

For the earlier steps in this example see the intro and part one.

Once you've decided on your scene's overview and preconditions, it's time for detailed planning.

This isn't something you need to share on discord, although of course it's fine to do so if you want feedback. Instead, it's a final step to make sure you yourself have a good idea of how your scene will be structured.

This can also help notice any issues where your scene might not be supported by the custom-scene framework. In this case you can raise the issue on discord, patreon or another site I read. I might be able to make addtions to support your scene. If not, you may have to work around limitations or maybe take a different approach to a certain path. This will vary on a case-by-case basis, and it's good to know early on before you start serious writing.

In my design stage I came across a number of issues. For example, version 0.4.11 did not allow custom scenes to un-friend an NPC. So, I ask the dev to add a method on discord. Fortunately they were willing to do so:

How you plan your scene will depend a bit on its overall structure. Turn-based scenes, despite usually being larger, have a simpler plan: just lists of key actions for each character.
Flowchart style scenes such as this example one can be sketched out as graphs of nodes representing the PC and NPCs actions.
Usually flowchart scenes don't use the NPC-action system. Instead, the NPC's actions will be rolled into the PC ones. For example, the PC action "answer the door" will automatically be followed by the jerk NPC making his blackmail demand.

For this example I've used software to make a proper flowchart, with circles representing PC actions and rectangles for everything else.
This isn't what I always do. I usually take a less formal approach to planning – I'll sketch out the design in pen on the back of an envelope.
You don't need to spend this much time on your scenes. Your plan doesn't need to be an example on a blog – it just has to help you understand how your scene will work.

It's also fine for your scene to vary from the plan as you work – in fact it usually will, as you come up with new ideas while writing. Still, I think having that initial overview is very helpful.

Here's the plan for the jerk blackmail scene. It's split into 4 files. I'll also use these to work in stages, making the scene in chunks that can be tested before the whole thing is completed.

Wednesday, 6 September 2017

Custom scene example part 1: Overview and Preconditions

Hi all,

Step 1: Overview

The first step when making a new scene is to write an outline. It's a good idea to post this to get early feedback from me or from other writers.
A good place to do this is on discord. Use the general-scene-creation channel and tag me to draw it to my attention.

This is important because it might let you catch issues early on before you start dedicating much time to the scene - for example if someone else is already working on something very similar.

The outline itself should be short: just a few sentences.
It'll also be helpful to follow it with a summary of key paths through the scene – those that are likely to be most interesting to players.

Here's a screenshot of how you might report a scene idea on Discord:

Step 2: Preconditions

The next step is to decide on the preconditions. You don't necessarily need to report these to me, unless you're unsure if they can be implemented in the game.
It's helpful to decide on them early though because they'll affect your writing.
For example, this example scene requires that the jerk has the "jerk" personality, which means there's no need to write content for other ones. Choosing your preconditions before you start work might help avoid wasting time writing content that'll never be seen by players.

You can also write comments about scene frequency in your precondtions. This isn't important for your writing, but it'll be helpful when I connect the scene up to existing Newlife content.

My preconditions for the blackmail scene are as follows:

The PC has a partner.
A male NPC exists for whom all the following are true:
- Is not the PC's partner.
- Is not a restricted special NPC (i.e. does not have the no_random-appearance trait).
- Has the Jerk personality.
- Does not have max liking (close level) towards the PC
- Has not been TROUNCED by the PC, and has not had a negative outcome from previous blackmail attempts.
- The PC has cheated on her partner with this NPC, and that cheating has not been discovered or timed out.

Any severity of cheating is valid (other than NONE, obviously), but the scene should perhaps be more common at higher severities.

The overview and preconditions should be added to the top of your YML file, in a comment. You should also add the username you want to be credited as in the changelog, unless you want your submission to be treated as completely anonymous.

Tuesday, 5 September 2017

Custom scene example: Introduction

Hi all!

For the next release I'm going to work through a new scene for the game using Velocity & Yaml as an example for scene-writers. I'll be showing the full process, including non-writing steps.

This will probably take longer than adding content in the Java, especially as I'll be documenting the process, but I think it'll prove valuable for getting other people's work into the game in the future.

Unlike the existing example scene, this one will be a proper in-game scene that'll be fully included for everyone to play through as a random event.

This will be the only major change in 0.4.12, so it'll be a smaller release than usual: hopefully this means it'll also be quicker, although it's hard to be sure how much overhead doing this as an example will add.

There's a few things writers should know about this new scene:

It's a narrative scene structured in a flowchart-style. As such I don't expect to make any use of NPC actions or the default PC action functionality. These are primarily used for turn-based scenes, which are often larger and more complicated than the scene I'll be adding.

It's difficult to be certain of the scene's size, as I have a tendency to go off on writing tangents and make things bigger than they need to be. However, the intention is for it to be a mid-sized scene. Not so big that it's confusing to read, but not so small that it's trivial as an example.

The writing process will involve new functionality being added to the custom scene system. For example, I've added a new method to retrieve cheating severity.
This isn't ideal, but it's necessary because it's quite a new system and because I'll be working with some new game mechanics that haven't been fully fleshed out yet for custom scenes.

You might find yourself in a similar situation if you're a writer. If you're making a scene and find that you need a certain transition or method that exists in the main game but isn't available for custom content then you should just make a post, comment or discord message (flagging me to get my attention) and ask me to make the change. I expect to be refining the custom scene system over several releases before it reaches its final state.

In the long-run, once the system gets more mature I expect it should reach a point where changes only need to be made when new game mechanics get added. That'll make things a lot easier, and it's a place I want to get to before I start comissioning paid writers to work on the game.

Wednesday, 30 August 2017

Forum replies and other communication with players

Hi all,

For 0.4.12 I'll be using the custom-scene system to add an actual scene to the game itself and writing a series of step-by-step blog posts to show how that's done.

Before I start posting those, I think that I should probably talk about something that's a bit of an "elephant in the room": my terrible record at replying to people.

When Newlife began I answered almost every forum post, PM and blog comment. As more people played it, I started receiving more and more feedback, and my efforts to reply to everyone fell more and more behind.

Part of this is a bit of a character flaw I have. I'm perhaps not the most outgoing of people and I especially don't relish writing posts that might make someone unhappy.
The bulk of my backlog involves requests for additions to Newlife, especially the grey-area ones where the request is something that reasonably could be added, but that isn't part of my core plan and I therefore don't feel comfortable making a binding promise about.

I can't reply with a yes because I get change requests through much faster than I can add content so it's simply impossible to do everything. I don't want to reply with a no because that makes me feel bad, especially when there's a chance their request might make it in at some point in the future. Replying "maybe" feels a bit like a lame cop-out. So, I just ignore the issue and let it languish for ages on my "to-reply" list.

What's worse, I often let this stop me answering people whose posts I could easily respond to. If there's a post earlier in a forum thread that I don't have a reply for then I feel like it needs to be handled first, and so later posts stay in purgatory until I come up with a proper reply.

I was beating myself up a bit over this a while back, when I came to an epiphany: when someone posts a change request for Newlife they aren't really asking for a personal reply to their post. What they actually want is just for me to read their request and consider implementing it.

So, I'm going to officially put an end to the "I attempt to reply to everyone" policy. Here's my new one:

First, I want to be clear: I do like it when people post and make suggestions. You should absolutely do so if you have an idea you think I should read. Just because I can't reply to everyone doesn't mean I don't like you posting!

Posts with change requests usually will not get a reply unless it's trivial to decide on a yes or no answer. However, I will read them and consider adding the request to the todo list. If I implement it then I'll make an attempt to credit whoever made the suggestion in the changelog. I might sometimes miss someone, but I'll do my best.

The same goes for bugfixes that don't need follow-up questions to fix. I might post a quick "thanks" comment, but I'm not going to feel obligated to do so. Again, people who report bugs that get fixed will generally be credited in the changelog. If you aren't a patron and you've found a bug that needed to get solved then you can PM me (on the forum where you originally reported the bug so I know it's you and not some credit-stealing internet joker) and I'll hook you up with the patreon version as a reward. This only applies to bugs and not change requests: for the latter the reward of seeing your desired content in the game should be enough!

Change requests phrased as rhetorical questions will usually get treated the same. E.g. "Will this game ever have x?"
Some players might want an answer because they're considering supporting the game on Patreon on the condition that it'll at some point include their favourite content. Do not do this.
My view of Newlife on Patreon is that you should only support the game if you enjoy it in its current state and want development to keep going, not because you're hoping it might become a game you'll enjoy in the future. I'm proud of never having gone a month without releasing an update, but nevertheless, like any single-person project Newlife is just a serious injury or bullshit anti-porn law away from cancellation or "indefinite hiatus". If you're supporting the game then you should feel that even if it was cancelled tomorrow you'd still have got a game you enjoyed playing out of my time developing it.
On a personal note, I also don't like the pressure of feeling that there are patrons who won't have liked the game unless it ends up with specific content. My request: only support the game based on how it is at the moment, not on how it might become in the future.

So, that's the new plan for communications. As for the blog, I'll be posting a lot more soon: not only is there the user-submissions stuff but I'll also be running the next PMW vote in September, and I also have a half-written post about nonconsent content to finish up.
Hope you're all having a good week :)

Tuesday, 29 August 2017

Newlife 0.4.11

Hello everyone!

Newlife 0.4.11 has been released. Early-access Patrons can find it in the creations section here. The changelog is below.

The previous version would normally go public at this point. However, 0.4.10 was actually made public a while back so there's no need for changes there. You can download it using the links on the right-hand side of the blog. The public version's changelog is here.

As usual, saved files & templates from older versions probably won't work with newer ones. 

For new players - just use one of the links to the right to get a zipfile containing Newlife. Once unzipped, you'll see a folder containing .jar and .exe files. Either one of these will run the game. 

For either version you'll need to have Java installed. A lot of programs use Java so you might well already have it. If the jar shows up as an unrecognised file type, then you probably don't. In that case you can get it from
The exe should tell you if you don't have the right version on your computer, but you'll still need to install java to run the game.
There's a guide for new players here which includes some troubleshooting tips for installation & downloading.

This verson adds the game-mechanics around a proper handling of PC infidelity. I'll be working on fleshing out content for it over the next few releases. 0.4.12 will be a small release with just a single scene that I'll make in yaml & velocity as an example for writers - you can expect a series of blog posts soon as I work through it step-by-step. 
Once that's released the following version will add more cheating content. I'll also be doing a PMW release soon - I'll be posting early next month on Patreon to gather suggestions from voters.

Changelog for 0.4.11:
Major changes & additions:
  • Improved handling of the player-character cheating, including a new scene where your infidelity is discovered.
  • The game now stores more of the pc's sexual and cheating history for each NPC. Cheating history will eventually be 'forgotten' after enough time, and will always be cleared if the PC confesses or gets confronted about it, to prevent getting caught twice for the same misdemeanor.
Minor changes & bugfixes:
  • Fixes to text issues. Thanks to OrangeJuice, Max Mustermann and Der Kittin Kampf for reporting some of these.
  • Fixed a bug with the custom scene transition reported by lostTrout.
  • Added a new trait: cunning. This stops the player being discovered cheating (unless her lover confesses, which will be added in later versions). It also stops the perverted client's wife from catching them together. The player can still choose to reveal her infidelity voluntarily.
  • Modified some conditions for the 'express your uncertainty' makeout action. I think it was Max Mustermann who reported some issues with these – thank you!
  • Rewrote the “request condom” makeout action with some changes to the logic and a more varied range of NPC replies – no longer will abusive jerks “kiss you gently” when they wear one because they have the conscientious trait!.
  • Some rewriting of the cowgirl “ask him to come inside” action text, which had some issues with e.g. directly quoted text. I also updated it to handle the as-yet not-fully-implemented baby-crazy trait, although that won't be visible in play until the trait is available.
  • The player can no longer ask an NPC to remove a condom if they were the one who asked him to wear it in the first place.
  • Reworked how the hair-trigger and hard-to-please traits work which should resolve some peculiar interactions they had with other game systems. The traits will probably have larger gameplay effects now, in some cases significantly larger.
  • Following a suggestion from Karanya, added a bit of extra text that will sometimes appear during the orgasm-on-breasts ending of the oral scene.
  • Added simple game-mechanics effects for the trying-for-baby relationship status, although most text hasn't been looked into to see if it needs changes and it's only accessible via a few special scenes. This status is currently only available in situations where it's locked-in, so there's no action to remove it (except for having a baby). This also means that the various “have babies” vows now have an actual gameplay effect if activated before marriage.

Changes for user-submitted content:
  • Improved tracking of the PC's sexual history with male NPCs. This may be useful in writing dialogue or text that hinges on what things they've done together. See the male NPC hasDoneSexualActivity and hasDoneCheatingActivity methods. This should also be set when the PC does an appropriate action in your scene: use addSexualActivity for this.
  • Added the performMakeoutAction method to male NPCs. This lets writers access Newlife's standard set of makeout actions, used in makeout scenes and also several others that involve an NPC feeling up the player.
  • Added the getBreastsDesc() method to female NPCs. This is identical to the PC's method. Thanks to Drgong for highlighting this omission.
  • Added the ability to add or remove PC traits as requested by Eulexia. This is intended for testing purposes only. For instance, you could add the not-fully-implemented baby_crazy trait to test your scene against it before it gets properly added.
  • Added various methods requested by writers – I haven't kept detailed notes, but if I said I'd add something in the discord then it's probably there.
  • The custom scene testing scene will now clear all scene flags when returning to it from a sub-scene. This means that you can use returnToParent to test the same scene repeatedly without previous runs interfering with the state of later attempts.
  • Added a new hidden Stat (“TEST_STAT”) for use when writers will need a new stat for their scenes. That way you can test with this and I'd replace it with the proper one when your scene gets integrated into the game.
  • New scene transition: ORAL_SEX.

Enjoy the new version, and let me know if you find any bugs!