This is overstepping the mark a bit, I think.Scripts are simplified versions of programming languages, so that designers and other non-programmers—or programmers with extremely little skill—can work with them.
"Scripting" languages are usually used over C++ for gameplay code because it can more productive to write in these "simpler" languages.
This isn't true for all teams -- if your team are experts in C++ and aren't very familiar with other languages, then it would make perfect sense to write your "scripts" in C++, and this is often done. Other teams use even older languages, like LISP for this purpose. Quake even used a C-derivative for it's "scripting language". I've seen other games that had made their own scripting language which actually resembled a high-level assembler!
Also, this isn't to accommodate "programmers with extremely little skill" -- but different languages focus on different skills.
e.g. C is good for when you want to think about memory being a big blob of bytes, but comparatively sucks if you're thinking in higher level algorithmic terms, like using list comprehensions. On the other hand, a "simpler" language like Python allows these more advanced ideas to be expressed succinctly. You still wouldn't give Python to an extremely unskilled programmer and trust them not to ruin your project!!
Generally the guys writing the gameplay code in the "scripting" language will just have a different skill-set to the guys writing the engine in C++. Both types of programming require different types of creativity, but both require the same master-craftsmanship in order to create a quality product.
e.g. at my last job, we decided to write the game in Lua (~a dozen staff) and the engine in C++ (~3 staff). All of the programmers are experienced, talented people, who could code perfectly fine in C/C++ if we wanted them to. Some of them are veterans who've shipped dozens of console games. Choosing Lua had absolutely nothing to do with making the code accessible to unskilled programmers, it was only about choosing the language that best fit the task at hand.
Non-programmers, such as designers, never wrote Lua code -- the only code files they edited were Lua files containing only tables, where it functions as a DDL, not a programming language.
As mentioned above, the Source engine is free to use (not free to sell though) and has a C++ API. There's also all of the ID/Quake engines (free to use, in C/C++). Other cheap engines like C4 and Torque do exist though, which provide full C++ source.In order to use C++ with any engine on this planet, you will have to buy a full-sized professional company license
N.B. Ogre3D isn't a game engine -- it's only a graphics engine -- but yes, there's plenty of game engines built upon it.Ogre3D uses C++ and its free
This is a good point -- the OP is a beginner, and C++ is a very brutal language. It is probably much easier to learn C++ if you're already a competent game programmer in another language first -- so consider trying a C# engine!Firstly, C++ is one of the most difficult languages to learn, yet if you really considered that difficulty does not matter you would not shy away from C#, which is over twice as easy to learn.
I did personally learn C++ by diving head-first into the GoldSrc engine -- this was a very slow, frustrating, painful experience, and I did write a lot of horrible, buggy code... However, 5 years later I was a competent C++ game programmer, who knew the inner C++ workings all of the many, many systems that went into creating Half-Life 1