Sorry...last advertisy...spammy comment. If you are a beginner game developer, you should start w/ the beginner tutorial on the link below. We worked really, really hard on it and it's designed for someone who knows nothing about game dev.
Don't start with the complexed and work your way backwards. Start simple and move forward. There are many amazing things that can be created with very simple, easy to use libraries. (Check out Cocos2d for the iOS or Torque3D for Windows )
Its just like anything in life. Great bands didn't start out amazing, they start just as crappy as everyone else. Practice and persistance makes them great.
Don't be discouraged.
CryEngine, Source, and Unreal all support Linux. Do each of them support developing ON Linux? Good question (Im pretty sure Source does and I've heard about Epic releasing a Linux SDK soon). The problem is none of them are Free Software so that's just moot.
The Torque 3D engine is however. Released under the MIT license awhile back. It's not the prettiest in the world. But it is far more than capable of producing attractive looking games. http://www.garagegames.com/products/torque-3d
Also....technically Blender is a game engine. Kinda.
The engine is here.
http://www.garagegames.com/products/torque-3d
http://rdb.internectual.net/t2
The editor is all in text-script. There's nothing stopping you from adding things to it as long as the engine can handle it.
I have not seen anyone decompile the executable, but I'm sure you could with ghidra and a lot of patience.
If you want to run the same file on multiple OS:es I think some kind of bytecode language, for example C# or Java, might be your best bet. You'd need to install an interpreter for it but that's not too much work. Though is your goal really to have one file that runs on both Linux and Windows, or do you just want to make a game that can run on both? Isn't it enough if you can compile your game into separate binaries for the platforms? Because this is something most languages can do assuming you only use cross-platform libraries
If you want something that's almost as easy to use as GameMaker you're probably looking for a game engine with editor rather than just a language. Popular ones include Unity3D (C# or JS), Torque3D (C++ or TorqueScript) and Unreal (C++ or UnrealScript)
hahahaha. I can't wait for the game to come out and see how people score better than me (which I know they will :))). Guess you are referring to this video ? I have used two free 3D physics solutions in past Torque3D and Tokamak, but there is also Bullet? Anyway I am sure you must've checked them. If I can assist in any way please let me know and good luck with your project :)
A great engine if you want to get into game development is torque 3d http://www.garagegames.com/products/torque-3d .
http://www.reddit.com/r/gamedev/comments/1nz5ut/torque_3d_video_tutorials_develop_for_oculus_rift/ is a great tutorial by VMU_Kiss.
I know next to nothing about it, but from what I have read today I thought you should check out:
Torque game engine - used in 'Tribes'
Torque game engine - MIT License
It may prove to be a little more FPS focused than Unity. Good luck with your arena FPS.
Wow! Consider me blown away - I still think of effects like these as something you need to spend serious amounts of time rendering. I'd love to have a conversation about what would be necessary to port this stuff into Torque 3D. Unity's great for its approachability, but I'm in the early stages of a crusade to elevate Torque's prominence in the VR community. As a person who would very probably appreciate seeing every line of Unity's rendering code, you can imagine why.