Showing posts with label narrative. Show all posts
Showing posts with label narrative. Show all posts

Friday, May 19, 2023

The joys of the anti-farm sim: "Before the Green Moon" by turnfollow


SPOILER ALERT: This post SPOILS what happens in Before The Green Moon. I strongly recommend playing it first.

Before The Green Moon (on Itch and Steam) is a post-apocalyptic indie Harvest Moon / Stardew Valley / Animal Crossing inspired farm life sim about scraping by, in a decaying rural truckstop town with bored depressed locals you gradually befriend (or ignore).

I was surprised Turnfollow was working in this big systemic genre space, since I mostly know them for their very good linear story games Little Party and Wide Ocean Big Jacket. But you can see the "seeds" of this game (ha ha) in their wartime gardening game A Good Gardener so maybe it's not so unexpected...

From the beginning, you're given an ultimate end goal: earn enough company scrip to buy a ticket to the moon. Instead of a raccoon banker oppressing you with a mortgage, it's a faceless Moon Company exploiting every poor soul left on this post-apocalyptic Earth. Brilliantly, the already astronomical price of the moon ticket actually increases during the game. Imagine if Animal Crossing had the bravery to charge interest on the home loan!

Well, Before The Green Moon is brave, brave enough even to suggest that farming isn't exactly a picturesque Hallmark movie. Instead, you're stuck in this abandoned GameCube game and you need to somehow earn enough to buy a moonshot out of this dump. How are you gonna do it?

Sunday, January 16, 2022

Darner's Digest, vol. 3: on the Yarn Spinner v2.0 release + a YS primer

Darner's Digest is a series of blog posts about Yarn Spinner, a free open source Unity dialogue tree plugin.

On December 21st, 2021, the Yarn Spinner project finally made its public YS v2.0 for Unity release

YS 2.0 has gone through six (6!) preview versions / betas over the last few years, with several debates and redesigns that have finally culminated in this version. If you're familiar with Yarn Spinner already, you should go read the changelog for upgrade notes from v1.0 to v2.0.

But a lot about YS and its ecosystem have changed, so it's probably helpful to recap what's going on.

1. What is Yarn Spinner in 2022?
2. When to use Yarn Spinner
3. How to use Yarn Spinner
4. Current Strengths / Weaknesses
5. The Future

Wednesday, November 3, 2021

The Forgotten City (2021) revisited

I've written previously about murder in Skyrim, epic Skyrim fan game Enderal, and a very bushy Skyrim mod called The Forgotten City. Since then, the mod makers have remade it into a UE4 standalone time loop first person RPG called... The Forgotten City (2021)

From a game dev perspective, it's been fascinating to play. They had to rebuild Skyrim systems in Unreal... but what to cut and what to recreate? In this post, I compare and contrast the original and this modern remake from a dev / design perspective.

DISCLAIMER: I played the original mod and remembered much of it, so a total newcomer's experience would probably be different. Or maybe it wouldn't? Who knows.

SPOILER WARNING: this post spoils much of what happens in The Forgotten City (2021).

Monday, March 25, 2019

new Unity tool: Bobbin


I wanted to be able to write game dialogue in Google Docs (from my phone or tablet, or to share with external collaborators) and then automatically send those changes into the Unity project on my laptop.

To help me do that, I made a free open source tool called Bobbin, which is a relatively simple Unity Editor plugin that can automatically download the data at URLs, and import that data as a file in your Unity project. Again, it's very simple: every X seconds, it opens a list of URLs (as if it were a web browser) and then it saves all the bytes as a .txt, .csv, .png -- or in-theory, whatever file type you want. Note that this is just an automated download manager, you will still need to write your own game code to actually import, process, and use these files in your game.

The main audience for this tool is narrative designers, writers, localizers / translators, and designers / developers who need something fast and lightweight for syncing files with external collaborators. I imagine it also pairs well with text-based narrative plugins like Yarn Spinner, where in-theory, you could collaboratively write Yarn scripts in a Google Doc and then use this tool to automatically bring the script into your game.

(But if you're making a game that's going to make heavy use of spreadsheets, you should probably use something more robust like Meta Sheets or CastleDB-Unity-Importer, which can import your spreadsheet data as C# types with Intellisense auto-completion in your IDE.)

Anyway, I'm planning on a few more feature updates, like runtime support and/or better Google Sheets support, but personally I'm probably not going to expand the feature set much beyond that.

I hope you find it useful! And as always, feel free to submit any bug reports (or small feature requests) by opening an issue on the github.

Monday, November 26, 2018

Notes on "Sparkling Dialogue", a great narrative design / game writing talk by Jon Ingold at AdventureX 2018


My colleague Clara Fernandez-Vara pointed me towards this great game writing talk by Jon Ingold this year at AdventureX, an excellent narrative design conference in London. Unfortunately the Twitch video of the talk is hard to follow and the YouTube version of this talk is still forthcoming, so I thought I'd summarize the talk here because I found it very useful. As of December 1st, the YouTube version is now online!

(NOTE: This post isn't a transcript of Ingold's talk. It's a summary with my interpretations, and I might be wrong or misunderstanding.)

Ingold begins with something that should be obvious and uncontroversial to everyone: generally, most video game dialogue is poorly written. This isn't to say video games are bad, or that they we shouldn't try to do any dialogue at all. There are also many reasons why game writers are forced to write poorly, whether it's because of lack of resources, or last minute changes in the design, or other production constraints, etc.

The point is not to blame writers. The point is to highlight a problem in the craft and to define a better ideal. So, how can we write more competent game dialogue that is slightly less embarrassing?

To demonstrate the problem of typical video game writing, Ingold shows us this conversation from the first hour of Assassins Creed Odyssey in the starting mission "So It Begins":

Tuesday, August 28, 2018

Darner's Digest, vol. 2: Why I made two new Yarn tools


Darner's Digest is a series of occasional posts about the game dialogue system Yarn.

Last time, I talked about some Yarn community news. As I've written before, I've become a sort of community booster for Yarn and Yarn Spinner because I want to see it become a standard in game narrative design -- I think it occupies a nice middle-ground between frameworks that try to do everything for you vs. coding a system yourself.

This time, I'm making the Yarn news myself. I've released two free open source Yarn / Unity tools for people to use, and I reckon they're darn good:
  • Merino, a Yarn script plugin for the Unity Editor, with built-in syntax highlighting and playtest preview. With Merino you can easily test the flow of your interactive stories without leaving the textbox or the Unity Editor.
  • Ropework, a Yarn-powered visual novel template for Unity. With Ropework you can control scene changes, sprite rendering, and sound playback, all from Yarn scripts -- and you can basically make a visual novel without writing C# code.

Wednesday, July 18, 2018

Darner's Digest, vol. 1


Darner's Digest is a series of occasional posts about the game dialogue system Yarn.

As I've written before, there are a variety of different narrative system plugins to use with Unity. Fungus is a full visual scripting solution ideal for beginners, Ink is great for text heavy games with huge word counts (like 80 Days), and Yarn / Yarn Spinner is a lightweight extensible Twine-like dialogue system for games about occasionally talking to characters (like Night In The Woods).

I don't know what's going on in the Fungus community, and I loosely follow Ink -- they are running an upcoming Ink Jam to encourage new users, and the maintainer Inkle Studios is doing exciting dynamic narrative research in Inkle with their upcoming game Heaven's Vault.

However, I can definitely speak to more detail about what's happening with Yarn these days though, so here's my attempt to recap:

Wednesday, May 30, 2018

On the indie story RPG's use of "encounter-space" and Fortune-499


This post spoils some gameplay systems / moments in Fortune-499 and its general themes, but none of the specific plot events.

I just finished playing Fortune-499, a short stylish story RPG replete with millennial career angst and light deckbuilding. It does what other strong indie story RPGs like Undertale do: it actually questions the logic of its battle and progression systems, exploring its own design space for narrative effect.

Few video games ever do this. Acclaimed AAA RPGs like Final Fantasy 12 ask you to fight many monsters and level-up via "license boards" or whatever, but rarely explore what those metaphors mean / interrogate the logic of these metaphors within the game world.

So if a game is about programming your party members with "gambits" as a metaphor for command and decision-making, then isn't it weird that you have to buy gambits at shops? Does that mean poor people in this fantasy world literally have less sophisticated reasoning and mental capacity because they can't afford better gambits? Or if a character has low self-esteem, shouldn't that affect their license board / upgrade tree, which is a metaphor for self-improvement and growing-up -- or vice versa, if there's a story beat where they renew their commitment and self-confidence, shouldn't they get a million experience points to emphasize their growth? (This isn't over-thinking it, this is just a demand for designers to follow through on their metaphors.)

Of course Final Fantasy 12 isn't alone on this, and AAA games don't usually care about this dissonance / disconnect, while most gamers probably don't even notice it anymore. However, I think Fortune-499 is one of those rare exquisite indie story RPGs that really does care enough to ask questions about its own game systems.

Friday, November 10, 2017

Behold the bildungsspiel: the coming-of-age game


NOTE: There are somewhat vague spoilers about the general plot for several games in this post.

US high school students are generally required to read novels like The Catcher In The Rye -- stories about growing up and finding a place in society. Many of these students also learn about the technical literary criticism term for these narratives, the German term bildungsroman. (Bildungs means "educational" and roman means "novel", and so we usually translate this as "coming-of-age novel")

While there are many well-recognized coming-of-age films, I'd like to figure out the equivalent bildungsspiel -- the coming-of-age game. This also seems like an especially urgent genre for game criticism to consider, since there are so many children and young people who plays games, and form their identities partly around these games. (Meanwhile: something like opera has a much weaker association with youth culture.)

One small obstacle to this critical project is that "bildungsspiel" already means something. Based on my cursory Google searches, it seems to refer to rudimentary educational toys for very young children, to help them develop basic cognitive abilities and motor skills. Curse the German toy industry!...

Well, I'm taking the word back. Let's talk about the bildungsspiel, which isn't for babies, it's for teens!

Saturday, September 23, 2017

Writing stories / dialogue for Unity games with Yarn

I've been using Yarn for a little while, and I've grown to prefer it as my "talking to NPCs" solution for game development. If you're not familiar, Yarn and Yarn Spinner are a pretty powerful Twine-like plugin for Unity (though it could technically work in any C# game engine) that's geared towards writing video game dialogue, and it was most famously used for Night In The Woods.

Yarn is fairly lightweight, extensible, and it basically gets out of your way. Want to make a really big long monologue, or 100 little pieces of dialogue snippets? Yarn works well for both of those use-cases. (If you want something that's more focused on manipulating very long dense passages of text, you might want something more like inkle/ink, the system that powers the huge 750,000 word narrative game 80 Days.)

To try to provide more resources for other Yarn users, or potential Yarn users, here's a write-up with some advice and a short guide to working with Yarn...

Thursday, September 7, 2017

On "Tacoma" by The Fullbright Company


This post spoils some of Tacoma and Sleep No More.

Tacoma is a sensible design progression from Gone Home. How do you expand upon the audio diary design and walking mechanics? The Fullbright Company decided to pair a dynamic holographic drama with some zero gravity movement. Unfortunately, the zero-G movement ended up making environmental storytelling more difficult so they had to scale it back (no tables or chairs; no objects at rest) and I also suspect it risked alienating a fan base that cares less about gamer-y traversal puzzles. So, that leaves all the focus on the holographic drama sequences.

Many commentators describe Tacoma as a virtual adaptation of the NYC immersive theater installation "Sleep No More" because both experiences involve wandering around a large dense environment and encountering short dramatic scenes of characters performing with each other... and then the characters split-off and you have to choose who to follow and listen to.

I think this is a telling comparison, because it also suggests the ways in which Tacoma's formal narrative structure doesn't work very well, despite its compelling themes and characters.

Monday, September 4, 2017

How To Tell A Story With A Video Game (even if you don't make or play games)


This post is a summary of a talk I gave at Storycode NYC on August 22nd, 2017. All the slides are available here. It is a primer for storytelling in games, intended for people who aren't gamers or game developers, but who want to get into interactive storytelling / immersive storytelling (like VR / AR / etc).

Video game design has much to offer interactive designers, even if you don't make or play any video games. When I taught at Parsons, we taught game design as part of our general design / technology curriculum, because this field has been thinking about the aesthetics of digital interaction for literally decades.

So if we want to tell a story with a video game, we should first ask, what is a video game made of? Some men have opinions on this:

Famous game designer Sid Meier has a famous quote: "a game is a series of interesting choices." When we play games, we're constantly making choices and feeding input into the game -- which way should Pac-Man go, how far should Mario jump? Some designers even treat the lack of input as an input. Inaction as an action.

My boss / NYU Game Center director Frank Lantz has a slightly less famous, but much more handsome quote: "a game is an opera made out of bridges." What he means is that a video games often try to present a sort of audio / visual "total work of art" spectacle that demands your complete attention and immersion, but to achieve that bombastic effect we also have to engineer physics simulations and future-proof code bases to work for many years. And if we're going to go with a bridge metaphor, we should also ask, what are these "bricks" and building blocks that make up video games?

Tuesday, August 15, 2017

StoryCode August 2017 Forum at Film Society, Lincoln Center, NYC


Next week on August 22nd, I'll be giving a presentation for StoryCode, a local community group focused on immersive media and storytelling technology. As one of the few game designers invited to present in their lecture series, I thought I'd try to explain how video games conceptualize narrative, interaction, and expression, to an audience that maybe doesn't play that many video games -- or at least, they don't play what we consider to be the state-of-the-art narrative games.

I'm also being required to talk about my games and present them as case studies, even though my games don't fit neatly into the "narrative game" genre. I think I'll probably just open my actual project scenes in the Unity editor and mess with my scene setup and code, which usually entertains people well-enough? It'll also be a short primer in foundational ideas like immersive fallacy / procedural rhetoric / platform studies, and the idea that production value and paratext amount to their own kind of "story."

The presentation is free and open to the public, but I believe you're encouraged to sign-up and RSVP via this Meetup page or something.

Tuesday, August 22, 2017 @ 7:00 PM
Elinor Bunin Munroe Film Center @ Film Society of Lincoln Center
144 West 65th Street, New York, NY (map)

Sunday, July 30, 2017

new tool: Yarn Weaver


I'm working on a game that uses the excellent Yarn and YarnSpinner narrative toolkit for Unity. For this project, I'm also collaborating with a narrative designer -- unfortunately, the Yarn editor doesn't actually have a play mode or a testing mode built into it -- which makes it difficult to collaborate, because the designer can't even run through the Yarn scripts without downloading the entire Unity editor and project source! What if she just wants to test a short conversation script or two?

So, I basically duct-taped the YarnSpinner example setup to this excellent UnityStandaloneFileBrowser (for native file open dialogs at runtime) to make a very small simple tool to open and run through Yarn scripts. It can display your text, parse all your variables, and render up to 4 choices.

I call this tool "Yarn Weaver". The project source files are on GitHub under MIT License, or you can download Windows and Mac OSX release builds here. I hope it's useful for people!

Tuesday, May 2, 2017

The war in heaven: a three-dimensional VR culture clash


Virtual reality is a weird collaboration between several different fields / industries, and each practice brings its own assumptions and baggage. When I go to VR events and conferences away from the influence of games, I often feel bewildered and confused by the different language and norms.

One time I was at a businessy VR event near Wall Street and some tech-biz guy said he had a "VR-ready industrial robot" deployed in a warehouse, and would any angels [investors] be interested in taking a tour? I was so confused (what the hell is a VR-ready industrial robot?) so I joked aloud, "is it a sex robot?" -- but no one else reacted at all, they just continued with the conversation and asked him about market caps or something, as if I didn't even say anything! Not even a pity smirk or furrowed brow or roll of the eyes!

This is part of a larger skirmish about language, and about how to talk about VR. The PC manufacturers have adopted "VR-ready" as a euphemism for "expensive gamer computer"... In tech, you have to be able to refer to an investor as an "angel" without laughing and bursting into flames. These are kind of trivial examples that don't seriously impede communication, but I do think they hint at how we're trying to shape cultures and norms for VR. There's not even agreement about whether to call VR "VR" -- maybe VR is just a subset of "AR" (augmented reality), but really those are both just subsets of "MR" (mixed reality) -- or maybe let's unify under the recent umbrella term "XR" (x-reality?)... terminology and labels and language matters.

And since angels are involved, I guess this is a war in heaven.

Tuesday, December 27, 2016

On legacy systems and Kentucky Route Zero (Acts I-IV) by Cardboard Computer


A lot of people will say Kentucky Route Zero is "minimalist"... but I think that label is pretty misleading.

It packs every single scene with countless details and thoughtfully executes each of those gestures. Every playthrough you'll read tens of thousands of words, much of it expended on long evocative description -- this isn't actually a "minimalist" game, in terms of literary tradition nor in terms of what it demands from its players. Every scene is lush with history, detail, and allusion, and KRZ never patronizes you if you don't really get it. Instead, it patiently pushes you to grasp it as a whole.

This "whole" is something that carries over to the game's technical infrastructure as well. Everything is connected; the game frequently calls back to your previous choices, and awakens seemingly dormant "meaningless" choices. It is one of the most complex narrative designs ever attempted in a video game. Instead of a few discrete branches, there are dozens of small branches -- like Chivalry Is Not Dead, it is more "bushy" than "branchy."

Monday, February 29, 2016

Identity, camerawork, and time in games; on "Into" by Audrey Moon


This post spoils Into, which is about 5-10 minutes to play. You should probably play it first, if you care about spoilers and such.

Ingmar Bergman's film Persona (1966) is about two people who kind of merge into each other. Maybe this happens because you share a lot of interests or temperaments, or you're in love, or you're family, or whatever. In Persona, this merging process is often difficult, confusing, awkward, and/or painful. It inevitably takes on sexual overtones, but this sex feels violent.

Into (2016), by Audrey Moon (Animal Phase), pushes the opposite tone. It is a short "interactive" about two people who are kind of joining into one another, but the joining is not particularly unsettling. There's a risk to it, but it also feels right to take that risk. Why does it feel more right than wrong?

Friday, June 19, 2015

Videogames for Humans, edited by Merritt Kopas

The first reaction most people had was, "it's bigger than I expected." 575 pages to be exact. But that obfuscates the actual format of Videogames for Humans: 27 different close readings / commentaries on short stories.

What those most people actually meant was that they had no idea that 575 pages of thought on Twine was possible, that they're surprised Twine is this big or that it is worth preserving on a tree carcass.

Preserving! In order to preserve something, it has to be more or less "over", and Merritt Kopas has a lot of feelings and anxiety about how Twine will be remembered. In the introduction, she confesses, "late 2012 and early 2013 was an extraordinarily exciting period for me [...] the 'queer games scene' covered by videogame outlets might not have been as cohesive as some accounts supposed, but for a little under a year, it definitely felt real,"

... then later she argues, "but I don't want Videogames for Humans to be seen as the capstone of the 'Twine revolution,' a kind of historical record of some interesting work done in the early 2010s."

So then, this book is partly an attempt to correct or amend a prior history... but not with more history. It wants to break a cycle.

Friday, June 12, 2015

Pain Festival


As a palette cleanser from the last four sex games, I've been remaking my favorite of Alan Hazelden's Puzzlescript suite, "Mirror Isles", with my own art and narrative. It's been refreshing to have the design of something already figured out, and for the past two weeks I've just been pumping out art and code.

The game has come together surprisingly quick. I'm not sure if it's commercial or anything yet, I guess me and Alan will have to talk about that at some point, but for now I'm enjoying this as a craft exercise void of any marketing concerns.

Tuesday, April 1, 2014

Second time's the charm; procedural NPC dialogue in Nostrum


Last time I tried some type of "procedural narrative" thing, my hubris got the better of me -- naming the system after one of the most famous and influential writers of all-time was, perhaps, just a little arrogant.

Despite my attempt to scope it properly, that system suffered greatly from trying to do too much stuff... It was so much stuff that it was difficult for me to write anything with it. So with the procedurally generated NPCs in Nostrum, I'm developing a much simpler system which will hopefully work better, to solve a smaller problem...

The basis is still the same: Elan Ruskin's GDC 2012 presentation on AI-driven dynamic dialogue in Left 4 Dead 2.