Multi-platform graphics for writing a retro-style game / game engine?
July 31, 2015 2:49 PM   Subscribe

Can you recommend a multi-platform development tool / environment / API / SDK that I could use to write a video game? The game would be "retro" in sophistication - I specifically want to use NES or SNES-style graphics and sound. Would also accept existing game engines with those parameters, I suppose. Please don't say Flash.

For a while I've been kicking around an idea for a rudimentary adventure / RPG-type video game - think along the lines of the older Zeldas or Final Fantasies - and I thought I might take a crack at writing it, using the experience as an excuse to get familiar with cross platform development. I don't code professionally, but I used to; as a result I have a pretty deep familiarity with a wide array of C-based languages.

So, what are my options? The need for cross-platform-ness stems from the fact that I'll be developing and testing on Linux, but basically anyone I would want to share the game with would be on Mac or Windows. The sound and graphics support could be pretty basic; as I said above the fold, I'm thinking NES or SNES level so I don't need intense 3D support.

I haven't really played many video games since Wii went out of fashion, and mainly console games at that - I've never even installed Steam, much less have any idea of how to program for it, but anyway I get the impression it's more about distribution than development...? I'd be open to using an existing game engine if there is an accessible one in the Zelda-to-FF range of styles. I'm not adverse to paying for software, but this is going to be a hobby so if the price tag is more than 3 figures it's probably not going to happen.

Oh! Of course I am familiar with, and have used, Java, but it doesn't seem to be super widely accepted anymore (outside of, you know, Android). I don't think it's even installed on any of the windows machines I've used lately. Let me know if my impression is wrong and Java is indeed the way to go.

Please also let me know if this question is hopelessly naive and/or incomplete in any other ways - thanks!
posted by Joey Buttafoucault to Computers & Internet (14 answers total) 2 users marked this as a favorite
 
Java is certainly a way to go; the Slick library is a little obnoxious to set up at first but works pretty nicely once it's going. The other main option I've looked at when similar desires struck me is Pygame; feature-wise it's on par with Slick. Both are free downloads, and most Linux distros have Pygame in their package manager already.

One caveat about the above - I don't know how easy distributing the games you write will be with either. I've used both to write little game-engine-like-things on Linux and they worked all right for myself, but letting anyone else play is something I haven't explored. With Pygame, at least, you should be able to distribute the .py files.
posted by wanderingmind at 2:57 PM on July 31, 2015


Phaser might be more action orientated than you'd want, but is very powerful
posted by scruss at 3:04 PM on July 31, 2015


How much of the details do you want to do? That is, do you want to write a game engine sort of from scratch? Then look into something like OpenGL. Or do you want to focus more on gameplay/art/etc? Then probably look at existing engines and/or libraries. pygame is actually not a bad place to start if you know python. I've never used Slick so I dunno.

I do have to warn you that OpenGL is kind of a rabbit hole and getting started is a real pain. Once you're up and running it's not too bad though. The New Hotness is OpenGL is version 4 which has lots of amazing features. However, for a lot of stuff that is not real resource intensive, OpenGL 1.x works OK and is, let's say, way easier to get started in.
posted by RustyBrooks at 3:08 PM on July 31, 2015


Response by poster: Thanks for the suggestions so far!

How much of the details do you want to do? That is, do you want to write a game engine sort of from scratch? Then look into something like OpenGL. Or do you want to focus more on gameplay/art/etc?

That is a good question. I honestly would prefer to focus more on gameplay and art than, for instance, animating sprites. I was just afraid that nothing would be developed to a point where I could focus on those aspects. On a quick review, pygame seems to be potentially in the right zone - I see that someone has mocked up their own FF clone with it, which I suppose is a good sign. Also the tile scrolling aspects of Phaser do look promising.
posted by Joey Buttafoucault at 3:39 PM on July 31, 2015


Game Maker - fairly easy to use; drag & drop interface may be irritating for an experienced programmer
Unity - supports 2D and 3D, but pretty high bar to entry
RPG Maker - easiest to use, but focuses on tile-based maps (and obviously, RPG-style games)

I am not an artist, so my knowledge of these is from the teaching & programming side. Apologies if they aren't what you're looking for.
posted by SuperSquirrel at 4:45 PM on July 31, 2015


A friend who is thinking of participating in a Ludum Dare has been playing with create.js. It is designed to interface with (and migrate from) Flash in some aspects, but is otherwise javascript/HTML5 based. Also, Atari has created some add-on tools.
posted by O9scar at 5:50 PM on July 31, 2015 [1 favorite]


It may be (quite a bit) lower-level than what you're looking for, but Allegro 5 is free, multi-platform and C-based.
posted by A Thousand Baited Hooks at 8:03 PM on July 31, 2015 [1 favorite]


If you're going for RPG, RPG maker is designed for this, and since you're going 8-bit style, tile-based map is not a problem. There are three versions RPG maker, but you can start with the "demo / free" version of RPG Maker Ace VX

http://store.steampowered.com/app/224280/

The catch is it's not very multi-platform. It is distributable though.

If you really need multiplatform, you'll need one of the more advanced engines.
posted by kschang at 12:04 AM on August 1, 2015


One more option: Construct 2.

Lite edition is free. Personal edition 129, multiplatform. Business version 400+

http://store.steampowered.com/app/227240/?snr=1_5_9__300
posted by kschang at 1:10 AM on August 1, 2015


love2d is similar to pygame but uses the Lua scripting language instead of Python.
posted by perihare at 8:31 AM on August 1, 2015


I use Unity. It's not geared specifically towards retro RPG tile graphics, but I expect there's something from the asset store that has that in mind.

I know people who swear by luxe but I haven't tried it.
http://luxeengine.com/docs/

I used to use FlashPunk for this kind of thing, but you said no Flash. There's now a HaxePunk library, which is a port of FlashPunk to use Haxe instead of Flash.

Unity has the biggest community overall, but the other two might have a higher density of Linux developers.
posted by RobotHero at 9:57 PM on August 1, 2015


Maybe this is totally impractical, but could you write your game as an actual NES or SNES ROM? Then you could use emulators as your cross-platform engine.
posted by panic at 11:07 PM on August 1, 2015


There's also people making stuff with PICO-8 but that might be more retro than you had in mind.
posted by RobotHero at 11:42 AM on August 2, 2015 [1 favorite]


Godot is an open source game engine that has a wodge of features including multi platform export. And it does a lot of the heavy lifting for you when building games.
posted by my-username at 1:19 AM on August 3, 2015 [1 favorite]


« Older External numberpad (Bluetooth?)   |   pondering job offer in Austria Newer »
This thread is closed to new comments.