Toby Fox’s Undertale – DEV 2 DEV INTERVIEW #1

This is part 1 of a hopefully continuing series where I play some other developers’ games and then ask them questions about it! So an interview I guess!

This time I asked a few questions to Toby Fox, who did almost everything for his upcoming RPG, Undertale,  except for some collaboration on the artwork. He recently released a demo version of Undertale, which you can try for free.

If you play and enjoy Undertale , you can support Toby by paying some money for Undertale‘s soundtrack.   It has some really wonderful tracks on it!

As it is, it’s a short demo of an RPG that ties its battle system with elements of shoot-em-ups and interactive fiction, which further go on to challenge the norms of traditional RPG battle systems and narrative progression. This is given the setting of well… Chris Priestman of Indie Statik has a lot of good things to say about it, and he can say them far better than I could, so for the low-down, check out his article – I recommend playing a bit before reading the interview.


Sean: 1. The player-character is silent – was this done for any reason other than following traditional RPG tropes? I can think of a few possibilities but I’d rather have you answer to whatever you’re comfortable saying.

Toby: The character doesn’t say very much because then you can identify with them better. Most of the game’s narration is in the second person. The more details and personality I add to “you,” then the harder it is to get absorbed into the role.

There’s more to this answer but I can’t say anything until the game is complete.

Sean: It’s interesting how the silent protagonist can be utilized in different ways. A game I hope to write a bit about, Contact (NDS, 2006) uses a silent protagonist, but for seemingly the opposite effect that Toby employed – instead, Contact looks to objectify the player-character and form distance between you and the player-character.

2. Were the “act” and “mercy” functions of the battle designed after an existing story and themes were thought up, or were those done before – etc – what was the relation of the battle system and narrative development? The ideas the flower mentions at the end go hand-in-hand with the battling, as does with the final encounter with Toriel, and the ways that can pan out, which is why I’m interested.

Toby: The battle system arose first. I wanted to make an RPG game where you could befriend all of the bosses. Where not killing everything is actually a viable option. If you think about it, most RPGs are endless murder-fests… how many monsters do you kill? And to what end? Everything sort of naturally arose from that concept.

As for the top-down shooter aspect, I’ve actually had the idea of an RPG that’s a fusion between multiple genres for a long time. I just decided to keep it to bullets since that’s the easiest.

Sean: I’m often interested in how developers choose to develop their game, and where the differnet layers of abstraction begin to grow from, and then how they choose to have them interact (if at all) – it’s a notoriously chicken-and-egg problem with game development. Toby did a really great job at weaving everything together, and I’m excited to see how it all pans out.

3. Are there any particular reasons you created Toriel for – such an overly-protective motherly character was created, etc.
Toby: Yes! There are a lot of reasons.

Toriel is a parody of tutorial characters. I played Skyward Sword and despised how often Fi would give me the answer to a puzzle. figured that if someone was THAT concerned about you then they wouldn’t tell you the answers. They would just do the puzzles and fight all the monsters FOR you. This is why she literally holds your hand through a segment of the game.

Second of all, there really aren’t enough mother characters in RPG games. In Pokemon, MOTHER, MOTHER 2, there’s this trope of having mothers be there only to say goodbye to their ten-year-old kid as they go out into the world. They’re basically just symbols rather than characters. Even MOTHER 3’s mother character, Hinawa, doesn’t really show up very much in the scheme of things.

So here is Toriel, a mom that hopefully acts like a mom. She won’t let you explore a dangerous world by yourself because she genuinely cares about your well-being.

Sean: It’s interesting, I had thought Toriel would be reoccurring throughout the game – a sort of haunting character, but it is interesting how it is a parody of tutorial characters and at the same time manages to set up this very grim, deceiving tone to the entire game world.

3.5. Anything you want to mention about the design of the current Undertale demo’s world?

No comment, I’d rather let people speculate and figure things out for
themselves when the full version comes out.

4. Sean: What’s your background in game development? Are you planning to expand Undertale, do you have other projects?  How did you get into game development? Composing?

Toby: Back in the year 2000, my three brothers and I used RPG Maker 2000 (the amazing Don Miguel-translated version) to make role-playing games. We barely finished any of them, though, and none of them were ever released to the internet.

I made quite a few EarthBound ROM Hacks in high school…

This is really my first *REAL* game project, however. I don’t have plans to work on anything else currently, though I am hopefully composing some songs for Starbound.

I started composing for Homestuck back in late 2009, by some miraculous freak of nature. But I’ve been playing piano by ear since I was a freshman in high school, and played trumpet in my school band.

5. Why did you want to make the Undertale in the first place?

Toby: I love JRPGs but I am very, very tired of “traditional” ones.

I just want to see one that’s not boring to play. One with interesting characters. One that utilizes the medium as a storytelling device as much as possible, instead of having the story and gameplay abstractions be completely separate.

This is my attempt at making that game, and I hope I succeed.

Sean: I hope you succeed too! There are many tropes in gaming that are worth trying to overcome or avoid, and mixing layers that are often abstracted from eachother, is a powerful way of doing things which I’m glad to see more devs attempt at doing.

OKAY THAT WAS INTERVIEW 1! MORE LATER! (I sent some questions to the devs of the wonderful ‘The Swapper’, so be on the look out for that!)

-Sean Hogan

Human Nature Through the Lens of The Binding of Isaac’s Game Mechanics (By Jonathan Kittaka)

Human Nature Through the Lens of The Binding of Isaac’s Game Mechanics 
By Jonathan Kittaka  – (Artist, Writer, etc for Anodyne)

Note: this essay was written in an academic setting, so it’s in a slightly different tone than I would use for an average article or blog post. It also is written assuming that the reader may have little to no background in video games. 

The interactivity and nonlinearity possible in video games allow for the creation of alternate realities with their own internal rules and value systems. In one sense, all fictional and non-fictional narrative communication functions in this way: altering or exaggerating aspects of reality in order to convey some feeling, theme, or idea about our own existence. In games, however, the resulting experience is inherently unique each time the game is played, even before the player’s interpretation of that experience. The Binding of Isaac adds a large amount of randomly generated structure to this already variable experience, pressing the player’s mind to search for patterns; this creates fertile ground for the formation of superstitious, mythical, or supernatural beliefs. By tapping into this shared human psychology within its own alternate reality, Isaac creates a powerful space in which to contemplate the religious themes that populate its explicit narrative.Structurally, The Binding of Isaac is often classified as a “roguelike.” Rogue was a dungeon exploration game released in 1980, which featured a great deal of procedurally generated content. This means that the game designers did not create one specific dungeon for the player to inhabit, but instead created algorithms with which the game would generate a unique dungeon each time the game began. Like Rogue, Isaac features procedurally generated dungeons, including randomly appearing items (often with themes relating to childhood or religion), enemies, and boss creatures. Isaac also features “perma-death,” a common feature of roguelikes. While in many games, death simply sets back the player’s progress in an otherwise consistent storyline, death in Isaac means you must start over in a new, procedurally generated dungeon, without any of the items that you collected on your previous playthrough. The result is that Isaac is played in distinct “runs,” lasting around 20 to 80 minutes each. Depending largely on random factors—although also on player performance—runs take on various characteristics: slow, tense, over-powered, fun, etc.

Humans are programmed to search for patterns and to find confirmation for their feelings and beliefs. These quirks and biases come out strongly in the face of the randomized and mysterious events in Isaac.  For instance, on each floor, there is an item room containing a single item that grants new abilities or changes the players stats (movement speed, damage done to enemies, attack range, etc). Naturally, some items are much better than other items, and this can have a dramatic effect on the player’s perception of how frequently they appear. Across many runs, a powerful and coveted item may seem extremely rare, while an item you hate is exceedingly common. In reality, Edmund has confirmed that the items found in item rooms are “literally random” and not weighted to bad items over good items (McMillen, Formspring). One explanation for this phenomenon may be that the player frequently hopes for the good items, thus noticing every single time they don’t appear. All of these small disappointments add up to create the illusion of the rarity of the desired item. Even regardless of “good” items versus “bad” items, random chance sometimes leads to a player getting some items more frequently than others. It’s hard for a player not to desire some sort of meaning in the distribution; players will ask Edmund about this on Formspring, making statements like, “I’ve seen harlequin baby and chocolate milk in almost every run I’ve done over the past month, and things like stigmata and mom’s eye haven’t shown up since may” (McMillen, Formspring).

The strange psychological effects of The Binding of Isaac become even more apparent while watching someone else play and describe their thought process throughout. “Let’s Play” (LP) videos on YouTube and other sites provide that exact opportunity. Northernlion, a popular Let’s Player who uploads Isaac runs every day to YouTube, makes frequent commentary on the item combinations and character of the runs he’s been having, creating a narrative across runs out of an essentially random series of events (Letourneau). Perhaps even more interesting is the way he personifies the randomly generated aspects of the game, frequently thanking or cursing “The Troll Engine” for the items and enemies encountered throughout the game. For instance, if a single key could spell the difference between life and death, and a key is trapped across a chasm, Northernlion might say that the Troll Engine is messing with him. Of course, rationally speaking, Northernlion is not convinced that there is a real personality behind the random events in the game. Nonetheless, when facing a particularly unique, ironic, or unfortunate outcome, it is easy to feel—on some gut level—as if someone is pulling the strings.

Notably, not every situation in Isaac is up to pure chance. For instance, some items and statistics can change how often you receive money, keys, and other items. Some playable characters have secret stats that make them more likely to find certain items. In other words, sometimes correlation is due to causation. Experientially, this is true to life—there are factors that affect every situation that are not obvious or explicit but are also more relevant than random chance. The presence of these factors only serves to encourage speculation about hidden effects that other items or characters might have; the fact that the odds occasionally do change feeds directly into hypotheses that can essentially function like superstitions.

All of these facets of Isaac’s design serve to highlight the strange ways that humans tend to deal with information and events in our own reality. In particular, Isaac serves as a potent exploration of religious belief. In many cases, religious experiences are comprised of sequences of events that simply seem too meaningful to be random. Similar experiences can occur in Isaac through verifiably random incidents. However, Isaac’s structure does not lend itself to simply condemning religion as pointless superstition. The sense of wonder engendered by engaging with the mystery of the game’s mechanics is one of the main reasons to play the game at all. Ascribing a god- or fate-like persona to the game’s random generation is an intensely human response, and allows the game to have an emotional and personal relevance. And beliefs about the game’s mechanics—whether true or not—can change the decisions that the player makes, for better or for worse.

This was a post by Jonathan Kittaka, if you liked it you can discuss here or let him know on Twitter.

Why Nintendo’s LP Crackdown might make business sense

On my first hunch, Nintendo banning monetization intuitively seems like it is a bad marketing idea, and others feel the same, too – You generate negative PR, at least in some social circles, some people don’t see your game, and the general consensus is they lose sales.  It’s suicide to do this as a small development group.

But Nintendo is a very large company. So things are a little different from their scale – why might they be doing this? Our emotional and kneejerk response is that they are losing out on tons of sales by snubbing the Youtube community – but, perhaps they’re not?

Let’s try to reason out from their point of view for a bit…

My guess is that:

Nintendo wants to discourage LPs of their game that are being monetized, not so Nintendo can get the money which is relatively pocket change for them, but so audiences will be driven to seek out other outlets that focus on previews – traditional reviews on websites, quick previews outside of Youtube – ones which give a quick taste of the game and a recommendation, but not enough in the way of a traditional demo.

The idea might be that they think, or have some data that suggests that LPs reduce sales in an analogous fashion to demos, i.e., people will tend to watch the videos, then decide they’ve seen enough, and not buy the game. This seems feasible enough to me, as I’ve heard that that for large companies, demos tend to hurt sales – large companies have large enough advertising budgets to not really need word of mouth and demos.

It’s just one idea, and whether or not it’s true, it’s important to remember the inherent differences in business operations between , Jon and I, and Nintendo, whenever we reason about one entity’s decision. The “game” of profiting between me and them are worlds apart.

The word of mouth from demos and LPs? Those might not matter when you have the budget to front page magazines, websites, and mail catalogs from the largest retail chains in the world. With that much advertising money,you might actually *gain* sales by lowering the number of LP videos, even though that would be an idiotic move for a small team. Remember, while Nintendo might be in it for making fun games, they’re still primarily in it for being a profitable business. Thus while they might snub the Youtube community, they don’t care, as long as it increases profits.

Am I pissed off? Certainly, I know a few people who make money off of the LPs. But before we label Nintendo as “stupid”, let’s remember that their means for existence are far different from that of smaller groups. If the data shows the right trends (which we don’t know), then Nintendo’s move can make sense from their standpoint.

anodyne by the lines of code

Hey everyone! This isn’t quite a source code release (that won’t be for a while), but I recently had to send off the source code for a review (anodyne might be ported to 3DS!) so I thought it might be interesting to post these stats. line counts via cloc.exe. At least, I’m very interested in other peoples’ game structures myself, so I’d like to see more posts like this!This count is only what I had to write myself, it doesn’t include the flixel library (I made a few modifications to it but they are mostly minor). Doesn’t include CSV (level data), XML (entity data), or dialogue, extensions (steam code, controller extensions)And of course, doesn’t include the music, sound effects, TONS of tilesets and images, level data we created!

What is here is the names of AS3 source files (and some lua/python) 🙂 , sorted by code size. About 36k LoC in all for these files. I would say most of it comes from bad style – I hard code a lot of song/tileset data, the enemies are mostly things that probably could have been scripted in some way,e tc.

If you have any question on what the files do, feel free to ask here or ask me on Twitter! Below I included a quick overview of the files.

We used Git as version control. About 1,100 commits over the April 2012-March 2013 period, though I did a little work in March 2012. One dayI’ll post the commit logs 🙂

-sean hogan


File blank comment code
—————————————– ————————————- 2980 35953
src\states\ 206 56 1591
src\states\ 276 225 1542
src\entity\player\ 207 87 1310
src\entity\interactive\ 116 53 1260
src\ 235 169 1144
src\data\ 65 56 1121
src\entity\enemy\etc\ 142 71 1052
src\entity\enemy\circus\ 101 42 862
src\entity\interactive\npc\ 89 32 784
src\states\ 141 38 741
src\entity\enemy\crowd\ 105 65 728
src\entity\enemy\redcave\ 115 38 700
src\entity\enemy\etc\ 116 85 680
src\entity\interactive\npc\ 93 22 673
src\entity\interactive\npc\ 75 46 654
src\data\ 167 56 634
src\entity\enemy\hotel\ 112 32 609
src\entity\enemy\apartment\ 65 15 575
src\entity\gadget\ 95 69 573
src\states\ 56 30 567
src\global\ 89 101 566
src\entity\enemy\bedroom\ 74 37 526
src\helper\ 25 19 496
src\entity\enemy\circus\ 61 14 468
src\states\ 116 41 458
src\helper\ 50 19 400
src\global\ 53 21 373
src\entity\gadget\ 39 17 368
src\helper\ 68 119 358
src\entity\enemy\redcave\ 63 40 347
src\entity\gadget\ 40 6 343
src\entity\interactive\npc\Shadow_Briar.a s                                  42 103 329
src\helper\ 81 101 327
src\states\ 51 34 316
src\entity\enemy\bedroom\ 40 13 304
src\ 47 53 285
src\entity\player\ 44 18 277
src\entity\enemy\bedroom\ 52 9 265
src\entity\enemy\suburb\ 35 3 265
src\entity\enemy\crowd\ 43 12 256
src\entity\interactive\ 24 5 253
src\entity\gadget\ 37 19 252
src\entity\enemy\apartment\ 34 9 245
src\entity\gadget\ 33 23 243
src\entity\enemy\crowd\ 35 10 241
src\helper\ 42 5 237
src\entity\gadget\ 37 6 237
src\entity\gadget\ 34 19 237
src\entity\enemy\circus\ 48 13 236
src\helper\ 50 25 236
src\data\ 48 42 232
src\entity\enemy\apartment\ 43 15 226
src\entity\player\ 31 11 226
src\entity\enemy\crowd\ 39 18 220
src\entity\enemy\etc\ 17 6 190
src\entity\enemy\bedroom\ 24 9 185
src\entity\player\ 44 18 182
src\states\ 21 4 181
src\states\ 45 14 180
src\entity\enemy\hotel\ 31 6 177
src\entity\interactive\npc\ 17 5 177
src\entity\enemy\redcave\ 20 15 174
src\entity\enemy\apartment\ 28 15 172
src\entity\enemy\apartment\ 33 11 171
src\entity\enemy\hotel\ 28 11 170
src\entity\enemy\etc\ 24 3 168
src\entity\enemy\redcave\ 20 6 165
src\entity\decoration\ 18 22 163
src\entity\interactive\ 45 12 160
src\entity\enemy\apartment\ 41 7 156
src\entity\decoration\ 40 11 150
src\entity\enemy\bedroom\ 30 15 149
src\entity\decoration\ 13 16 149
src\entity\interactive\ 41 11 148
src\helper\ 19 9 147
src\entity\gadget\ 20 46 147
src\entity\enemy\crowd\ 23 12 140
src\entity\interactive\npc\ 11 4 137
src\entity\enemy\hotel\ 21 7 135
src\entity\gadget\ 25 15 132
src\entity\gadget\ 17 5 132
src\entity\interactive\npc\ 13 4 121
src\entity\interactive\ 24 7 116
src\data\ 16 17 113
src\entity\gadget\ 20 5 111
src\entity\enemy\circus\ 17 0 109
src\states\ 17 4 103
src\entity\player\ 21 19 101
src\entity\player\ 17 13 94
src\entity\interactive\npc\ 13 6 93
src\entity\enemy\redcave\ 21 12 90
src\entity\gadget\ 17 4 90
src\helper\ 17 24 87
src\ 17 11 87
src\entity\gadget\ 28 0 86
src\entity\player\ 8 11 80
src\entity\enemy\etc\ 6 4 76
src\entity\enemy\etc\ 9 4 76
src\entity\interactive\ 11 4 75
src\entity\decoration\ 21 39 71
src\entity\interactive\ 8 4 71
src\entity\gadget\ 13 4 66
src\entity\gadget\ 21 0 65
src\entity\enemy\suburb\ 19 0 64
src\data\ 7 14 62
src\entity\gadget\ 18 4 61
src\helper\ 17 31 60
src\entity\interactive\ 19 6 60
src\lua\Intra.lua 26 11 56
src\entity\enemy\crowd\ 16 9 56
src\entity\enemy\etc\ 11 10 55
src\entity\gadget\ 9 4 53
src\data\ 10 6 52
src\entity\enemy\etc\ 12 4 49
src\states\ 3 6 48
src\entity\enemy\etc\ 20 3 47
src\entity\gadget\ 8 4 46
src\entity\gadget\ 6 4 45
src\entity\gadget\ 8 7 45
src\entity\gadget\ 12 6 42
src\entity\decoration\ 8 6 36
src\entity\decoration\ 6 4 31
src\entity\gadget\ 7 4 31
src\states\ 7 10 30
src\entity\decoration\ 6 4 27
src\lua\csvTilemap.lua 15 5 25
src\entity\interactive\npc\Huge_Fucking_S                              6 4 24
src\data\ 4 0 23
src\data\ 6 6 19
src\ 3 4 16
src\helper\ 3 4 11
src\lua\csvTilemap_settings.lua 2 1 4
src\lua\Intra_settings.lua 2 1 4
src\data\make_demo_npc_data.bat 0 0 3
src\data\make_npc_data.bat 0 0 2

Inside of Intra/src

ca – MAc joystick extension code
com – Steamworks code for mac/win
csv – Tilemap data

data – – used for id’ing some classes, stopped using it halfway through dev but it’s still in some of the entity code – Embed code for overlays, backgrounds – Embed code for CSVs, also for picking out what CSV should load in an area – The AS3 object format of npc data with state: – Handles embedding SFX, music, has some helper functions for that, also code for choosing what song plays in an area – Embeds the tilemap files, also has functions for tile callbacks (spikes, etc), setting bindngs (what is solid, etc), picking what tilemap to use in a map, data on animated tiles – Raw dialogue stuff – turns into

entity – Not counting the player folder, these are source files for things you can place with the level editor (usually) – signs, rocks, NPCs, enemies, dungeon elements. mostly straightforward

extension – Joypad code for windows

global – Input handler ( and the (global state variable). Holds a lot of random constants and state about the game. Also contains code for loading and parsing the XML

helper – Random things, handles back-endy dialogue stuff, does some stuff for cutscenes, is helper functions, – the joypad configuration at start of game, – interpolation for bullet arcs (usually), – helper functions for NPCs whose state change throughout the game, – the downsampling effect when moving between areas, – called for each xml element, generates an entity

lua – Has the lua exporter, Intra.lua, for DAME (map editor)

mochi – random code for mochi ads in this online demo version

obj – ??

org – flixel code . modifications were made in parts

res – image assets. all .png

states – play states (more or less groups of objects)
ControlsState: Set keyboard controls
DialogueState: DIsplaying of dialogue
EndingState – The credits
FillerTitleState – not used
IntroScene – The “wake up!” thing int he beginning
MinimapState – The minimap in the map section of the menu
PauseState – Pause menu
PlayState – All of the overworld/dungeon screens
PushableFlxState – some unncessary abstraction I made
RoamState – not used
TitleState – title screen

xml – Intra.xml, the entity data. – Game loop, mostly related to resizing windows and choosing where the game starts, debug flags, different build flags, mobile GUI – handles initalizing extensions, starting game – I don’t think i use this – Handles saving the game to the .sol file

Discussion of Game Dev Tycoon’s DRM. And the game. And piracy.

I want to talk a bit about piracy. (Again.)

Game Dev Tycoon, released recently, has an interesting DRM strategy with regards to piracy – playing the pirated copy will make you lose after a while, because too many people pirate your game, and you go bankrupt.

(I will note this has really done wonders, press-wise for them. Not going into whether this was a marketing stunt (I don’t think it was, for the record – their blog post comes off as this DRM was more of an emotional response))

This strategy roughly says, as conveyed through the gameplay: “Piracy hurts sales and doesn’t let us make any money, and makes us go bankrupt”. It’s a bit harsh, especially since it makes you prematurely lose the game, so hours spent might go down the drain.

It’s sort of clever how the DRM is implemented, but the lesson being taught isn’t entirely accurate – piracy might hurt sales, but it doesn’t guarantee bankruptcy in all cases – hurt profits in larger studios, possibly.

Here’s one negative. When you do this, you are shutting off anyone playing the pirated copy from playing your game. In this group of people, there exist people who don’t have the money to buy the game, simply want to try before buying (And won’t buy otherwise), and people who just never pay – with some overlap between the groups.

You’re genuinely pissing off the former and latter party, which are possible fans. In my experience, some people didn’t have the money to pay at the time, but later paid. Or they told their friends to buy it.

I suppose it’s a VERY strong way of conveying the feeling of getting pirated – by playing the pirated version, you can never reach the goal of making enough money to stay alive. But it’s not entirely accurate. Other studios and I have had benefits from piracy, you don’t necessarily go bankrupt with piracy. Most pirates probably weren’t going to buy it anyways. But some of them would have!

And this is why I’m so mixed on this. The party of people who pirate and don’t think about it – maybe you’re teaching them something, it’s hard to say. But that’s at the cost of negatively affecting people who can’t afford, and people who were trying before buying.

I wonder if this lesson could have been taught more gently, without cutting off anyone playing the pirated version from finishing the game. But, that would have reduced the impact on the party who are “the problem” of piracy – people just pirating even though they can afford the game.

So…hmm. I suppose that, in the grand scheme, maybe this experiment was a good idea. In the short run, it hurts some of the studio’s fanbase. It’s sort of a not-entirely-true “lesson” being taught, and is a bit unfair for people losing their time. BUT, where the real win is, is that it does plant the idea of “hey, maybe I should pay for this” in the minds of the people who won’t pay for it, even if they can. Even if that’s conveyed through a message that is not true – that is a bit of empathy towards game developers, the sinking feeling of not making any money off of something you worked hard on. (Even if, again, Game Dev Tycoon itself isn’t very realistic about this)

But, that’s only part of the battle in reducing piracy in people who don’t need to pirate to play games – I think the other part also lies in increasing players’ empathy towards developers. Showing the human side of development, etc, which I think over time can make people think twice before pirating a game and never paying for it (if they can!) . At the same time, this also includes REALIZING that pirates can sometimes be people who can’t afford the game. It’s not just a group of evil, middle-upper class kids who will steal at every opportunity!

-Sean Hogan


(Oh, and yes, I’ve purchased the game. It’s good at conveying the complexity of scaling up a game company, the issues inherent with taking risks with IPs, having tough publisher experiences, the nervousness of release…and I think that gameplay itself can foster some empathy towards developers.)

For your amusement, here is “Andoyne” not doing well in Game Dev Tycoon 😛