I've recently been trying out the latest Leadwerks Game Engine v3.2 that now distributes solely through the Steam platform. It's a Lua and C++ engine built on top of OpenGL 4.0, OpenAL, and Newton Dynamics. The engine is available as an Indie Edition (Lua - $99), and a Standard Edition (C++/Lua - $198), with no royalties. It provides good image, sound, and model support, including a Blender plugin for exporting to Leadwerks. Additionally, it has a built in constructive solid geometry (CSG) tool for fast and efficient level design (Similar to the tools in Unreal Engine, or the Pro Builder addon for Unity). Leadwerks runs on Windows and Linux, though with the OpenGL 4 requirement, you might have issues finding video drivers for your Linux system to support it. The full feature list is available here:
Leadwerks uses a combination of main game loop and object script-based programming. Lua seems to provide an advantage here since it can be used for both, where C++ cannot be used for object scripts. Unlike Unity, objects in Leadwerks can only contain a single object script, but you can work around this limitation using Pivot's (empty game object's), and parenting them to your other objects. You must select your project type when creating a new game, and your most flexible option is to create a C++ game which will provide you a Visual Studio project to maintain you C++ code (main game loop), and the built in editor where you can write and edit Lua object scripts. Lua script variables can be appended with tags that expose them to the editor, while functions can be tagged to expose them to the built in Visual Flowgraph editor (node-based system).
For my next series of entries, we'll dive into a simple laser deflection game that dynamically creates geometry-based beams that automatically calculate deflection, and bounce angles, and allows the player to rotate deflectors to guide the beam to the goal.