Archive for the 'Video Games' Category

He Never Showed Up

Saturday, May 4th, 2013

For the #PPHSJAM dating sim jam, I made a dating simulation.

Arrow keys to move, press “A” for hammer attack.

Download

Transgender Day of Visibility 2013: Twine Jukebox

Tuesday, March 26th, 2013

This past Saturday I participated in an event called the Transgender Day of Visibility at the DeFrank Center here in San Jose. Part of the event was showcasing art by transgender artists, and for the second year in a row the organizer Lance Moore asked me to curate a selection of video games made by trans* indies. This year, along with Lim by Merritt Kopas and my own Sweet Nothings collection, I decided to set up a computer loaded with text-based adventure games made in Twine. We wound up with a collection of 23 games by 10 authors, covering adventure games, personal stories, poetry, porn, and at least one simulation of being devoured by a computer. The games all run in a web browser, so you can play them yourself right now:

Play

Big thanks to Porpentine for helping me assemble the collection.

Sweet Nothings

Thursday, January 31st, 2013

A collection of small art/music toys I’ve made over the last six months. Some are interactive, some are not. Included are “Brainfarm”, “CS/1″, “Devil’s Chord”, “A Cube for You”, “pxswap()” and “Sun Sets”.

Download

All of these are improved versions of things previously posted on my anti-games page. I made the collection to submit to something called the “Experimental Gaming Workshop”.

Customer testimonials

“WHAT IS THIS MACHINE” — Porpentine, Rock Paper Shotgun

“I wonder if second one is broken; I’m not sure what the expected behavior is but the sound is static and only part of the screen animates…” — Hannah Greenwood

“Please turn that off, it’s really loud.” — Diana Heideman

A Game of the Year 2012 Poll: Results

Wednesday, January 30th, 2013

CLICK HERE TO JUMP TO THE PRETTY COLOR-CODED FULL RESULTS

This explanation will look a lot like that of previous years, but:

Every year since 2004 I’ve been hosting this Game of the Year poll for the users of some forums I read. There are a lot of GOTY polls out there, but this one I think is kind of special. Most polls, you’re given a list of four or five options and you’re asked to pick the one you liked best. This poll, people are given a list of a couple of hundred options, consisting of every new game released in the previous year– and asked to rate their top ten or twenty.

This does a few interesting things. First off, we get to see all the information about what people’s second, third etc choices are. Second off, because the second, third etc choices count, people are more likely to vote for the game they want to win, rather than the game they think is likely to win– they’re less likely to engage in “strategic voting”. Finally, because we have all this information, we’re actually able to provide somewhat reasonable rankings for something like the top hundred or so games of last year.

The full results– showing the exact number of voters who ranked each game first, second, third place etc– can be found here. In the meantime, the final results were:

  1. The Walking Dead (3440) *** GAME OF THE YEAR ***
  2. XCOM: Enemy Unknown (3022)
  3. Mass Effect 3 (2730)
  4. FTL: Faster Than Light (2676)
  5. Borderlands 2 (2671)
  6. Dishonored (1625)
  7. Hotline Miami (1551)
  8. Journey (1532)
  9. Diablo 3 (1480)
  10. Sleeping Dogs (1465)
  11. Mark of the Ninja (1436)
  12. Spec Ops: The Line (1352)
  13. Far Cry 3 (1313)
  14. Xenoblade Chronicles (1195)
  15. Torchlight 2 (1191)
  16. Guild Wars 2 (1113)
  17. Frog Fractions (1078)
  18. Assassin’s Creed 3 (994)
  19. Halo 4 (868)
  20. Legend of Grimrock (757)

The numbers in parentheses are the final scores each game got under the poll’s ranking system. Thanks if you voted, and some more elaborate analysis of the results (plus an explanation of the scores) can be found below.

NOTEWORTHY WINNERS

  • GOTY 2012:

    #1, The Walking Dead

  • Top-ranked PC Exclusive:

    #4, FTL: Faster than Light

  • Top-ranked PS3 Exclusive:

    #8, Journey

  • Top-ranked game for a Console Download Service:

    #8, Journey

  • Top-ranked Wii Exclusive:

    #14, Xenoblade Chronicles

  • Top-ranked Browser Game:

    #17, Frog Fractions

  • Top-ranked 360 Exclusive:

    #19, Halo 4

  • Top-ranked WiiU Exclusive:

    #27, New Super Mario Bros. U

  • Top-ranked 3DS Exclusive:

    #36, Kid Icarus: Uprising

  • Top-ranked Vita Exclusive:

    #71, Gravity Rush

  • Top-ranked Smartphone Exclusive:

    #91, SpaceTeam

  • Top-ranked RPG:

    #3, Mass Effect 3

  • Top-ranked “Indie” Game:

    #4, FTL: Faster than Light

  • Top-ranked FPS:

    #5, Borderlands 2

  • “Cult” Award (see below):

    #14, Xenoblade Chronicles

  • Top-ranked H-Game?

    #72, Katawa Shoujo

NOTEWORTHY LOSERS

  • Best game of 2012 which somehow nobody considered to be their #1 pick: #25, Penny Arcade: On The Rain-Slick Precipice of Darkness 3
  • Worst game of 2012 that at least one person considered their #1 pick: Three-way tie between three games tied for the #260 slot: “Carrier Command: Gaea Mission”; “OFF”; and NCAA Football 13. Each of these games got only one vote, but each of these voters considered it their game of the year.
  • Worst game of 2012: Two-way tie between the games tied for #331: “War of the Human Tanks” and Fingle. Both of these games scored only one vote each, each from someone who considered it their 20th best game of the year.

There were a whole 57 games on the nominations list that no one voted for at all.

ALTERNATE SCORING METHODS

The rankings listed above are based on a version of the Borda count voting method. Each vote cast for a game gives that game a certain number of points. If someone ranks a game #1, that game gets 20 points. If they rank it #2, the game gets 19 points. If they rank it #3 the game gets 18 points… and so on. I have a script that checks a couple of alternate ways of ranking the same data, though.

For example, if we rank games only by the number of first place votes they got, the top three remain the same but the rest of the list changes dramatically, with a whole bunch of indie games suddenly in the top 20. I bolded entries that are different in the first-place-votes count:

First Past the Post

  1. The Walking Dead (70)
  2. XCOM: Enemy Unknown (48)
  3. Mass Effect 3 (33)
  4. Xenoblade Chronicles (28)
  5. Borderlands 2 (26)
  6. Journey (23)
  7. Dishonored (18)
  8. FTL: Faster Than Light (16)
  9. Hotline Miami (15)
  10. Guild Wars 2 (13)
  11. Sleeping Dogs (12)
  12. Spec Ops: The Line (11)
  13. Dragon’s Dogma (9)
  14. Crusader Kings II (8)
  15. Hexagon / Super Hexagon (6)
  16. Halo 4 (6)
  17. Far Cry 3 (6)
  18. Dustforce (5)
  19. Fez (5)
  20. Zero Escape: Virtue’s Last Reward (4)
  21. Planetside 2 (4)
  22. Kid Icarus: Uprising (4)

Most years when I look at the first-past-the-post list a “cult” game emerges that received very few overall votes, but where an overwhelming percentage of those votes were #1 votes (I think of this as the “Persona award”); this year the standout seems to be XenoBlade Chronicles, which was at a pretty okay #14 in the normal rankings but skyrockets to #4 in the FPTP rankings. Also of possible note here are Dragon’s Dogma, which jumped from #24 to #13, and “Zero Escape: Virtue’s Last Reward”, a game I’ve honestly never heard of, which jumped all the way up from #57 to tie for twentieth place.

I also did two more ways of sorting the rankings: an “approval” vote, where nothing is counted except the number of votes a game received (i.e. a first-place and a twentieth-place ranking count the same– all the matters is if the game was on someone’s list); and an instant runoff vote. Your eyes are probably starting to glaze over at this point, so again I bolded the places where these two votes differ from the official rank.

Approval

  1. The Walking Dead (194)
  2. FTL: Faster Than Light (180)
  3. XCOM: Enemy Unknown (175)
  4. Borderlands 2 (171)
  5. Mass Effect 3 (170)
  6. Diablo 3 (110)
  7. Dishonored (106)
  8. Hotline Miami (103)
  9. Mark of the Ninja (102)
  10. Sleeping Dogs (97)
  11. Journey (93)
  12. Spec Ops: The Line (93)
  13. Frog Fractions (89)
  14. Torchlight 2 (88)
  15. Far Cry 3 (87)
  16. Assassin’s Creed 3 (80)
  17. Xenoblade Chronicles (74)
  18. Guild Wars 2 (74)
  19. Halo 4 (60)
  20. Legend of Grimrock (58)
IRV

  1. The Walking Dead (3440)
  2. XCOM: Enemy Unknown (3022)
  3. Mass Effect 3 (2730)
  4. Borderlands 2 (2671)
  5. FTL: Faster Than Light (2676)
  6. Dishonored (1625)
  7. Hotline Miami (1551)
  8. Diablo 3 (1480)
  9. Journey (1532)
  10. Sleeping Dogs (1465)
  11. Mark of the Ninja (1436)
  12. Spec Ops: The Line (1352)
  13. Far Cry 3 (1313)
  14. Frog Fractions (1078)
  15. Xenoblade Chronicles (1195)
  16. Torchlight 2 (1191)
  17. Assassin’s Creed 3 (994)
  18. Guild Wars 2 (1113)
  19. Halo 4 (868)
  20. Legend of Grimrock (757)

FINALLY: PER-FORUM BREAKDOWNS

As mentioned before, this poll mostly exists for a handful of video game forums where some people I know post. Since a few years ago when I started posting the results on this blog, I’ve tried to actually run some extra results, in each case counting only those voters who– as far as one could tell from looking at the logs– had come to the poll from one particular forum or other.

So, here you have it– these numbers aren’t totally accurate because my logging method is not entirely trustworthy, but here’s an approximate by-forum breakdown of these results. Links go to color-coded full listings.

Penny Arcade Forums (306 voters)

  1. The Walking Dead
  2. XCOM: Enemy Unknown
  3. Mass Effect 3
  4. Borderlands 2
  5. FTL: Faster Than Light
  6. Dishonored
  7. Spec Ops: The Line
  8. Sleeping Dogs
  9. Far Cry 3
  10. Diablo 3
  11. Mark of the Ninja
  12. Hotline Miami
  13. Xenoblade Chronicles
  14. Journey
  15. Guild Wars 2
  16. Torchlight 2
  17. Assassin’s Creed 3
  18. Halo 4
  19. Crusader Kings II
  20. Penny Arcade OTRSPOD 3

Tigsource.com (33 voters)

  1. Hotline Miami
  2. FTL: Faster Than Light
  3. La Mulana
  4. Borderlands 2
  5. Spelunky HD
  6. The Walking Dead
  7. Journey
  8. XCOM: Enemy Unknown
  9. Fez
  10. Diablo 3
  11. Legend of Grimrock
  12. Hexagon / Super Hexagon
  13. Call of Duty Black Ops 2
  14. Katawa Shoujo
  15. Dishonored
  16. Lone Survivor
  17. Spec Ops: The Line
  18. Rhythm Heaven Fever
  19. Frog Fractions
  20. Offspring Fling!
Platformers.net (34 voters)

  1. The Walking Dead
  2. XCOM: Enemy Unknown
  3. Borderlands 2
  4. Xenoblade Chronicles
  5. Frog Fractions
  6. FTL: Faster Than Light
  7. Mark of the Ninja
  8. Pokemon Black and White 2
  9. Kid Icarus: Uprising
  10. New Super Mario Bros. U
  11. Journey
  12. Sleeping Dogs
  13. Persona 4 Arena
  14. Dishonored
  15. Asura’s Wrath
  16. Diablo 3
  17. Theatrhythm: Final Fantasy
  18. Final Fantasy XII-2
  19. Torchlight 2
  20. Dustforce
My own personal blog and twitter (48 voters)

  1. Hexagon / Super Hexagon
  2. Frog Fractions
  3. Dys4ia
  4. Journey
  5. FTL: Faster than Light
  6. The Walking Dead
  7. Corrypt
  8. Mass Effect 3
  9. Hotline Miami
  10. Analogue: A Hate Story
  11. Thirty Flights of Loving
  12. Dear Esther
  13. Dustforce
  14. Dyad
  15. Mark of the Ninja
  16. Spelunky HD
  17. XCOM: ENemy Unknown
  18. Borderlands 2
  19. Tokyo Jungle
  20. Botanicula
 

Responsibilities

Monday, December 17th, 2012

This is a game I made with Liz Ryerson. I programmed and Liz did all the actual work. We made this for Ludum Dare 25, the 72-hour jam; the theme was “You Are The Villain”. I shall leave it up to you if it fits that theme or not. It is very mysterious. Only Liz knows what it means for sure.

Download

You can find the Ludum Dare competition entry page for the game here.

This game requires an OpenGL 2.0 compatible computer to run.

The World Hates You

Monday, August 27th, 2012

Made in 48 hours for the Ludum Dare 24 competition– theme: “evolution”. Accordingly, this game uses an evolutionary algorithm to generate the hardest platformer levels possible. As you play, the game reports back your progress over the internet to a server which breeds the hardest levels together and sends the results out to future players.

The game does not have a win condition. The purpose of this game is not to be won. The purpose of this game is to get progressively better at killing you.

Download

You can find the Ludum Dare competition entry page for the game here.

This game requires an OpenGL 2.0 compatible computer to run.

Polyconsole: This is how I make games now

Sunday, August 12th, 2012

About a year ago, Ivan Safrin released his personal game engine under the name Polycode. I was impressed enough I began adopting the engine for all my personal game projects. However, a year after the release, it’s clear to me that although Polycode is a promising, powerful engine, it’s very hard to get started with. In hopes of doing something about this, I’ve got my own variant of the Polycode tools, which I would like to share with you. Using the tools below in place of the official Polycode distribution hopefully will make it easier to get started; make it easier to integrate Lua and C++ in a single game; and give you a much more up-to-date copy of Polycode than the (fairly out of date) one on the official website.

Below are three options– depending on exactly how dirty you want your hands to get– for using Polyconsole (my toolset). Each option includes support for Mac, Windows and Linux game development (although with options 2 and 3, there are currently complications for Windows users).

What’s this now?

Polycode is a general game engine with support for C++ and Lua. It supports a broad range of features out of the box, including pixel shaders, 2D and 3D physics via Box2D and Bullet, and the standard niceties like resource management and xml serialization. Support for networking, mobile devices, and a Stencyl-like IDE are being worked on and hopefully will be eventually added.

Polyconsole is my personal toolset for using Polycode– technically Polyconsole is an alternative to the “Polycode Player”, which is the official way to write Lua programs with Polycode. Polyconsole basically just loads a game written in Lua and runs it, along with a realtime Lua console for testing stuff out while you play:

If you run your game in Polyconsole you’ll also have access to some utilities I added that aren’t in standard Polycode, like a 2D scene loader for SVG files which you can make in Inkscape:

Here completely within Inkscape I’ve drawn a little 2D physics scene, set weights and such for the various objects, and in the case of the one red ball at the top I added a Lua collision handler (it prints “Bang!”). On the right you can see the aftermath where Polyconsole has loaded all this up.

These are simple examples, but I’ve used this basic framework to make some complex and varied things very rapidly. Here’s some stuff I’ve made with Polycode and Polyconsole this year:


So, how does one use this?

Option 1: I don’t know what “compiling” is, I just want to make games

Below you can download prebuilt versions of Polyconsole for Mac, Windows and Linux, and just start writing games with Lua:

How to use this

Polyconsole loads the game it’s running out of a file named “media.pak” (actually a zip file) in its internal resources. It has a mod system though, whereby if it sees a file named “mod.zip” or a directory named “mod” in the same directory with it, it will selectively replace the files in media.pak with the “mod” files.

The version of Polyconsole above is set up so you can just write a whole game in the “mod” directory. In this package, the “mod” directory is preloaded with the contents of the sample program in media.pak. The package also has two extra magic files set up for you: “settings.xml” and “debug.xml”. The settings.xml lets you set the size of the window Polyconsole runs in. (Without this file, the game will just run full screen.) The debug.xml on the other hand, just by being there, causes Polyconsole to run in debug mode. This means you can access the Lua console, by hitting tab and then typing (you can hit tab again to hide it). Also in debug mode if you hit “esc”, all the current scripts, textures, images etc will be reloaded immediately from disk.

If you open up the mod/media directory included along with this Polyconsole, you’ll find the following:

init.txt: This describes the initial “room” that Polyconsole loads.
example.svg: This is the little sample physics scene in the demo.
material/: This directory contains textures and shaders, and the basic.mat xml file that describes them.
overlay/: This directory contains all your Lua.

Games in Polyconsole are made up of what I call “overlays” and “rooms”. An “overlay” is just a little package of Lua code– it contains one Lua script to run when the overlay loads, one Lua script to run when the overlay is closed, and one Lua script that runs once per frame as long as the overlay is up. A “room” on the other hand is a list of overlays and SVG files which Polyconsole loads all in a bunch. So for example in an average game I might have one room for the title screen, one room for the game over screen, and one room for the game itself. Alternately I could make each level its own room, if that makes more sense for the game. The sample Polyconsole program linked above contains only one room, which (as you can see if you look in init.txt) loads an overlay named “game” containing the code for the demo, the example.svg that describes the 2D scene, and standard “startup” and “shutdown” overlays. (You’ll always want to make the standard startup overlay the first thing in a room spec and the shutdown overlay the last thing in a room spec, because these are used by Polyconsole’s memory management.)

So to very quickly get started with Polyconsole you can download one of the above packages; open the exe; and while it’s running, open the mod/media/overlay/game folder and edit the onLoad and onUpdate scripts included within. Then whenever you change a line, you can go back to the program and hit “esc” to see your changes. (If it didn’t work, you can hit “tab” to see the console, where any errors will be printed.)

If you want to know how to write Polyconsole code, the following documentation should be helpful:

There’s also a rudimentary help system built into Polyconsole if you type help() at the console prompt.

You can find examples of Polyconsole code by looking at any of my games since “Markov Space”, or skimming of my in-development games I haven’t finished yet. They’re all built with this framework, and they all come with source code (and even if they weren’t, you could pull out the lua source just by pulling out the media.pak and unzipping it). Some of these are under no-commercial-use licenses, but if there’s something you want to copy out of one of my games just let me know and I can relicense it.

When you’re done

If you decide to write a game as a mod folder, once you’ve completed your game you can do the following to make something releaseable:

  • Zip up the mod folder into a “mod.zip” file, and remove the “mod” folder itself
  • Remove the settings.xml and debug.xml files
  • Change the names in the Readme
  • Rename “Polyethylene” to something not stupid

And you’ve got a game! You can then port your game to [Mac, Windows, Linux] by downloading one of the other two packages above that you didn’t install, and dropping the mod.zip in.

Option 2: I want to combine C++ and Lua in a single program

Writing these Lua mods will only get you so far, though. To me the entire appeal of Polycode in the first place is that I could write a game in Lua, getting the ease of use of something like Flashpunk– but if I really *needed* the power of C++, I could write C++ extensions that did whatever strange thing I wanted. I’m not restricted by what the developers of the VM or the browser plugin or whatever thought to put in, because Polyconsole is the Lua “VM” effectively and I control that. If you want to do this too, you’ll need to compile your own copy of Polyconsole.

To make that easier, here’s the source code to Polyconsole, packaged in each case with a complete build of the Polycode library. (The source is identical between the three versions, the difference between the three versions is which version of Polycode is included.)

With complications? Wait, what’s that about? Well, there’s a problem with the Windows version right now. Most people writing C++ software for Windows use Microsoft Visual Studio. But I don’t have a copy of Windows, so I don’t use Visual Studio. Instead, I use MinGW, which is an open source compiler that makes Windows exes and can be run on any operating system you like.

But: It turns out that if you have a library built with MinGW, it can’t be used with Visual Studio, or vice versa. Worse, not only are MinGW and Visual Studio incompatible, but each individual version of MinGW is incompatible with every other! So, the Windows Polycode I have linked above was made with MinGW32 version 4.3.0. That means you can only compile that version of Polyconsole with MinGW32 4.3.0– nothing else. (The actual, final .exe games made with this system will run on any Windows machine.)

So I’ve got a list of instructions I wrote up for how to install MinGW, MSYS and Python so you can compile Polyconsole on Windows, but when I got someone to test them, they didn’t work– because you can’t get an installer for MinGW32 4.3.0 on Windows anymore, and the versions accessible with their snazzy new mingw-get system aren’t compatible with 4.3.0. I’m working very hard on trying to find a solution for this– I need to either get a modern version of MinGW32 that runs on Mac or Linux, or I need to get an installer of MinGW32 4.3.0 for Windows I can give you, or I need to get a copy of Windows so I can just build the darn thing with MSVC. When I’ve figured out a solution, I’ll come back here and post it– any suggestions you might have are welcome. But I don’t have a solution yet. Sorry.

In the meantime, hilariously, you can build a Windows version of Polyconsole with the Windows package linked above– if you have a Macintosh. You just have to run the MinGW-for-Mac installer linked here. (This is what I do with my own games.)

How to use this

The first and most important thing I can tell you is use version control. Take that whole package you just downloaded and add all the files to a hg or git repository. Otherwise, the game bits you wrote will get all mixed in with the Polyconsole code, and it will be really, really hard to remember what you changed or upgrade to a different version of Polyconsole if you want to do that later. If you don’t know how to use hg or git, on Windows you can make this really really easy by downloading the Tortoise programs. On Mac or Linux, you can just go to the Polyconsole directory in the Terminal and run: hg init .; hg add .; hg commit -m "Initial"

With that out of the way, assuming you can even install the appropriate compiler, the rest is pretty easy. If you’re on a mac, open PolycodeTemplate.xcodeproj and build and run. If you’re in the Windows version, navigate to package/win and run make. If you’re in the Linux version, navigate to package/lin and run make.

The one other thing you do need to know is how to add C++ functions that are callable from Lua. When you build Polyconsole, it will run a script that’s part of Polycode called create_lua_library that will suck out parts of your program and make them visible to Lua. You need to tell it which parts of the program are supposed to be Lua-visible. To do this, you need to edit the file lua_visible.txt in the base of the repository to add the names of every header file you want the script to look in, and also edit media/project_classes.txt to add the names of any classes you want Lua to be able to use. You don’t want to just add all your header files to lua_visible.txt, by the way, because create_lua_library can sometimes get confused if you try to feed it overly fancy stuff.

Mostly, I don’t mess with that and I just add methods to the one class that’s already set up in there to be visible to lua– “project_bridge”. This is found in source/bridge.cpp and source/bridge.h; at startup, Polyconsole sets up an object of type project_bridge visible to Lua under the name “bridge”. So you can just add a new method void arglebarf() {} to bridge.h, recompile, and suddenly Lua code will be able to call bridge:arglebarf().

When you’re done

The makefiles attached to these packages make complete finished versions of Polyconsole, so there you’re pretty much done. On mac though you’ll want to run ./package/pkg_mac.sh from the project root to make a “Release” version with a readme and pretty stuff.

You also might want, before you compile, to run this magical perl oneliner which will rename the sample program from “Polyethylene” to something more sensible:

perl -p -i -e 's/Polyethylene/YourGameNameHere/g' * */* */*/* */*/*/* */*/*/*/*

Option 3: I want to do everything myself

What I originally intended with Polyconsole was that instead of writing a mod to this “Polyethylene” example program, or having to download a whole compiled version of Polycode from me, was that Polyconsole should just download and compile Polycode for you for all the different operating systems you want to support. You can still get this, if you download Polyconsole from the Bitbucket page.

There’s rather a lot of documentation at the Bitbucket page explaining how this works, but basically, I wrote a little program called manage.py that automates building Polycode; and makes it easy to make your own modifications to Polycode by keeping a binary cache of Polycode versions you’ve previously built, and keeping track of which Polycode version goes with which SCM checkin. Unfortunately, in practice the script wasn’t nearly as easy to use as I’d hoped, and when people tried to run it on their own computers unexpected things went wrong. (Also, it doesn’t work at all on Windows right now, although I think someday it will.) So unless you think you’re willing to tinker a bit and debug CMake problems if something goes wrong, you might be better off downloading one of the Option 2 packages above.

TODOs and alternatives

So: This is still all in progress. This is all a little jumbled. I’ll be continuing to make improvements to this. Here are the things at the top of my To Do list:

  1. I need better Windows support.
  2. This should all be documented more cleanly than it is.
  3. Rooms should be able to include 3D physics scenes– not just 2D ones.
  4. A lot of little features and cleanup are needed. Right now Polycode programs crash when you run them on a computer with an OpenGL 1.x video card; these should be supported, or at give you a polite error message. There should be an onClick handler for overlays. I think vsync is broken on Windows. There should be an option to use PortAudio for sound or at least do realtime-generated sound with OpenAL. And so on.

If you’re interested in helping push along Polycode development yourself, Polycode’s github page is here (my fork is the one marked “mcclure”) and as linked above I have a BitBucket project for Polyconsole here.

My goal here is to make something people can actually sit down with and use for development. So if you feel what’s linked above isn’t enough to be a usable development starting point in your view, feel free to post below and let me know what you think is missing.

In the meanwhile, you also may want to be aware of these alternatives to Polycode:

  • Gameplay3D– Haven’t used this but this is something RIM released, it seems to have many of the same features as Polycode including Lua scripting support and it supports mobile.
  • Panda3D– Haven’t used this either, again offers about the same features as Polycode, seems a lot more heavyweight than either Polycode or Gameplay3D but also very complete.
  • Unity3D– This is the gold standard in this kind of engine right now, and unlike Gameplay3D or Panda3D I’ve actually seen indie games using it. It is a little larger in scale, it comes with a VM so that you can run code written in C# or Javascript in it and it has a fancy IDE with a built in scene and 3D model editor. However, unlike everything else on this page, it is closed source and costs MONEY.
  • Love– This is a 2D-only, Lua-only game engine. I’ve heard really good things about it, and it will definitely be simpler than Polycode.
  • Jumpcore– This doesn’t much resemble the other items on this list, I link it only because I made it. This was what I used to make games before Polycode. It’s a really stripped-down, C++-only library that’s really more just a wrapper for porting SDL games to iPhone/Android, but if you are looking for a simple C++ starting point this might be useful for you.
  • Flashpunk and Flixel– These are some great 2D gaming Flash libraries. They offer programming interfaces like Polycode’s, but they’re really mature and have really strong communities. Since they’re Flash, you’re limited to what Flash can do and where Flash can run, but that’s increasingly “everything” and “everywhere”. I’ve got some brief experience with FlashPunk and liked it.
  • Pixie– Also a little different from the other listed items, but: These guys wrote a Stencyl-style editor for HTML5 games, in HTML5, so you can make a tiny game on their website and upload it right there. It seems really cool.

That’s all I’ve got

Luanauts

Wednesday, August 1st, 2012

This is a video game where the only way to interact with it is to write and execute Lua source code.

Download


I made this back at the beginning of the year for a Super Friendship Club event, but at the time didn’t release it because I was trying to decide whether to expand on it. I think I’ve decided it’s done. The game requires an OpenGL 2.0 compatible computer to run.

I’ve been circulating this game in indie circles since I first wrote it, and to my knowledge no one has ever beat it. I got reports of a couple of people getting to level two.

Breathe

Sunday, April 22nd, 2012

Made in 48 hours for the Ludum Dare 23 competition. The game is over when the music stops.

Download

You can find the Ludum Dare competition entry page for the game here.

The game is based on this cellular automata. It requires an OpenGL 2.0 compatible computer to run.

A Game of the Year 2011 Poll: Results

Monday, January 16th, 2012

CLICK HERE TO JUMP TO THE PRETTY COLOR-CODED FULL RESULTS

This explanation will look a lot like that of previous years, but:

Every year since 2004 I’ve been hosting this Game of the Year poll for the users of some forums I read. There are a lot of GOTY polls out there, but this one I think is kind of special. Most polls, you’re given a list of four or five options and you’re asked to pick the one you liked best. This poll, people are given a list of a couple of hundred options, consisting of every new game released in the previous year– and asked to rate their top ten or twenty.

This does a few interesting things. First off, we get to see all the information about what people’s second, third etc choices are. Second off, because the second, third etc choices count, people are more likely to vote for the game they want to win, rather than the game they think is likely to win– they’re less likely to engage in “strategic voting”. Finally, because we have all this information, we’re actually able to provide somewhat reasonable rankings for something like the top hundred or so games of last year.

The full results– showing the exact number of voters who ranked each game first, second, third place etc– can be found here. In the meantime, the final results were:

  1. Portal 2 (6571) *** GAME OF THE YEAR ***
  2. The Elder Scrolls V: Skyrim (6253)
  3. Deus Ex: Human Revolution (4234)
  4. Batman: Arkham City (4134)
  5. Bastion (4094)
  6. Saints Row: The Third (2547)
  7. The Legend of Zelda: Skyward Sword (2126)
  8. Battlefield 3 (2071)
  9. Dark Souls (2034)
  10. Dead Space 2 (1681)
  11. L.A. Noire (1639)
  12. The Witcher 2: Assassins of Kings (1515)
  13. Star Wars: The Old Republic (1505)
  14. Gears of War 3 (1447)
  15. Terraria (1421)
  16. Dragon Age II (1411)
  17. Super Mario 3D Land (1261)
  18. Pokemon Black & White (1255)
  19. Ghost Trick: Phantom Detective (1170)
  20. The Binding of Isaac (1164)

The numbers in parentheses are the final scores each game got under the poll’s ranking system. Thanks if you voted, and some more elaborate analysis of the results (plus an explanation of the scores) can be found below.

NOTEWORTHY WINNERS

  • GOTY 2011:

    #1, Portal 2

  • Top-ranked Wii Exclusive:

    #7, The Legend of Zelda: Skyward Sword

  • Top-ranked PC Exclusive:

    #12, The Witcher 2: Assassins of Kings

  • Top-ranked 360 Exclusive:

    #14, Gears of War 3

  • Top-ranked 3DS Exclusive:

    #17, Super Mario 3D Land

  • Top-ranked DS Exclusive:

    #18, Pokemon Black & White

  • Top-ranked PS3 Exclusive:

    #21, Uncharted 3: Drake’s Deception

  • Top-ranked smartphone game:

    #24, SpaceChem

  • Top-ranked smartphone exclusive:

    #48, Jetpack Joyride

  • Top-ranked PSP Exclusive:

    #45, Tactics Ogre: Let Us Cling Together

  • Best FPS:

    #1, Portal 2

  • Best RPG:

    #2, The Elder Scrolls V: Skyrim

  • Best “Indie” Game:

    #5, Bastion

  • Best Game Available Through A Console Download Service:

    #5, Bastion

  • “Cult” Award (see below):

    #42, Dungeon Siege 3

  • Best Browser Game:

    #103, Escape from Puppy Death Factory

NOTEWORTHY LOSERS

  • Best game of 2011 which somehow nobody considered to be their #1 pick: #23, Magicka
  • Worst game of 2011 that at least one person considered their #1 pick: #215, Stronghold 3
  • Worst game of 2011: An incredible three-way tie between #251, Rugby Challenge; #252, “Leedmees” (??) and #253, Fishing Resort for Wii. (Each of these games scored only one vote each, each from someone who considered it their 19th best game of the year.)

There were 22 games on the nominations list no one voted for at all.

ALTERNATE SCORING METHODS

The rankings listed above are based on a version of the Borda count voting method. Each vote cast for a game gives that game a certain number of points. If someone ranks a game #1, that game gets 20 points. If they rank it #2, the game gets 19 points. If they rank it #3 the game gets 18 points… and so on. I have a script that checks a couple of alternate ways of ranking the same data, though.

For example, if we rank games only by the number of first place votes they got, we get a wildly different list, with a different first place winner and lots of games listing that weren’t anywhere near the top 20:

First Past the Post

  1. The Elder Scrolls V: Skyrim (141)
  2. Portal 2 (92)
  3. Batman: Arkham City (50)
  4. Dark Souls (41)
  5. The Legend of Zelda: Skyward Sword (31)
  6. Deus Ex: Human Revolution (29)
  7. Saints Row: The Third (25)
  8. Bastion (24)
  9. Battlefield 3 (17)
  10. The Witcher 2: Assassins of Kings (16)
  11. Star Wars: The Old Republic (16)
  12. Ghost Trick: Phantom Detective (11)
  13. Gears of War 3 (10)
  14. Uncharted 3: Drake’s Deception (10)
  15. Terraria (9)
  16. Dead Space 2 (8)
  17. Dungeon Siege 3 (6)
  18. The Binding of Isaac (6)
  19. Bulletstorm (5)
  20. Pokemon Black & White (5)

Most years when I look at the first-past-the-post list a “cult” game emerges that received very few overall votes, but where an overwhelming percentage of those votes were #1 votes (I think of this as the “Persona award”); this year actually didn’t have an incredible standout in this category, but I think the award fairly goes to Dungeon Siege 3, which scored a relatively poor #42 in the overall rankings but made it all the way to #17 counting first place votes only.

I also did two more ways of sorting the rankings: an “approval” vote, where nothing is counted except the number of votes a game received (i.e. a first-place and a twentieth-place ranking count the same– all the matters is if the game was on someone’s list); and an instant runoff vote. Your eyes are probably starting to glaze over at this point, so I bolded the places where these two votes differ from the official rank. A small observation: Although these counts usually don’t differ much from the “main” count, this year the IRV list actually looks pretty different to me, I think mostly due to the number of near ties in the official count. Witcher 2 and Star Wars TOR were only within a couple points of each other on the official list; as were Pokemon and Mario 3D Land; as were Ghost Trick, Binding of Isaac, and Uncharted 3 (barely off the list at #21). One more or fewer ballots for any of these games would have changed the rank order. Another small observation: 670 people voted this year. Not only did more than half place some sort of vote for Portal 2, independently counted more than half placed some sort of vote for Skyrim.

Approval

  1. Portal 2 (379)
  2. The Elder Scrolls V: Skyrim (345)
  3. Bastion (267)
  4. Deus Ex: Human Revolution (264)
  5. Batman: Arkham City (247)
  6. Saints Row: The Third (155)
  7. The Legend of Zelda: Skyward Sword (134)
  8. Battlefield 3 (133)
  9. L.A. Noire (132)
  10. Dark Souls (120)
  11. Dead Space 2 (114)
  12. Dragon Age II (107)
  13. Terraria (106)
  14. Gears of War 3 (101)
  15. The Witcher 2: Assassins of Kings (96)
  16. Star Wars: The Old Republic (94)
  17. Bulletstorm (90)
  18. Pokemon Black & White (90)
  19. Magicka (90)
  20. Super Mario 3D Land (85)
IRV

  1. The Elder Scrolls V: Skyrim
  2. Portal 2
  3. Batman: Arkham City
  4. Deus Ex: Human Revolution
  5. Bastion
  6. Saints Row: The Third
  7. The Legend of Zelda: Skyward Sword
  8. Battlefield 3
  9. Dark Souls
  10. L.A. Noire
  11. Dead Space 2
  12. The Witcher 2: Assassins of Kings
  13. Gears of War 3
  14. Terraria
  15. Star Wars: The Old Republic
  16. Dragon Age II
  17. The Binding of Isaac
  18. Pokemon Black & White
  19. Magicka
  20. Uncharted 3: Drake’s Deception

FINALLY: PER-FORUM BREAKDOWNS

As mentioned before, this poll mostly exists for a handful of video game forums where some people I know post. Since a few years ago when I started posting the results on this blog, I’ve tried to actually run some extra results, in each case counting only those voters who– as far as one could tell from looking at the logs– had come to the poll from one particular forum or other.

So, here you have it– these numbers aren’t totally accurate because my logging method is not entirely trustworthy, but here’s an approximate by-forum breakdown of these results. Links go to color-coded full listings.

Penny Arcade Forums (516 voters)

  1. The Elder Scrolls V: Skyrim
  2. Portal 2
  3. Deus Ex: Human Revolution
  4. Batman: Arkham City
  5. Bastion
  6. Saints Row: The Third
  7. Battlefield 3
  8. The Legend of Zelda: Skyward Sword
  9. Dark Souls
  10. The Witcher 2: Assassins of Kings
  11. Dead Space 2
  12. L.A. Noire
  13. Dragon Age II
  14. Star Wars: The Old Republic
  15. Terraria
  16. Gears of War 3
  17. Pokemon Black & White
  18. Uncharted 3: Drake’s Deception
  19. Bulletstorm
  20. Ghost Trick: Phantom Detective

Tigsource.com (42 voters)

  1. Portal 2
  2. Dark Souls
  3. The Binding of Isaac
  4. The Elder Scrolls V: Skyrim
  5. Bastion
  6. Deus Ex: Human Revolution
  7. Terraria
  8. Escape from Puppy Death Factory
  9. Jamestown
  10. Frozen Synapse
  11. Magicka
  12. Superbrothers: Sword and Sworcery EP
  13. The Legend of Zelda: Skyward Sword
  14. Dungeons of Dredmor
  15. Hyper Princess Pitch
  16. Treasure Adventure Game
  17. Batman: Arkham City
  18. SuteF
  19. Inside a Star-Filled Sky
  20. Don’t Take it Personally, Babe, it Just Ain’t Your Story
Platformers.net (32 voters)

  1. Portal 2
  2. Bastion
  3. Deus Ex: Human Revolution
  4. The Legend of Zelda: Skyward Sword
  5. Super Mario 3D Land
  6. Marvel v Capcom 3
  7. The Elder Scrolls V: Skyrim
  8. Mario Kart 7
  9. Batman: Arkham City
  10. Ghost Trick: Phantom Detective
  11. Saints Row: The Third
  12. Pokemon Black & White
  13. The Binding of Isaac
  14. Catherine
  15. Dark Souls
  16. Radiant Historia
  17. Gears of War 3
  18. Bulletstorm
  19. Professor Layton and the Last Specter
  20. Jamestown

Thearcadians.net (27 voters)

  1. Batman: Arkham City
  2. Portal 2
  3. The Elder Scrolls V: Skyrim
  4. Gears of War 3
  5. Forza Motorsport 4
  6. Battlefield 3
  7. Saints Row: The Third
  8. Uncharted 3: Drake’s Deception
  9. Dead Space 2
  10. Bastion
  11. Warhammer 40,000k: Space Marine
  12. L.A. Noire
  13. Deus Ex: Human Revolution
  14. Star Wars: The Old Republic
  15. NHL 12
  16. Pokemon Black & White (DS)
  17. You Don’t Know Jack 2011
  18. Assassin’s Creed: Revelations
  19. NBA 2K12
  20. The Legend of Zelda: Skyward Sword
This blog you are reading right now (19 voters)

  1. Portal 2
  2. Batman: Arkham City
  3. Deus Ex: Human Revolution
  4. The Elder Scrolls V: Skyrim
  5. Ghost Trick: Phantom Detective
  6. Gears of War 3
  7. Star Wars: The Old Republic
  8. Bastion
  9. Magicka
  10. Dragon Age II
  11. Catherine
  12. Battlefield 3
  13. Pokemon Black & White
  14. Shadows of the Damned
  15. Assassin’s Creed: Revelations
  16. Bulletstorm
  17. L.A. Noire
  18. Atom Zombie Smasher
  19. Total War: Shogun 2
  20. Where’s My Water?