I think this is a historical term. At the beginning all games were written in assembler or C (because the computers were much slower than today), and their code was highly optimized (and so, had to be compiled/tested/debugged/distributed). Then some games allowed changing something in their logic by using config files, then scripts. The main difference was that the scripts could be changed in real-time, without using SDK (so "for non-programmers"), but they were simple languages, without any advanced constructs, and without low-level API. In fact, often these were just some keywords with some list of arguments allowed, not a real language. I would say they were extension of simple configuration files.MarekkPie wrote:These terms have always thrown me off, and it's frustrating, because it seems everyone else learns it through osmosis. People talk about "adding scripting into games" so that "non-programmers can add some logic." To me, this doesn't make sense, and it seems to imply that scripting is a derisive term for "real programmers."
The same goes in unix: there were programs (compiled) written by programmers, and there were scripts (using shells), often written by the system administrators.
Now, as the computers became more powerful, so did the scripting languages. Lua is no more a simple bash. OTOH, people tend to like some dynamic properties of languages (garbage collection, variable types, etc.), so even the "compiled programs" look more like scripts today. So, programs and scripts were in different worlds once, but today they are much closer to each other, so the distinction can be difficult.
I am using lua for some scripting (usually in linux system), but when I write for love, especially when using object oriented design, and calling low-level API (which love offers), I am definitely programming in lua.