Inland Ocean is a work-in-progress twine game. The prologue and chapter one are currently available on itch.io (link above).
Game last updated: 7/5/26 (UI update).
Eleven years ago, the Mallory Expedition set forth to pierce through to the unreachable heart of the Inland Ocean, the body of water which sits at the center of the world. They failed. You, not yet even born, were the sole survivor of the crew of the Mallory.
You were adopted as a baby and have been raised in the quiet town of Azalea Point, which rests, hidden among the foothills, in the fog-prone area of Fisher's Bay.
But though you escaped the Mallory alive, the shadow of the past hangs over you still. Discover the secrets buried within both Azalea Point and your own mind as you grow and change with the years. The infinite north is waiting.
(Including planned features.)
A horror story inspired by the gothic and the weird.
Shape your life. Determine how you look, how you act, how you see yourself, and how you see the world around you.
Discover a web of conspiracy lurking in the shadows of your hometown.
A story that spans multiple stages of your character's life. Evil may lie dreaming, but it never truly dies.
Face the challenges ahead with the people closest to you. (As a note: romance, though planned, will not be the primary focus of the story. Platonic playstyles are intended to have roughly similar amounts of content.)
(Only includes certain major characters in the most recent version. I like being vague with it.)
π Catalina Castillo-Young, nervous and compassionate
π Khoa Truong, calm and easygoing
π Josephine Pewter, competent and driven
π Violet Sharpe, restless and excitable
Bugs reports can be submitted at this link: https://forms.gle/unV4aUm51UL1BB9D9
Asks are open, though I can't guarantee I'll respond with any efficiency (in fact, for my own sake, I'll actively try not to). I'm more than happy to answer questions about Inland Ocean, my process, code, or even what book I'm currently reading. I will probably be vague regarding game events. No NSFW asks.
Inland Ocean is made without the use of AIβI'm just a freak for the em dash.
"I have my prides and my little passions, and perhaps fancying myself Author is not the least of them."
-Shirley Jackson, The Bird's Nest
Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
β Live Streamingβ Interactive Chatβ Private Showsβ HD Qualityβ Free Actions
Free to watch β’ No registration required β’ HD streaming
Working draft is now about the same length (Sans code, I think? It can be hard to gauge since I write directly into the twee files.) as the prologue & chapter one!
I don't really write much with word count at the front of mind--it seems like a somewhat arbitrary measure of a story, especially in IF where branching and variation creates a less than obvious relationship between word count and actual length--but I would be lying if I said that seeing the number going up didn't bring me a certain measure of joy.
I'd estimate that I'm about 1/2 - 2/3 of the way through my initial draft of the chapter, the main focus of which is, in addition to the obvious continuation of the point where chapter 1 left off, having some time to get to know each of the "friend" characters (as well as one other fellow).
Before I just give in and try to make a macro to simplify this, do any twine writers know if there's an easier way to create a self-replacing set of multiple options than what I've been doing so far?
So part of my chapter 2 todo list is fleshing out backend stuff that I didn't fully implement in the initial release, including a better system for stat tracking.
I sort of had to use the big 5 for the personality stats, didn't I? The acronym is right there.
Got a decent bit of writing done for ch2 recently, so I'm allowing myself posting privileges.
Above is the unedited version of the photo used for headers in the updated version of my pinned post. It was taken by me (I am not a photographer) during a visit to AΓ±o Nuevo state park in California, which is known for being a seasonal home for elephant seals. California has a lot of really cool nature and certain parts of it (including Muir Woods, Santa Cruz mountains, SF Bay) actually serve as the main geographic/ecological inspiration for Azalea Point, hence the redwoods and fog.
Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
β Live Streamingβ Interactive Chatβ Private Showsβ HD Qualityβ Free Actions
Free to watch β’ No registration required β’ HD streaming
Fonts: serif (georgia), sans serif (arial), OpenDyslexic
Font sizes
If you're interested in sugarcube code things, keep reading.
So I have a pretty good background in programming, but I'm still learning how to use sugarcube, which means reading the docs and reading guides.
Something I noticed about both the docs and Idrelle's guide, which seems to based on the docs, is that they don't take advantage of certain tools that allow for greater flexibility in the implementation they use. Namely, having a different "handler" function for each setting is not necessary.
By setting up a couple things--a wrapper function, dictionaries for each setting, and a switch statement in a general "styleHandler"--it's fairly simple to create a one-size-fits all handler function. It's not more efficient computationally, but it's neater and uses less lines of code than having a handler for every setting. It also makes it take, in my opinion, marginally less work to add new settings. There's probably ways to simplify it further.
Implementation below. I wish tumblr had code formatting.
const themes = {
"Dark (default)": "",
"Light": "theme-light"
};
const fonts = {
"Serif (default)": "",
"Sans Serif": "font-sans-serif",
"OpenDyslexic": "font-dyslexic"
};
const text_sizes = {
"Very small": "font-xs",
"Small": "font-s",
"Medium": "",
"Large": "font-l",
"Very large": "font-xl"
};
var styleHandler = function(x) {
let html = $("html");
let property = null;
let curr = null;
switch (x) {
case "theme":
property = themes;
curr = settings.theme;
break;
case "font":
property = fonts;
curr = settings.font;
break;
case "text_size":
property = text_sizes;
curr = settings["text size"]
break;
default:
throw new Error(`getStyleHandler given invalid string ${x}`);
break;
}
html.removeClass(Object.values(property).join(" "));
if (property[curr]) {
html.addClass(property[curr]);
};
};
var getStyleHandler = function(x) {return function() {styleHandler(x)}}; //wrapper function for styleHandler
Setting.addList("theme", {
label: "Select a theme:",
list: Object.keys(themes),
onInit: getStyleHandler("theme"),
onChange: getStyleHandler("theme")
});
Setting.addList("font", {
label: "Select a font:",
list: Object.keys(fonts),
desc: "(OpenDyslexic will affect font size)",
onInit: getStyleHandler("font"),
onChange: getStyleHandler("font")
});
Setting.addList("text size", {
label: "Select text size:",
list: Object.keys(text_sizes),
default: "Medium",
onInit: getStyleHandler("text_size"),
onChange: getStyleHandler("text_size")
});
I kind of wanted to just spew a bit about development things after releasing the demo a couple days ago.
First of all: yay! It's exciting to put something out in the world!
Next steps:
Since release, I've been working on code things. I think releasing the demo has made me mentally recategorize Inland Ocean as an actual work, instead of something just existing in my head. This means I'm now wrangling some of the "eh, I'll get to that later" bits in the files, such as moving from the twine editor to tweego (good in the long run, but a chore to do). I'm also appalled at myself for not setting a proper variable naming convention. When I was updating my variable tracking list, I realized that I was using a strange mix of camelCase, snake_case, and justwritingthingswithoutspaces. It wasn't ideal, suffice it to say.
Some of these touch-ups have already been uploaded on itch, but besides a few typo fixes, there isn't anything that affects the game content. (And big thanks to anyone who pointed out typos. I'm honestly surprised I didn't make more considering that the twine editor, which I was working in, has no spellcheck.)
As for chapter two, I've been adjusting the outline after finishing chapter one. I now have it in a place where I'm happy enough with it to begin actual writing. Besides the outline, the other writing aid is that I have restocked on tea (earl grey, hot), which means I can better harness the power of caffeine.
At some point, I also want to add a bit more info to the itch page and the pinned post here on my tumblr, but these tasks are fairly low in my priority list.
Hi! Do you think you'll make a mobile-friendly version of Inland Ocean? It currently doesn't allow mobile users past the starting page. Other questions:
How much of the MC is customizable? Looks, gender, personality, etc?
Is there romance? Who/how many ROs if yes?
What is the genre?
Mobile issues may have been due to itch.io settings which I very recently changed. (Thanks to @legerdemain-if for sending some advice.) It works on my device, but if you still run into issues, please let me know. There is a bug report form at this link.
MC customization is currently a bit bare-bones simply by virtue of the length of the story at present, but I'll go down the list of what exists in the current version:
First name & nickname options.
Full customization of pronouns and gendered terms, including support for customized pronouns & multiple sets of pronouns.
A basic set of physical appearance options exist (height, hair, etc). Of these, only height currently has any sort of special text.
For personality, it will be defined mainly by the player via the choices they make. Certain major attitudes use a more robust stat system, but this is limited specifically to traits where I believe the MC's history should inform the choices the player is able to make. The numbers will also generally be kept to the backend, since I don't want readers to feel as though they need to grind stats to hit arbitrary number thresholds.
Romance is planned for later in the story, though it will never be the primary focus of the story. In the current content, and for what is planned for the early chapters, the player character is eleven years old, i.e. a bit too young for all the love stuff. Though, of the future ROs, some will come from the group of the MC's childhood friends.
Genre is horror, more so leaning towards the gothic and weird.
The demo currently includes a prologue and the first chapter, totaling around 10k words, and it can be found at https://inland-ocean-if.itch.io/inland-ocean.