Hacker News new | past | comments | ask | show | jobs | submit login
Snakisms (pippinbarr.github.io)
961 points by colinprince on March 6, 2017 | hide | past | favorite | 140 comments

This is delightful.

I only wish that someone would put it into a nondescript arcade cabinet in a hallway somewhere, so that people could stumble across it unprepared.

Edit: Naturally, it turns out that Mr. Barr has a PhD in this sort of thing, and that his thesis has to do with how we demonstrate our values during the course of playing video games. http://www.pippinbarr.com/academic/Pippin_Barr_PhD_Thesis.pd...

It's not so much focused on demonstrating your own values so much as it's about UI and the conduct that the UI is able to generate through cause and effect.

Like in GTA, do you try to talk our your problems or do you shoot first and ask questions later? The UI will repeatedly encourage you to shoot first and players will learn that, because if you won't, your enemies will.

This is the definition of value they're using, which I guess applies in this case: "A value is an enduring belief that a specific mode of conduct is preferable to other potential modes of conduct".

Seems like a weird use of the word "values" to me as it's essentially about being able to figure out how it's best to progress rather than moral beliefs as the term may imply for many people.

EDIT: Yet they try to mix these interchangeably in the paper, with examples like "a value of PROTECTING THE ENVIRONMENT means that we will choose to put out the recycling on Tuesday evening, rather than put all our plastic in with the regular trash." - the reason you believe that is probably not because you stopped progressing and there was nothing else to do. I suppose this is the distinction between "video game values" and real world values. But I think it's important to note the lack of overlap and reasoning, which I'm not sure this paper does. Though maybe it does say something about our real world values changing to get the job done.

But maybe after learning there would be subtle difference in play between different players, based on their values. Just like after you learn the rules of the world and are an adult, you act differently.

So for example I really just cannot bring myself to play a "dick" character in games like Fallout 4, Skyrim, Mass Effect, etc, but I know plenty of people who delight in it.

See - this isn't what they're discussing at all, it seems to be what they're trying to imply with the naming, but it's not actually that at all. They're discussing game mechanics that force you to say - shoot some cops. Is it dickish to shoot cops in GTA?

I don't think people's real world values have much if any influence on their play style. Ultimately playing Skyrim and Fallout for stealth and one hit kills will dictate a lot more the decisions I make than their moral value to me. I need to make certain decisions in order to optimize my build, so I'll make those decisions whether I like the values they show or not and whether they're consistent or not. I kill for weapons and armor, I steal for cash, etc.

> I kill for weapons and armor, I steal for cash, etc.

It's funny like the parent I cannot bring myself to do that to "innocents" in games like Skyrim, even if the game reward it, I need to really force myself to roleplay to start letting my values step back

> Compare, for example, the ubiquitous software application PowerPoint [171] and Grand Theft Auto: San Andreas [211]. We can identify four key differences in interaction which help to characterise video game play as distinct. First, in using PowerPoint, a user’s primary objective is the creation of a presentation and the interaction is a means to this end. In playing Grand Theft Auto: San Andreas, however, a player’s primary objective is play and the interaction is an end in itself. Second, given this difference, users of PowerPoint expect the interface to be as unobtrusive as possible, while players of Grand Theft Auto: San Andreas are specifically focused on the interface as they play: the interface is the game. Third, while we generally think of PowerPoint as solely facilitating our work, Grand Theft Auto: San Andreas frequently assigns tasks such as killing gang members, evading the police, or navigating the world. Finally, in PowerPoint the ideal user experience is seamless and without error, but a successful playing of Grand Theft Auto: San Andreas will inevitably and acceptably include mistakes, challenges, and the frequent death of the player’s avatar.

This is the first thing I saw in his paper and I have to say those claims are, well, interesting. And I say this as someone who plays video games. I can think of numerous counterexamples to each claim and even examples that conflict with every claim. Take Dwarf Fortress, who's interface is the bane of every player's existence, or Human Resource Machine which is essentially a learn-to-program game and therefore most serves its purpose when its emulating a beginner's version of MSVC. Minecraft's creative mode offers no fail states, cathartic killing sprees or explicit challenge, but merely stimulates parts of the brain capable of 3D processing. Competitive gaming like CS:GO, COD, Dota (and about 30 more) also don't fit into this model of games.

Admittedly I'm not a PhD in anything, much less video games, but this paper's analysis seems to fall short of explaining most games.

I don't see why your examples don't fit the given explanation? Based on what you said, I think you actually agree with his point of view and just misinterpreted it?

His point is that games are NOT means to an end, they are things where the whole point IS to interact with them (Minecraft creative mode is a perfect example of this).

To put it another way: The ideal way to make a powerpoint presentation would be to think of it and have it instantly materialize. On the other hand, what's the ideal implementation of GTA? As much as we say that the point of the game is to "beat it", if we just showed you the victory screen, then it would ruin it.

The same goes for Dwarf Fortress, Human Resource Machine, CS:GO, etc. If you just jump straight to the end result, you miss the entire point: the interaction itself.

I guess I don't know enough philosophy to understand some of the jokes.

Anthropomorphism: the apple moves like the snake, man was made to the image of god and so on.

Apocalypticism: the game just ends after a few moves without notice.

Asceticism: the game ends if you eat the apple, you are supposed to be like a faquir.

Capitalism: you start the game with 50, spend 10 each apple you eat - when you are broke you can't afford the apple.

Casualism: I had to Google this one, the screen just flashes with random squares.

Conservatism: just the plain old snakes game.

Determinism: the snake just moves by itself and you are unable to control the game - your destiny was set in stone the moment you were born.

Dualism: you can control the snake body with the regular controls, and you can move the snake mind with your mind. My mind is too weak so I was unable to move the snake mind.

Existentialism: you move the snake in a dark screen - after reading the wikipedia I guess the joke has to do with freedom in a meaningless world.

Holism: the whole screen moves with the snake (makes it very hard to get the apples in the corners)

Idealism: imagine you are playing a game of snakes

Monism: your play is not restrained by the walls - after reading it I guess the joke is about you being made of the same substance of god or something like that

Narcissism: when you finish the game it sends an email to the creator about how much you love his work.

Nihilism: just a black screen, no snake, no apples - nothing in the world really exists.

Optimism: you see apples everywhere but looks like they are not nourishing because the snake doesn't grow.

Pessimism: the play field is smaller and the apples appear outside of the walls where you are unable to reach.

Positivism: you see only a narrow part of the play field, I guess the joke is that you are unable to know the universe because our senses are limited.

Post-apocalypticism: no apples, you just move through a scrambled play field.

Romanticism: every time you eat an apple you see a cheeky statement like "food tastes like ashes when I'm not sharing it with you".

Stoicism: like a plain old snake game but you don't die when you hit the walls or yourself - after reading the wikipedia article I guess the joke is that virtue is sufficient for happiness, so the sage is immune to misfortune.

Utilitarianism: you have only two very narrow paths, one with 5 apples and other with one apple. If you take the one with more apples you win, otherwise you loose.

Just few comments based on my interpretations (not necessary more correct):

Anthropomorphism: as apple moves, you attribute intentions and feelings to it - now it flees, now it gave up and so on.

Determinism: you start out as usual trying to control the snake, but very quickly realize everything is predetermined and your sense of control is illusion.

Monoism: we are all part of oneness, you are devouring yourself.

Nihilism: I especially liked that you cannot go back to menu, you have to refresh the page. It's kind of a dead end in terms of meta-game (game of games).

Optimism: The reason you are not growing is that would make the game more difficult. You stay forever a child.

Positivism's actually quite interesting from a game design point of view --- because you can only see in front of you, you can't tell where your snake is or how big it is; so you're playing blindly, waiting for that moment when you get long enough that you start glimpsing parts of your own tail coming out of the darkness... it genuinely adds new interest to a really tired old game.

(Although, UI-wise, I'd like the play area to distinguish between spaces which you can see but don't contain anything and spaces which you can't see.)

A good joke would be if the game filled all the invisible fields with apples that would disappear when they became visible.


I wonder if it's also a reference to this:


Monism: Not exactly. Everything is made of the same substance. Can eat the wall, yourself, or the apple, it's all the same thing.

Romanticism: don't forget the mood-setting music in the background.

Stoicism: you can however lock yourself up, ending with no valid direction for next move. However, the game doesn't end, so you have to restart. There's probably a philosophical implication here, though I can't think of one.

Yeah, I noticed that as well. I interpreted it that stoicism forces a certain way of thinking that can lead to very bad outcomes with certain way out. Effectively a one-way path with no exits and no way to reverse course.

The stoic becomes its own trap.

> Utilitarianism

Trolley problem.

I laughed out loud at this one. And at Romanticism.

Romanticism seemed to lock up for me after about a dozen quotes. Still, a great stub project overall.

Reminded me of the trolley problem too, but the fact that the game says "You win" when you take the path with 5 "apples" confused me. Seems like much less of a dilemma than the trolley problem.

It's a mirror of the trolley problem, because your goal is to maximize points driven over instead of to minimize them (because you're a snake eating apples). But it shares the basic structure (you can do nothing and get the more wrong solution, or make an active choice and get the less wrong solution). Also, the game field is structured to make it immediately visible it's a reference to the trolley problem.

> Seems like much less of a dilemma than the trolley problem.

From utilitarian point of view, it's exactly the same dilemma.

Hence the Utilitarian label. The five-apple path is strictly better than the other.

The walls felt a bit less forgiving in Conservatism, but I could have just been imagining it.

You don't win in Utilitarianism. Both paths are losing paths, just one loses with more meaningless points than the other does.

The game itself presents the text "You lose" or "You win" depending on which path you take.

It does? I suppose what I said is now perfectly untrue.

The game is a great opportunity to scan through the definition of each of the scientific terms and get an understanding. And your list is a perfect motivation to compare my comprehension with your summary of each game variant. Thanks.

I take issue with their representation of determinism: since chains of cause and effect are what connects your actions to your will, it should in fact be the only version of the game where the player gets to control the snake :)

> Narcissism: when you finish the game it sends an email to the creator about how much you love his work.

Ahhh, thank you for this list. For me (playing in Firefox), the narcissism ending just opened an empty Chrome instance...

In conservatism: The snake doesn't grow immediately when eating the apple, it freezes for a frame and then increases in size, showing the reluctance to change.

For a moment it seemed like the "food" spawned out of the snake's "tail" in the narcissism one, but I guess I was just imagining it.

Holy crap. So many comments. I'm going to read all of these!

How many narcissistic emails have you received?

I love how the optimisitic snake never gets any bigger.

Hahah! I didn't notice that!

The games awesome. Capitalism: "You can't afford the apple". Excellent. I didn't like the auto mail.

Did it actually automatically email for you? For me it just popped up a window to compose an email, with some content filled in.

And personally, I thought it was brilliant. I played that level for a solid few minutes trying to figure out what the twist was.

Safari popped up a dialog that said "This page has been blocked from automatically composing an email." with an option to allow it anyway

Lol at narcissism - when you die it sends an email to the creator about how much you love his work.

Brutally honest - snowflake is not a snowflake if it doesn't announce itself.

Finishing with Utilitarianism's trolley level was just the perfect ending.

I wish Pessimism would have let the snake move outside the constrained bounds. That would have told the player that pessimism may be painting a darker "reality" than what it really is.

Pessimists consistently assign more accurate estimates on outcomes than optimists.

according to pessimists

[citation needed]

The game represents pessimism, the concept, not pessimism, the philosophy, unfortunately.

Same wih nihilism.

Beautiful, I loved the "value" aspect of it, but I found the simple, but good game design the best part. A lot of people know to have a chime play when you pick up an "apple" in games for pavlovian reasons, but fewer would add that nice hum that movement created in general. It makes moving through space both a visual and auditory experience.

Some other possibilities:

Socialism: there are two snakes, and the 10 points for eating an apple gets split between them.

Communism: the game starts as Capitalism with two snakes, but then the game switches to Socialism, and the 50$ (or remainder) gets expropriated and split between the two snakes.

Late Communism: Starts like Communism, but more and more points for apples get allocated to the AI snake (and fewer to you) because it's a member of the communist party.

Late Late Communism: Like Late Communism, but eventually no more apples appear. Game implodes and turns back into Capitalism, but the party member snake has all the money.

Platonism: another game runs in parallel alongside this one, but the snake is perfect and the highest possible score is obtained.

How to get out of nihilism?


In game or IRL? In the latter construct some meaning in your life.

If I told you, I'd have to kill you.

Once you get in, you never get out.

Suddenly I regret all of my lifes choices that led me to doing anything but becoming Pippin Barr.

I started out by randomly clicking on Idealism and couldn't figure out what the joke was supposed to be. Trying another one made it click, though!

Utilitarianism made me laugh.

I have no idea what this is, as the entire page just shows up as completely blank to my screen reader. Guessing some sort of game.

It's little games based on Snake for various "isms":

For a couple of examples, the dualism version says "Arrows control snake body. Mind controls snake mind." and utilitarianism gives you two dead-end paths, one with 1 food and one with 5 food. Stoicism lets you run into walls and just sit there without losing.

In stoicism, you can carry on after hitting the wall by making a turn.

There's a thread with reasonably detailed explanations of each game and how it changes from regular snake, here: https://news.ycombinator.com/item?id=13806228

This is fantastic. Thank you!

Really enjoyed the Stoicism & Narcissism versions.

This person's other work is great too. I'm currently deriving much amusement from Game Studies.

Is there an online gorilla.bas :-) ?

Funny you should ask. I translated it to Javascript a few months ago, fixing a couple of bugs in the original game in the process[1]: http://www.kylem.net/stuff/gorilla/gorilla.html

[1] and surely introducing a couple bugs of my own. I almost got it pixel-perfect, but I couldn't figure out QBasic's arc-drawing algorithm! (And the "slow rendering" is artificial delays. Because whole frames are drawn at a time with HTML5, you have to do something on purpose to get the slow city drawing effect.)

I think I found a bug the original game didn't had (or my dad fixed on my version...), but suiciding results in you getting the score. (example: I suicided as "player 2", the "player 1" made his victory dance, but the score counted 1 point for player 2)

Thanks! Scorekeeping was always a part of the code I was unsure about, and I thought I saw some scoring inaccuracies while playing the game, but somehow never identified what they were.

If you're curious, the HITSELF constant in the original game is 1, but I was testing a boolean against HITSELF using strict equality (===). Thus, you were just scored based on how many gorillas you hit with a banana.


Actually, it turned out I just reversed who received each point! The bug was more subtle and came down to the fact that arguments are passed by reference in QBasic, so the DoShot function modifies the caller's PlayerNum variable when a gorilla is hit. This means there's just dead code in the scoring function.

Wow, that's a faithful reproduction. Did you use a translator or are you doing this totally by hand? The reason I ask is that even the effects like the Sun showing a reaction when hit by a banana is nicely reproduced.

Edit: If you have the source online, link please. I would love to make it networked :-)

I did it by hand by reading the original QBasic source code. One reason I did it was to reacquaint myself with QBasic, the first programming language I learned. Another was the challenge of converting a program which relied on blocking behavior to HTML5, which shuns anything of the sort; the solution I used was generators to simulate my own "IO monad."

The IBM EGA font came from an image someone kindly had of the complete character set, which I converted to JS: http://www.kylem.net/stuff/gorilla/ega8x14.js

The source code is http://www.kylem.net/stuff/gorilla/gorilla.js

Feel free to do whatever you want with it!

Could you apply what you learned to improve this qb js interpreter? http://stevehanov.ca/blog/index.php?id=92 Fairly useless but would be a nice nostalgia trip to be able to run some of the 90s qbasic code that's still lying around in unswept corners of the internet :)

If the point is running old QBasic code in a browser, it's probably better to compile DosBox to HTML5 and run the original QBasic interpreter in that, as is done on archive.org: https://archive.org/search.php?query=subject%3A%22qbasic%22

Nibbles: https://archive.org/details/NibblesQbasic

That's pretty sweet.

Brings back fond memories of 8th grade algebra class.

Ask and ye shall receive, thanks to the archive.org retro gaming folks (seriously, that whole archive is amazing): https://archive.org/details/GorillasQbasic

Nihilism made me chuckle.

So good, abstract concept art in such a cute video game package. I can't play it for that long, but getting through the list feels more meaningful than if I'd spent two weeks mastering an amazing high score.

I think romanticism had me laughing the hardest.

Stoicism, you could never do anything to lose.

You can lock yourself in a place where you can't move though.

Yes you can trap yourself making an inward spiral and then you can't do anything so it's game over.

It's only game over if you give up.

Here is what they all mean, saves you opening a bunch of tabs: https://airtable.com/shrfy8qWla6qIviin

Pretty rad existential, abstract art. Only missing the really abstract "kidism" in my opinion :) https://kidisms.com

This reminds me a lot of these neat little socratic games.


Molleindustria is also worth a look, although they're coming from a slightly different direction. The gospel in eight bits and ten seconds:


And "Kosmosis: a communist space shooter is an arcade game from an alternate present where non-degenerated socialist values are hegemonic", and which is more fun than that sounds:


Is Conservatism the same as the classic Snake game? That makes sense, but it would be interesting to see it contrasted against a Progressivism or Liberalism version.

It's philosophical conservatism, not political conservatism. The Snake game works as it is, why change it?

Of course the rest of the work is itself a rather potent rebuttal to that idea. In the context of the Snake game, at least.

>The Snake game works as it is, why change it?

Ahhh, thank you. I was having some trouble figuring that one out but you summarized things nicely.

I can see the progressive one being hilarious.

The snake would start eating itself..

Narcissism is particularly well done.

This is a blank white page in Chromium. No JS errors in the console. When switching from this tab to another tab and back again, the contents of the prior tab are partially clipped into a top-centered rectangle. No functionality or other behavior can be observed.

Check the WebGL support in your browser.

Positivism is particularly clever.

and particularly difficult as well. amazing how ragged and dysfunctional the universe becomes if we don't allow ourselves to make certain assumptions.

On a mobile phone. Using the swipe gesture was incredibly difficult. I missed a lot and quickly gave up.

My be just track motion of fingers for movement? It would provide a more time accurate interface. Otherwise it looked really cool. I love arcades.

This is a lovely tech equivalent of the immortal https://en.wikipedia.org/wiki/Exercises_in_Style

Excellent. Now I want to make one illustrating different logical fallacies.

Holism: some goals are just unattainable.

Optimism: as your progress in your life, it just fills up with music no matter whereever you go.

Stoicism: I think the snake should have kept the same size whether it ate an Apple or not.

Holy crap so many comments. I'm going to read them all.

Wow! This is such a fun way to remember these concepts.

The "swipes control snake" interface for this is extremely difficult to control... it seems like the swipes only register if you swipe while on the snake, which means to do fast movements you have to keep your finger hovering in front of the very thing you need to see constantly, and even then it isn't like a swipe is remotely a fast action you can perform (particularly as it seems to only register moderately long and deliberate swipes).

You don't have to swipe on the snake. (I agree it's somewhat annoying to control, though.)

I've never really thought that snake could be used as an art form before. I have been truly enlightened

Reminds me of the underlying themes behind Binding of Isaac. Also a brilliantly simple yet addictive game

I just found out this week that my wife has never played snake, and is unfamiliar with the concept.

Undoubtedly the best set of games I've played in so long!

Really great stuff and mind-tinkling :)


Something I don't get to say every day: Nihilism made me smile.

I wonder how many "narcissistic" email did he received..

Great game, but why does it consume soooo much CPU?

JavaScript, probably.

More serious answer: it's using HTML5 canvas, which is quite inefficient as rendering APIs go. For example, if you use n colours when rendering a frame, and your game runs at m frames per second, you are invoking the browser's CSS parser n×m times a second, because CSS colour strings are the only way to express colours, and it is an exclusively immediate-mode API.

The engine in use might be layering on top additional inefficiencies.

(I love how easy to use HTML5 canvas is, but its CPU usage, performance and power consumption properties make me want to cry.)

That's only if you switch colors frequently. Canvas can be quite efficient.

It's irrelevant here-- the game is using Phaser, which can render as either Canvas or WebGL (WebGL in my case), but it's spending most of it's time in engine code updating expensive transforms every frame.

Ah, I see. I did check the source to see if it was using canvas 2D, but I failed to check if it wasn't using WebGL.

If you're willing to forgo the built-in drawing primitives, you can get access to the underlying buffer and draw directly to that. That way you avoid the CSS parser.

Edit: in particular, getImageData and putImageData.

Yep, but then you forego hardware acceleration, so this is only reasonable at low resolutions.

If you want to do anything serious, WebGL's your only option.

It's encoding three thousand years of philosophical thought! Frankly it's incredible that a machine is able to do it at all!

... OR IS IT?

Is it? It's only using about 10% of a core here. While that's a lot for a game that could run comfortable on a Nokia 3310, it still feels pretty low for JavaScript.

very good. dualism and pessimism particularly funny. like the overall design too.

some options like Apocalypticism seem normal, without any special effects.

For Apocalypticism you randomly die at some point for no reason. For me it happened around 40 points

I died randomly before reaching the first food.

Only Convervatism

started with 'Nihilism' and thought 'what da hell?!!'

Monism is great.

How to win ?

no comunism/anarchism?

communism wouldn't really make sense with a single agent, and I guess anarchism would just have an apple shoot you for violating NAP (and/or for fun).

lol, ancaps aren't anarchists although they claim to be

I think it's fair to say they are, although I included the "(and/or for fun)" to cover the usual kind of anarchy.

optimism! LOL!

Existentialism performed exactly like I imagined. Endless banality of reality symbolized by continuing borders.

I had to switch it off because I started to project myself to this small square pixel that elongates in the backdrop of pitch dark oblivion staring back into my empty soul.

You must be a true Existentialist then. I quickly committed suicide out of curiosity.

"Il n'y a qu'un problème philosophique vraiment sérieux: c'est le suicide" I guess.

A true Existentialist marvels at the thought of having the option of choosing the time, place and method of erasing oneself.

But the instance suicide is committed, he is no longer an existentialist.

It's better to be an existentialist as long as possible. Even if it becomes absurd. To maintain life is to maintain my philosophy. Suicide is forfeiture of the very thing existentialists cling on to-their ego created as a defence mechanism against all man created banalities.

p.s. I am talking out of my ass.

I wanted to stop, but suicide didn't even cross my mind...


Game URL from author's site:


Life is meaningless!

Site doesn't load without javascript.

You're welcome to create a CSS-only version, since CSS is Turing complete ;)


Applications are open for YC Winter 2023

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact