Skip to content
lendrick edited this page Jan 26, 2012 · 3 revisions

FAQ

General Questions

What is the Orange Engine?

It's a 2D, top-down, tile-based RPG engine and editor combo. Or at least, it will be when it's done.

Where can I find it?

https://github.com/lendrick/Orange-Engine

Why did you call it the Orange Engine?

All the good names were taken. :)

What are your plans for Orange in the future?

In the long term, I'd like to turn it into a general 2D game engine, which means adding a lot of cool stuff like physics. In the short term, I'd like to get it to the point where it can run a demo-length RPG, then start building a full-length RPG on top of it that will be a good game in its own right. Ideally, I'd like people to be able to run the game from within the editor with full script debugging capabilities, but at the moment I'm not going to let that get in the way of putting out a working game.

Architecture

Why Qt?

Several reasons.

First, I've been writing the editor in parallel with the game engine since the very beginning, and I like using Qt as a widget toolkit.

Second, scripting support. Rather than coming up with some goof-ball custom scripting language, I thought it might be nice to use one that people already know. Qt comes with Webkit's delightfully fast javascript engine, so I just used that.

Third, the user interface. Before Qt supported drawing widgets on OpenGL surfaces, I looked all over for a robust, attractive, well documented game-ready UI library. I was literally unable to find anything that met my requirements (there were a few really basic ones out there that didn't support antialised fonts and one or two nice looking ones that I couldn't figure out how to use because they weren't documented very well. So I was immensely relieved when Qt gained the capability of supporting widgets on OpenGL. I was in the middle of writing up a new widget theme when QML came out and made my life a lot easier in some ways (and harder in others -- I'll get to that later).

Fourth, it's cross-platform. The code was developed in Linux and compiled on Windows with almost no modification. I'm guessing it'll be similarly trivial to compile it on a Mac (when some kind Mac user does this, since I don't have one myself). Most likely it will port very easily to Android.

You mentioned QML making your life harder?

Note: I've found a fix for the issue that was preventing me from passing javascript objects between QtScript and QML, so the below answer no longer applies. It did, however, take many many hours to figure out how to fix.

Yes.

I thought I had it made with QML, but as it turned out, QML's scripting environment in Qt 4.x is set up in such a way that it's easy to script your UI with QML or script your program with QtScript, but getting the two to talk together requires a massive and horrible hack. I'm still hacking around Qt 4.x's irritating QML limitations (a lot of the weirdness in the script portion of the code is due to this). Fortunately, according to the Qt 5 snapshot documentation, it appears as if this limitation is going to be removed, and QML is going to have a full script engine underneath it, which means it'll be a lot simpler to write UI code.

It's slow, make it run faster!

That's not a question. :)

At the moment, my main goal is to make Orange run, period. Orange is currently known to run slowly on Intel graphics adapters, because it's using poorly optimized OpenGL. I will eventually get around to optimizing the OpenGL code, but for the time being people will wait or do it for me.

How to Help

I can code. Can I help?

Absolutely! Stop by #opengameart on freenode and we'll talk. I'm BartK.

I can't code. Can I help?

Absolutely! If you're a good pixel artist (as determined by me), I can always use some art. If you're not an artist, I could also use some folks to create game content (such as maps and dialog) in the editor.

Is there a mailing list?

Not until at least one other person is contributing to the project. :)

And finally...

When will it be done?

I program full time. I also run OpenGameArt.org. This is a project that I work on when those two other things (as well as the rest of my life) give me a break. So my answer is that I have no idea when it will be done, but if I had some more contributors other than just myself, it would probably go a lot faster. :)