Showing posts with label Custom Scene Example. Show all posts
Showing posts with label Custom Scene Example. Show all posts

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.