Solarus is a free and open-source Action-RPG game engine, licensed under GPL, and written in C++. It runs quests in Lua, and can work on a great number of platforms. Solarus also features a game editor called Solarus Quest Editor, written in C++ with Qt to help you creating your game.
The previous port by Shin-nil is now two years old and suffers from a number of bugs, notably music stuttering when changing areas. The new version still occasionally stutters but has smoother sound, many bug fixes and engine enhancements.