Hereâs a truncated startup for Ansible Station 24 as an example.
unedited startup.txt, warning long
*title Ansible Station 24
*author author
*scene_list
startup
introduction
intermission_1
downtime
tier_one
intermission_2
tier_two
intermission_3
tier_three
aftermath
*comment -MAIN CHARACTER-----------------------------------------
*create name "Interpreter"
*create nickname "Books"
*comment Beckett Nickname: ${nickname} or Books
*comment Maverick Nickname: @{gender Frosty|Snowman|Ice Queen}
*comment June Nickname: Tiger
*comment Dahlia Nickname: Darling
*comment August Nickname: Teach
*comment Crete Nickname: Pushy
*comment London Nickname: Caramel
*comment Alex, Linda, Goliath, and Nightcrawler don't use nicknames. What about Minoa? Perhaps Interpreter.
*create gender 1
*comment 1: they/them
*comment 2: he/him
*comment 3: she/her
*create cases 0
*comment increment by 1 for each case completed
*create crescent_worlder false
*create autarch_noble false
*create afta_entrepreneur false
*comment -LANGUAGES----------------------------------------------
*create pingrit 3
*create lojit 1
*create fleschette 1
*create scythe 1
*comment 1: working fluency
*comment 2: professional fluency
*comment 3: native fluency
*comment afta: 3 3 1 2 (native logit, working fleschette, professional scythe)
*comment autarch: 3 2 3 1 (professional lojit, native fleschette, working scythe)
*comment crescent: 3 1 2 3 (working lojit, professional fleschette, native scythe)
*comment -CHARACTERS------------------------------------------
*create alex 0
*create august 0
*create beckett 40
*create crete 10
*create dahlia 0
*create goliath 40
*create june 20
*create linda 30
*create london 0
*create maverick 30
*create minoa 0
*create nightcrawler 30
*comment Might turn out differently, and I don't think it actually checks out that well or even at all, but I envision the values as having the following impact:
*comment 10 basically strangers
*comment 30 acquaintances
*comment 50 friends
*comment 70 best friends
*comment 90 would die for each other
*create family 0
*comment Family is a hidden stat that tracks your effort to reconcile with your estranged family. Afta entrepreneurs ignore this stat, as their backstory relationship is with Alex.
*create alex_count 0
*create august_count 0
*create beckett_count 0
*create crete_count 0
*create dahlia_count 0
*create goliath_count 0
*create june_count 0
*create linda_count 0
*create maverick_count 0
*create minoa_count 0
*create nightcrawler_count 0
*create family_count 0
*comment This counts how many private scenes you've had with each character.
*create alex_love 0
*create august_love 0
*create dahlia_love 0
*create june_love 0
*create beckett_love 0
*create minoa_love 0
*create london_romance false
*comment This is a separate counter for romantic attraction, rather than just friendship.
*create dahlia_beckett_romance false
*create june_august_romance false
*comment Some NPCs can romance each other.
*create august_ansible false
*create london_gender 1
*comment 1 nonbinary, 2 male, 3 female
*comment These are incidental romance-related variables.
*comment -SYMPATHIES---------------------------------------------
*create afta_sympathy 50
*create autarch_sympathy 50
*create crescent_sympathy 50
*comment -TENSION------------------------------------------------
*create tension 0
*create afta 0
*create autarch 0
*create crescent 0
*create case_tension 0
*comment the factions get reset to 0 every case but overall tension remains
*comment case_tension is a sum of afta, autarch, and crescent
*comment +5 tension if any faction rises above 50 in a case
*comment +5 tension if any faction rises above 75 in a case
*comment +5 tension if total equals 150 or more
*comment +5 tension if there is no case today
*comment -CASES--------------------------------------------------
*create case_random 1
*create current_case 0
*comment Tier 1: 1-10, Tier 2: 11-20, Tier 3: 21-30
*create case_1 false
*create case_2 false
*create case_3 false
*create case_4 false
*create case_5 false
*create case_6 false
*create case_7 false
*create case_8 false
*create case_9 false
*create case_10 false
*comment Tier 1 cases only appear if tension is less than 50%.
*create case_11 false
*create case_12 false
*create case_13 false
*create case_14 false
*create case_15 false
*create case_16 false
*create case_17 false
*create case_18 false
*create case_19 false
*create case_20 false
*comment Tier 2 cases only appear if tension is between 30% and 70%.
*create case_21 false
*create case_22 false
*create case_23 false
*create case_24 false
*create case_25 false
*create case_26 false
*create case_27 false
*create case_28 false
*create case_29 false
*create case_30 false
*comment Tier 3 cases only appear if tension is over 50%.
*comment -INCIDENTAL VARIABLES-----------------------------------
*comment various variables very relevant to the varieties of code of various varieties of scenes
*create scythe_explanation false
*create lounge_chats 0
*create party_count 0
*create personal_touch 1
*comment 1 A pet bearded dragon, St. George.
*comment 2 A virtual reality headset that turns your room into a trendy cafe.
*comment 3 A wall calendar: Bikini Babes of Berengar.
*comment 4 Fairy lights strung up, giving your room a magical glow.
*comment 5 A photorealistic sculpture of a 30-centimeter long phallus given to you by a friend as a joke.
*comment 6 A sitar that you never play.
*comment 7 A floor-to-ceiling poster of the boy band In Space No One Can Hear You Rock.
*create told_london false
*create backed_up_beckett false
*create alex_first false
*create alex_samuel false
*create london_jeanette false
*create dahlia_beckett false
*create talked_to_london false
*create spin_bottle 0
*create london_kiss false
*create minoa_inquiry false
*create london_drugs false
*comment -TESTING------------------------------------------------
*create statview true
*create implicit_control_flow true
*create testing false
*comment *sm_init Ansible Station 24 | 6
*comment EDITING
*comment testing true
*comment comment sm_init
*comment DASHINGDON
*comment testing false
*comment variable sm_init
*comment SUBMISSION
*comment testing false
*comment comment sm_init
*comment -START--------------------------------------------------
*label start
*image as24.png left Ansible Station 24
War brews in the galaxy. In this sci-fi fantasy adventure, quietly work as an interpreter in a neutral space station assisted by a crew of diverse misfits. Welcome diplomats of the three major factions of the galaxy into your space station for tension-filled negotiations, where you act as a neutral interpreter and have the chance to subtly edit the meaning, tone, and intent of the diplomatsâ words in order to stave off an impending galactic war for as long as possible. The fate of trillions is in your hands, and youâre not being paid nearly enough for your work.
Welcome to Ansible Station 24.
*comment Foreword before Begin Game for Dashingdon and for Submission.
*fake_choice
# Foreword.
*gosub foreword
*gosub statview
*page_break Begin Game
*goto_scene introduction
# Chapter 1.
*gosub statview
*goto_scene introduction
# Chapter 2.
*gosub interpreter_details
*gosub statview
You will skip the Case of the Environmental Consultant Who Was Found Dead at the Bottom of a Mine Shaft.
You will begin with the Case of the Terrorist Attack on the Station.
*set tension 10
*set cases 1
*page_break Begin Game
*goto_scene intermission_1
*if (testing) # Feedback Request.
*goto ending
*if (testing) # Test Intermission 1.
*gosub standard_stats
*set autarch 15
*set afta 15
*goto_scene intermission_1 game_is_on
*label foreword
*image foreword.png left Foreword
Ansible Station 24 features four fictitious languages: Fleschette, Pingrit, Lojit, and Scythe. As with the depiction of any language (real or imagined) that is not the writer's native language, careful concessions need to be made when crafting a story that heavily features its use as a driving force of the plot. All four of the languages are replaced by English in this book, though there are obvious differences in how they are represented.
Pingrit is inspired by pidgin languages (in other words, languages simplified for easier understanding between diverse groups of people) used historically for international trade. It is represented in the book as modern English, though English's contemporary role as the language of international trade is a coincidence and not an intended inspiration. It is assumed by default that characters speak Pingrit if another language isn't specified or is otherwise obvious through context. Not reflected in its representation in modern English, the vocabulary of Pingrit is quite small compared to other languages. A limited vocabulary is not an indication that speakers of Pingrit are less intelligent. The same is true of all languages, real or fictitious.
Lojit, in this universe, started as a dialect of Pingrit and eventually became a more complex language, fully distinct from its origins. One of its inspirations is Lojban, a real-world constructed language (a language built from scratch, rather than evolving naturally over time) meant to follow clear, concise logical rules that remove ambiguity from speech. In practice, there is absolutely room for ambiguity (and beauty) in a language built for logic.
Fleschette is inspired by a combination of romance languages like French and Spanish and east-Asian pictographic writing, particularly Chinese and Japanese poetry. Various poetic techniques, like haikus, are sometimes used in the English representation of Fleschette. These are meant to capture how the language relies on careful use of grammar, register, metaphor, and rhythm to convey unspoken meaning; speakers of Fleschette do not literally use contemporary poetic structures in their speech. There are no Japanese haikus in Fleschette, but the poetic intent is similar.
Scythe is probably the language that most resembles real-world English and other widespread languages, in that it's extremely regional and requires heavy colloquial knowledge. Despite being written in English, the challenge of Scythe is the frequent untranslatable references to specific cultural touchstones and stories that the reader will not be familiar with. Context is usually given in the text for references to myths and shared concepts of this fictional culture. A similar concept, where local knowledge acts directly as a language barrier, was explored in the famous "Darmok and Jalad" episode of Star Trek: The Next Generation. As a real world example, the difference in the English spoken in London from the English spoken in rural Northern England is a good example of how the same language can drift dramatically over time and location.
In politics, interpreters have historically had an underappreciated role in diplomatic relations between countries. As Brian James Baer put it in his chapter Through the Cold War Lens in the book Framing the Interpreter, interpreters needed to become "a diplomat as well as a linguist." And yet, despite the critical role they play, their names do not traditionally appear in history books. The story of Ansible Station 24, of a world hurtling inexorably towards conflict, is told from the perspective of an interpreter. You are encouraged to embrace the mindset of someone who has massive influence without recognition. Whether you use this power for good or evil is up to you.
Thank you for reading through this foreword, and for your linguistic curiosity. I hope that the intent for how these fictional languages are represented comes through in the writing. Please enjoy this experiment in interactive fiction.
*return
*label ending
You've reached the end of the demo for Ansible Station 24! This story is still in the early stages of development, so your feedback will be extremely valuable.
- How many typos or mistakes did you spot, and where?
[n/]- Which character did you like the most, and why?
[n/]- Which faction has the moral high ground, in your opinion?
[n/]- Where do you see this story going?
[n/]- How would you describe Ansible Station 24 if you were to recommend it to others?
*ending
*label standard_stats
*set gender 1
*set afta_entrepreneur true
*set pingrit 3
*set lojit 1
*set fleschette 2
*set scythe 3
*return
*label interpreter_details
Choose a background for your interpreter.
*fake_choice
# I'm a Crescent worlder.
*set lojit 1
*set afta_sympathy %-10
*set fleschette 2
*set autarch_sympathy %+10
*set scythe 3
*set crescent_sympathy %+50
*set crescent_worlder true
*set family 20
# I'm an AFTA entrepreneur.
*set lojit 3
*set afta_sympathy %+50
*set fleschette 1
*set autarch_sympathy %-10
*set scythe 2
*set crescent_sympathy %+10
*set afta_entrepreneur true
*set alex 15
# I'm an Autarch noble.
*set lojit 2
*set afta_sympathy %+10
*set fleschette 3
*set autarch_sympathy %+50
*set scythe 1
*set crescent_sympathy %-10
*set autarch_noble true
*set family 10
Choose a name for your
*if (autarch_noble)
Autarch
*if (crescent_worlder)
Crescent
*if (afta_entrepreneur)
AFTA
interpreter.
*fake_choice
# Interpreter.
*set name "Interpreter"
*set nickname "Books"
# Winter. A Crescent name.
*set name "Winter"
*set nickname "Winnie"
# Starchild. A Crescent name.
*set name "Starchild"
*set nickname "Starry"
# Mallio. A Crescent name.
*set name "Mallio"
*set nickname "Mal"
# Gaia. A Crescent name.
*set name "Gaia"
*set nickname "Books"
# Jackrabbit. A Crescent name.
*set name "Jackrabbit"
*set nickname "Jackie"
# Potamian. An Autarch name.
*set name "Potamian"
*set nickname "Tammie"
# Abram. An Autarch name.
*set name "Abram"
*set nickname "Abe"
# Cyricus. An Autarch name.
*set name "Cyricus"
*set nickname "Ciri"
# York. An Autarch name.
*set name "York"
*set nickname "Books"
# Constantinople. An Autarch name.
*set name "Constantinople"
*set nickname "Connie"
# Micah. An AFTA name.
*set name "Micah"
*set nickname "Mick"
# Sydney. An AFTA name.
*set name "Sydney"
*set nickname "Syd"
# Jean. An AFTA name.
*set name "Jean"
*set nickname "Books"
# Ash. An AFTA name.
*set name "Ash"
*set nickname "Books"
# Taylor. An AFTA name.
*set name "Taylor"
*set nickname "Tay"
# I'd like to write my own name.
*set nickname "Books"
Please write your name below.
Crescent names draw inspiration from the natural world, the seasons, and astrology. Autarch names are taken from historical figures, cities, and civilisations from ancient Earth. AFTA has its own unique naming conventions which in this story have been anglicised into English names from modern Western countries.
*input_text name
Choose $!{name}'s pronouns.
*fake_choice
# My pronouns are they/them.
*set gender 1
# My pronouns are he/him.
*set gender 2
# My pronouns are she/her.
*set gender 3
*return
*label statview
*page_break
Do you wish to see updates when your stats increase or decrease?
If you say yes, there may still be some stat updates that are kept secret from you.
If you say no, there may still be some stat updates that are shown to you: most notably, tension reports and case summaries.
You can view your stats at any time by clicking "show stats". Stat updates won't tell you exact numbers, so you should occasionally check the stats screen regardless.
*fake_choice
# Yes, I want to see stat updates when possible.
*set statview true
# No, I don't want to see stat updates when possible.
*set statview false
*return