- Sprite scaling and rotation
- Alpha transparency channel
- Rudimentary "vector" style 3D (flat-shaded or wireframe, like in old Amiga demos or the SNES's FX chip)
- Tracker music format (*MOD, *XM, *IT, etc...this is extremely crucial!)
- Needs to be written in C or C++
- Needs to be cross-platform (PC, Mac and Linux)
I have not had much luck. I did find Haaf's Game Engine, which supports tracker music as well as 2D scaling and rotation, but it's Windows-only as it uses DirectX. I found a lot of 2D game engines available, but not a whole lot of cross-platform ones written in C/C++, which is a shame because C is the language I have been teaching myself, on-and-off since early 2009, and I really want to write a game in that language.
I cannot stress enough how crucial it is that this game engine must support the tracker music format, preferably *IT (Impulse Tracker.) This is for several reasons. First-off, I intend to write some or all of the music for this game, and I am most comfortable composing music in Modplug tracker, using the *IT format because it gives me the most freedom and the least amount of technical limitations. Second, I want to be able to use code to speed up or slow down the tempo of the music, or switch between sections/patterns/parts of the song, which is easiest with a realtime-sequenced format like MIDI or tracker, as opposed to a prerendered format like *OGG or *MP3. Third, filesize is a bit of a constraint, as I want to challenge myself to see how small I can get the total size of the game and its assets. Finally and most importantly, I want my games to make a statement by using the more elegant (in my opinion) realtime-sequenced music like how older gamed from the 90s did, going against the grain of modern games, most of which seem to just use prerecorded *OGG, *WAV or *MP3 music, which to me seems bloated and inefficient, especially for retro-style 2D games.
Finally, I can see how the retro "vector" style 3D might be a pain, as I'm not sure modern computers can even do 3D like that in the first place anymore. So I guess the 3D bit is optional, at least for now.
Initially all these points might not seem that important, but bear in mind I intend to start working, with help from a commissioned programmer, on a rather ambitious 2D game project hopefully at the beginning of next year (which is around the time when I foresee being done with the design doc for it,) that will hopefully use all of the above features. I need to write the tech specs for this game in the design doc, including what engine the game will use, and having to resort to saying the game will use its own scratch-built engine just doesn't seem like a good idea, as it may scare away potential programmers. Plus in the meantime I want to use this engine to work on smaller game projects myself as practice.
Does that make any sense? Thanks for reading, and sorry for the length of this post.