Posts Tagged ‘Twine’

“Decade” submitted

Posted by (twitter: @graebor)
Monday, December 12th, 2016 8:18 pm


Decade is a quick Twine experiment I threw together. I was travelling for most of the weekend, so the bulk of this game was made during a super long layover in the Toronto airport. I wanted to do a bit of a refresher for myself on how Twine works, and the result is basically an exercise in seeing what interesting mechanics I could come up with using this engine. It’s not all that well designed or balanced, but I’m glad I managed to put together something, even though I was super short on time this LD. Even though I’m not that proud of the game itself, it was fun to make something different!

Update: Vertical Slice Is Complete

Posted by (twitter: @gamewritr)
Saturday, August 27th, 2016 11:37 pm

I’ve completed the vertical slice of the game! Essentially the game can go out as is and everything works. For the remainder of the jam I will be adding more story options and gameplay. My buddy John stepped in to do some artwork and my friend Cameron is working on some music as we speak.

Didn’t think it would happen, but the game is starting to come along.

Some screenshots:

View post on

View post on

P.S. Twine is Awesome

First pass at the game’s layout is complete

Posted by (twitter: @gamewritr)
Saturday, August 27th, 2016 4:30 pm

This being my first text based game, I knew that the aesthetics should be slightly more than just white text and blue links. I tried to spice it up as best I can. I also settled on a name for the game.

Here are some screenshots of the layout as it is now:

Screenshot 2016-08-27 14.10.26  Screenshot 2016-08-27 14.10.58  Screenshot 2016-08-27 14.11.06

Art isn’t my strong suit but I’m going to do the best I can to get in some animations to spice up the dialogue.

The Gameplay:

  • You play as an out-of-work Game Designer due to a market crash in the far, far future.
  • You have an idea to start making games using technology from the 1980’s in the hopes of standing out and making a creative statement during a recession.
  • If you release a game that doesn’t do well…let’s just say there’s a lot at stake.
  • As you progress you’ll meet new characters and be faced with difficult choices as you aim to manage your Mental Strength, Creativity, and Ambition while working on each game.

What’s Left?

  • Art and animations are needed to break up text.
  • Continue writing out the story and making content. The gameplay loop and logic is complete. Now I need to focus on creating a story with interesting choices and game content.
  • The game is technically in a finished state, so everything else is just adding content and polish.

Probably gonna take a quick nap though. Pretty tired.

Core Game Loop Complete!

Posted by (twitter: @gamewritr)
Saturday, August 27th, 2016 2:01 am

First night was a success. I created the core gameplay loop and I’m ready to start integrating it into the story. The story’s been outlined and I’m pretty happy with the direction I’m taking it. I’m striving to create a procedural narrative game and it’s definitely been challenging, but I got a good amount of the code base written out.

I’m feeling a bit vulnerable creating a text based game. They’re inherently not as pretty to look at as other types of games, but I’m going to do my best to bring this one to life and make it enjoyable for the player. Here’s a screenshot of the code I’ve written so far. Hopefully tomorrow I’ll have some decent in-game screenshots to show off.

Time to get some rest now.

View post on

I’m In!

Posted by (twitter: @gamewritr)
Friday, August 26th, 2016 7:02 pm

This will be my second Ludum Dare! I’ll be looking to up my narrative design skills by using Twine and Piskel.


Good luck everyone!

Rape, Pillage, Makane!

Posted by
Monday, December 14th, 2015 2:05 pm

I wrote a game called Rape, Pillage, Makane! for Ludum Dare 34. It’s a galorelike hypertext story inspired by Kristian Kirsfeldt’s 2003 Rape, Pillage, Galore! and the Stiffy Makane text adventures.

As its title implies, it features sex and violence, and not necessarily in a pleasant manner. It’s an absurd game but it’s also a serious statement. Please steer clear if you think that you may be disturbed or offended.

I’d been considering this material for about a week when Ludum Dare rolled around and gave me an excuse to write it. When I entered the compo, I didn’t realize how large it was going to be, or even that it would be judged! But I’m glad that I was able to participate.

I hope anyone who plays the game will find something to take away from it!

Play the game here.

RPM title

Intergalactic Pan-dimensional Image Editor

Posted by
Sunday, December 13th, 2015 12:05 am

Spent all day working on an html5 image drawing thing. It might have taken the entire day, but at least it works on mobile…
Phone Image Editor
There are only a few more features that need to be programmed, before we can add all of the content.

Declaration of base code!

Posted by (twitter: @blubberquark)
Friday, December 11th, 2015 12:55 pm

I have written some base code to import Yarn conversation files into HaxeFlixel and called it FlxYarn.

look at it here:

Are you tired of writing your dialogues in HaxeFlixel games as big nested if-statements inside of monstrous loops? Then FlxYarn might be right for you!

two talking heads and speech bubbles

I have built a Yarn parser, loader, NPC dialog engine and speech bubble UI for HaxeFlixel. I finished just in time in time for Ludum Dare. Now we can split up the work on a story-driven game into code(Haxe), levels(Tiled) and dialogue(Yarn). Each NPC has his own state machine.

Conversation nodes can contain multiple speech bubbles and dialog options. Nodes can contain Haxe code for scripting, which will be executed with the HScript interpreter. You can share variables from your Yarn state with the game code.

screenshot of conversation node syntax

The Yarn dialogue editor was built by Alec Holowka and heavily inspired by Twine. The syntax you see above is half my own design, half based on Yarn and HScript. The <<run $X>> macro runs haxe statements. The <<print $X>> macro evaluates Haxe expressions and pastes the result into the conversation state. Links to other nodes have the same syntax as in Yarn and Twine.


yarn conversation state graph

Get Yarn Here:

Try out the cobbled-together nonsense Demo conversation between the neo-baroque technocrat and the spaghetti wizard (requires Flash):

Twine and hypertext games compilation

Posted by (twitter: @pseudavid)
Monday, September 14th, 2015 2:46 am

Here is the complete final list with all Twines and other hypertext games that I have found in LD33, for your playing pleasure.


Compo games

Truth be untold by Pseudavid (yours truly):

Loch Ness by filiph:

I hunger by David Yates:

A series of totally legit events by Slashee the Cow:

On the Growth of Ludum Dare and the Selection of Themes by Crowbeak:

Mega-Normous-All-Devouring-Beast-o-Saurus-Super-Evil-Angry-Hairy-Scary-Thing (Rampage Lord of the Darketty Dark) by garygreen:

Soul ownership by lowercaserho:

You are awake by frokes:

Campaign trail OF BODIES by inurashii:


Jam games

Intelligent solutions – Helpdesk by asentientpuddle:

Don’t eat the kid by pancakecity:

A house story by Kate Kligman:

There are no monsters outside by Riadelva:

Dark entries by MechaTofuPirate:

Revolution by dacharya64:

Teratogenesis by MiloSomething:

The chocolate effect by BitwiseStudios:

You, little monster by elefantopia:

Am I a monster? by Antokolos:

Profession: Chair de poule by dunin:

Monster by Lou Byrd:

How I planned Ludum Dare and what went totally wrong

Posted by (twitter: @pseudavid)
Wednesday, September 2nd, 2015 8:40 am

A confession first: the subject and the mechanics of my Twine story for this Ludum Dare were decided and thought way before the theme voting started. It was going to be a story about the life of an ethically-challenged guy and a game about telling other characters tre truth or some lie and getting away with it.


This was my game after 2.5 hour of work.

My intention was adapting the idea to the theme once it was announced. This was really a crazy bet: some of the most arcade-oriented themes would have forced me out of this Ludum Dare. Fortunately, You are the monster was the best theme for me, since my head was already full of storylines that allowed the character to become a child psycho, a teen womanizer or an adult corrupt leader.

Since I knew what I was going to do, I had a luxury that many participants lack: I could plan. This plan, that I laid down using Todoist, was the only game-related thing I did before the compo. It was also the most important thing I did.


First step: adapt idea to the theme.

I allocated 30 minutes for this, but used more like 30 seconds.


Second step: configure environment.

Not that Twine has a lot to configure, but I created a git repository. I also used the Twee2 tool to write Twine from a text editor, which had been released in alpha 3 days before. Twine writers: check it out.


Third step: code the game logic.

I allocated 5 hours for that, thinking that it would take 4. This is a hypertext game and the logic is absurdly simple, right? I spent 6.30 hours: 162.5% of my initial estimation.


Got image from

First I worked fast enough, but then all the silly details like making sure variables are given a value at the beginning so there’s never a division by zero started raining on me. By the time I finished, I was a bit down. I had no idea what was coming.


Fourth step: put a debug method in

Twine has its own debug mode, but apart from that I wrote a footer passage that printed all the variables in a readable way. Twine writers: do this. And don’t forget to remove it.


Fifth step: write an awful lot of text

This is where everything derailed. I estimated 10 to 15 minutes to write each scene, averaging 200 words, no revisions, no care about style, just churn the bastards out. With that I expected to hit 50 scenes with ample time to rest. I wrote down the ideas for the storylines and started writing the story.

That night I had 13 scenes. Each one was taking 30 minutes at the very shortest: I was generating content 3 times slower than planned.

Why? Well, did I mention that I’m not a native English speaker? But that was a lesser problem than actually making up the story. Not having a tight plot but vignettes scattered across the whole life of the character left lots of room for improvisation, but my writing skills simply didn’t cut it. Hofstadter’s Law again.

Since content was needed for the player to appreciate the gameplay, I was in serious trouble.


Sixth step: polish the CSS a bit

Very easy part and a relief from the stajanovist story hell I had written myself into. Twine authors: Google web fonts are your friends.


Seventh step: write another awful lot of text

Until I broke down and thought of quitting. It wasn’t going forward.


Eighth step: lay down and plan again


This saved my game.

When you’re so behind schedule that the schedule is going to go round the world and get you from the back, is taking a long rest at bed a fine idea?

Yes sir. I did and it saved my game.

All the time I had been writing from a loose and fuzzy list of story ideas. I had no measure of progress, no indicator of completion. That was what took my energy away.

So I lay down on the bed and thought of what I had left. I went through all my story ideas, fleshed them out and divided them into scenes. Then I went back to Twine, created the empty passages, went back to bed, thought of another block.

It took 2 hours but at the end I knew exactly what I was going to do.


Ninth step: write according to plan

Now I wasn’t just churning out content: I was filling some empty boxes. When all were filled, I would have a mininum viable game. A completion indicator totally changed my attitude. Soon I was writing the best and fastest text in the game. I knew when and how I was going to make it, and now it was only a matter of physical resistance.

Two hours before the deadline I finished the minimum planned game and could take some time to add extra content.


Tenth step: wrap it up and upload

Hint: Hosfstadter’s Law again! IT TAKES LONGER THAN EXPECTED.

The final Twine with its glorious 44 passages.

The final Twine with its glorious 44 passages.

A conclussion

I wrote some conclussions about content and jams here and here.

Had I not planned in advance, I would have not overcome the insecurity when I saw everything taking twice as long as expected.

I finally couldn’t test the game thoroughly. I barely found one bug, but the gameplay is not quite balanced and according to comments most players like the game but don’t get quite what they were expecting.

Yesterday I removed all the code, counted the words of actual game text and was totally amazed to find out that I had written 8,500 words. Lots more than I believed, quite long by Twine’s standards. I think that the biggest problem with my game is that it’s too short.

Out West Post-Mortem

Posted by
Friday, August 28th, 2015 2:12 am

Well, it’s that time! This has been my first Ludum Dare, and it has been great so far. Thank you for all the support! Right, now onto the important stuff.

Out West Promo Photo

Play “Out West” here!


The Concept:

My goal with this first Ludum Dare was to make something small that could be developed, finished, and played without any major bugs. I had been experimenting with text adventures and pixel art, so I chose Twine as my tool, since it’s very easy to use, can be expanded upon, can incorporate art, and is contained completely in one HTML file that can be hosted anywhere and played by anyone.

Once this choice was made, I decided my secondary goal was to try and create a very tense and atmospheric mood with only text, art, and time, disproving the common notion that text adventures are perceived as boring slogs which appeal to a certain niche audience (myself among them). Granted, I cheated a little by including art, but as a picture is worth a thousand words, I felt it would enhance the gameplay immeasurably.


The Bad:

  • The game is very short. I needed to keep myself in check; my games are prone to feature creep (which is one reason I participated in this jam) and tend to balloon into iii development nightmares which can’t realistically be handled by one person. Even so, I nearly didn’t make the deadline. There are three possible choices early on, and then another three later: These immediately necessitate nine different endings, plus different factors which dictate other variables that require separate endings, plus these all tie into the main ending, which must take into account everything that’s happened in the journey. Due to the exponential complexity being created, I had to cut off many ideas I wanted to incorporate and focus on making satisfying endings for what I had. That isn’t a bad thing in and of itself, but it forced the game to become minuscule, which is a bit more of a problem with text adventures, there being a finite amount of content with a definite end, as opposed to Pacman.
  • There was no time to add in any complex game mechanics. I know: Game mechanics, in a text adventure? Surely you jest! In all seriousness though, I wanted to add in even more interactivity through JavaScript enhancements. Unfortunately, there was no time to properly code anything myself or learn someone’s mod. I worked with what I had, and from the feedback it appears that effort’s been appreciated; But I would have liked to do something like roaming AI characters in the town, with random conversations as possibilities.
  • Almost no animation in the art. Again, this was time related. I didn’t want huge cutscenes, just little touches of animation that would enhance the world, like having the landscape bob up and down as if you were galloping on a horse, or animating flames, weapons, movement, villagers, that sort of thing. Repeating gifs, mostly.
  • The game is very linear. This is partially due to writing and the nature of Twine; the story requires a certain progression, and the creation of atmosphere and mood also require a certain amount of control. That being said, there perhaps could be a free-roam period before the start of this particular sequence which allows you to explore the world a little, or some other stuff which could expand the illusion of choice and open world gameplay.
  • The art. Some have commented how they enjoyed the pixel art, and I’m very happy they do – I’m almost a complete novice at it. In general, I’m quite happy with what I was able to achieve with a fire under my butt and limited art skills. I would like to get a bit better at pixel art and go back and polish up some of the imagery to facilitate better immersion in the world.


The Good:

  • The art. Again, I’m a pixel art beginner, and I’m frankly amazed that I was able to finish up all of it in time, and that it’s all decent. Nothing looks horribly out of place, and I’m actually a little proud of the final image that’s revealed at the very end. Gives me hope of improvement in the future.
  • The writing. This wasn’t my opinion all the way through; as I was writing the adventure I was horribly aware that, since it’s a text adventure, everything relies on the writing, and if I messed it up or it simply wasn’t good, the whole thing would collapse with almost nothing to salvage. That said, the feedback that I’ve received about the writing has been positive, with several mentions of it being very well written. I breath a sign of relief. Moving on.
  • I finished it. As with many game development beginners, I fall into the trap of being overly ambitious, even with text adventures. I am glad I put down my foot and had a very strict goal in mind. Though I had to work until the deadline because the art took more time that I anticipated, I still managed to incorporate all the stuff I had planned for this tiny little thing.
  • People seem to enjoy it! I’ll be honest, this was a nerve-wracking experience for me (especially ticking the little “Anonymous Feedback” box). I have never done a game jam before, and had no idea what would be said about something I made. I wasn’t expecting anything, but just the fact that someone enjoyed the experience the way I attempted to craft it is a wonderful feeling. Thank you all again for your feedback. It’s appreciated. And thanks to everyone who’s games I’ve played: They’re all wonderful, fascinating and strange! Well done!



I think I’ll work on this some more, give it a bit more of an edge. I’ll have to be careful: I don’t want to bloat the experience or dilute the atmosphere. We’ll see where it goes. Five minutes of story is vastly different from a three act structure. Either way, this has been an eye opening experience. If you play Out West, I hope you enjoy it. Good luck to everyone!

Twine and hypertext games in LD33 compilation

Posted by (twitter: @pseudavid)
Tuesday, August 25th, 2015 5:18 am


I’m compiling the Twine and hypertext games that I find in LD33. Here is the list for your reading and playing pleasure. This list will be updated, please post any missing game you know in the comments. Thanks!

Compo games

Loch Ness by filiph:

A series of totally legit events by Slashee the Cow:

On the Growth of Ludum Dare and the Selection of Themes by Crowbeak:

Mega-Normous-All-Devouring-Beast-o-Saurus-Super-Evil-Angry-Hairy-Scary-Thing (Rampage Lord of the Darketty Dark) by garygreen:

Soul ownership by lowercaserho:

You are awake by frokes:

Campaign trail OF BODIES by inurashii:

Truth be untold by Pseudavid (yours truly):


Jam games

Intelligent solutions – Helpdesk by asentientpuddle:

Don’t eat the kid by pancakecity:

A house story by Kate Kligman:

There are no monsters outside by Riadelva:

Dark entries by MechaTofuPirate:

Revolution by dacharya64:

Teratogenesis by MiloSomething:

The chocolate effect by BitwiseStudios:

You, little monster by elefantopia:

Am I a monster? by Antokolos:

Profession: Chair de poule by dunin:

Monster by Lou Byrd:

Truth be unbound: recap 2

Posted by (twitter: @pseudavid)
Monday, August 24th, 2015 10:31 am

(Recap part 1)

Story and style

Truth be untoldLimited content may explain some of the writing’s inconsistent style. My idea was to be all over the place regarding story and style. The game is a biography with a pretty general theme (truth vs lies) and I intended it to touch lots of genres: school drama, teen romance, political thriller, silly over-the-top comedy, psychokiller horror and more.

Lots of alternative storylines were planned for each section of the game, so that the player in one playthrough could be a child animal harmer, a teen seducer and an adult psycho, and the next playthrough have him be a mischievieous child, a solitary teen and an adult corrupt politician.

This would be more obvious if all these storylines were available. But I wrote half of them.

Stop and plan

With 8 hours to go I was pretty sure I couldn’t do it on time. My writing grind to a halt. But then a couple of hours later I was churning out the least bad best writing in the game (late section, dear players; see if you find the nickname list). The trick is: stop and plan. I stopped improvising content, sat away from the computer, thought thoroughly the scenes I was going to write the rest of the day, wrote down some notes and structure and had the most pleasant time of the compo writing what I had planned.

Plan is an antidote for block

I don’t know if I’ll do a Ludum Dare again, but I’m really happy I did it and I’m not really disappointed with the results. Thanks everyone!

Truth be unbound: recap 1

Posted by (twitter: @pseudavid)
Monday, August 24th, 2015 8:24 am


Yesterday I couldn’t post anything during late-compo frenzy to get something shippable so I’m posting my recap now.

It was my first Ludum Dare, game jam, first finished Twine story, and here’s my biggest lesson:

Don’t do a game jam if you are gonna need a lot of content

That simple. In a 48 compo you can write some logic that luckily generates a lot of interesting gameplay combinations. You can add a bit of high quality content, or a bit more of basic content. But if your game depends on a large amount of content that you need to create manually, you are not going to make it according to plan.


Mechanics and content

Truth be untold

Truth be untold is a game about lying or telling the truth. It is more story-oriented than gameplay-oriented, but at the same time I think it has more mechanics than typical exploratory Twines. Each choice you take is calculated from multiple factors that include all your previous choices, NPC knowledge, randomness or a hardcoded level of difficulty.

This mechanics could allow for some interesting progressions. For example, you could get a NPC that initially doesn’t trust you to believe your first lies due to pure luck, increase his trust, and eventually be able to make her believe the craziest stuff you throw at her.

All the pieces are in place to get that kind of gameplay. But I would need to write a lot of different scenes of interaction with that character. Handmade content is needed to allow the gameplay to emerge. And good handmade content is exactly what you can’t deliver in a 48 hour jam.

Of course, I knew this, but I overestimated my writing speed.

(More later)

Posted by
Sunday, August 23rd, 2015 10:12 am


Is this a game? I think this is a game.

It’s a story!

Right. So here we are, in my little ‘let’s do Ludum Dare in 24 hours instead of 48’-moment. I have used Ren’Py before this, but I realized that since I had so little time, I could probably not do both content and graphics/sfx. So I opted to use Twine, an interactive storytelling tool, instead.

It’s kinda fun! So far we’re slowly getting there: the story of a vampire who has made a deal with the local adventurer’s guild to ‘judge’ aspiring adventurers. If you think they are good adventurers, you can let them ‘beat’ you. If you don’t, you can kick their behind and send them packing.  Of course, you could always give in to your monstrous nature… but you’re not that kind of monster. Right? Right?


29 Twine passages and counting

Posted by (twitter: @pseudavid)
Sunday, August 23rd, 2015 7:54 am

I don’t know if there’ll be a game at the end of the day, but some learning will have be done. (For example: Ludum Dare is for games that depend on a mechanic but not on content.)


[cache: storing page]