A long time back, to make Computer Games, you had to know Assembly language. Eventually the Industry moved to C then C++ and for a time that was good. C++ is very fast and we can stoop very low as well as rise very high. But there are major issues with C++: though I like C++ I must admit that it’s that that easy to code into that language – pointers drive people crazy and memory allocation and de-allocation is a very annoying to do.
So what’s the solution to this? It seems that the game industry has responded by saying “Scripting languages”.
Many game engines like Unreal tournament have their own scripting language – unreal script – and there are others like NVNScript. Yet these are proprietary scripts and the role of the game industry is I think to make games and not scripting languages.
Thus languages like Python and LUA have emerged. Python has been used by Disney in Toontown, by Cyan Worlds in Uru:Ages Beyond Myst, … and LUA in the now famous Far Cry by Crytek, MDK2 by Bioware,…
So why these? Well, coding is simpler in these languages than C++ (no damn pointers or memory to cope with) and all the codes in a game are not critical sections – sometimes they might be run in parallel with other slower code!!! So there should be no harm in coding these non-critical sections in a higher level language where we’ll trade some speed for ease of development!
The Panda3D game engine is a nice example of that. The game engine is written in C++ for speed but the coding is done in Python.