Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Announcing 'Somewhere', a Twine game for mobile

Hi all,

last year I discovered Lifeline and have been amazed by how a "simple" text-based game can actually convey emotions, create tension using 'real time' notifications and so on ...
Of course I've already been deeply moved when reading a book, but I never thought of it in a form of a text-based game.
So I enjoyed Lifeline so much that I decided to endorse its concept, and here I am, trying to build an interactive fiction using Twine :)

I am very grateful to the twine community here, there are tons of resource on the web and a lot of creative and inspiring work is done using this tool. Twine provides a lot of possibilities in terms of story telling and by generating a web-oriented output it can almost run anywhere, this is really great!

Back to our project, we want to tell a story about whistleblowing, mass surveillance, agro-industrial complex and GMO.
Here is the plot summary:
Cat is a journalist who has been contacted by a whistleblower but she is rapidly overwhelmed by the scope
of a worldwide-scale agro-industrial case.
Threatened, hunted, now there is no other way for her but to reveal the dangers to global food supply.

The idea behind the word 'somewhere' is that at any given time incredible events are happening somewhere in the world.
Somewhere, a whistleblower has to hide.
Somewhere, a reporter tries to help.
Everywhere, they are hunted and threatened.
Everywhere, the agro-industrial risk is growing.
Somehow, Someone will bring to light the global food scandal.

And here is the state of the art (very basic look for now!) :


For those who may be interested by the technical aspect of it, I am basically building an hybrid app using ionic/cordova and angularjs.
I am using Twine 1.4 because it brings Jonah story format natively, which provides the foundations I was looking for : inline passages and being able to 'rewind' story by going back to a previous passage.
I just had to tweak a bit Twine and Jonah source code so far, but not that much.

For now we have a running prototype on mobile with twine doing its job and a few options to enable/disable sound or music, so still a ton of work remaining!
I am doing the develoment part and a friend of mine is writing the story, we have other projects aside but we would like to release our game on iOS and Android before the end of the year.

We would like to build a demo asap with the beginning of the story and as much features as possible to share it with the community and get feedback. If you guys are interested I will let you know when it's available.
That's it! I would love to know what you guys think of such a project :)

Also, if you're interested in following up how this is progressing you can follow me on Twitter : @TheV1nce



  • Well done
  • Thanks greyelf :)
  • Nice work Aniki! Follow'd you on Twitter, looking forward to seeing the progress.

    Love the chat style application. I have a similar idea and have just installed Twine 1.4 and am playing with the Jonah theme. Do you have any tips for how to get the "chat bubble" type text to appear? Are you using push notifications to get the messages to appear on the user's screen?
  • Bonjour, Aniki! Great job!

    I've done something similar but with SugarCube and in Spanish: Google Play & App Store.

    If there's anything I can help with, let me know! ;)

    au revoir!
  • Thanks petemaj :)
    Do you have any tips for how to get the "chat bubble" type text to appear?
    The chat bubble style is just about css actually.
    I recommend you to have a look at Jonah default css style and start by modifying it to see if you can achieve what you are looking for in terms of look.
    You'll probably want to modify the default 'passage' css class.
    In order to override Jonah's default css you can create a new Stylesheet passage in your Twine story, as described here.
    Are you using push notifications to get the messages to appear on the user's screen?
    The notifications feature is not yet implemented on our side, but the link you provided is about _push_ notifications, which are notifications sent by a server to a mobile phone, this is not what you are looking for I think.
    You probably want to setup _local_ notifications instead, meaning that your app/Twine story itself will send notifications to the user, when in background.
    Take a look at Cordova local notifications plugin.
  • Hi bruno, thanks :)

    I'd love to understand spanish so that I could give it a try, but unfortunately I just speak french and am barely able to speak/write in english :D
    Have you ever considered translating your story in english to open it to a larger audience?

    On my side, I think the translation part is one of the biggest technical challenge I'll have to handle.
  • Oh, don't worry! I wasn't bullying you into reading it, just sharing that it's possible to turn your Twine games into an app and upload them to Google Play and the App Store :)

    Yes, I have considered that. But the story is not over yet! I've been publishing new chapters monthly. I've also thought about publishing other people's games rather than translations of my own stories.

    "I dwell in Possibility", right?
  • Yep, we're on the same line bruno ^^
  • Hi folks,

    so I was thinking giving some news here since we made good progress on the game these weeks.

    The most obvious one is of course having player choices now being displayed as 'sms' as well, just like Cat messages.

    I added all the necessary html elements from within twine/jonah source code while Atavismus, my friend and author, worked on the css part and made all those things look nice.
    We also made choices buttons display a summarized version of the whole answer, when needed. This is a useful trick on mobile, that we use this way :
    [["(Say hi to Bill)Hi Bill, so what's going on in here ?"|hi_bill_passage]]


    Also Atavismus made a great progress in the writing, we now have 7000+ words and ~120 passages :)


    And I did put some focus on making the writing part as less tricky as possible, trying to make macros usage smooth.
    As well as integrating more macros again, fixing bugs and testing on iOS ...

    Here is some recent screenshot, this is actually a capture on chrome browser, in mobile display mode:


    That's it, we still have a ton of items in our backlog but we're loving working on it !

  • Hi dear Twine fellows ;)

    it's been a long time since we didn't share news on the project !
    It's been progressing quite slowly these past weeks on the dev side since I had a lot of personal stuff to handle which took an infinite time :(

    However, Atavismus made good progress on the writing part and we now have 16000 words and 300 passages :)
    We had to split our story in several files in order to have a better view on it (thanks StoryIncludes feature !!)

    So what we did lately is testing our game, over and over, mainly to improve narration and in the process we also discovered and fixed some bugs.

    I also managed to implement a new gameplay that we hope players will like :)
    It has to do with doing research over the internet during the game in order to fill in the right answer in a free text input (or identify what is the right choice to make).
    We think of some cool stuff that players would have to look for on the internet, such as :
    - how to open the boot of a car from the inside ?
    - how to behave in front of a wild bear ?
    - what to do if you have a piece of steel deeply spiked in the thigh ?

    I hope none of you guys will have to use this knowledge some day tho :D

    I played In Memoriam a long time back and i's been a great source of inspiration about this mechanic.


    Did you play this game as well ? What are your thoughts about this idea ?

    Cya !

  • Crap, it seems my previous post was made using another Twine account that I had.
    Guess this is because I used a computer that I barely use and this old account was still logged in when I made the post.

    Sorry for the confusion ^^'
  • How dare you?! :wink: I haven't played In Memoriam but I'm certainly glad you're still developing your game.

    Au revoir!
  • Thanks Bruno :)
  • Hi all,

    here are some news on the project !
    Story is now ~22K words : it represents 5 days of Cat's adventurous life, which represents ... well 5 days in terms of gameplay since the game is 'real time' :smiley:
    The player receives 3 to 5 notifications per day, and each notification will end up lasting a few minutes in terms of gameplay.

    Here is how it looks from Twine perspective.
    We had to split the story in several files in order to have a better view, so we basically have one Twine file per day, plus a few others for some specific gameplay phases :


    Here is how the game looks like as of today :


    On the dev side, the main features I implemented lastly are the following :
    - automatic save/reload (thanks greyelf for your insights on this topic)
    - checkpoints (so that players don't have to restart the story from the very beginning in case of game over)
    - notifications !
    - external links/apps opening
    - end game screen (with an invitation to rate the game)
    - debug tools
    - a ton of bugs being fixed

    Here is an example which shows what happens when the player reaches a passage tagged with the 'end' keyword :


    We also made it a bit more responsive, especially regarding the font size :


    We still have a lot of fun working on this game, altough there are some hard times of course ^^
    The save/reload mechanism was a bit tricky to implement, but the biggest issues I face are actually coming from the Cordova plugins I use to make this become a real mobile game.

    Also, the notifications are a big step forward since this is a core aspect of the game.
    This is really what makes the game 'real time', and more importantly, I think this is what makes Cat seem to be a real person.
    Notifications are only implemented for 2 weeks now and it has been a great feeling the first time we tested it on mobile !
    Then we realized we had to rework all the content which had been written so far to fix the 'rhythm' of the game, since the player would be notified ~15 times a day, with very short gameplay phases before Cat becomes 'busy' again. Now this is fixed :smile:
    We really look forward to get feedback from players, we plan to release an alpha demo in the coming weeks, unfortunately it will only be availabe in french since the story is not translated yet :wink:

    That's it for now !
    Don't hesitate to comment or ask any question, I'd be more than glad to answer :smile:
  • This is some amazing work!!! I don't suppose you're going to GitHub this project? I really like the SMS feel here (working on something similar).
  • Hi jhaque,

    thanks for your comment.
    I don't plan to share the source code for now since I am currently unemployed and want to create games for a living.
    But I may reconsider this in the future, depending on how it goes, commercially speaking ;)
  • edited October 2016
    This is truly fantastic. Great work and congratulations on all the new features you've implemented. It's a huge step forward in what Twine is capable of and hopefully attracts a lot more developers to the tool. This is a day one download for me.

    Edit: Any idea on a release date?
  • Hi starvingindie,
    wow, thank you so much for your comment, this means a lot to me !
    We target to release the game by the end of the year, but it takes so much time that I think it'll most probably be released in January 2017 ^^
  • EXCELLENT WORK! I love this format and will consider for future games. Real time FTW
  • This looks really cool.

    Just a thought on the UI though. I dunno how you're flowing in new messages but I'd suggest a simple CSS animation to 'expand' every new entry in smoothly rather than have them jerkily appear as they natively do.
  • @FIF thanks a lot for your comment <3

    @MoLoLu Thanks for your comment ! I will definitely look into improving how new messages appear, it surely can be much better indeed.

    By the way, as I already mentioned we are going to deliver a demo soonish (should be in a few days now).
    The game runs on Android and iOS, smartphone and tablet, so if you understand french and want to test the game just PM me your email address and I'll send you an invit when it's available (note that in case you plan to test on Android, it shall be your gmail address tied to your Google Play Store account) .
  • Love love love this idea, have been working on the story of my own for a while now with a fresh marketing technique. Could use truckloads of help though, anyone interested in banding together? Just for shits and gigs, could be a cool little project and who knows, might get somewhere if our passion for it shines through :)
  • Hi @Wyntre thanks for your comment :)
    Currently I'm 100% busy on Somewhere but I'd be definitely up for banding once released ;)

    Good luck for your project and don't hesitate to ask specific questions, I'd be glad to help.
  • Hey there!

    Long time no see ^^
    We've been pretty busy with the demo delivery, and I faced the well known 'last 10%' thing where it seemed my backlog was continuously filled with new stuff while I was trying to clear it out.
    But now it's done, we've had ~20 french testers, gathered all their feedback and learnt a lot on the way!
    • iOS & Android packaging & delivery process
      I've learned a lot on the process of packaging our game into suitable iOS and Android packages.
      It is pretty straightforward on Android side, and Google Play Store has really cool alpha/beta functionalities where you can actually deliver your game to the store exactly as if you were releasing it for real, choose between closed or opened alpha/beta release, gets clear metrics and so on.
      On iOS side it is much more painful, I had to struggle for days with xCode and Apple certificates & profile hell. And our testers had to install an application called TestFlight in order to download the demo.
    • Using Google Forms for gathering feedback
      Google Play Store has a simple way to gather feedback since testers can simply rate the game and leave comments directly on the PlayStore game page. On iOS side there is a very basic text field within TestFlight which testers can fill up.
      But we wanted to gather all these feedbacks in a single place and also be able to get some metrics from it in order to easily figure out what needed to be improved.
      We tested a few survey online services and finally used Google Forms, which is free, simple to use and provide metrics.
    • The 'report a bug' button
      An example of these last 10% thing that I mentioned earlier was this 'report a bug' button. I wanted the testers to be able to report any bug, typo or narrative issue by email at any point in time so that we gather them as much as possible.
      Also I wanted this button to take a snapshot of the game and attach it to the email so that we can clearly see what happened and also easily locates where the player was from story perspective.
      This has been pretty useful and we received a lot of feedback through this channel, mainly typos and bugs.

    • The iOS issues
      Two critical issues have been raised on iOS : game save loss and notifications not working.
      The first one is because I use the native browser localStorage in order to store game saves. Thing is this localStorage stuff can be deleted by the OS at any point in time whenever the phone storage space runs low. And this happened to a few players.
      Regarding notifications, I use a cordova plugin which was not stable enough on iOS because of the recent iOS 10 release and its API breaking changes.
      I was pretty disappointed regarding these issues cause it has strongly affected iOS players experience.
      But it's a good thing that we faced these issues and learned from them now. The save issue is now fixed and I properly store save data in the app storage area. The notification issue is more sensitive, I'll have to see if the plugin I use is fixed wrt iOS 10 or I may have to contribute to its development, although I never developed in Swift so far.
    • Players feedback
      The feedback we received was globally positive.
      - choices: 3.8/5
      - story 4/5
      - rhythm : 4/5
      - sound: 3.8/5
      - design: 4/5
      - readability: 4.5/5
      - global: 3.8/5
      But beyond these numbers, we were particularly interested by what players actually felt, and there are a few aspects where we have a lot of work in order to improve the game:
      - Cat is not that much appreciated, and seems to act a bit like a sermoniser. Also she shall be more stressed/afraid of what happens to her.
      - The game seems punitive, game over don't seem fair to players and they feel there is no way to identify which choices may lead to a game over or not.
      - The plot is cool, but story is way too slow, players want to be more implicated and know more about Cat's investigation.
      - Globally, waiting phases are a bit too long, and game phases too short.
    • What's next
      It took a few weeks to gather all players feedback, some testers showed off after the demo was released, others faced many game over before to reach a checkpoint and had to start from the beginning several times, some others loosed their progression because of the iOS localStorage issue, etc...
      While our testers were playing, we decided not to change a single word to our story since we wanted to get their feedback before to proceed any further.
      So in the meantime we took some days off and brainstormed a lot, built a website, a presskit and a trailer.
      These things are not available yet, but they should be on air next Saturday :)

      Here is a screenshot of the website, it forced me to look into the translation aspect of Twine content, I am pretty satisfied with the result, since the language switch is immediate, meaning that it shall still be reasonably fast with a large content :


    There is still a long way before the release, and we now know for sure that it won't happen before the end of the year. There are so many things to learn and do in order to properly release a game commercialy!
    But this is a great feeling, I continue having more and more fun doing it, and I can't wait to know what you guys will think of the game :)


    (Sorry for the length of this post, I realize I should simply post news more often ^^')
  • Just realized I forgot to share the link of our website and trailer.
    Here it is :

    Tell me what you think!
  • Great job. Quick question. How did you solve the local storage issue? That's the exact same issue I'm running into right now after testing beta. @Aniki
  • Wow. Great!
    Super boulot :-)
  • edited January 2017
    @FIF I guess you can rewrite save module to use NativeStorage plugin instead of LocalStorage

    I've tried to follow your path and merging Twine with Ionic but after few days I gave up and just started from scratch with Unity (+ Fungus). I still use Twine for prototyping of story but it's just not worth to convert it into native app.
  • Sorry I've been offline for a moment.
    I've been busy writing, faced a mix of technical issues, questioning, ...
    Now I'm back on track :)

    @davduf Merci :)

    @FIF I simply use cordova-plugin-file to store data in the native app storage area rather than webView's localStorage.

    @phenomen I totally understand and I think you're right.
    I will probably make an IF-kind-of-thing with Unity some day.
    Keep us posted on how your project goes ;)
  • @Aniki that solves the harlowe save problem!!!!
Sign In or Register to comment.