What is the difference between a programming language and a game engine scripting language?

Started by
2 comments, last by SimonForsman 12 years, 11 months ago
?
Advertisement
There have been a few threads in the past on the topic of 'the purpose of scripting'; if you searched for e.g. 'scripting' or 'scripting purpose', you might find some of these threads (and possibly a good answer to your question as well).

In short though, the line between 'programming' language and 'scripting' language can be blurry, and often they're one and the same. Generally, languages that are used for scripting are interpreted dynamically or compile quickly. Also, when a language is being used as a scripting language, it's usually running in an environment embedded in an application written in another language.

For example, it's common to write the game engine itself in C++ (which is not interpreted dynamically and does not compile quickly and is not very well suited for rapid development), and use another language for scripting.

Some engines/environments have there own scripting languages. Other languages commonly used for scripting include Lua, C#, and Python (there are many others as well).

Sometimes the only difference between a 'programming' language and a 'scripting' language is how it's used. For example, the Unity engine is written in C++, and uses C# (among other languages) for scripting. In this context C# is technically a 'scripting' language, although obviously it's also a full-featured programming language.

In another context, you might write the core code in C#, and use Lua for scripting. In this case, C# would be the 'programming' language, and Lua the 'scripting' language.
A scripting language IS a programming language.

Basically, the term scripting language usually refers to any language that is used by an existing program to interpret commands at runtime.

For instance, the 3D art application Blender uses python. You can open up Blender's python command window and type any python command you want and it will be executed by Blender. You can also save scripts and have Blender load them at runtime, so you can make your own new tools or commands. Blender's whole user interface and most of the commands are implemented as python scripts. So you can modify all these scripts and change how Blender works without actually modifying Blender itself!
As others have allready said, the only difference is in how they are used, All programming languages can be used as scripting languages but there are a few languages that are easier to use in this way than others.

Basically any code that controlls an application without actually being a part of the application it controlls is a script, the line between a script and a plugin is fairly thin (in general a plugin becomes a part of the application when its loaded and is thus capable of adding functionality while a script is limited to controlling/combining existing functionality.
[size="1"]I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!

This topic is closed to new replies.

Advertisement