Apologies! You are using an outdated browser which lacks required capabilities. Please upgrade your browser to improve your experience.
Initializing. Please wait…
This page contains information about the prototype itself.
TL:DR; Technical stuff about the prototype.
If you just want to play, skip to the bottom or ''[[Click Here|PlayerName]]''
I used Twine to create the prototype. Twine is more or less an extension of HTML and Javascript, much like the Wiki language that some of you may be familiar with. Specifically, I used the most current version of Twine, 2.0.11 downloaded onto a Windows machine. You can find it here: https://twinery.org/
More importantly, the story format I used is Sugarcube version 2.10.0 for Twine 2. This can be found here, along with a very complete and extremely useful set of documentation: http://www.motoslave.net/sugarcube/2/
Twine supports many different story formats. The default format is called Harlowe. I have worked with Harlowe before, but I found it difficult to use for prototyping purposes. I could make it do what I want, but only in a very convoluted manner. Sugarcube, on the other hand, worked much, much better for me, mainly because it supports something called Widgets.
If you want to check out how the prototype works or some internal notes about the game, use the links below. The Documentation link includes a lot more information about Widgets and some information about Twine in general. I would recommend that you play the game before delving into the documentation, but if you want to look first, go ahead.
[[Documentation|DocsHome]]
For those who are curious about the code on a specific page, on a page where you see the word Code in the upper left hand corner, that will let you see that page's code.
Now that you've got the technical background of the project, it's time to get started.
[[First, the game needs some information|PlayerName]]
<<set $player to {
name: "",
pronoun: 0
}
>>
<<set $CurrentTask to {
who: "",
what: 0,
ismale: 0,
name: "",
ismale2: 0
}
>>
<<set $Meter to {
health: 0,
hunger: 0,
clean: 0,
morale: 0
}
>>
<<set $taskset = 0>>
<<set $PlotSceneState = 0>>
<<set $turn = 0>>
<<set $pregname = "Anna">>
<<set $namelist to ["Chief", "Herbalist", "Carpenter", "Apprentice"]>>
<<set $randomfemalelist to ["Amy", "April", "Jessica", "Jennifer", "Elizabeth", "Susan", "Rebecca", "Maria", "Catherine", "Janet", "Marie", "Carolyn", "Abigail", "Heather", "Diane"]>>
<<set $randommalelist to ["Andrew", "Brendan", "Robert", "Christopher", "Edward", "Sean", "Michael", "Brian", "William", "Thomas", "Steven", "Ronald", "Kevin", "Matthew", "Alan"]>>
<<widget "NPCInit">>
<<set $NPC to {
title: $namelist.pluck(0),
name: "",
ismale: 0,
plot: 0,
}
>>
<</widget>>
<<NPCInit>>
<<set $chief to $NPC>>
<<set $chief.name to "Elijah">>
<<set $chief.ismale = 1>>
<<NPCInit>>
<<set $herb to $NPC>>
<<set $herb.name to "Helene">>
<<NPCInit>>
<<set $carp to $NPC>>
<<set $carp.name to "Trenton">>
<<set $carp.ismale = 1>>
<<NPCInit>>
<<set $appren to $NPC>>
<<set $appren.name to "Amalia">>
<<widget ChangeMeter>><<silently>>
<<set $what = $args[0]>>
<<set $quant = $args[1]>>
<<switch $what>>
<<case "health">>
<<set $Meter.health += $quant>>
<<case "hunger">>
<<set $Meter.hunger += $quant>>
<<case "clean">>
<<set $Meter.clean += $quant>>
<<case "morale">>
<<set $Meter.morale += $quant>>
<</switch>>
<</silently>><</widget>>
<<nobr>><<widget Pronoun>>
<<set $who = $args[0]>>
<<set $poss = $args[1]>>
<<set $case = $args[2]>>
<<if $who == 1 && $poss == 0 && $case == 1>>
He
<<elseif $who == 1 && $poss == 0 && $case == 0>>
he
<<elseif $who == 1 && $poss == 1 && $case == 0>>
his
<<elseif $who == 1 && $poss == 1 && $case == 1>>
His
<<elseif $who == 0 && $poss == 0 && $case == 0>>
she
<<elseif $who == 0 && $poss == 0 && $case == 1>>
She
<<elseif $who == 0 && $poss == 1 && $case == 0>>
her
<<elseif $who == 0 && $poss == 1 && $case == 1>>
Her
<<elseif $who == 2 && $poss == 0 && $case == 0>>
they
<<elseif $who == 2 && $poss == 0 && $case == 1>>
They
<<elseif $who == 2 && $poss == 1 && $case == 1>>
Their
<<elseif $who == 2 && $poss == 1 && $case == 0>>
their
<<else>>
ERROR!
<</if>>
<</widget>><</nobr>>
<<widget MeterCheck>><<silently>>\
<<set $i to $args[0]>>\
<<if $metervalue[$i] < $value>>\
<<set $value = $metervalue[$i]>>\
<<set $index = $i>>\
<</if>>\
<</silently>><</widget>>
<<widget PickChar>><<silently>>
<<set $who to $args[0]>>
<<set $repickcharacter = 1>>
<<switch $who>>
<<case "Chief">>
<<set $plotave = (($herb.plot + $carp.plot + $appren.plot)/3)>>
<<if $chief.plot >= 6>>
<<set $repickcharacter = 1>>
<<elseif $chief.plot > $plotave>>
<<set $repickcharacter = 1>>
<<else>>
<<set $repickcharacter = 0>>
<</if>>
<<case "Herbalist">>
<<set $plotave = (($chief.plot + $carp.plot + $appren.plot)/3)>>
<<if $herb.plot >= 6>>
<<set $repickcharacter = 1>>
<<elseif $herb.plot > $plotave>>
<<set $repickcharacter = 1>>
<<else>>
<<set $repickcharacter = 0>>
<</if>>
<<case "Carpenter">>
<<set $plotave = (($herb.plot + $chief.plot + $appren.plot)/3)>>
<<if $carp.plot >= 6>>
<<set $repickcharacter = 1>>
<<elseif $carp.plot > $plotave>>
<<set $repickcharacter = 1>>
<<else>>
<<set $repickcharacter = 0>>
<</if>>
<<case "Apprentice">>
<<set $plotave = (($herb.plot + $carp.plot + $chief.plot)/3)>>
<<if $appren.plot >= 6>>
<<set $repickcharacter = 1>>
<<elseif $appren.plot > $plotave>>
<<set $repickcharacter = 1>>
<<else>>
<<set $repickcharacter = 0>>
<</if>>
<</switch>>
<</silently>><</widget>>
<<widget SceneChooser>><<silently>>
<<if $chief.plot == 6 && $herb.plot == 6 && $carp.plot == 6 && $appren.plot == 6>>
<<set $PlotSceneState = 2>>
<<else>>
<<set $PlotSceneState = 1>>
<</if>>
<</silently>><</widget>>
<<widget GenTask>><<silently>>
<<SceneChooser>>\
<<set $metername to ["health", "hunger", "clean", "morale"]>>\
<<set $metervalue to [$Meter.health, $Meter.hunger, $Meter.clean, $Meter.morale]>>\
<<set $index = 0>>\
<<set $value = $metervalue[0]>>\
<<set $i = 1>>\
<<for $i < $metervalue.length>>\
<<MeterCheck $i>>\
<<set $i++>>\
<</for>>\
<<set $CurrentTask.what to $metername[$index]>>\
<<set $charlist to ["Chief", "Herbalist", "Carpenter", "Apprentice"]>>\
<<set $temptaskcharacter to either($charlist)>>\
<<set $repickcharacter = 1>>
<<if $PlotSceneState != 2>>
<<for $repickcharacter != 0>>
<<set $temptaskcharacter to either($charlist)>>
<<PickChar $temptaskcharacter>>
<</for>>
<</if>>
<<set $CurrentTask.who = $temptaskcharacter>>
<<if $CurrentTask.who == "Chief" || $CurrentTask.who == "Carpenter">>
<<set $CurrentTask.ismale = 1>>
<<else>>
<<set $CurrentTask.ismale = 0>>
<</if>>
<<if random(1,2) == 1>>
<<set $CurrentTask.name to either($randommalist)>>
<<set $CurrentTask.ismale2 = 1>>
<<else>>
<<set $CurrentTask.name to either($randomfemalelist)>>
<<set $CurrentTask.ismale2 = 0>>
<</if>>
<</silently>><</widget>>
<<widget ChiefPlot>>
<<set $what to $args[0]>>\
<<switch $what>>\
<<case 0>>\
As you walk toward the sound, $appren.name storms out of $chief.name’s private room, her expression dark. She brushes past you with a muttered apology and disappears out the front, the long house door slamming behind her. You peer into $chief.name’s room to see him shaking his head.
"Hey, you okay?" You ask. The old man gives a bitter chuckle, then shakes his head.
"That was my granddaughter. She and I don’t see eye to eye these days." You tilt your head to one side, inviting him to continue, but he just waves you off. "Another time. I’m not exactly in the mood to discuss it at the moment. Instead, let’s go visit $carp.name." You sense that the topic is closed and follow the chief out the door for another day of helping others.
<<set $chief.plot = 1>>\
<<case 1>>\
The chief fidgets with the bowl in his hand, then sighs.
"She is training with the herbalist, and wants to leave the village when her apprenticeship is up. I don’t want her to go. I’ve been out in the world. I know the dangers that are out there. I lost both my wife and my son, her father, to the outside world. That’s one of the reasons I founded this village here, deep in these woods. To be a safe place. A haven from the horrible things that happen out there." You nod, then speak.
"Well, why does she want to leave?" The old man grumbles.
"She says that she feels trapped here. That there’s nothing here for her and that she’s so limited. That she’ll be here doing the same things all the time if she stays."
"Well… she’s not wrong." The chief cocks his head.
"What do you mean?"
"Well… look around." You take the old man by the arm and lead him to the steps of the long house, gesturing at the village. The run-down village full of sick, tired, hungry people. "There’s not that much here for her, is there?"
The old man stares for a moment, then pulls away. "I think you’d better go. You’ve got a busy day ahead of you." He doesn’t look at you as he speaks, then shuts the door behind him, leaving you on the stoop. You look at the door for a moment, then shrug and go about your day.
<<set $chief.plot = 2>>\
<<case 2>>\
After some persistent knocking, $chief.name answers his door. When he sees who it is, he almost shuts it in your face, but then stops.
"Oh, it’s you. What do you want?" He grumbles.
"I just wanted to check on you. You seem upset. Withdrawn. I didn’t mean to upset you with what I said." The chief shrugs, then sighs.
"I know you didn’t, but it’s true nonetheless. Why would she stay here? It’s not like there’s anything here for her." The hurt in his voice is apparent.
"Well, of course there’s one thing here for her. You are here. Look, I know you are scared for her and want to keep her safe. You are doing that because you love her. You also don’t want to see her leave. She is reacting out of youth. She wants to explore and see the world. It’s only natural. She doesn’t meant to hurt you either. You should really just sit down and talk to her, tell her how you really feel, why you are really doing this. If she wants to go, let her go, but tell her why you worry. It’s her life. She has to make her own decisions. And if she knows why you are saying these things, she may decide to stay." The old man’s expression softens.
"I… you’ve given me a lot to think about." He turns around, heading back into his room. Just before he closes the door, he looks back. "Thank you."
<<set $chief.plot = 3>>\
<<case 3>>\
"Hey, $player.name! I understand I have you to thank. I had a long talk with my grandfather recently. The first one in a long time. It was really good to not fight with the old man. Ever since we got news of my dad’s death outside the village, he’s been militant about me staying. He’s still worried about me, but he said it’s my decision now. I still don’t know what I want to do, but I am glad that I have a choice now." She grins, then waves. "I have to run, I’m in the middle of something for $herb.name, but I just wanted to let you know how things turned out. Thank you again!"
<<set $chief.plot = 4>>\
<<case 4>>\
This one is much quieter. You hear a few words, enough to know that they are talking sincerely about their feelings, their hopes and dreams and worries, and decide not to listen. You slip out quietly before they realize you are there.
<<set $chief.plot = 5>>\
<<case 5>>\
He opens it and smiles when he sees you. "So I took your advice. $appren.name and I had a long talk. It was the first one we’ve had in what feels like years that didn’t end in shouting and slammed doors. Thank you for that. I have my granddaughter back, even if she may leave. And if she does, I know that she will be safe. She’s promised to talk to me a lot more before she goes, if she goes. So thank you. You’ve given me back the only family I have left."
The old man hugs you, then wipes away a tear. You hug him back, then wish him a good night.
<<set $chief.plot = 6>> \
<<default>>\
ERROR\
<</switch>>\
<</widget>>
<<widget HerbPlot>>
<<set $what to $args[0]>>\
<<switch $what>>\
<<case 0>>\
You call out to her.
"Hey, are you okay?" She jerks as she hears your voice, plastering a smile on her face.
"Oh, I’m just fine dear. Everything’s just fine." As you walk closer, you can see the strain around her eyes and hear it in her voice. You come to stand next to her at the well.
"Are you sure? You’ve been working 16 hour days non-stop since I’ve been here. I know that I would be run ragged by now if I were in your shoes." The herbalist sighs, her smile disappearing.
"It’s just that there’s so much to do! I’m trying to keep up with all of the normal things that I do while treating this sickness. There’s <<if random(1)==0>><<print $randomfemalelist.random()>><<else>> <<print $randommalelist.random()>><</if>>’s dizzy spells and <<if random(1)==0>><<print $randomfemalelist.random()>><<else>> <<print $randommalelist.random()>><</if>> old wound that need attention. $pregname is due to have her first child in the next few weeks. Not to mention all the people who are now sick and need treatment, and all the things I need to do to keep more people from GETTING sick. It’s a nightmare!" You listen quietly, nodding as she vents.
"And it doesn’t get better when I go home." You arch an eyebrow.
"Oh?" The older woman shakes her head.
"It’s nothing I want to talk about. I’m too busy to worry about that right now."
You nod, then give her a smile. "Well, if you need anything, I am here."
$herb.name smiles. "Just keep helping out wherever you can. That’s the best thing you can do." You nod, then give her a wave as you both head back to work.
<<set $herb.plot = 1>>\
<<case 1>>\
As you approach, you see $carp.name leave the house, obviously not in a good mood. He brushes past you, his face like thunder. As you look over your shoulder after him, you hear the door open again. When you look back, $herb.name is standing on the stoop. When you approach, she offers a smile.
"Are you okay?" You ask. She nods.
"Oh yes. Nothing to worry about." You arch an eyebrow and look after where the rather agitated carpenter went. $herb.name chuckles wryly.
"Married couples have their differences." You look back at her and nods.
"Wanna talk about it?" She sighs and sits down on the stoop, gesturing for you to do the same. You take a load off and look over at her. She stares off into the distance, then begins to speak.
"Since the sickness came, I have had so little time for anything. I eat on the run, I’m sleeping mostly in naps, and forget free time. I’ve always been busy. Being the village herbalist is a big responsibility. It means that I am the person people turn to when they get hurt or sick. $carp.name knew that when he married me, but the past few weeks have been like nothing before. We have barely spoken to each other. I can’t remember the last time we sat down and had a meal together, or…" and she blushes at this "had couples time." You grin and nod.
She sighs, then continues. "It would put a strain on any relationship. In the beginning, he understood. But it’s been a month now, and it shows no sign of changing. He’s starting to get impatient. Demanding that I make time for him, when I don’t even have time for myself. It’s stressing me out, because now I have to deal with him being angry on top of everything else. All I want right now is a few moments to myself, because I haven’t had that since this thing started." You reach over and pat the older woman on the back.
"I understand. I know that must be tough for you. Hopefully you two can work it out."
She nods. "I hope so. I’ve got too much to deal with already." She sighs.
"Speaking of. I have to go check on some patients. See you later!" She stands, waves, then bustles off determinedly.
<<set $herb.plot = 2>>\
<<case 2>>\
You open the door only to find $herb.name and $carp.name in the middle of an argument. They both cease talking as you walk in and for a moment, it’s just a silent tableau. Then $carp.name breaks the silence.
"Let me guess. You have to go." He’s looking at you when he says it, but the words are obviously addressed to her. $herb.name looks at you.
"$pregname is in labor. We need you now." She doesn’t even waste time nodding. She grabs a bag by the door and starts to run out the door. You step aside to let her through. $carp.name opens his mouth angrily, but you grab his arm and shake your head. He shakes you off, but doesn’t say anything as she disappears off into the village. You pause before leaving.
"Look, I know it’s not my business, but maybe you should try to think about things from her point of view." The carpenter scowls and starts to reply, but stops himself before he does. He takes a breath, then pauses.
"Nothing else has worked. I might as well take advice from a total stranger. What do you mean?" He sits down wearily, gesturing for you to do the same. Once his guard is down, you can see that he looks just as tired as she did the other day.
"Well, she can’t stop. She has too many people depending on her to stop." $carp.name opens his mouth, but you raise a hand to stop him before he can speak. "Yes, I know that you are one of those people. Let me finish." He sighs, then nods. "She is the only one in the village who can do what she does, so she feels obligated to help. She wants to give you what she can, because she loves you, but right now she can’t because she has obligations. I mean, you know the kind of woman she is. You married her. You know she wouldn’t be herself if she didn’t help others." He gives a grudging nod.
"But she shouldn’t neglect me either. I depend on her to be my wife. It’s not about cleaning house or cooking the meals. I do that most of the time anyway. It’s about human contact. Woodworking is a lonely business. I spend most of my time either in the forest gathering supplies, or in my workshop. Yes, it’s what I love, but it’s isolating. I depend on her to be the person that keeps me here. Without her, I feel detached. I need her." You smile and nod.
"I can understand that. And because you are missing that, you are pushing. Asking her to make time for you, checking in on her, getting angry when she can’t. Is that right?" He gives another grudging nod. "Now put yourself in her shoes, just for a moment. She is carrying around the weight of the whole village on her shoulders. With this sickness, she feels as if she can’t stop for a second. She is barely keeping herself going, eating on the run and sleeping when she can." He nods, the grudging anger slowly fading into thoughtfulness, and then concern as you continue speaking. "Then she comes home, both mentally and physically exhausted and has to deal with you, nagging her for attention and getting angry when she just tries to get a moment for herself." $carp.name’s face is a picture painted in regret, and he picks up the thought.
"So she withdraws from me. She grows even more distant because I’ve become just another burden, when that’s the last thing I want to do. I understand now. All I want is someone to talk to and be with, and I can do that while taking care of her. No wonder she’s been so touchy lately!" He looks back at you, his face lit with understanding. "I get it now. I understand. It will be hard, because my natural response is anger, but I know I must fight it. To not be a burden to her, so that she won’t withdraw. I know we can get through this."
You smile and stand. The big man stands as well and offers you his hand. You shake it firmly, then head back out the door to catch up with $herb.name.
<<set $herb.plot = 3>>\
<<case 3>>\
Inside you see $herb.name and $carp.name, sitting together. $herb.name is hard at work grinding herbs to make the medicine used to fight the sickness, something she is often doing late into the night. Tonight, however, $carp.name is there with her. It looks like he has prepared a nice meal and brought candles and wine. They are sitting together, eating and talking while she works. $carp.name is helping her, handing her things that she needs and occasionally taking over as she grabs a bite every now and then.
You watch for a bit longer, and then decide to leave them to their privacy. You slip away into the lengthening shadows of the coming night.
<<set $herb.plot = 4>>\
<<case 4>>\
He waves you over and smiles.
"Listen $player.name, I wanted to thank you for opening my eyes. I had a long talk with $herb.name and we both realized a few things. We had fallen into some bad habits as a couple and this sickness brought them to the surface. If we hadn’t talked about it, we might have just continued in the same old routine and split up as a result. It’s possible that you helped us save our marriage." You smile, but shake your head.
"I’m sure you two would have figured it out eventually. You and $herb.name are both good, smart people. All I did was point the way a little bit, maybe help you get there a little faster. You would have got there on your own. I just nudged you in the right direction." The big man laughs.
"Well, thank you anyway." He offers you his hand, which you shake, and then he waves goodbye as he heads off. You wave back and continue on toward the village square.
<<set $herb.plot = 5>>\
<<case 5>>\
She still looks tired, but the mental exhaustion that was present last time is now gone. When you approach, she gives you a bright smile.
"$player.name! It’s so good to see you." The older woman gives you a big hug. "I understand that you had a talk with my husband." You give a little shrug.
"I didn’t do much. I just reminded him of a few things. Nothing he wouldn’t have figured out eventually." She smiles.
"Well, whatever happened, things at home are better. I was able to get a little time to myself as well as spend some quality time with him. Both of these things made me a happy woman. Now I feel much better, and while these long days are still wearing me out, I am much better equipped to handle it. That means that I’ll do a better job helping my patients, and that should make life a little better for everyone. A good deed has a long reach."
"I’m glad I could help. It’s good to see you smiling again. That has been missed around here." You squeeze the herbalist’s hand and she laughs.
"Believe me, I was missing it too. I’d love to stay and talk some more, but duty calls." She gives you a cheery wave, then hurries off deeper into the village.
<<set $herb.plot = 6>>\
<<default>>\
ERROR\
<</switch>>\
<</widget>>
<<widget CarpPlot>>
<<set $what to $args[0]>>\
<<switch $what>>\
<<case 0>>\
Intrigued, you follow it to find $carp.name standing next to one of the run-down houses, thumb in his mouth.
"Hey $carp.name, are you okay?" He nods, removing his thumb. You can see it is already turning a spectacular shade of purple, probably from where hammer skipped of the nail in the upright board in the wall of the house he is working on.
"I hate fixing these old houses. The boards are so old and knotty that it’s a pain to work with. Half the time it would be easier to tear it down and start again, but people can’t be homeless. Especially now, with this sickness about." He sighs and leans against the house.
"I didn’t get into carpentry to be a repairman, or to build houses. I wanted to build furniture. That’s what I love." You nod, remembering the lovely pieces inside the carpentry shop. "But there’s very little market for that stuff locally. I mainly work on commissions from the caravans that come through." He checks himself. "USED to come through. The sickness changed all that." He sighs. "Now I’m stuck fixing houses and making the kind of stuff an apprentice could put together. I used to be in demand by nobility. Now I’m reduced to this." He waves his hammer at the old shack.
You nod. "Well, why don’t you move?"
He grumbles. "You are obviously single. My wife is the village herbalist. I’m not going anywhere. With the caravans coming through, that was fine. I could live out here where there was great wood and a regular supply of buyers for people I didn’t have to deal with personally, and I was happy. Now it’s a prison." He sighs, then shakes his head.
"No use talking about it. I may as well get back to work. This thing isn’t going to fix itself." You nod and say your goodbyes, then resume exploring the village.
<<set $carp.plot = 1>>\
<<case 1>>\
He has a flask in his hand and every so often he takes a sip. You walk over and ask if you can join him. He gestures silently to the stump next to him and you take a seat.
After sitting for a while, $carp.name breaks the silence.
"Ever get tempted to just run away? To just leave it all behind and go somewhere else?" You nod.
"Yeah. That’s how I ended up here." The carpenter glances over at you, his face suddenly a lot more thoughtful. He gives a grunt, raises the flask to his mouth, then reconsiders and slowly lowers it. You watch him, then continue to speak.
"You said that you felt like this place was a prison. Now you sound like you are thinking about going somewhere else. Let me ask you a question. What is so bad about this place?" He opens his mouth to retort, but you cut him off.
"Before you answer, do both of us a favor by thinking about it first. I know you are a smart man. You have to be at least somewhat thoughtful to design and build the kind of beautiful furniture that you do. So really think about the question before you reply."
$carp.name’s face was stormy as you cut him off, but he nods and pauses, considering his reply for a while. You both stare out into the darkness of the forest while he thinks. When he finally does speak, his tone is quiet and reflective.
"The main problem with this place is that there is nothing that engages me. Nothing that keeps me interested. Repairing houses isn’t what I want to do with my life, but it is all that there is for me here, aside from $herb.name, and things aren’t great there at the moment either." You nod.
"Do you think things will be better elsewhere?" The big man shrugs.
"Yeah. Maybe. And maybe not. Look at me." Your reply is swift and cutting. "I almost died in that forest." $carp.name winces, then nods, acknowledging the point. You continue.
"Running away doesn’t solve problems. It just creates different ones. Maybe you should think instead about how to solve the problems you have." The big man nods grudgingly, and you stand.
"I need to get back to work." You leave him staring off into the forest, the flask now forgotten.
<<set $carp.plot = 2>>\
<<case 2>>\
You follow him to a home that is in particularly bad shape. Even to your untrained eye, you can tell that it is on the verge of collapse. There is a young man standing outside, anxiously dry-washing his hands. As he sees the two of you approaching, he smiles.
"Oh thank goodness you are here. I heard a crack the other day and I knew something went wrong." The carpenter nods brusquely, then steps around the young man as he goes straight to work. You give the homeowner a smile.
"Don’t worry sir. We’ll look into it and get you fixed up as quick as possible." The younger man nods gratefully. You suggest that he find something else to do while the repairs are happening, but he insists on waiting, so you direct him to an out of the way place to observe before joining $carp.name.
He is inside, surveying the crudely built structure, shaking his head.
"This isn’t one of mine, or anyone else I know in the village. Whoever built this did it on their own, and really mucked it up good too." He sighs. "I barely know where to start." He launches into an extensive list of the faults in the structure, citing technical details that go over your head. You nod and pretend to keep up. When he finishes, you smile.
"Right. Okay. Just tell me what to do and I’ll help." The carpenter nods.
"Well, it’ll be a bit. Why don’t you go talk to that weedy little guy outside and find out exactly where this thing came from." You nod and head back outside.
The homeowner jumps to his feet as you step out, rushing over toward you.
"Well? What did he think?" You blink, taken back by the question.
"What do you mean ‘what did he think?’ I thought you needed repairs?" The young man grins.
"No no, I just said that to get $carp.name out here. I wanted him to see what I could do…" You blink.
"Wait, you built this?" The young man nods proudly. You pause for a moment, trying to figure out a diplomatic way to describe the carpenter’s reaction.
"Well, uh. He was definitely impressed with your craftsmanship, and he said he’d never seen anything like it." The young man beams, and you continue. "He did have a few… suggestions on how you could improve for next time. Constructive criticism, you might say." If anything, the homeowner’s grin grows wider.
"Really? Oh gosh, I’d love to hear them!" You pat him on the back as you hear $carp.name bellow for you.
"Well, why don’t we go talk to him now. Just… let me do the talking, okay?" The young man nods excitedly and you guide him into the house. When you get inside $carp.name pauses.
"Why’d you bring him?" You smile at the big man.
"$carp.name, I want you to hear me out for a moment, okay?" The carpenter raises an eyebrow, then crosses his arms and nods. "I know that you’ve been going through some stuff, but I think I might have a solution to your problem." At this, both eyebrows shoot up.
"Oh yeah? And this skinny fellow has something to do with it?" You nod carefully.
"Yes. See, I know you said that you were… impressed by this structure’s construction…" The carpenter snorts.
"That’s one way of putting it." He says, sotto voce. You continue.
"But this is the person who built it." You gesture to the homeowner. "And he really would like to get better at it." You brace for the oncoming storm. It takes $carp.name a moment to put it together, but when the penny drops, his face goes red.
"WHAT?" He bellows. "You want me to teach this idiot?"
"HEY!" The homeowner finally speaks up. He has been silent this whole time, but now he stomps over and pokes $carp.name in the chest. He is tall enough to look the carpenter in the eye, but $carp.name must be twice his size, if not more.
"I did all this without any training. Look, I know it sucks. I know it’s about to fall down where it stands, but it DOES stand! I figured this out all by myself. I called you here because I wanted to impress you. I want to learn from you because you are one of the best at what you do. And you call me an idiot? I bet your first try wasn’t this good." He continues to poke $carp.name in the chest the whole time. The carpenter looks at the skinny young man with surprise, his face returning to it’s normal shade as he speaks. $carp.name could swat him down without a thought, but the homeowner is fearlessly standing up to him. When the skinny man finally runs down, the carpenter grins.
"Alright. Fine. You wanna learn, I’ll teach you." He looks over the homeowner’s shoulder at you and gives you a glare. "You’d better be right about this."
<<set $carp.plot = 3>>\
<<case 3>>\
Inside you see $carp.name and his new apprentice yelling at each other. You grin and decide to see how they are getting along.
The yelling grows more clear as you open the door and slip inside. They are so engrossed in each other that they don’t notice you at first.
"What did I tell you, boy? ‘Measure twice, cut once’ It’s a fundamental rule! One you seem to have trouble grasping, by the growing pile of waste wood that you are accumulating!" $carp.name is holding up a board, one that is presumably the wrong size.
"Bah! It’s a waste of time to measure twice! Besides, you’re just going to use this wood in different projects anyway, so what’s the big deal?" The young man is yelling back just as loudly. You wait for a clearing in the noise, then ring the bell on the counter. The musical tone chimes through silence and both men turn to look at you. You put on your cheeriest smile.
"I just came by to see how you were doing. It looks like you two are getting along just fine." You keep your smile in place as they both start yelling at you at the same time. It’s hard to make out any words in the noise, but neither of them seem pleased by the situation. You wait until they are finished then smile wider.
"Great! I’ll just leave you alone then. It’s always good to see teaching in action." You ignore the shouting behind you and hustle your way to the exit.
<<set $carp.plot = 4>>\
<<case 4>>\
You walk over and sit down next to him. The two of you sit in silence for few moments, then he speaks.
"Thank you." You arch an eyebrow, looking over at him.
"For what?" $carp.name is silent for a bit, then speaks.
"I have realized recently that what I said last time we sat here wasn’t strictly true. I do love making furniture, but what I really love is working with wood. There’s a joy in making things, in being a creator. I had forgotten that. It had been lost in the day to day of making ends meet. I thought that was the end of it, but I realized that it’s not. Repairing houses is just as much making as creating a beautiful piece of furniture. It’s about doing the work, taking joy in the process. I had lost that. The beanpole helped me find it again. Seeing carpentry through his eyes is like being an apprentice all over again." He smiles. "I am even learning new things. Teaching him is making me reexamine the way that I do things, and I am discovering things about wood and carpentry that I didn’t know before."
"There is another lesson here too." You reply. He glances over at you as you continue.
"You can’t change your situation. You are still in the village. You are still stuck doing the same jobs. You are still stuck with the sickness and no caravans. What you can change is what you do about it." He pauses, thinking about your words.
"Yeah, I see what you mean. The repair jobs aren’t any different, but I feel differently about them." You nod.
"Exactly. So next time you feel trapped, think about this. Remember the lesson." He nods.
"You know, that kid has actually got some talent." He laughs. "Don’t ever tell him I said that though." You laugh.
"Your secret is safe with me. Don’t stay out too late. I hear he gets up pretty early in the morning." $carp.name laughs and nods as you head back towards the village square.
<<set $carp.plot = 5>>\
<<case 5>>\
You can hear the two of them bickering constantly, but they are moving together efficiently, and you can see a light in $carp.name’s face that has been missing since you’ve been in the village.
He sees you passing by and pauses. He nudges his apprentice and they both wave at you, smiles on their faces. You smile and wave back, then laugh as they go back to arguing, even as they work as a team to get the house fixed.
<<set $carp.plot = 6>>\
<<default>>\
ERROR\
<</switch>>\
<</widget>>
<<widget ApprenPlot>>
<<set $what to $args[0]>>\
<<switch $what>>\
<<case 0>>\
Curious, you walk over to help. When you get closer, you discover that $carp.name has had a little too much to drink. You help the two women get him home. Afterwards, you and $appren.name are left standing outside the house. You see her staring at the door, chewing on her bottom lip for a moment. She looks a little frustrated, so you reach over and touch her on the shoulder.
"Hey, what’s wrong?" She starts at the touch and your words, so lost in thought that she forgot you were there.
"Oh! No, it’s nothing really. It’s late. We should both be getting home. I’ll see you later. Thanks again for the help, $player.name."
You nod and watch her as she bustles off into the darkness.
<<set $appren.plot = 1>>\
<<case 1>>\
From a distance you can’t really tell what they are arguing about, but what you can see is that $appren.name seems agitated, and appears to be growing more so by the moment. $carp.name is mostly ignoring her and is trying to get back to work, but the young woman is persistant in her efforts. Finally, he turns around to face her fully. You can’t hear what he says, but whatever it is causes her to start back, then slink away like a kicked puppy. $carp.name watches her for a moment, then turns back to work. You head over to her as she walks away.
"Hey, are you alright? What was that about?" She looks up, then shakes her head as you approach.
"It was nothing." You arch an eyebrow, but decide to leave it alone for now.
"Alright. Well, if you ever want to talk, I’m around." She nods and walks off into the village.
<<set $appren.plot = 2>>\
<<case 2>>\
She has that same fidgety, biting her bottom lip look on her face she did the night you helped get $carp.name home with her and $herb.name. After a few moments, you stop working and look over at her. You give her a smile and wave her over.
"Hey $appren.name. What’s going on?" She scurries over and smiles.
"Hey. Have you got a few minutes to talk? I need to gather some herbs. Do you mind walking with me?" You brush off your hands and nod. She nods back and gestures for you to follow. You walk with her on a meandering path through the village and into the woods.
"What’s on your mind?" She looks around the woods in silence, then sighs.
"So you may have noticed that $carp.name likes his drink." You nod, not saying anything. She hesitates, then continues. "He gets drunk some nights and it makes more work for $herb.name, which isn’t fair because she already has so much work to do these days." You nod again.
"Okay. Not to sound rude, but what’s your point?" You speak kindly, not wanting to hurt her feelings.
"Well, I don’t think he should be doing that. I think he should stop drinking. I’ve told my master that she should get him to stop drinking, but she just smiles at me and goes on working. I don’t understand. I’ve already tried talking to him, and he just tells me to mind my own business. Will you help me?" You watch her for a moment, then shake your head.
"So that’s what that was all about." You sigh. He’s right you know." She grits her teeth.
"I don’t care. Will you help me anyway?"
No, I won’t." $appren.name stomps her foot in frustration.
"Why not?! It’s not fair the way he makes more work for her like that." Her voice echoes through the forest and you give it a moment to fade away before speaking.
"Because it wouldn’t work." She opens her mouth to reply, but then cocks her head to one side as she actually hears your reply, which is obviously not the one she expected.
"Huh?" You can’t help but grin at her response. "What do you mean?"
"You are a smart lady. I want you to think about that for a few days. See if you can figure it out for yourself." She blinks, then furrows her brow in contemplation. You leave her there in the forest, still deep in thought.
<<set $appren.plot = 3>>\
<<case 3>>\
You give the older woman a smile as once again you help her get her inebriated husband home. In the distance you see $appren.name watching. You grin and look across at $herb.name as you help her get the big man into the house.
"Your student came to me and asked me to help her get your husband to stop drinking." She laughs and deposits $carp.name in the bed, still fully clothed and singing.
"What did you say?" You grin back at her.
"I told her no, of course." $herb.name shakes her head, still smiling.
"I bet she didn’t take that well." You shake your head.
"When she asked me why not, I told her because it wouldn’t work." $herb.name’s eyebrows shoot up, and she grins. "When she asked me why it wouldn’t work, I told her to figure it out herself." The woman’s face blossoms with comprehension.
"That’s why she’s been so distracted the last few days. Well, she’s a smart young woman. I’m sure she’ll come to the right answer eventually." You nod.
"Well, it looks like he’s settled. Can you handle him from here?" $herb.name nods.
"Sometimes he’s a handful, but he’s the man I married." She smiles at him fondly. You grin and nod, then head back out the door.
<<set $appren.plot = 4>>\
<<case 4>>\
You arch an eyebrow as you see her.
"Hello $player.name. If you have nothing else to do today, I would like for you to help me gather herbs again." Her tone is polite and respectful. You smile and nod, gesturing for her to lead the way.
After a few hours of gathering herbs, she takes a seat on a stump in the forest and gestures for you to do the same. You settle in and watch her. She takes a moment, composing herself, then begins to speak.
"I thought a lot about what you said the other day. About how I wouldn’t be able to change $carp.name’s drinking. For a long time I didn’t understand. Why wouldn’t it work? Why did $herb.name not try? She’s his wife, surely she can change him. And then it hit me." You wait, listening quietly as she continues.
"We are each our own person. I put myself in his place and realized that the only way that I would stop whatever habit or thing was happening was if I decided to." You nod and she smiles, continuing
"Nobody can force anyone else to change. Change can only come from the inside. A person has to decide for themselves to change. Sure, she could take away his beer or hide his flask or nag him to not go to the bar, but that would only affect his behavior temporarily, and in the long run just hurt their relationship. In the end, the decision has to be his." You smile and nod again, speaking.
"That’s why $herb.name never tried to change him. She knew that was part of who he was and accepted the behavior. Because any attempt to change him was doomed to fail, and would only hurt their marriage. That’s why you wouldn’t be able to change him either, because you can’t force anyone to accept help. They have to choose it on their own." She nods as well.
"Yes. And I realized that this goes far beyond just $herb.name and $carp.name. This applies to everything, doesn’t it." You feel your eyebrows go up and your smile widens. "So let me ask you this. If I do want to help someone… what can I do?"
"You can offer guidance. While you can’t MAKE someone take a certain path, you can offer guidance. You can put up signposts. You can show the positive aspects of making a certain decision. But, and this is important, there is a difference between guiding and manipulating. One is helping, the other will potentially cause more harm than good. The line between the two is thin and sometimes hard to see, but if you remember that you are only there to point the way rather than change the path, you should be fine." $appren.name smiles.
"I think I get it. Thank you $player.name. I think that this will make me a much better healer, something this village needs, especially now." You nod your head.
"I’m glad I could help. Now, should we bring these herbs back to the village?" She nods and rises. You follow suit, both of you returning to the village.
<<set $appren.plot = 5>>\
<<case 5>>\
You poke your head out the window to see $herb.name and $appren.name helping $carp.name through the village. You call out to see if they need assistance, but they shake their heads. $appren.name smiles and waves as she helps get $carp.name into the house. $herb.name gives you one last wave before disappearing inside.
You can see the three of them through a window to their house. All three of them are laughing and smiling, working together to get $carp.name taken care of. The tension that was present the last few times you saw this happen is gone. You smile to yourself and draw the shade as the singing finally goes silent, slipping into bed to get some sleep yourself.
<<set $appren.plot = 6>>\
<<default>>\
ERROR\
<</switch>>\
<</widget>>
<<widget PlotIntro>>
<<set $who to $args[0]>>\
<<switch $who>>\
<<case "Chief">>\
<<switch $chief.plot>>\
<<case 0>>\
As you walk into the village long house from your morning ritual, you hear raised voices.
<<case 1>>\
As you are clearing the breakfast dishes, $chief.name pauses. "Do you remember when you walked in on that fight between $appren.name and I the other day?" You nod.
<<case 2>>\
It’s been a few days and the chief seems to be more withdrawn than ever. He hasn’t spoken much ever since the conversation that you had with him on the stoop. You decide to check in on him before dinner.
<<case 3>>\
A few days later you walk into the long house from washing up after breakfast and hear another conversation between $chief.name and $appren.name.
<<case 4>>\
About a week later, you run into $appren.name. She has a big smile on her face.
<<case 5>>\
After dinner, you knock on $chief.name’s door.
<</switch>>\
<<case "Herbalist">>\
<<switch $herb.plot>>\
<<case 0>>\
As you are walking around the village, you see $herb.name standing by the well. She is splashing water on her face and looks exhausted.
<<case 1>>\
You are walking by the house that $herb.name and $carp.name share and hear raised voices.
<<case 2>>\
You are on your way to fetch the herbalist to deal with a problem. You head to her workshop and don’t find anyone there, so you run to her house.
<<case 3>>\
Late one evening you pass by the herbalist’s workshop. You see the light still burning, so you slip over to peer in the window.
<<case 4>>\
As you are leaving an afternoon of babysitting for $pregname, you pass $carp.name.
<<case 5>>\
Early in the morning, you see $herb.name standing by the well, splashing water on her face just as she was before.
<</switch>>\
<<case "Carpenter">>\
<<switch $carp.plot>>\
<<case 0>>\
As you are wandering around the village one afternoon, exploring this new place you have found yourself in, you hear the sounds of swearing.
<<case 1>>\
A few days later you see the carpenter sitting on a stump at the edge of the forest, staring into the darkness.
<<case 2>>\
Early one morning as you are standing at the well, you see $carp.name headed off with a toolbox, presumably to repair another house. You call out to him and ask if he wants company. The man pauses for a moment, then shrugs and nods.
<<case 3>>\
Several days later, you are passing by the carpenter shop when you hear raised voices from inside. You stop and peek through the window.
<<case 4>>\
Late one night, you are headed back to the village square after a long day when you see the carpenter sitting on a stump staring into the woods again.
<<case 5>>\
A few days later you are walking from one sick person’s house to the next, running errands for $herb.name when you pass $carp.name and his apprentice working together on a house.
<</switch>>\
<<case "Apprentice">>\
<<switch $appren.plot>>\
<<case 0>>\
One night you are out wandering the village and you see $herb.name and $appren.name helping a loudly singing $carp.name back toward their home.
<<case 1>>\
You are running errands for the Chief and you come across $appren.name arguing with $carp.name.
<<case 2>>\
A few days later, you notice $appren.name standing at a distance, watching you as you work.
<<case 3>>\
The sound of singing in the evening draws you to $herb.name and $carp.name again.
<<case 4>>\
One morning, you awake to find $appren.name waiting for you at the well. She looks different.
<<case 5>>\
Once again, the sound of singing rings through the village in the evening hours
<</switch>>\
<</switch>>\
<</widget>>
<<widget Task1>>
<<set $what to $args[0]>>You nod to the $CurrentTask.who. <<Pronoun $CurrentTask.ismale 0 1>> smiles. "Thank you. Today I need to check to make sure that<<switch $what>>
<<case "health">> <<Pronoun $CurrentTask.ismale2 0 0>> is feeling okay. <<Pronoun $CurrentTask.ismale2 0 1>> has the sickness and I want to make sure <<Pronoun $CurrentTask.ismale2 0 0>> is doing what <<Pronoun $CurrentTask.ismale2 0 0>> should be to get healthy.
<<case "hunger">> <<Pronoun $CurrentTask.ismale2 0 0>> is eating well enough. With the sickness going around, not everyone is able to get enough to eat.
<<case "clean">> <<Pronoun $CurrentTask.ismale2 1 0>> house is clean. With the sickness going around, some people haven't had time to clean up, so we are all helping out.
<<case "morale">> <<Pronoun $CurrentTask.ismale2 0 0>> is keeping <<Pronoun $CurrentTask.ismale2 1 0>> spirits up. It's easy to get gloomy with all this going around.<</switch>>
Can you check on $CurrentTask.name and make sure <<Pronoun $CurrentTask.ismale2 0 0>> is alright?
<</widget>>
<<widget Task2>>
<<set $what to $args[0]>>You knock on the door of $CurrentTask.name's house. <<Pronoun $CurrentTask.ismale2 0 1>> answers the door. "Oh, hello."
You smile and introduce yourself. <<Pronoun $CurrentTask.ismale2 0 1>> smiles back. "I'm $CurrentTask.name. What brings you here?"
"Well, the $CurrentTask.who asked me to stop by to<<switch $what>>/
<<case "health">> make sure you are feeling okay." $CurrentTask.name smiles.
"Oh, that's so kind of both of you." <<Pronoun $CurrentTask.ismale2 0 1>> opens the door wider and gestures for you to enter. You follow <<Pronoun $CurrentTask.ismale2 1 0>> inside, glancing around. The house is small, but neat. $CurrentTask.name leads you to the kitchen. As you get there, <<Pronoun $CurrentTask.ismale2 0 0>> is struck with a coughing fit. You guide <<Pronoun $CurrentTask.ismale2 1 0>> to a seat at the table, then begin to heat up some water on the stove. With some directions on where to find things, you make some tea for <<Pronoun $CurrentTask.ismale2 1 0>>. <<Pronoun $CurrentTask.ismale2 0 1>> smiles as <<Pronoun $CurrentTask.ismale2 0 0>> drinks it.
"Ahh, that's much better, thank you." You stay there for the rest of the day, tending to $CurrentTask.name's needs. By the time you leave at sundown, you can tell that <<Pronoun $CurrentTask.ismale2 0 0>> is feeling much better.
<<case "hunger">> make sure you have enough food." $CurrentTask.name shakes <<Pronoun $CurrentTask.ismale2 1 0>> head.
"Good thing you're here. My pantry is completely empty and I was just about to head out into the woods to gather some more. The job will be a lot easier with two." You smile.
"I'm glad I'm here to help, then." You gesture for $CurrentTask.name to take the lead and follow them into the woods. You spend the day with <<Pronoun $CurrentTask.ismale2 1 0>>, hunting for fruits and berries. Around mid-afternoon, the two of you come across a large group of trees absolutely full of fruit. You make several trips to the house and back, ending up with enough fruit to completely fill <<Pronoun $CurrentTask.ismale2 1 0>> larder and still have enough to trade for meat. At sundown, you wave goodbye to $CurrentTask.name and walk back toward the village square.
<<case "clean">> make sure that your house is clean." $CurrentTask.name smiles.
"Oh thank you. I haven't had much time recently. My kids are sick and I've been taking care of them. That hasn't left me with much energy to clean up." <<Pronoun $CurrentTask.ismale2 0 1>> steps back and lets you inside. <<Pronoun $CurrentTask.ismale2 1 1>> house is cluttered and messy, and you give <<Pronoun $CurrentTask.ismale2 1 0>> a smile.
"It's no problem. I'll be happy to take care of it for you." You roll up your sleeves and get to work while $CurrentTask.name answers a plaintive cry from a sick child the other room. You spend the next few hours clearing up all the scattered items, putting them in their place, washing all the dirty dishes, sweeping and mopping the floors and even cooking up a nice dinner. $CurrentTask.name emerges a few times from the back room, but true to their word, is kept very busy by the two sick children. Once dinner is ready, <<Pronoun $CurrentTask.ismale2 0 0>> shares it with you, then smiles.
"Thank you so much for all your help today. I don't know what I would have done without all your help." You smile.
"You are very welcome. I'm just glad I could give you a hand." You say your goodbyes and head off back toward the village square.
<<case "morale">> make sure are in good spirits." $CurrentTask.name sighs.
"I have been feeling a bit down recently. It will be good to have the company." You smile and nod as <<Pronoun $CurrentTask.ismale2 0 0>> lead you inside.
"That's why I'm here!" You look around the house. "Just have a seat and I'll make us some food and something to drink, then we can spend the day doing whatever you like." <<Pronoun $CurrentTask.ismale2 0 1>> protests as you guide them toward a chair.
"You don't have to do that." You shake your head.
"I'm happy to be here. We can all use some cheering up from time to time. If you want to help, you can show me where things are and we can go from there." $CurrentTask.name smiles.
"I can do that." You chuckle and get to work. In no time at all you have whipped up a meal, telling jokes as you do. After lunch, you and $CurrentTask.name spend the day talking and sharing stories, and by sunset, you can tell that <<Pronoun $CurrentTask.ismale2 0 0>> is feeling much better. You give <<Pronoun $CurrentTask.ismale2 1 0>> a hug as you leave, then head back toward the village square as night falls.<</switch>>\
<</widget>>This page is the general table of contents to my documentation.
The docs turned out a lot longer than I expected, so I broke them out into multiple pages.
[[Introduction|DocsIntro]] - Introduction to Twine and Sugarcube
[[Definitions|DocsDefinitions]] - Definitions of the Objects and Variables
[[The Widgets|DocsWidgets]] - The Widgets and how they work
[[The Game Loop|DocsGameLoop]] - The inner workings of the project.
[[More Information|DocsMoreInfo]] - For more information...[[Code|PlayerNameCode]]
Please enter your name, or the name you wish to go by during the story: <<textbox "$player.name" $player.name autofocus>> \
<<button "Confirm Name">>
<<set $player.name to $player.name.trim()>>
<<if /[^0-9a-z]/i.test($player.name)>></span>
<<replace "#error-name">>Only letters and numbers are allowed.<</replace>>
<<else>>
<<switch $genderset>><<case 1>>\
<<replace "#error-name">>\You entered a valid name!
[[Click here to continue|PlayerConfirm]]\<</replace>>
<<default>>\
<<replace "#error-name">>You entered a valid name!
[[Click here to continue|PlayerPronoun]]<</replace>>
<</switch>>
<</if>>
<</button>><div id="error-name"></div>
Is <<print $player.name>> the name you want to use?
If not, [[give the computer another chance.|PlayerName]]
Otherwise, please enter the pronouns you wish to use during the story.
Enter 1 for He/his
Enter 2 for She/hers
Enter 3 for They/theirs
Enter your choice: <<textbox "$playerPronoun" "" autofocus>>
<<set $done=0>>\
<<switch $nameset>>\
<<case 1>>\
[[Click here to continue|PlayerConfirm]]\
<<default>>\
[[Click here to continue|PlayerConfirm]]
<</switch>>
<<nobr>>
<<switch $playerPronoun>>\
<<case "1">><<nobr>>
<<set $player.pronoun = 1>>
<<set $gender to "Male">>
<<set $done = 1>><</nobr>>
<<case "2">><<nobr>>
<<set $player.pronoun = 0>>
<<set $gender to "Female">>
<<set $done = 1>><</nobr>>
<<case "3">><<nobr>>
<<set $player.pronoun = 2>>
<<set $done = 1>>
<<set $gender = "Other">>
<</nobr>><<default>>
The program didn't understand what you entered. Please enter either 1 2 or 3. - [[PlayerPronoun]]
<<set $done = 0>>\
<</switch>><</nobr>>\
<<if $done == 1>>\
...this information should be correct.
Your name: <<print $player.name>>
your gender: <<print $gender>>
If it is not, please:
[[Click here to change your name|PlayerName][$genderset = 1]]
or [[Click here to change your gender|PlayerPronoun][$nameset = 1]]
Thank you! You are ready to play.
[[Your story starts...|Introduction1]]
<<else>>
<</if>>In the darkness of the thick forest that you have been lost in for days, you can see a light in the distance. You are tired and hungry, the last of your food having run out yesterday. As you walk toward the light, the trees and underbrush begin to thin.
You pause at what feels like midday to drink from a stream when you notice a mark on a tree. As you look closer, you realize it's an axe mark. Axes mean humans. This rejuvinates you and you move a bit quicker. As you move through the thinning forest, you see more axe marks, and even some stumps. Just before dusk, the trees thin enough for you to make out what looks to be a village.
[[A village, hope!|Introduction2]]As you finally exit the forest, you can see the village clearly, and can tell that it is in bad shape. Many of the houses appear deserted, and the ones that are lived in haven't been repaired in a long time. The village square is overgrown, with weeds popping up throughout. The well still works, although it is very creaky and the water level is low. It takes a lot of work to haul up a bucket of fresh water. Once you have refilled your waterskin, you look around and decide what to do next.
There are three buildings that appear to be in the best repair. They are most likely to have people in them who can tell you what's going on.
[[The Carpentry Shop|CarpShopFirstVisit]]
[[The Herbalist's Home|HerbalistFirstVisit]]
[[The Village Long House|ChiefFirstVisit]]One of the buildings has a sign showing a log being sawed in half hanging in front of it. As you approach it, you can see some rather good hand-made furniture sitting in front of the house.
When you open the door, a bell rings. The front room is covered with furniture, but it's all dusty. At the sound of the bell, someone calls out from the back room. Shortly thereafter, a big man with calloused hands comes through the curtain that separates the front and back room. At the sight of you, he arches an eyebrow.
"A stranger? We haven't had a stranger around here in far too long. Is there something I can help you with?"
[["Food"|CarpShopFirstVisitCont]]One of the buildings has a sign showing a mortar and pestle hanging in front of it. As you approach it, you can see a small herb garden growing in front of the house.
As you enter the building, a matronly woman slips through a curtain near the back of the room and stops dead when she sees you. She doubletakes and stares wide eyed.
"A stranger? Oh my! It's been so long! What can I do for you?"
[["Food"|HerbalistFirstVisitCont]]The only two story building in the village sits at the head of the village square. This is usually where the village chief stays, so you decide to go there first.
The door is open, so you walk in. Bookcases line the wall and a large table runs down the middle of the room. A small platform with another table lies at one end of the room, with a stair case behind it. At the table sits an old man. As you enter, he looks up.
"I have't seen you before. You've picked a bad time to come to our little village. What ill wind brings you here, stranger?"
[["Food"|ChiefFirstVisitCont]]You give the older man a smile. "I was on a journey and got lost in the forest. My food ran out yesterday and I'm very hungry. I'd be very grateful if you could spare something to eat."
The chief nods. "We have very little, but what little we have is yours to share. My name is $chief.name. I was just preparing the evening meal now. If you could do me a favor and fetch the carpenter and the herbalist, they usually eat with me. They are a couple and are kind enough to keep an elderly man company. Once you do that, I should have the meal ready."
[["To the Carpenter"|ChieftoCarpIntro]]
[["To the Herbalist"|ChieftoHerbIntro]]
Give the woman a smile. "Greetings. I just wandered in from the forest. My food ran out yesterday and I'm very hungry. I'd be very grateful if you could spare something to eat."
The herbalist gives you a motherly smile. "Oh, we can certainly take care of you. In fact, you are just in time for the evening meal. My name is $herb.name. I have a few things to finish up here, so if you could do me a favor and fetch my husband the carpenter and tell the chief you are coming to dinner, that would be so helpful. I'll join the rest of you when I can."
You nod and set out to your next destination.
[["To the Chief"|HerbtoChiefIntro]]
[["To the Carpenter"|HerbtoCarpIntro]]
You nod to the man. "Yes, thank you. I just wandered in from the forest. My food ran out yesterday and I'm very hungry. I'd be very grateful if you could spare something to eat."
The carpenter smiles. "You are just in time for the evening meal. You are welcome to join us, stranger. My name is $carp.name. I was just sending my apprentice home for the evening. I just need to finish up a few things here. If you could go tell the Chief that you will be joining us for dinner, and then go fetch my wife, the village herbalist, that would be very helpful."
You nod to Trenton and set out toward your next destination.
[["To the Chief"|CarptoChiefIntro]]
[["To the the Herbalist"|CarptoHerbIntro]]
One of the buildings has a sign showing a log being sawed in half hanging in front of it. As you approach it, you can see some rather good hand-made furniture sitting in front of the house.
When you open the door, a bell rings. Shortly thereafter, a big man with calloused hands comes through the curtain that separates the front and back room. At the sight of you, he arches an eyebrow.
"A stranger? We haven't had a stranger around here in far too long. Is there something I can help you with?"
You give the big man a smile. "I just wandered into town. $chief.name said that I could join you for the evening meal and sent me to let you know it was time."
The carpenter smiles. "Ah yes, thank you. I'm $carp.name. It's good to meet you stranger. I need to finish up a few things here, but I will see you at dinner."
You give Trenton a smile, then head out to fetch the herbalist.
[["To the Herbalist"|CarptoHerb2nd]]As you exit the village longhouse, you head to the building that has a sign showing a mortar and pestle and a small herb garden in front of the house. This where the chief said that the herbalist lived.
A matronly woman slips through a curtain near the back of the room and stops dead when she sees you. She doubletakes and stares wide eyed.
"A stranger? Oh my! It's been so long! What can I do for you, stranger?"
You smile. "I just wandered in from the forest and the chief invited me to join you for the evening meal. He sent me to the fetch you."
She smiles. "Oh, that was kind of him! I'm always so wrapped up in my work these days. I am $herb.name. I have a few more things to finish up, but tell him I'll be there shortly."
You nod, then head back out the door to visit the carpenter.
[["To the Carpenter"|HerbtoCarp2nd]]
As you return to the village with the apprentice, you see the carpenter and the herbalist headed to the village longhouse. You follow them inside.
When you enter, there are five places set around the big table, which is filled with food. Most of it is simple staples, but there is also some wild game that was apparently caught cooked up. There isn't much talking or preamble. Once everyone takes a seat, the food is devoured. It isn't very fancy, but there is plenty of it, and you are able to eat your fill. It is the first time in a week, possibly two that you have truly felt full.
Once everyone has satisfied their hunger, conversation starts up. The chief looks at you.
"We have broken bread with you, stranger, but we don't know your name."
You nod, then reply. "My name is $player.name, and I thank you for your kindness. This is the first food I have had in two days."
The chief nods, then continues. "So $player.name, what brings you to our little village? We aren't exactly on the beaten track."
You shrug. "I was traveling and became lost in the woods. I'm not sure why I started my journey now. Those woods are vast and deep, and I feel like I lost more than just my way."
The chief nods. "That happens. You are lucky that you found us. Many never come out of of those woods. But you have come at a bad time. There is a sickness on this village."
You smile, then shrug. "Sickness or not, I have little other place to go. And perhaps I can help."
The herbalist smiles, but no one else does. The chief frowns. "Hope is something we have little of these days. Still, we are not in a position to turn down kindness. You may stay as long as you wish, stranger. I hope that you truly are able to help, $player.name."
With that, the meal breaks up. You help the chief clear the dishes and store what food can be saved. He shows you to a bed in the longhouse, and you are asleep before you know it.
[[Time to wake up|GoodMorning]][[Code|TaskStartCode]]
<<if $taskset == 0>>\<<GenTask>>\
<<switch $PlotSceneState>> \
<<case 2>> [[After your morning ritual, the chief approaches you.|Finish1]]\
<<case 1>><<switch $CurrentTask.who>> \
<<case "Chief">>\
<<PlotIntro $CurrentTask.who>>
[[Next|ChiefPlotPage]]\
<<case "Herbalist">>\
<<PlotIntro $CurrentTask.who>>
[[Next|HerbPlotPage]]\
<<case "Carpenter">>\
<<PlotIntro $CurrentTask.who>>
[[Next|CarpPlotPage]]\
<<case "Apprentice">>\
<<PlotIntro $CurrentTask.who>>
[[Next|ApprenPlotPage]]\
<</switch>>\
<<case 0>>As you stand by the well after your morning ritual, you decide to start the day by visiting the $CurrentTask.who.
[[Off to work|TaskPage1][$taskset = 1,$turn +=1]] <</switch>> \
<</if>>
Day: <<print ($turn+1)>>
Plot Scenes Viewed: <<print ($chief.plot+$carp.plot+$herb.plot+$appren.plot)>> of 24
Chief: $chief.plot of 6
Herbalist: $herb.plot of 6
Carpenter: $carp.plot of 6
Apprentice: $appren.plot of 6As you exit the carpenter's shop, you head to the building with a sign showing a mortar and pestle and a small herb garden in front of the house. This where $carp.name said that the herbalist lived.
A matronly woman slips through a curtain near the back of the room and stops dead when she sees you. She doubletakes and stares wide eyed.
"A stranger? Oh my! It's been so long! What can I do for you, stranger?"
You smile. "I just wandered in from the forest and the carpenter invited me to join you for the evening meal. He sent me to the fetch you."
She smiles. "Oh, that was kind of him! I'm always so wrapped up in my work these days. My name is $herb.name. I have a few more things to finish up, but tell them I'll be there shortly."
You nod, then head back out the door to visit the chief.
[["To the Chief"|HerbtoChief2nd]]From the herbalist's house, you head toward the buildings that has a sign showing a log being sawed in half and some rather good hand-made furniture sitting in front of the house.
When you open the door, a bell rings. Shortly thereafter, a big man with calloused hands comes through the curtain that separates the front and back room. At the sight of you, he arches an eyebrow.
"A stranger? We haven't had a stranger around here in far too long. Is there something I can help you with?"
You give the big man a smile. "I just wandered into town. $herb.name said that I could join you for the evening meal and sent me to let you know it was time."
The carpenter smiles. "That was kind of her. I'm $carp.name. It's good to meet you stranger. I need to finish up a few things here, but I will see you at dinner."
[["To the Chief"|CarptoChief2nd]]From the carpenter's shop, you head to the only two story building in the village sits at the head of the village square. This is where the carpenter said that the chief stayed. As you walk in, you see an old man setting a long table with four place settings. As you enter, he looks up.
"I have't seen you before. You've picked a bad time to come to our little village. What ill wind brings you here, stranger?"
You smile. "I just wandered in from the forest. $carp.name, the carpenter, said that I could join you for the evening meal, since I haven't eaten since yesterday."
The old man nods. "We have little, but what little we have is yours to spare. My name is $chief.name. I will set an extra place at the table for you."
You smile and give the chief a grateful nod, then head back out to fetch the herbalist.
[["To the Herbalist"|ChieftoHerb2nd]]From the herbalist's house, you head to the only two story building in the village sits at the head of the village square. This is where the herbalist said that the chief stayed. As you walk in, you see an old man setting a long table with four place settings. As you enter, he looks up.
"I have't seen you before. You've picked a bad time to come to our little village. What ill wind brings you here, stranger?"
You smile. "I just wandered in from the forest. $herb.name, the herbalist, said that I could join you for the evening meal, since I haven't eaten since yesterday."
The old man nods. "We have little, but what little we have is yours to spare. My name is $chief.name. I will set an extra place at the table for you."
You smile and nod, then head back out the door to visit the carpenter.
[["To the Carpenter"|ChieftoCarp2nd]]From the herbalist's house, you head toward the buildings that has a sign showing a log being sawed in half and some rather good hand-made furniture sitting in front of the house.
When you open the door, a bell rings. Shortly thereafter, a big man with calloused hands comes through the curtain that separates the front and back room. At the sight of you, he arches an eyebrow.
"A stranger? We haven't had a stranger around here in far too long. Is there something I can help you with?"
You give the big man a smile. "I just wandered into town. The chief said that I could join you for the evening meal and sent me to let you know it was time."
The carpenter smiles. "Ah yes, thank you. I'm $carp.name. It's good to meet you stranger. I need to finish up a few things here, but I will see you at dinner." He turns toward the back room, then pauses.
"Have you already seen the herbalist?" You nod.
"Did she happen to mention her apprentice?" You shake your head no.
The big man sighs. "$herb.name has so much on her mind these days. If you could fetch her from the woods where she is gathering herbs, that would be great. Her name is $appren.name."
You nod and head out in the direction that the carpenter points.
[["To the Apprentice"|CarpApprenIntro]]As you exit the village longhouse, you head to the building that has a sign showing a mortar and pestle and a small herb garden in front of the house. This where Trenton said that his wife the herbalist lived.
A matronly woman slips through a curtain near the back of the room and stops dead when she sees you. She doubletakes and stares wide eyed.
"A stranger? Oh my! It's been so long! I'm $herb.name. What can I do for you, stranger?"
You smile. "I just wandered in from the forest and your husband invited me to join you for the evening meal. He sent me to the fetch you."
She smiles. "Oh, that was kind of him! I'm always so wrapped up in my work these days." She gathers a shawl from a chair nearby, then snaps her fingers.
"Oh! I almost forgot. My apprentice is out in the woods still! Will you go and tell her that dinner is ready? Her name is $appren.name, and she should be not far in that direction. Thank you ever so much!"
You nod and head out toward the woods in the direction that the herbalist points.
[["To the Apprentice"|HerbApprenIntro]]From the herbalist's house, you head to the only two story building in the village sits at the head of the village square. This is where the carpenter said that the chief stayed. As you walk in, you see an old man setting a long table with four place settings. As you enter, he looks up.
"I have't seen you before. You've picked a bad time to come to our little village. What ill wind brings you here, stranger?"
You smile. "I just wandered in from the forest. $carp.name, the carpenter, said that I could join you for the evening meal, since I haven't eaten since yesterday."
The old man nods. "We have little, but what little we have is yours to spare. I am $chief.name. I will set an extra place at the table for you."
You smile and nod, then the old man pauses. "Have you already visited the herbalist?" You nod.
"Did she mention $appren.name, her apprentice?" You shake your head no.
The chief sighs. "$herb.name is so overworked these days. $appren.name is my granddaughter. Last time I saw her, $herb.name had sent her out into the woods to gather herbs. Can you go fetch her for me?" You nod and the old man thanks you, pointing you in the right direction.
[["To the Apprentice"|ChiefApprenIntro]]From the carpenter's shop, you head to the only two story building in the village sits at the head of the village square. This is where the carpenter said that the chief stayed. As you walk in, you see an old man setting a long table with four place settings. As you enter, he looks up.
"I have't seen you before. You've picked a bad time to come to our little village. What ill wind brings you here, stranger?"
You smile. "I just wandered in from the forest. $herb.name, the herbalist, said that I could join you for the evening meal, since I haven't eaten since yesterday."
The old man nods. "We have little, but what little we have is yours to spare. I am $chief.name. I will set an extra place at the table for you."
The old man pauses "Did she mention $appren.name, her apprentice?" You shake your head no.
The chief sighs. "$herb.name is so overworked these days. $appren.name is my granddaughter. Last time I saw her, $herb.name had sent her out into the woods to gather herbs. Can you go fetch her for me?" You nod and the old man thanks you, pointing you in the right direction.
[["To the Apprentice"|ChiefApprenIntro]]As you exit the carpenter's shop, you head to the building that has a sign showing a mortar and pestle and a small herb garden in front of the house. This where the chief said that the herbalist lived.
A matronly woman slips through a curtain near the back of the room and stops dead when she sees you. She doubletakes and stares wide eyed.
"A stranger? Oh my! It's been so long! I am $herb.name. What can I do for you, stranger?"
You smile. "I just wandered in from the forest and the chief invited me to join you for the evening meal. He sent me to the fetch you."
She smiles. "Oh, that was kind of him! I'm always so wrapped up in my work these days." She gathers a shawl from a chair nearby, then snaps her fingers.
"Oh! I almost forgot. My apprentice is out in the woods still! Will you go and tell her that dinner is ready? Her name is $appren.name, and she should be not far in that direction. Thank you ever so much!"
You nod and head out toward the woods in the direction that the herbalist points.
[["To the Apprentice"|HerbApprenIntro]]You venture back into the woods in the direction that the herbalist pointed you and soon come across a young woman gathering plants.
"You must be $appren.name. Your Master sent me to bring you back. She, $chief.name and $carp.name are setting up a meal and they want you to join us."
The teen smiles and nods. "I understand. Here, let me show you a shortcut back to the village."
[["Time for the meal"|Feast]]You wake up to the unfamiliar sounds of a new village.
You get dressed, walk to the well in the middle of the village and splash some water on your face, then pause.
You have some choices to make. Despite what you said at dinner last night, you could try your luck in the woods again. Or you could stay here and see if you can help out. $chief.name did say they needed help.
After a moment of thought, you make your decision.
<<if not hasVisited("GameOver")>>[[Back into the woods|GameOver]]<</if>>
[[The village needs help|FirstDay]]You venture back into the woods in the direction that the herbalist pointed you and soon come across a young woman gathering plants.
"You must be $appren.name. Your grandfather sent me to bring you back. He, your master and $carp.name are setting up a meal and they want you to join us."
The teen frowns, then nods. "I understand. Here, let me show you a shortcut back to the village."
[["Time for the meal"|Feast]]You venture back into the woods in the direction that the herbalist pointed you and soon come across a young woman gathering plants.
"You must be $appren.name. $carp.name sent me to bring you back. He, your master and $chief.name are setting up a meal and they want you to join us."
The teen nods. "I understand. Here, let me show you a shortcut back to the village."
[["Time for the meal"|Feast]]From the village longhouse, you head toward the buildings that has a sign showing a log being sawed in half and some rather good hand-made furniture sitting in front of the house.
When you open the door, a bell rings. Shortly thereafter, a big man with calloused hands comes through the curtain that separates the front and back room. At the sight of you, he does a doubletake.
"A stranger? We haven't had a stranger around here in far too long. Is there something I can help you with?"
You give the big man a smile. "I just wandered into town. Your wife said that I could join you for the evening meal and sent me to let you know it was time."
The carpenter smiles. "That was kind of her. I'm $carp.name. It's good to meet you stranger. I need to finish up a few things here, but I will see you at dinner." He turns toward the back room, then pauses.
"Did she happen to mention her apprentice?" You shake your head no.
The big man sighs. "$herb.name has so much on her mind these days. If you could fetch her from the woods where she is gathering herbs, that would be great. Her name is $appren.name."
You nod and head out in the direction that the carpenter points.
[["To the Apprentice"|CarpApprenIntro]]You decide to leave the villagers to their own fate and decide to seek yours elsewhere.
You head to the edge of the woods, take one last look back at the village, then enter the darkness again. You attempt to make a map, so that you can at least make your way back to the village if things go wrong, but it is no use. By midday, you are once again hopelessly lost.
By rationing what food and water you took from the village and find in the woods, you manage to stay alive for three weeks. You wander in those dark woods, trying to find your way out, or at least back to that one moment of hope you found in the village, but you never do.
You sit down, your back against the massive trunk of one of the towering trees of what you have come to think of as your prison and eat the last of your food and drink the last of your water. As you do, you think back to that moment of decision and wonder what would have happened if you had stayed to help.
<<return "Maybe things would have been better...">>You decide to stay and help the villagers. Who knows, maybe you will find a place here as well. You certainly didn't find one in the woods.
With the decision made, you nod your head and look around. There are a number of things you could do, but the best thing would be to check on the people and see what you can do for them. The chief mentioned that there was a sickness, and the herbalist mentioned that she was overworked, so it is likely that many people need help.
[[Time to get to work|TaskStart][$taskset = 0]]You find the $CurrentTask.who walking toward <<Pronoun $CurrentTask.ismale 1 0>> house. As you approach, <<Pronoun $CurrentTask.ismale 0 0>> smiles and waves.
"$player.name, it's good to see you. I was just about to go check on another villager named $CurrentTask.name, but I've got so much to do. Would you mind taking care of that for me?"
<<Task1 $CurrentTask.what>>
You nod, then watch the $CurrentTask.who give you a wave and hurry off in the other direction. You square your shoulders and head off to meet with $CurrentTask.name.
[[You've got a long day ahead|TaskPage2]]It's been a long day, and you return to the well, splashing some water on your face before retiring to your bed in the long house. You sleep deeply, dreaming dreams you don't remember of what your life was, and of what your life could be. In the morning you wake, share some breakfast with $chief.name, then walk to the well to splash some water on your face.
[[Time to get to work|TaskStart][$taskset = 0]]<<Task2 $CurrentTask.what>>\
<<ChangeMeter $CurrentTask.what 1>>
[[Time to head home|TaskEnd]]<<ChiefPlot $chief.plot>>
[[After a night of sleep|TaskStart][$PlotSceneState = 0,$turn +=1]]<<HerbPlot $herb.plot>>
[[After a night of sleep|TaskStart][$PlotSceneState = 0,$turn +=1]]<<CarpPlot $carp.plot>>
[[After a night of sleep|TaskStart][$PlotSceneState = 0,$turn +=1]]<<ApprenPlot $appren.plot>>
[[After a night of sleep|TaskStart][$PlotSceneState = 0,$turn +=1]]You turn and smile at the old man.
"Hello $chief.name. What may I do for you this morning?" He smiles.
"I want to ask a favor from you." You nod and $chief.name continues. "I want you to go into the forest and harvest some special fruit for me. The fruit there is only ripe for a very short time, and I'm not as young as I used to be. I can't make the journey anymore, and since everyone else is busy, I am hoping you can do it." You smile and nod.
"Of course I will. Since I've been here, I've actually become a lot more familiar with the woods. They don't scare me as much as they used to, and I can find my way around much easier."
"Excellent!" The old man hands you a rolled up piece of cloth. "Here is the map to the tree." You unroll and examine it. With a moment's study you are easily able to decipher the way through the woods. The old man continues. "It's a two day trip, so I packed you some food and a sleeping roll." He hands you a bundle he brought with him.
"Alright. I trust you have everything I need, since you've done this journey before." $chief.name nods, and you smile. "Alright! Off I go then."
[[With that you set off back into the woods|Finish2]]The chief wasn't kidding. The journey is long, and the woods just as treacherous as you remember. Fortunately, you have much more experience at avoiding the hazards that they present this time.
At mid-day you stop and examine the pack that he packed for you. You find several meals stacked together. Relatively simple fare: bread, cheese, some dried meat and a piece of fruit. Enough for two days, easily. There are also two canteens of water, a bedroll and a bit of candy as a treat. You smile when you find that. The old man certainly did plan well. You have a quick bite to eat and head on, following the map.
As night falls, you start looking for a good place to camp. Unexpectedly, you run across what looks to be a well worn clearing in the woods. Then you realize that the chief has been following this path for years and has probably stopped here before. Indeed, there's already a stone circle set up for a fire, and some wood stacked nearby. You chuckle to yourself and set up camp. After starting a small fire to keep the chill away, you have a good meal and curl up to get some sleep.
[[The next morning, you break camp and travel on|Finish3]]It takes you about half the day to reach the tree. It's a huge, ancient thing, low to the ground with branches spread wide. The fruit looks like nothing you've ever seen before, like fuzzy apples. You pick one, then smell it. The scent is sweet and juicy, and tastes divine. You quickly finish off that one, then pick as many as you can carry, which still leaves quite a few on the tree.
By the time you get back to the campsite it is dark. You rest there for the night, then take the long trip back to the village the next day. You are met outside the village by the chief just before dark, who takes the fruit from you.
"You must be tired after your long trip. Why don't you take a short nap before dinner. Don't worry, I'll wake you." You nod, too tired to really protest, and head back to your bed in the long house.
[[A few hours later, the Chief shakes you awake|Finish4]]"$player.name, wake up. It's time for the feast." You blink and sit up. It takes a moment for you to shake off the sleep, but then you catch the scent of roasted meat, which brings you back to life. You see $chief.name standing over you, with a huge grin on his face.
"Come on, you don't want to be late!" He takes your hand and leads you out of the long house. When you emerge, you see that the village square has been transformed. There are torches everywhere, lighting up the night. Practically the entire village appears to be present. There is a table set up with all sorts of wonderful food set up.
$chief.name leaves you on the steps of the long house, moving down to join $herb.name, $carp.name, and $appren.name.
"We wanted to do something special for you", he says. "You were a stranger here when you joined us a few weeks ago, but now you have become part of our lives. You have helped almost all of us with our problems, giving to each of us selflessly."
$herb.name steps forward.
"You have asked for nothing, spending every day helping others. You have been an example to us all. Thanks in no small part to your hard work, the sickness is mostly gone. You enabled us to work together and beat it, and in the process you healed some of the wounds that had been festering since long before the sickness arrived."
She steps back and $appren.name steps up.
"You are a part of this village now. No longer a stranger, you are as much a part of this place as any of us. So we cooked a feast in your honor, using the fruit that only grows here, and only comes around for a week every year. And there's something else."
She grins and steps back, and $carp.name steps forward. He points over toward the edge of the village, and you see that there is a new house built.
"We sent you away so that we could all come together and build you a place to live. It's not just a house. If you stay, we'd like for you to think of it as your home."
He steps back and you smile.
"Thank you. Thank you all. I didn't know what I was looking for when I wandered into those woods. I didn't know what I had found when I wandered into this village. I just did what came natural. I did what I hope anyone would do: I acted with compassion and respect towards my fellow human beings." You grin. "I am honored to be accepted here. It would be my pleasure to stay." You raise one arm.
"Now let's EAT!" The villagers all roar in approval and you step toward the table, ready to feast with your new friends and neighbors, ready to take your place in your new home.
[[The End|Thank You]]@@text-align:center;
!Welcome to my Thesis Prototype
@@
This is a Twine version of a game that will eventually be published in a graphic format. Due to time and resource constraints, it has been built in an interactive fiction format for simplicity's sake.
''This prototype will take ~30 minutes to do a complete playthrough.''
As you play through this, try to keep in mind that eventually most of this will be rendered graphically.
I want to thank my group of expert testers on Facebook, with special thanks to April and Abigail, without whose help this project would have been much harder and much less polished.
Now, on to the game!
[[Introduction|Initialization]] @@text-align:center;
!Documentation
!!Introduction
@@
Hi, and welcome to the documentation for my thesis project.
In this part of the project, I'm going to explain a bit about what Twine is, how it works, and how I used it to create this prototype. Consider this to be the "process" part of my project.
First, some basics about Twine.
@@text-align:center;
!!!What is Twine?
@@
Twine is a tool/language for writing interactive fiction. It is both fairly simple and free, giving it a low barrier to entry, meaning more or less anyone can use it. If someone can read and type, they can use Twine to create an interactive fiction.
@@text-align:center;
!!!How does it work?
@@
Twine works by using some of the features native to the Web (hypertext, JavaScript, CSS, multimedia, etc.) to allow regular people to create stories and games. These can be simple, from basic branching narratives, to full on RPGs with stat and inventory systems.
The three basic elements to Twine are the link, an element which takes a person from page to page (similar to a normal link on a normal webpage), the variable (a value that stands in for another value), and conditional logic (a statement that checks to see if a statement or series of statements is true or false). It can get more complicated than that, but I'd say 90% of what is done is done with those three elements.
@@text-align:center;
!!!What does that mean?
@@
It may sound a bit confusing, but it will get clearer. Let me give you an example from this project. At several points, I need to test to see what character's story is currently being told. At some point earlier, I have picked the character and stored it in a variable that looks like this: {{{$temptaskcharacter}}}
(In Sugarcube, all variables have the Dollar Sign in front of their name.)
Once I have stored the character name in that variable, I send that variable to a test, which looks something like this:
{{{<<if $temptaskcharacter is "Chief">>}}}
{{{<<print "This is the chief">>}}}
{{{[[ChiefPage1]]}}}
{{{<<elseif $temptaskcharacter is "Herbalist">>}}}
{{{<<print "This is the herbalist">>}}}
{{{[[HerbalistPage1]]}}}
(Sugarcube stores all of its code in the double Less Than and Greater Than signs and Links are wrapped in the double Square Brackets so that it knows what they are.)
This shows all three elements. It tests a variable, prints out the result, then shows a link. If the variable is "Chief", the player would see this:
''This is the chief''
''__ChiefPage1__''
If it was "Herbalist", the player would see this instead:
''This is the herbalist''
''__HerbalistPage1__''
That's a basic example of how Twine, and programming in general works.
@@text-align:center;
!!My Project
@@
So let's get into the nitty gritty of my project.
There are a few things to talk about here first. Let's start with why I chose Sugarcube over Harlowe. I'd worked with Harlowe before, so switching to Sugarcube meant I had to learn a new format. However, there were definite advantages.
The biggest was something called Widgets. For those computer savvy, Widgets act as functions. For those less savvy, what this means is that Sugarcube has this feature that lets me write what are basically my own little programs that I can use to do things for me in the middle of my story. This makes things a LOT easier and more convenient, for a couple reasons. One is so I don't have to type the same stuff over and over again, but the biggest is because it allows me to do things without refreshing the page.
In Twine, nothing moves without player input, unless you specifically set up a page to refresh within a certain period of time. However, that can be disruptive to the player. Widgets on the other hand, allow me to check and change things behind the scenes without having to bug the player for update or refresh the page without them taking action. For me, that was more than enough justification to learn a new format.
@@text-align:center;
| [[Documentation Home|DocsHome]] | [[Next|DocsDefinitions]]
@@@@text-align:center;
!Documentation
!!!The basics
@@
I'm going to start with a basic overview of what the game does, then go into the specifics of how the game does it.
If you haven't played the game yet, I recommend that you do before reading this part. If you have already played the game, then read on.
The game has four main characters, the Chief, the Herbalist, the Carpenter, and the Apprentice. Each of these has a set of values representing who they are. The most important one is the Plot value. This represents how far along that character's story the player has ventured.
Once the player passes the feast and enters into the main game loop, a widget checks to see if the player is on a Plot day or a Generic day, then picks an appropriate scene for that day based on what scenes the player has seen before. Once the character has seen all the plot scenes for every character, the game moves to the end scene.
@@text-align:center;
!!!The Variables
@@
The game uses a number of objects (a programming term for a variable that has a lot of individual values in it) to keep track of things. When an object is mentioned, an explanation of what it is and what values are inside of it will be given. The game also uses arrays, which are simple lists, and regular single-value variables as well.
!!!!The people
These are the people in the game. There are two objects, two arrays and one variable.
//Player//
This object represents the game's knowledge about the player. There are only two fields, and these are used for text substitution. (more on that later). Both of these values are entered before the main game begins.
__Name__: This is player's name.
__Pronoun:__ This is the player's gender. 0 means female, 1 means male, 2 means other.
//NPC//
NPC stands for Non Player Character. There are four of these objects, one each for the main four characters. However, they all have the same fields and are used for the same purposes. In the game I call these objects Chief, Herb, Carp, and Appren.
__Title:__ This is the title of the NPC. I.e., Chief, Herbalist, etc.
__Name:__ This is the name of the individual character.
__IsMale:__ This represents the gender of the character. If this is set to 1, it means the character is male.
__Plot:__ This shows the number of last plot scene for this character that was shown to the player and ranges from 0 to 6.
//RandomMaleList// and //RandomFemaleList//
These arrays each contain 15 random male and female names, respectively. This is used for text substitution and random generation.
//PregName//
This variable contains the name of the pregnant lady in the Herbalist's story.
!!!!The machinery
This lists all the objects and variables used to make the game go.
//CurrentTask//
This object is used when a generic task is generated. It contains information about the NPC who gave the player the task as well as the random villager that the task is for.
__Who:__ This is the title of the NPC that gave out the task for text substitution.
__What:__ This represents what kind of task it is: Health, Hunger, Clean, or Morale.
__IsMale:__ This is used to keep track of whether or not the NPC who gave out the task is male or female for text substitution.
__Name:__ This is the name of the random villager for whom the player is doing the task. This is picked from either RandomFemaleList or RandomMaleList as appropriate.
__IsMale2:__ This represents the gender of the villager for text substitution.
//Meter//
This represents how many of each kind of generic scene the player has seen. This is designed to keep the player from getting too terribly bored, although since there are only four scenes, and the player will see each of them at least 5 times with minor changes, it doesn't work too well.
__Health:__ This represents the number of times that the player has seen the Health generic scene
__Hunger:__ This represents the number of times that the player has seen the Hunger generic scene
__Clean:__ This represents the number of times that the player has seen the Clean generic scene
__Morale:__ This represents the number of times that the player has seen the Morale generic scene
//TaskSet//
This is a variable that helps the game keep track of whether or not a task has been generated. If it is 0, a task has not been generated. If it is 1, a task has been generated.
//PlotSceneState//
This tells the game what kind scene to trigger. If it is 0, the game generates a generic scene. If it is 1, the game triggers a character plot scene. If it is 2, the game moves onto the ending scenes.
//Turn//
This represents how many times the game has looped through scene generation. It is represented as Day to the player.
@@text-align:center;
[[Back|DocsIntro]] | [[Documentation Home|DocsHome]] | [[Next|DocsWidgets]]@@@@text-align:center;
!Documentation
!!!The Widgets
@@
These are the things that actually make the game WORK. There are two "main" widgets: Pronoun, which is used for text substitution, and GenTask, which actually figures out what task to assign to the player. All the other widgets either work in support of GenTask, or are there to make my life easier.
If you really want to go diving into it, the full code of the widgets page (minus extraenous plot) is [[here|WidgetsCode]].
Let's start by talking about text substitution, something I have mentioned a lot.
!!!!Text Substitution
I intentionally wrote the story in second person because I wanted the player to feel attached to the characters and action. However, this does present a problem, given that the player is also allowed to choose their gender. Since I also do random scene generation, I don't always know whether or not the character in the scene I'm writing will be male or female, nor do I know their name.
This is where text substitution comes in. One way of doing text substitution is by simply using variables. I do this in my generic scenes with the CurrentTask object. Because I assign a random name, I don't know what that name will be. But that's okay, because Twine lets me use a variable when I'm writing my scene so that it will fill in whatever value is in the variable at the time the game is played.
''Names''
For example, there are times where the characters refer to the player by name. When I am writing the scenes, whenever I want someone to say the player's name, I write $$player.name (the dollar sign shows that it's a variable, and the period lets me access the name that I've got stored inside player).
So names are easy. But pronouns are a bit harder. People can get cranky when you use the wrong pronoun, so I needed to set up a quick and easy way to put in the right pronoun whenever I needed to. So I wrote a widget called Pronoun.
''Pronouns''
Pronoun gets three things from the text whenever I want to call it (meaning I want to use it to substitute a word). Each value is a number. The first value represents the gender of the character. Conveniently enough, this is the same as IsMale in all of my objects. If it's a 1, then Pronoun knows that I am looking for male pronouns. A 0 means female pronouns. A 2 means that I'm dealing with the player, and I need other.
The second value is a 1 or a 0, and that represents whether or not the pronoun is possessive: His vs. He. The third value, another 1 or 0, represents upper vs lower case: He vs. he. So whenever I need to put in a Her, for example, I would write
{{{<<Pronoun 0 1 1>>}}}.
If I don't know the gender of the person (as in the generic tasks) I can give it a variable instead. That's why I set everything up to be 1s and 0s. So if I know that I need an upper case, non-possessive pronoun for the generic villager in the scene, I would write this.
{{{<<Pronoun $CurrentTask.ismale2 0 1>>}}}
That would print out either a He or a She, depending on whether or not that variable is set to 1 or 0.
In technical terms, this widget is a huge series of If/Else loops. If the combination is 000, print she. If it's 100, print he. If it's 101, print He. And so forth, for every possible combination. It's ugly, but it does the job really well.
!!!!Task Generation
Now we get to the main part of the game. Task Generation is my term for how the game picks what scene to play for each day. The idea is easy. The execution and error checking was hard.
In basic terms, it works like this:
//If the day is even (including 0), show a character plot scene that the player hasn't seen before, making sure that no character plotline gets too far ahead of any other. If the day is odd, build a generic scene. If all the plot scenes have been shown, show the ending.//
All of this is done by a "master" widget named GenTask. However, a lot of the work is subcontracted out to other widgets. GenTask uses the widgets SceneChooser, MeterCheck, and PickChar to do the bulk of the error checking for it.
Because this is a complicated thing, I'll break it down into pieces.
''Picking a scene''
The first thing the game has to do is figure out what scene to play. This job is done by SceneChooser.
The SceneChooser widget sets the PlotSceneState value to either 0, 1, or 2. This tells GenTask what to do next.
The first thing it does is check to see if ALL of the character plot states (in other words, Chief.plot, Herb.plot, Carp.plot and Appren.plot) are equal to 6. If they are, that means that the player has seen all the plot scenes and it is time to end the game. At that point, it sets PlotSceneState to 2.
(If that isn't the case, then it divides Turn by 2 and checks to see if the remainder is 0. If it is, that means that the game should play a plot scene, so it sets PlotSceneState to 1.
If neither of these things are the case, it sets PlotSceneState to 0.)*
This was the case in a previous version. However, in order to streamline the playtest, I removed generic scenes entirely. Now, if the Plots are not equal to 6, PlotSceneState is automatically set to 1.
''Picking a meter''
I haven't talked about meters yet, but basically they determine what type of generic scene you get. In previous versions of the game (and maybe in future versions) I did more with them, but in this version they got cut out. The generic scenes are a remnant of their presence. There are four kinds of generic scenes: Checking on someone's health, making sure someone isn't hungry, cleaning a house, and upping someone's morale.
Whenever the player sees a generic task, the Meter object has the appropriate value increased by 1. This keeps track of how many times a player has seen each scene.
Once GenTask has figured out what scene to play, it has to pick a meter. It does this by using a widget called MeterCheck. What MeterCheck does is sort the meters from highest to lowest and returns the lowest meter. GenTask then knows to play that scene next.
''Picking a character''
Once GenTask knows what to do, it needs to figure out who it is doing it with. This involves picking a character. This is where I spent the vast majority of my time. Trying to get this loop set up to keep the scenes playing in time with one another was HARD. I kept running into blind alleys, probably because I wrote a lot of code before I actually got to this part of the game. I then had to rewrite a lot of that code. But I learned a LOT from that process.
In order to keep the characters' stories moving in pace with each other, GenTask calls the PickChar widget. GenTask picks a character at random and hands it to PickChar. PickChar then checks to see if that character's plot value is 6. If it is, then it sets a variable to tell GenTask to pick another character.
If the Plot value of that character is less than six, PickChar checks to see if that character's Plot value is greater than the average plot value of the rest. If it is, then it tells GenTask to pick another character. If the character passes both of those tests, then PickChar sets a variable to tell GenTask that the character it has picked is acceptable.
GenTask is set up to randomly pick characters and loop through PickChar as many times as it needs to in order to find a good character. I could set this up to be more efficient, but since there are only four characters and two checks per cycle, there's really no need.
''Finalizing the task''
Once GenTask knows who and what it is doing, it has to finish filling in all the details. Using the character and meter it generated, it fills in the values for CurrentTask. It also randomly picks whether the villager will be male or female and assigns an appropriate name from the random list to CurrentTask.
At that point, GenTask has done its job and is finished.
@@text-align:center;
[[Back|DocsDefinitions]] | [[Documentation Home|DocsHome]] | [[Next|DocsGameLoop]]
@@@@text-align:center;
!Documentation
!!!The game loop
@@
The main game loop is handled by just a few pages. The main page that handles the load is called TaskStart.
''TaskStart''
(See the actual code [[here|TaskStartCode]])
The first thing TaskStart does is set the variable TaskSet to 0. That way it knows it’s starting with a brand new day. It then calls GenTask to figure out what to do with that day. Once GenTask is done its thing, the TaskStart page checks the value in PlotSceneState. This is what determines what the player actually sees on this page.
If the value is 2, then TaskStart knows that all of the plot scenes have been played, and it starts the final sequence of scenes.
If the value is 1, then it knows it needs to play a plot scene. It looks at the value of CurrentTask.who to figure out which scene to play, and then calls a widget called PlotIntro to actually show the introduction.
PlotIntro takes the information from CurrentTask.who and then looks at that character's Plot variable. It then shows a few lines of text for the introduction of that character's specific scene. I will talk more about why I did the plot that way in just a moment. After PlotIntro shows the right text, TaskStart shows a link to that character's PlotPage (which is a separate page for each character).
If PlotSceneState is 0, then TaskStart knows it needs to show a generic scene, and shows the generic text and a link to TaskPage1. It then sets TaskStart to 1, so that it knows that it’s in the middle of a task, and adds 1 to Turn, so that the day moves on.
TaskPage1 and TaskPage2 are where the generic scenes play out. The way they work is almost identical to the character Plot scenes, so I'll talk about all of them at once.
''Plot Pages''
Because I was going to be dealing with a loop, rather than a traditional branching narrative, I didn't want to create separate pages for each scene and character. Instead, what I did was created a single page for each character that calls a widget designed to play the appropriate scene based on the Plot value of that character.
There are five character plot widgets (PlotIntro, ChiefPlot, HerbPlot, CarpPlot, and ApprenPlot) and two generic plot widgets (Task1 and Task2). The *Plot widgets test to see what the value of Plot is for that character, and then insert a large blob of text onto the page based on the result.
This means that ChiefPlotPage, HerbPlotPage, CarpPlotPage, and ApprenPlotPage are virtually empty. All they contain is a call to the appropriate widget, a link back to TaskStart, and a bit of code resetting PlotSceneState back to 0. All of the text is actually on a separate page for the widgets, which the player cannot access. Inside the widget, after each scene is displayed, the character's Plot value is set to represent which scene was just played.
Task1 and Task2 work on the same model. They insert a large blob of text, but instead of being based on a character or plot value, they look at what meter is involved. Task1 fills in TaskPage1, which is when the player is charged with the task, and Task2 works on TaskPage2, which is executing the task. At the end of Task2, the appropriate Meter value is increased.
@@text-align:center;
[[Back|DocsWidgets]] | [[Documentation Home|DocsHome]] | [[Next|DocsMoreInfo]]
@@@@text-align:center;
!Documentation
@@
@@text-align:center;
[[Back|DocsGameLoop]] | [[Documentation Home|DocsHome]]
@@{{{
Please enter your name, or the name you wish to go by during the story: <<textbox "$player.name" $player.name autofocus>> \
<<button "Confirm Name">>
<<set $player.name to $player.name.trim()>>
<<if /[^0-9a-z]/i.test($player.name)>></span>
<<replace "#error-name">>Only letters and numbers are allowed.<</replace>>
<<else>>
<<switch $genderset>><<case 1>>\
<<replace "#error-name">>\You entered a valid name!
[[Click here to continue|PlayerConfirm]]\<</replace>>
<<default>>\
<<replace "#error-name">>You entered a valid name!
[[Click here to continue|PlayerPronoun]]<</replace>>
<</switch>>
<</if>>
<</button>><div id="error-name"></div>
}}}
When the button is pressed on this page, the player name is
tested for the presence of anything other than letters and
numbers.
If it finds anything other than those, it returns the error message.
If the player name is good, then it gives another set of options.
The Switch statement is so that players can come back and reset
their name later at the Confirm page.
<<back "Back">> {{{
<<if $taskset == 0>>\<<GenTask>>\
<<switch $PlotSceneState>> \
<<case 2>> [[After your morning ritual, the chief approaches you.|Finish1]]\
<<case 1>><<switch $CurrentTask.who>> \
<<case "Chief">>\
<<PlotIntro $CurrentTask.who>>
[[Next|ChiefPlotPage]]\
<<case "Herbalist">>\
<<PlotIntro $CurrentTask.who>>
[[Next|HerbPlotPage]]\
<<case "Carpenter">>\
<<PlotIntro $CurrentTask.who>>
[[Next|CarpPlotPage]]\
<<case "Apprentice">>\
<<PlotIntro $CurrentTask.who>>
[[Next|ApprenPlotPage]]\
<</switch>>\
<<case 0>>As you stand by the well after your morning ritual, you decide to start the day by visiting the $CurrentTask.who.
[[Off to work|TaskPage1][$taskset = 1,$turn +=1]] <</switch>> \
<</if>>
Day: $turn
Plot Scenes Viewed: <<print ($chief.plot+$carp.plot+$herb.plot+$appren.plot)>> of 24
Chief: $chief.plot of 6
Herbalist: $herb.plot of 6
Carpenter: $carp.plot of 6
Apprentice: $appren.plot of 6
}}}
This page is explained in detail [[here|DocsGameLoop]]. This is for those that want to see the code.
<<back "Back">>{{{<<set $player to {
name: "",
pronoun: 0
}
>>
<<set $CurrentTask to {
who: "",
what: 0,
ismale: 0,
name: "",
ismale2: 0
}
>>
<<set $Meter to {
health: 0,
hunger: 0,
clean: 0,
morale: 0
}
>>
<<set $taskset = 0>>
<<set $PlotSceneState = 0>>
<<set $turn = 0>>
<<set $pregname = "Anna">>
<<set $namelist to ["Chief", "Herbalist", "Carpenter", "Apprentice"]>>
<<set $randomfemalelist to ["Amy", "April", "Jessica", "Jennifer", "Elizabeth", "Susan", "Rebecca", "Maria", "Catherine", "Janet", "Marie", "Carolyn", "Abigail", "Heather", "Diane"]>>
<<set $randommalelist to ["Andrew", "Brendan", "Robert", "Christopher", "Edward", "Sean", "Michael", "Brian", "William", "Thomas", "Steven", "Ronald", "Kevin", "Matthew", "Alan"]>>
<<widget "NPCInit">>
<<set $NPC to {
title: $namelist.pluck(0),
name: "",
ismale: 0,
plot: 0,
}
>>
<</widget>>
<<NPCInit>>
<<set $chief to $NPC>>
<<set $chief.name to "Elijah">>
<<set $chief.ismale = 1>>
<<NPCInit>>
<<set $herb to $NPC>>
<<set $herb.name to "Helene">>
<<NPCInit>>
<<set $carp to $NPC>>
<<set $carp.name to "Trenton">>
<<set $carp.ismale = 1>>
<<NPCInit>>
<<set $appren to $NPC>>
<<set $appren.name to "Amalia">>
<<widget ChangeMeter>><<silently>>
<<set $what = $args[0]>>
<<set $quant = $args[1]>>
<<switch $what>>
<<case "health">>
<<set $Meter.health += $quant>>
<<case "hunger">>
<<set $Meter.hunger += $quant>>
<<case "clean">>
<<set $Meter.clean += $quant>>
<<case "morale">>
<<set $Meter.morale += $quant>>
<</switch>>
<</silently>><</widget>>
<<nobr>><<widget Pronoun>>
<<set $who = $args[0]>>
<<set $poss = $args[1]>>
<<set $case = $args[2]>>
<<if $who == 1 && $poss == 0 && $case == 1>>
He
<<elseif $who == 1 && $poss == 0 && $case == 0>>
he
<<elseif $who == 1 && $poss == 1 && $case == 0>>
his
<<elseif $who == 1 && $poss == 1 && $case == 1>>
His
<<elseif $who == 0 && $poss == 0 && $case == 0>>
she
<<elseif $who == 0 && $poss == 0 && $case == 1>>
She
<<elseif $who == 0 && $poss == 1 && $case == 0>>
her
<<elseif $who == 0 && $poss == 1 && $case == 1>>
Her
<<elseif $who == 2 && $poss == 0 && $case == 0>>
they
<<elseif $who == 2 && $poss == 0 && $case == 1>>
They
<<elseif $who == 2 && $poss == 1 && $case == 1>>
Their
<<elseif $who == 2 && $poss == 1 && $case == 0>>
their
<<else>>
ERROR!
<</if>>
<</widget>><</nobr>>
<<widget MeterCheck>><<silently>>\
<<set $i to $args[0]>>\
<<if $metervalue[$i] < $value>>\
<<set $value = $metervalue[$i]>>\
<<set $index = $i>>\
<</if>>\
<</silently>><</widget>>
<<widget PickChar>><<silently>>
<<set $who to $args[0]>>
<<set $repickcharacter = 1>>
<<switch $who>>
<<case "Chief">>
<<set $plotave = (($herb.plot + $carp.plot + $appren.plot)/3)>>
<<if $chief.plot >= 6>>
<<set $repickcharacter = 1>>
<<elseif $chief.plot > $plotave>>
<<set $repickcharacter = 1>>
<<else>>
<<set $repickcharacter = 0>>
<</if>>
<<case "Herbalist">>
<<set $plotave = (($chief.plot + $carp.plot + $appren.plot)/3)>>
<<if $herb.plot >= 6>>
<<set $repickcharacter = 1>>
<<elseif $herb.plot > $plotave>>
<<set $repickcharacter = 1>>
<<else>>
<<set $repickcharacter = 0>>
<</if>>
<<case "Carpenter">>
<<set $plotave = (($herb.plot + $chief.plot + $appren.plot)/3)>>
<<if $carp.plot >= 6>>
<<set $repickcharacter = 1>>
<<elseif $carp.plot > $plotave>>
<<set $repickcharacter = 1>>
<<else>>
<<set $repickcharacter = 0>>
<</if>>
<<case "Apprentice">>
<<set $plotave = (($herb.plot + $carp.plot + $chief.plot)/3)>>
<<if $appren.plot >= 6>>
<<set $repickcharacter = 1>>
<<elseif $appren.plot > $plotave>>
<<set $repickcharacter = 1>>
<<else>>
<<set $repickcharacter = 0>>
<</if>>
<</switch>>
<</silently>><</widget>>
<<widget SceneChooser>><<silently>>
<<if $chief.plot == 6 && $herb.plot == 6 && $carp.plot == 6 && $appren.plot == 6>>
<<set $PlotSceneState = 2>>
<<else>>
<<set $PlotSceneState = 1>>
<</if>>
<</silently>><</widget>>
<<widget GenTask>><<silently>>
<<SceneChooser>>\
<<set $metername to ["health", "hunger", "clean", "morale"]>>\
<<set $metervalue to [$Meter.health, $Meter.hunger, $Meter.clean, $Meter.morale]>>\
<<set $index = 0>>\
<<set $value = $metervalue[0]>>\
<<set $i = 1>>\
<<for $i < $metervalue.length>>\
<<MeterCheck $i>>\
<<set $i++>>\
<</for>>\
<<set $CurrentTask.what to $metername[$index]>>\
<<set $charlist to ["Chief", "Herbalist", "Carpenter", "Apprentice"]>>\
<<set $temptaskcharacter to either($charlist)>>\
<<set $repickcharacter = 1>>
<<if $PlotSceneState != 2>>
<<for $repickcharacter != 0>>
<<set $temptaskcharacter to either($charlist)>>
<<PickChar $temptaskcharacter>>
<</for>>
<</if>>
<<set $CurrentTask.who = $temptaskcharacter>>
<<if $CurrentTask.who == "Chief" || $CurrentTask.who == "Carpenter">>
<<set $CurrentTask.ismale = 1>>
<<else>>
<<set $CurrentTask.ismale = 0>>
<</if>>
<<if random(1,2) == 1>>
<<set $CurrentTask.name to either($randommalist)>>
<<set $CurrentTask.ismale2 = 1>>
<<else>>
<<set $CurrentTask.name to either($randomfemalelist)>>
<<set $CurrentTask.ismale2 = 0>>
<</if>>
<</silently>><</widget>>
<<widget ChiefPlot>>
<<set $what to $args[0]>>\
<<switch $what>>\
<<case 0>>\
PLOT SCENE 1
<<set $chief.plot = 1>>\
<<case 1>>\
PLOT SCENE 2
<<set $chief.plot = 2>>\
<<case 2>>\
PLOT SCENE 3
<<set $chief.plot = 3>>\
<<case 3>>\
PLOT SCENE 4
<<set $chief.plot = 4>>\
<<case 4>>\
PLOT SCENE 5
<<set $chief.plot = 5>>\
<<case 5>>\
PLOT SCENE 6
<<set $chief.plot = 6>> \
<<default>>\
ERROR\
<</switch>>\
<</widget>>
<<widget HerbPlot>>
<<set $what to $args[0]>>\
<<switch $what>>\
<<case 0>>\
/* Left in as an example */
You call out to her.
"Hey, are you okay?" She jerks as she hears your voice, plastering a smile on her face.
"Oh, I’m just fine dear. Everything’s just fine." As you walk closer, you can see the strain around her eyes and hear it in her voice. You come to stand next to her at the well.
"Are you sure? You’ve been working 16 hour days non-stop since I’ve been here. I know that I would be run ragged by now if I were in your shoes." The herbalist sighs, her smile disappearing.
"It’s just that there’s so much to do! I’m trying to keep up with all of the normal things that I do while treating this sickness. There’s <<if random(1)==0>><<print $randomfemalelist.random()>><<else>> <<print $randommalelist.random()>><</if>>’s dizzy spells and <<if random(1)==0>><<print $randomfemalelist.random()>><<else>> <<print $randommalelist.random()>><</if>> old wound that need attention. $pregname is due to have her first child in the next few weeks. Not to mention all the people who are now sick and need treatment, and all the things I need to do to keep more people from GETTING sick. It’s a nightmare!" You listen quietly, nodding as she vents.
"And it doesn’t get better when I go home." You arch an eyebrow.
"Oh?" The older woman shakes her head.
"It’s nothing I want to talk about. I’m too busy to worry about that right now."
You nod, then give her a smile. "Well, if you need anything, I am here."
$herb.name smiles. "Just keep helping out wherever you can. That’s the best thing you can do." You nod, then give her a wave as you both head back to work.
<<set $herb.plot = 1>>\
<<case 1>>\
PLOT SCENE 2
<<set $herb.plot = 2>>\
<<case 2>>\
PLOT SCENE 3
<<set $herb.plot = 3>>\
PLOT SCENE 4
<<set $herb.plot = 4>>\
<<case 4>>\
PLOT SCENE 5
<<set $herb.plot = 5>>\
<<case 5>>\
PLOT SCENE 6
<<set $herb.plot = 6>>\
<<default>>\
ERROR\
<</switch>>\
<</widget>>
<<widget CarpPlot>>
<<set $what to $args[0]>>\
<<switch $what>>\
<<case 0>>\
PLOT SCENE 1
<<set $carp.plot = 1>>\
<<case 1>>\
PLOT SCENE 2
<<set $carp.plot = 2>>\
<<case 2>>\
PLOT SCENE 3
<<set $carp.plot = 3>>\
<<case 3>>\
PLOT SCENE 4
<<set $carp.plot = 4>>\
<<case 4>>\
PLOT SCENE 5
<<set $carp.plot = 5>>\
<<case 5>>\
PLOT SCENE 6
<<set $carp.plot = 6>>\
<<default>>\
ERROR\
<</switch>>\
<</widget>>
<<widget ApprenPlot>>
<<set $what to $args[0]>>\
<<switch $what>>\
<<case 0>>\
PLOT SCENE 1
<<set $appren.plot = 1>>\
<<case 1>>\
PLOT SCENE 2
<<set $appren.plot = 2>>\
<<case 2>>\
PLOT SCENE 3
<<set $appren.plot = 3>>\
<<case 3>>\
PLOT SCENE 4
<<set $appren.plot = 4>>\
<<case 4>>\
PLOT SCENE 5
<<set $appren.plot = 5>>\
<<case 5>>\
PLOT SCENE 6
<<set $appren.plot = 6>>\
<<default>>\
ERROR\
<</switch>>\
<</widget>>
<<widget PlotIntro>>
<<set $who to $args[0]>>\
<<switch $who>>\
<<case "Chief">>\
<<switch $chief.plot>>\
<<case 0>>\
INTRO
<<case 1>>\
INTRO
<<case 2>>\
INTRO
<<case 3>>\
INTRO
<<case 4>>\
INTRO
<<case 5>>\
INTRO
<</switch>>\
<<case "Herbalist">>\
<<switch $herb.plot>>\
<<case 0>>\
INTRO
<<case 1>>\
INTRO
<<case 2>>\
INTRO
<<case 3>>\
INTRO
<<case 4>>\
INTRO
<<case 5>>\
INTRO
<</switch>>\
<<case "Carpenter">>\
<<switch $carp.plot>>\
<<case 0>>\
INTRO
<<case 1>>\
INTRO
<<case 2>>\
INTRO
<<case 3>>\
INTRO
<<case 4>>\
INTRO
<<case 5>>\
INTRO
<</switch>>\
<<case "Apprentice">>\
<<switch $appren.plot>>\
<<case 0>>\
INTRO
<<case 1>>\
INTRO
<<case 2>>\
INTRO
<<case 3>>\
INTRO
<<case 4>>\
INTRO
<<case 5>>\
INTRO
<</switch>>\
<</switch>>\
<</widget>>
<<widget Task1>>
<<set $what to $args[0]>>You nod to the $CurrentTask.who. <<Pronoun $CurrentTask.ismale 0 1>> smiles. "Thank you. Today I need to check to make sure that<<switch $what>>
<<case "health">> <<Pronoun $CurrentTask.ismale2 0 0>> is feeling okay. <<Pronoun $CurrentTask.ismale2 0 1>> has the sickness and I want to make sure <<Pronoun $CurrentTask.ismale2 0 0>> is doing what <<Pronoun $CurrentTask.ismale2 0 0>> should be to get healthy.
<<case "hunger">>SCENE
<<case "clean">>SCENE
<<case "morale">>SCENE
<</widget>>
<<widget Task2>>
<<set $what to $args[0]>>You knock on the door of $CurrentTask.name's house. <<Pronoun $CurrentTask.ismale2 0 1>> answers the door. "Oh, hello."
You smile and introduce yourself. <<Pronoun $CurrentTask.ismale2 0 1>> smiles back. "I'm $CurrentTask.name. What brings you here?"
"Well, the $CurrentTask.who asked me to stop by to<<switch $what>>/
<<case "health">> make sure you are feeling okay." $CurrentTask.name smiles.
"Oh, that's so kind of both of you." <<Pronoun $CurrentTask.ismale2 0 1>> opens the door wider and gestures for you to enter. You follow <<Pronoun $CurrentTask.ismale2 1 0>> inside, glancing around. The house is small, but neat. $CurrentTask.name leads you to the kitchen. As you get there, <<Pronoun $CurrentTask.ismale2 0 0>> is struck with a coughing fit. You guide <<Pronoun $CurrentTask.ismale2 1 0>> to a seat at the table, then begin to heat up some water on the stove. With some directions on where to find things, you make some tea for <<Pronoun $CurrentTask.ismale2 1 0>>. <<Pronoun $CurrentTask.ismale2 0 1>> smiles as <<Pronoun $CurrentTask.ismale2 0 0>> drinks it.
"Ahh, that's much better, thank you." You stay there for the rest of the day, tending to $CurrentTask.name's needs. By the time you leave at sundown, you can tell that <<Pronoun $CurrentTask.ismale2 0 0>> is feeling much better.
<<case "hunger">>SCENE.
<<case "clean">> SCENE.
<<case "morale">>SCENE.<</switch>>\
<</widget>>
}}}
I won't dig into all of this in detail. I cover most of it in [[the Documentation|DocsWidgets]]. This is for those who want to see what I wrote. If you have questions, feel free to contact me directly.
<<back "Back">>That's the end!
I have made a lot of fairly extensive notes about this. If you haven't read [[the Documentation|DocsHome]], and you are interested in how it's put together, now would be a good time to do so.
Thank you for playing my game! I really appreciate you taking the time to go through my project. I would really love to hear anything you have to say about it.
If you are willing to take a short survey about your experience with this prototype, please click [[here|https://www.surveymonkey.com/r/3ZKQ6QG]]
Once again, I am planning on continuing this project into a graphical version, so feedback would be greatly appreciated.
I can be contacted at my NYU email address: [email protected], and if you would like to answer some questions about your experience to help me out with my thesis project, please let me know!
Again, thank you for playing, and I hope you have a healthy and happy day.