why we need an overmars engine

this is a transcript of an illuminating conversation i had with edward stephens that points to the need for cross-platform game making tools, and why i think virtual machines may be the solution.

auntie: i’m trying to move away from game maker but i havn’t found a reasonable alternative yet. multimedia fusion looks promising but is dumb expensive

Edward: how large of an issue is format, do you think?
that’s a vague way to ask that question
ok
what i like about the console model is that there are standard formats for consumption
but on the pc
whether it’s flash
or freeware
or some disc- or download-based release
i feel unequipped (often, with good reason) to play
the tools for making games, you have argued, are becoming more accessible to the masses
but with the rise of so many formats, i think it’s making audience access lag behind
i think that’s what my original question was about

auntie: i think more game making tools need to go the inform / tads route: games are written for a virtual machine that can be emulated on practically any platform
this is an interesting upside to, say, nes rom hacks too
and i heard an interesting proposal for a cross-platform game recently: code the game for dos and have players run it in dosbox

Edward: you’ve lost me
i can play a game critically
but i’m very ignorant to the technical side of things
i don’t know much about computers

auntie: okay, so say i write a text game in inform

Edward: oh do!
you should!

auntie: i have! but this is hypothetical!

Edward: ok
so
i’m with you so far

auntie: i distribute that as SUPERGAME.z5, which is an inform game file
with me?

Edward: yes
great title
sounds imminent

auntie: thank you

Edward: eminent
imminent
the e one’s the one i want there

auntie: so one player downloads it to her windows computer. she uses a program called gargoyle to play it
gargoyle is an inform interpreter
another player downloads the same game file to her mac

Edward: (let’s make that me)

auntie: she uses a program called spatterlight to play it. spatterlight is an inform interpreter for the mac

Edward: great
i am one hundred percent
with you

auntie: inform games are written for a virtual computer called the z-machine. the z-machine isn’t real, but both windows pcs and macs (and a billion other platforms) can emulate it
so what you have is one game that every computer knows how to interpret

Edward: so you would distribute the game with the help of an UNREAL ENGINE
ho ho ho

auntie: RIMSHOT
imagine that instead of making games for directx, game maker made games for THE OVERMARS ENGINE

Edward: pretty sweet

auntie: now someone on windows could write an OVERMARS ENGINE INTERPRETER for windows
and someone on a mac could write an OVERMARS ENGINE INTERPRETER for macs

Edward: oh swell

auntie: and me, i could make one single game for the OVERMARS ENGINE

Edward: and i could consume it through OVERMARS INTERPRETER via my mac

auntie: and a player would use whichever interpreter suits her machine to play it
yes

Edward: great
then
the problem is
limiting the number of engines
if there’s OVERMARS and UNDERVENUS and BESIDENEPTUNE and SEGASATURN and MOREOFTHESE it would defeat the purpose

auntie: not necessarily. as long as each platform has an interpreter for each format a player on that platform has access to all games made in all of them
which is the issue, after all
text adventures work like this right now. there are a bunch of formats, but most authors stick to either inform or tads
interpreters for which exist on almost every conceivable platform

Edward: that was a great explanation

auntie: you know, if it’s alright with you, i think i might post this conversation on my blog
this is a pretty good point, i think

Edward: that would be fine
i would be delighted to exist there outside of the comments sections

auntie: fantastic
so the interesting irony that comes from all this is that i’m on-and-off working on a hack of super mario bros. and if i complete it, it will be my first mac game

Edward: what’s the gimmick
or is that secret until it’s done

auntie: i think it’s going to be about firebars
but don’t quote me

25 thoughts on “why we need an overmars engine”

  1. Something like Löve (http://love2d.org/) then? It’s a bit more low-level than I’ve heard Game Maker is, but it’s designed to be flexible and portable and easy to get started with. As one who mostly uses Linux on Macintosh hardware, the odds of my ever getting to play anything written in GameMaker are approxmately zero, so I welcome all freely-portable game engines.

  2. I think the Unity engine is the closest thing you are going to get if I read that piece properly. One code base for PC, Mac, iPhone, Wii and web (through a plug-in). It’s certainly not point-and-click like Game Maker, but it covers most bases and costs $199 for an Indie license.

  3. love looks interesting. i’ve never heard of it before.

    the problem with java, and a lot of other options, is that it’s not designed for making games. what i’m interested in is something intended for non-coders, like game maker, but which produces games that can be interpreted by any platform. tools like game maker make it possible for more people to create games; i want to make it possible for more people to play those games.

  4. the standard term for what you’re looking for is ‘standards’.

    one of the main problems with standards, is that the people who control them gain incredible power. when a person controls a standard, they control the very framework that other people build and think with. and so standards are very highly politically charged. and like all political systems, it is a positive feedback loop; the more people who buy into a standard, the more power that standard grants those that control it, and the more political it becomes.

    directx (and opengl), which you reference, are actually good examples of attempted solutions to the very problem that you’ve identified.

    the irony of this system is wonderful from a game designer’s point of view, as it inherently leads to interesting conflict. but for many players of the game, this can be seen as a frustrating meta-game, along the lines of griefing.

  5. Java, Flash, JavaScript, Unity, etc. all solve the VM issue very well. I think the real issue is that Game Maker has a nice IDE, good tools, good documentation. The VM solutions either have stupid expensive IDEs not really designed for game programming (I’m looking at you, Flash), or are proprietary (Unity).
    Personally, I develop Flash games all in code, and use mxmlc which is a free compiler. However, if there were a version of OmniLudCon that had complexity and robustness approaching Game Maker, I would definitely give that a shot.

  6. There wouldn’t be nearly as much of a problem if Game Maker 7 didn’t switch to use Direct3D. It’s not supported in either Wine (for running games on Linux), or VMWare (running games mostly anywhere). Games made with other creators tend to be more or less playable with enough convincing.

  7. MMF will have a Java exporter soon. There’s a public beta. It seems to work pretty well, although I’ve only been able to test it in Windows.

  8. Auntie:
    I’m rather against having to use a VM to run games because it makes it even more difficult to distribute your game. It’s still far simpler to just download and run a .exe file. Just look at how long it took to explain the concept to your friend.

    In any case, yoyogames says that the new version of GM is supposed to work on macs (by which I assume that they mean that you can compile a mac executable too, it’d be rather silly to have an SDK that works on a platform that it can’t compile for!).

    I have a similar desire to progress from Game Maker but, like you, I haven’t found a suitable replacement. I think that what makes GM so easy to make games in are it’s gigantic list of functions. It’s that more than anything else that makes GM such a breeze to work in (the other factor is the fully integrated IDE but we’re just going to have to give that up).

    I know that there are libraries and such available for other languages that can provide even better functionality but setting them up and everything is still a pain.

    Personally I’m leaning towards Flash 10 AS3. I’ve heard that the new flash player is hardware accelerated and that was the only thing holding me back from using flash before. Flash would make distributing our games a whole lot easier since it’s already overwhelmingly pervasive, cross-platform and doesn’t require a download to boot.

    Additionally, flash games are much better at generating website traffic, which makes it much more likely for us to put food on the table.

    Dustin:
    Actually I’ve got reports that GM games do run in Wine. I mean, someone managed to get my game working on it (less the direct audio for music, of all things).

  9. The Game Maker IDE runs under WINE, but Game Maker games will crash under WINE.

    The GM sprite tools and object interface are aces, as is the map tool. While I have the GIMP for sprites, it doesn’t preview animations, and the other tools are decidedly lacking in a pure-code development environment.

  10. i’m not convinced that in practice this will make it more difficult to distribute a game. as it is, most games have some kind of software prerequisite: game maker games require an updated copy of directx, unity games require the unity plugin, flash games require the flash plugin. a one-time install that’ll make all overmars engine files into double-click executables isn’t asking much more than the average game asks now, i think.

  11. Failrate: You might wanna check out graphics gale, it’s pretty good for doing animated pixel art.

    Auntie: Umm, GM runs on what, DirectX 7? Or was it 8? I’d hardly consider that “updated” by any stretch. The key here is that flash and directx already have a gigantic user base that has it installed. I’d find it a challenge to find any computer that doesn’t have flash and directx 9 comes with winxp SP2. Overmars hardly has the clout that Adobe and Microsoft can bring to the table.

    In any case, it already exists in the form of yoyogames’ instant play plug-in. GM is already an interpreted language, the runner that is included in all GM executables (the first 1mb or so of the file) is essentially a VM. And well I honestly don’t think the instant play plug-in is successful at all.

  12. Looking at this from the IF side of things, a common refrain is that no .exe’s is a serious barrier to entry for new players.

    Nevertheless I don’t see a VM as a weakness, and I’d wager that games simply will catch up to all other media that have converged to ‘players’. No one downloads dvd software every time they want to watch a movie (I know, that’s kind of a dumb analogy, but still). The IFDB (at ifdb.tads.org) is a basic example of how to make it easier to distribute VMs and games in one place.

    Other than IF languages like Inform and TADS I’m focusing on Python and Flash (with mxmlc too) but I would still like a good game maker just to make things easier for non-programmers like myself. (@Failrate, btw, the GIMP does play current animations…do you mean something different by preview?)

  13. Would be complex if you don’t include the VM with your game.

    Although is not the same, look at the .NET Framework and XNA, a lot of people won’t get a game that needs any of those. Just because it’s a mess.

    It’s baffling and confusing for people who is not heavily into computers.

    Also when 90%+ of people are running some version of Windows I don’t see the point. People who use Mac aren’t really into computer games, if they are, chances are they have a Windows computer too. Linux is a good OS for servers, but besides that, only the elitist geeks use it. With GM as it is you already have access to the widest audience you could have.

    Also some VM like Java, and even Flash have a performance issues that make your game run like crap.

    I get your idea, but I think the VM stuff should be internal, no need for the user to download some interpreter and open the game file from there, that’s maybe not the best option, but having a compiler than can produce executable files for different OS would be better. Like Flash does, for example.

  14. I like this principle and I definitely agree, to an extent. It’s part of why I’m using Unity to develop, as it means I can create games on a mac but have them played seamlessly by PC users. Right now I’m just doing browser based games, and they rely on the Unity plugin… which is a VM of sorts, just like Flash.

    Of course, what you really need is for a company to dominate, become a standard, and then open up their file format/codebase… like the way PSD and DOC became a standard file format.

  15. @th15: thanks for the suggestion, I’ll check it out.

    @George: Oh, I didn’t know that. I’ll check that out as well.

    At everyone who says their friends and players prefer .exes, I switched to VM environments, because it was easier to get someone to go to a page with a Flash app then it was to convince them to download an executable. Their concern was that an unknown exe could do *anything* to their computer. VMs represent a known quantity and a certain reassurance. Even though there are security flaws in Flash, they are probably fewer than my homegrown executables, and people have the kind of brand identity with Flash that makes them more comfortable.

  16. I’m also disappointed by the lack of powerful, yet usable game development software.

    I started with authoring tools (RPG Maker, GameMaker, ..), before switching to Basic, Java and now C++.

    And while C++ might be the only one that allows me to do everything I want (there are open source libraries for everything), it’s also a clusterfuck of complexity and unintuitiveness..

    These cryptic languages are tailored towards programmers, not designers.

    And don’t even get me started on all those engines and frameworks like SDL, Allegro or Irrlicht. They’re still way too low-level.. what I want are higher level abstractions and stuff like visual programming.

    I want a tool that my 69 year old dad could use.

    That’s why I’m trying to write myself some c++ based, platform-independent (MAC, Linux, Win) software development framework, that abstracts away all those nitty gritty details in an easy to use “authoring-tool-like” environment.

    Wish me luck..

  17. There’s a project called Enigma that seeks to recreate the GM framework in a C++ library. Don’t have the link on me but you could search around the Game Maker Community for it.

  18. I realize that this post isn’t asking for engine suggestions, but I really think that Flash is your best bet. It’s supported by Windows, and MacOS, and Leenoox, and if your game only requires a single-button mouse you can even play it on a Wii.

    Flash is a little tricky to get started with, but once you get going it’s very versatile and it’s also a good transition from game-making kits to “real” programming with C++/C#. It’s also very flexible and lets you do lots of things that make sense to humans but that other languages like C# frown on as “bad programming practices”.

    The biggest downside to Flash is that people automatically equate “Flash” with “free”, so it’s harder to sell Flash games, but honestly I think GameMaker games and MMF games have the same problem.

    If you start with something very simple (like I did with “Dungeon Escape”) then I think you’ll be able to pick up the basics of Flash very quickly, and be making games on par with Mighty Jill Off and Calamity Annie in it in no time!

Leave a Reply

Your email address will not be published. Required fields are marked *


Parse error: syntax error, unexpected 'class' (T_CLASS) in /home/ccecce/auntiepixelante.com/wp-content/plugins/sk2/sk2_plugins/sk2_pjw_daily_digest_plugin.php on line 25