Skip to content
a Complicated Interface Game; play at your peril.

Opera Omnia

A small/medium-sized though still rather experimental effort.

Download Windows (6.4mb)
Download OSX 10.5+ (Intel) (6.4mb)
Download source (112kb)



Tommo Zhou, of indie-g, has made a chinese translation of the game into blitzmax. It can be downloaded from this page on his site. I’m hosting copies here as well:

Windows (Chinese) (4.4MB)
Source (Chinese) (14KB)

I did not oversee the translation; the work should be taken on its own merit.

Technically, this is, like, a pre-release; I anticipate I might change a couple of interface things over the next couple of days, but the game itself is done.
EDIT: finished version up, along with source

EDIT: Okay, that wasn’t finished. In fact, it was a bit broken. Now it’s finished.
EDIT: now XP64-compatible.
EDIT: new version released…some slight polishing done…
EDIT(24 mar): new version released (1.25); fixed level 18 bug (I hope), and some other small issues


  1. Halsted wrote:

    Really nice little game. I love the central mechanic and it’s one of the better marriages of story and mechanics I’ve seen in a little while now.

    Thursday, March 5, 2009 at 6:37 pm | Permalink
  2. J. Stoever wrote:

    I’m afraid it’s broken. Mission 18 requires me to have “less than 0” others in all the cities. Obviously, that’s both physically and theoretically impossible ;)

    Sunday, March 15, 2009 at 1:59 pm | Permalink
  3. ah, that’s a problem with wording (and, well, a problem with something else). You’ll *probably* be able to finish the level if you read ‘less than 0’ as ‘less than 1’. i’ve been meaning to issue an update (in which it is fixed), but have been preoccupied with several tasks recently. I’ll update this post whenever I get around to uploading it.



    Sunday, March 15, 2009 at 7:09 pm | Permalink
  4. J. Stoever wrote:

    No, tried that. The map makes absolutely no sense either way, as nothing you can do would change the outcome. At the end, you always end up with a total of 2 others, either in one city or spread over two cities (and sometimes, it shows 2 total, 1 in 1 city, and 0 in all the other cities).

    Happy to help you debug. Fun game, although the story so far disturbs me.

    Sunday, March 15, 2009 at 8:56 pm | Permalink
  5. TPIRman wrote:

    Keep trying, J. Stoever. It is possible to pass level 18 and end up with less than 1 other in each city. Just because it doesn’t make sense doesn’t mean you can’t make it happen. That’s what makes the level so brilliant.

    Monday, March 16, 2009 at 5:26 am | Permalink
  6. J. Stoever wrote:

    You were right, it worked (but it didn’t make much sense). Finished the game now. I still find the story disturbing and maybe a little lost in translation. The latter missions also seemed a bit lackluster compared to a few other ones.

    All in all: good concept, decent execution, deeply lacking in ‘content’ – the missions have way more potential than is used, and the storyline is confusing at best. I think if you focus on the missions after, say, 12 or so, it could come out a great game.

    Monday, March 16, 2009 at 10:54 pm | Permalink
  7. J. Hanson wrote:

    Level 18 is simply ridiculous. Logically, if the Others appeared magically at some point in history, then their population must have increased more rapidly than Ours. But I can’t find a single cause for them having grown so quickly. Establishing migration patterns, so that Our population only moved into their city in recent years, doesn’t seem to work (If I understand correctly, the larger population in the city decreases the smaller one.

    Thinking in reverse, I have to do something to taper off their population before the end of my timeline. Mixing populations increases both of them, when looking backwards in time, so I have to make sure the Others are alone in their city. This doesn’t work. I try to concentrate Our population into a single city, and that doesn’t work either. Hardship and conflict increase their past population, so my objective is to try to separate the populations, right?

    This is the first mission that asks you to do something that is patently impossible. I always come out with two Others, occasionally spread out over three cities or more. What am I doing wrong? How can this problem be solved? Any help would be vastly appreciated.

    Friday, March 20, 2009 at 6:27 pm | Permalink
  8. Icecube wrote:


    okay, given that you asked: this level is a play on numerical approximation, that might not be as obvious to some as others.

    1) I hope you’re playing the new version I released (should say something like ‘population at X should be *less* than 1′)

    (If you’re not, you might want to make a backup of the levels/config.lua file before you copy the new version over…(that’s the save file))

    2)What you want to do is to try to divide the Others’ populations into four or five groups of equal sizes right at the start. The behind-the-scenes algorithm treats populations as continuous, rather than discrete, quantities, so you want to get them do decrease until they’re less than 1 (at which point their population will register as being 0).

    But yes, if you don’t fully get what’s going on in this level, don’t worry too much.

    Friday, March 20, 2009 at 10:29 pm | Permalink
  9. J. Hanson wrote:

    Ah! Clever! You see, I had arrogantly misinterpreted the decimalization of extrapolated people as a software limitation, but now I see that it is a clever plot device.

    Seriously, it’s a clever idea, forcing the player to sweep facts “under the bug”, as it were. All the rest of the game plays with presenting simple puzzle solutions, of which there are many for any given level, as well-researched theses, and eventually as historical fact. This is the first real outright deception the game asks you to perform. Interesting.

    But I’m not sure the medium works quite so well for this objective; most people with experience with video games are so used to the game presenting simplified abstractions of tasks that they don’t think twice about the assumption that this puzzle they’ve been asked to solve is just a stand-in for a more complicated manipulation of historical data. Because they treat the game interface as a game interface, not a futuristic historical simulation tool, I don’t think many players would understand that you have to cheat the in-world system in order to complete this level.

    I suppose the objective of “less than 0 (or 1, in the new version) in each city” is supposed to be a hint at that. I had wondered why it didn’t simply state that the total population had to be zero.

    Saturday, March 21, 2009 at 1:39 am | Permalink
  10. ack wrote:

    Hi, I’ve not played the game, as I’m trying to make it compile on linux. The source confuses me, or rather the lack of source :-)

    The first post you did on tigsource included part of the source, but not the Engine and possibly other things. The zip posted here only includes the lua and some resources and libs.

    If this is intentional :-( if it’s not :-D

    Saturday, March 21, 2009 at 9:49 am | Permalink
  11. oops. the zip file won’t even unpack for me here. I uploaded the zip again. it includes the engine code (whose omission was an oversight), as well as the other stuff (but not the resources, which are in the windows/mac builds anyway).

    You’ll need to link it against sdl, fmod ex, lua to get it to build. You’ll also need boost installed (though no special linking should be necessary).

    Good luck trying to build it; if you run into any problems, drop me a line.

    Saturday, March 21, 2009 at 12:02 pm | Permalink
  12. Colm Prunty wrote:

    I was reading the AV Club today,,25485/ and thought, hm, that name is familiar.

    Monday, March 23, 2009 at 7:04 am | Permalink
  13. hah; hey colm :)

    Monday, March 23, 2009 at 11:41 am | Permalink
  14. Andrew wrote:

    Just read the review at the AV Club… the game looks great! Any chance of making it available for Mac OS 10.4?

    Monday, March 23, 2009 at 2:32 pm | Permalink
  15. “Any chance of making it available for Mac OS 10.4?”

    Not by my hands. Someone else said they were trying to, but I’ve not heard from them recently.

    Monday, March 23, 2009 at 4:51 pm | Permalink
  16. Aroodig wrote:

    Regarding Episode 18 (spoilers, I suppose):

    On the windows version, I’ve gotten it to a point where all the populations are zero in each of the cities (I assume they exist as fractions). I just spread them out, knew to do that before I ever gave up and looked for hints. The total population still reads the same, and the game doesn’t give me the thesis button to recognize that each place is zero at time 0.

    I assume that the “less than zeros” don’t actually need to be corrected, given the comments above, but I still can’t end this level.

    I downloaded the windows version available from this site as of today, so I’m not sure there’s anything newer unless there’s a patch I missed.

    I love the premise of this game, despite my trouble with the level’s stubborn end parameter.

    Monday, March 23, 2009 at 7:06 pm | Permalink
  17. I fixed the ‘less than 0’ problem in the latest build, but I uploaded the wrong file (…oops…) . I’ll upload a newer version with some other bugfixes later on tonight.

    (I’ll update the above post when I have)

    EDIT: okay, it’s up (1.25). i was able to complete all the levels on this one anyway.

    Monday, March 23, 2009 at 8:46 pm | Permalink
  18. Alice wrote:

    Great game. I started playing this afternoon, hit the level 18 bug, lost my game when I reinstalled this evening, and then played through all the other levels to get back to 18 and then finish the game. It was that good!

    Tuesday, March 24, 2009 at 6:11 am | Permalink
  19. Chris Daniels wrote:

    I’d love to play your game, the Onion AV club looked awesome. However, when I try to run the exe I get the following error in stderr: “PANIC: unprotected error in call to Lua API (attempt to index a nil value)”. It seems like its trying to adjust my machine’s resolution for a bit and then just fails. Running WinXP Pro SP3 on Thinkpad T60 laptop. I tried adjusting my resolution manually but it didn’t help. I’m sure you have better things to do than offer tech support for a free game though. Best of luck.

    –The Dan

    Tuesday, March 24, 2009 at 9:04 pm | Permalink
  20. interesting.

    one possibly silly, but alas necessary question: are you unzipping all the files first?

    it’s not almost certainly a display problem; it sounds like a problem loading the level files.

    it’s not so much me offering tech support as you kindly assisting me with debugging my game ;P

    Wednesday, March 25, 2009 at 4:34 am | Permalink
  21. Zeb wrote:

    Only on the 18th level (after dling the correction) did the interface click for me and I felt like I was playing instead of just fumbling. And then I thought, “this is actually a great game!” Now I would like another 30 levels, please ;). I really like the music. I make a couple different programs play it at once.

    Wednesday, March 25, 2009 at 8:52 am | Permalink
  22. Aroodig wrote:

    There, it works :) Thank you! Kudos on the AV Club mention! :)

    Wednesday, March 25, 2009 at 3:45 pm | Permalink
  23. Chris Daniels wrote:

    Regarding my previous comment about the game not loading:

    “I’d love to play your game, the Onion AV club looked awesome. However, when I try to run the exe I get the following error in stderr: “PANIC: unprotected error in call to Lua API (attempt to index a nil value)”. It seems like its trying to adjust my machine’s resolution for a bit and then just fails. Running WinXP Pro SP3 on Thinkpad T60 laptop. I tried adjusting my resolution manually but it didn’t help.”

    Yes I was unzipping the files :-). I decided to use WinRAR instead of WinZip just to see if it helped and that fixed the problem. For whatever reason WinZip was extracting all the files to a completely flat directory structure with all files at the same level. WinRAR created the proper audio, levels, textures directories. The game now loads and I can’t wait to play!

    Thanks for responding though! It was enough of a response to make me try something different which did the trick in the end.

    –The Dan

    Thursday, April 2, 2009 at 9:09 pm | Permalink
  24. Any plans to port to linux (or include complete sourcecode)?

    Thursday, April 9, 2009 at 7:40 pm | Permalink
  25. i have already released complete sourcecode…

    Friday, April 10, 2009 at 8:31 am | Permalink
  26. Vagabond wrote:

    My website has written a review for this game, check it out!

    Wednesday, April 15, 2009 at 4:28 pm | Permalink
  27. Kelsey Higham wrote:

    You might want to specify that Opera Omnia only works on Intel Macs. (If you want to put together a Universal Binary, I’d be glad to test it; I really want my dad to play this.)

    Friday, April 17, 2009 at 4:48 am | Permalink
  28. Ah, you’re right. I should! And I … just have!

    I don’t have the time or effort to build/support PPC builds, alas.

    Friday, April 17, 2009 at 6:35 pm | Permalink
  29. Kelsey Higham wrote:

    I meant changing the link from “OS X 10.5+” to “OS X 10.5+ Intel” so that dudes like me don’t bother downloading it, but that works too!

    Saturday, April 18, 2009 at 5:02 am | Permalink
  30. Drat…I thought I had changed the link. Well…now I have…I hope…

    Saturday, April 18, 2009 at 11:00 am | Permalink
  31. Tommo wrote:

    I like opera omnia very much and want to make a Chinese version of it.
    Because I’m not good at C++, so to modify your code to support Chinese would be a pain for me, then I decided to rewrite the whole game in BlitzMax.
    The game is almost completed, but still some details and translations to do.
    Now I’m considering about translation to the title. I’m not very sure about what “Opera Omnia” means, I googled around but found no clear answer. Maybe you can help me?
    If you’re pleased to, please write to:
    tommo.zhou at

    Thanks in advance.

    Monday, July 6, 2009 at 5:40 am | Permalink
  32. That’s interesting, Tommo; I’d like to see it when you have it finished! [almost as much to see the translation into blitzmax as to chinese ;p ]

    Opera Omnia is a latin term meaning ‘complete works’. It’s used in particular to refer to the complete works of Thomas Aquinas or Leonhard Euler. It’s also used sometimes in music to refer to editions of the complete music of a particular composer. If there was an antique/formal word in mandarin that one could use to refer to the ‘complete works’, ‘collected works’ or even just ‘works’ of a writer/artist/composer, that would probably be good. But, I’ll leave it up to you.

    (and yes, foreign character support is unpleasant in C++ )

    Monday, July 6, 2009 at 12:20 pm | Permalink
  33. Tommo wrote:

    Get it. I’ll find a proper word for it.
    I did find the meaning of “complete work” in a dictionary before, but I was not sure.

    I wrote after your “calcSlices” in mainpart.cpp, and use your level files directly.
    But it won’t be a pleasant to read my blitzmax code, it’s just some fast dirty code. ;)

    I give Chinese names to william ,the Other and the Our, with which I hope to make the game feel more native.

    I hope it will be finished this week, I’ll let know then.

    Monday, July 6, 2009 at 1:01 pm | Permalink
  34. Player Three wrote:

    Once you hit level 2 there doesn’t seem to be a “submit” button anymore. Achieved the objection but can’t move on.

    Tuesday, January 12, 2010 at 12:40 am | Permalink
  35. Hmm. I just tried playing through it there, and it worked fine. I think, given that you’re on level two, that it’s not unlikely that you don’t quite understand the objectives yet (the submit button only appearing when they have been met).

    Tuesday, January 12, 2010 at 6:22 pm | Permalink
  36. Guillaume wrote:

    I simply could not finish episode 18 (version 1.25). No matter what, there is always a village with a least 1 person in it. I had to edit config.lua and change the number there from 63 to 70 to progress.

    Also, the mechanics of the game are broken for the scenarios with different migration speeds. For example, in episode 9 and add a migration route between two cities, it clearly shows that “our people” migrates to the new city first, and then “the others” migrate after that. However the text at the beginning of episode 18 claims it is “the others” who have a greater aptitude at migration.

    Wednesday, June 9, 2010 at 5:35 pm | Permalink
  37. Hey – thanks for your feedback.

    “I simply could not finish episode 18 (version 1.25). No matter what, there is always a village with a least 1 person in it. I had to edit config.lua and change the number there from 63 to 70 to progress.”
    I was able to finish it just there on my osx machine. I’ll try tomorrow on a windows machine[edit: just tried it on XP 64, could complete it okay]. If you can let me know what your processor/operating system is, that would help me check whether anything is going wrong on my end [but my suspicion now is that things are okay here].

    “However the text at the beginning of episode 18 claims it is “the others” who have a greater aptitude at migration.”
    This is a matter of interpretation, I think – one can take aptitude to mean speed.

    Wednesday, June 9, 2010 at 7:03 pm | Permalink
  38. Guillaume wrote:

    Yeah I managed to beat mission 18. I had to put the first guy in the village at the bottom right, and then make three villages migrate to it.

    Awesome game by the way, with a better interface and tweaks to some of the missions, I would consider it one of the best game I ever played.

    Thursday, June 17, 2010 at 8:53 pm | Permalink
  39. Matt Rix wrote:

    Brilliant game. Played it after seeing it at the Experimental Gamemplay thing at GDC.

    To address some of the comments above (I know they’re really old):

    “it clearly shows that “our people” migrates to the new city first, and then “the others” migrate after that. However the text at the beginning of episode 18 claims it is “the others” who have a greater aptitude at migration.”

    I believe you’re looking at it backwards. Because our people migrate slower, they leave a city sooner when going backwards through time, which gives the appearance that they’re faster, when they’re actually just later.

    “I had wondered why it didn’t simply state that the total population had to be zero.”

    That’s because the total population is not zero, but two… But due to our handiwork, those two people are spread out across 5 cities :)

    Monday, March 7, 2011 at 3:07 am | Permalink
  40. wtf wrote:

    holy cannoli! I finished this game, and I still don’t understand how to properly play it. It was just pure random clicking

    Wednesday, December 14, 2011 at 1:18 am | Permalink
  41. CPIvy wrote:

    This might come a little late, but I think this is the greatest game ever created. I’ve studied history at uni and I’m positive this game reflects so many things that I’ve never seen expressed as well in any other piece of media. Also, great puzzle mechanics.


    Monday, July 2, 2012 at 4:52 pm | Permalink
  42. Eric Bernard wrote:

    the download for windows is down :( is there anywhere else I can download it?


    Thursday, March 14, 2013 at 7:22 am | Permalink
  43. Eric, try again, and let me know if it doesn’t work.

    Thursday, March 14, 2013 at 8:26 am | Permalink
  44. Eric Bernard wrote:

    the download worked, thank you Steve! all the best

    Wednesday, March 20, 2013 at 10:40 am | Permalink

8 Trackbacks/Pingbacks

  1. Opera Omnia « Clint Makes a Game on Tuesday, April 21, 2009 at 12:39 am

    […] Opera Omnia is a rare example of a game that takes full advantage of the unique benefit of interactivity.  The idea is that you are, basically, a historian that tries to work out what happened in the past to create the population you have using a wonderfully simple program that accurately tracks the migration routes and growth rates of the citizens. […]

  2. 出塞曲 Opera Omnia « Indie-G on Wednesday, December 2, 2009 at 9:14 am

    […] 原版出处: […]

  3. School. « Shmup Schematics on Monday, August 30, 2010 at 9:49 pm

    […] Opera Omnia […]

  4. Day Four of the GDC: Old and New | In Search of Secrets on Friday, March 4, 2011 at 11:42 am

    […] the future.  It’s a difficult game to explain without seeing in action, so I suggest you go play it.  After Opera Omnia came Jason Rohrer‘s Inside a Star-FIlled Sky, which is a recursive, […]

  5. GDC 2011 Report « on Thursday, March 10, 2011 at 12:13 am

    […] Opera Omnia: […]

  6. Packed House at GDC 2011 | Experimental Gameplay Workshop on Wednesday, October 31, 2012 at 6:04 am

    […] Stephen Lavelle: Opera Omnia. This game explores notions of history, and how history is created to justify actual events, after they have occurred. In the game, the player must figure out how to “explain” certain end states by manipulating what happened before them – effectively creating new histories in the process. This game was demonstrated at the session by Daniel Benmergui […]

  7. Literature Reviews. | Kayla Davidson Studio on Thursday, August 13, 2015 at 2:21 am

    […] and often deeply-affecting work that frequently explores ideas about bodies and alienation (and here’s one about history, migration and otherness). Game journalist and activist Mattie Brice recently made a game to help serve as “commentary […]

  8. » RPG Worlds Can Do More on Monday, August 31, 2015 at 7:57 pm

    […] There’s a game about the dangers of assuming simulations can give clues to historical events (Opera Omnia, by Increpare). There’s at least two games about jobs of crushing futility (Papers Please and […]

Post a Comment

Your email is never published nor shared. Required fields are marked *