I've been trying to reimplement some old simple 2D titles in a more modern, crossplatform friendly way, much like Gigalomania reimplements the MegaLoMania framework, loading in the original's graphics if available. My initial thoughts were to use something like libgdx, as I've been working a lot with Java APIs and it felt like something I could prototype up fairly quickly. However, most of the engines I've looked at demand the images and audio be presented in very specific formats, or that they come prebaked into the project as a whole (such as Monogame, to give one example). As my intention behind this project is to be a drop in replacement for the original executable, the runtime would need to be able to call and process the data from the original installation, which limits the types of off the shelf engines I can use.

Are there any 2D engines (regardless of base language) without these restrictions, as it would be useful to me to have something extensible that could do at least part of the heavy lifting of the implementation side of things and make it easier to port, rather than to have to code everything from scratch, and let me focus on adding the few features I'd need to do the rest.

I appreciate this is a particularly strange set of requests, so to make it a bit easier to comprehend here's the sort of feature list I'm talking about:

  • Ability to provide a parser for a resource format to comparmentalise the sprite audio and text data mentioned below.
  • Good 2D performance (will be doing lots of animated text and sprite layering)
  • Ability to stream ADPCM and PCM from external files.
  • Ability to use custom sprite formats (e.g RLE bitmaps in archives)
  • External configuration and score saving (ideally with date and time)

NOTE: In my case extending an existing engine was acceptable, your mileage may vary. I've left the question up in its full context for those who may want it.

  • That's my plan ultimately, which is why I was looking for an engine that would support it - in my studies of the aforementioned libgdx and Monogame they seemed to take their data directly from their own projects without being able to add in others. I already have the code written for the interconversions from a resource browsing tool, I'm just looking for something reasonably simple to tie it together. Oct 19 '17 at 19:05
  • If @Kodiologist is willing to make their comment into an answer, I'd happily accept it, as after looking at libgdx and its third party addons this is precisely the right course of action for me to take. I can't promote it myself, however. Oct 21 '17 at 15:46
  • Done. (> '_' )> Oct 21 '17 at 16:23

Why not convert the files as needed, perhaps in memory, with a library for file-format conversion?

  • Isn't this more of a comment, than an answer? Oct 22 '17 at 7:57
  • In my case, it was sufficient as an answer, as the use case I'd pointed out was more than suitable - libgdx does support external resource loading via 3rd party plugins, so I've accepted it as 'worksforme' Oct 22 '17 at 13:13

I've used LibGDX, and also some other popular frameworks (Cocos2d-x and Haxe Flixel being the more prominent) but it always boils down to having good tools and nice ecosystem to work with, i.e. level editors, plugins/extensions, community support, and if you don't have a big budget, also open source and free is a must. That's why I always keep coming back to Unity, Unreal Engine, and the new kid on the block Godot Engine.

Although, recently I've been gravitating more toward the Godot Engine because it's free with a permissive license that allows commercial use, and open source with a great community support.

In your case, you can write a plugin for Godot to import your assets in C++ or GDScript, and there are more languages coming in the future.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.