Scripting Language Choice

Started by
7 comments, last by walsh06 10 years, 11 months ago

I have done a good bit of programming with the big languages such as C++, java etc.... But now I feel like I should learn some scripting language as it seems like a useful thing to have. I was thinking Python just because I seem to see it pop up a lot but I was wondering should I look into another language or what benefits they might have.

Advertisement

There's also C#. I'm not sure, but i think C# is Windows only, so if cross-platform is an issue, you may want to use Python.

Edit: According to http://www.mono-project.com/Main_Page, it's also possible to use C# in Linux & Mac.

Python is a good one. I also see and here good things about Lua.

http://www.lua.org/about.html

I think a lot of people here use Lua as their scripting language in their games.

Learn several, pick the one that seems best suited to the things you want to do. Make that decision based on your own personal experience with the languages themselves, not based on someone else's opinions.

Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]

Learn several, pick the one that seems best suited to the things you want to do. Make that decision based on your own personal experience with the languages themselves, not based on someone else's opinions.

I do fully agree with this. It's always good to know several different languages. Choose the one that you feel you will be more productive in.

C# is not platform dependant, however the .NET framework that you normally code and execute against is. However Mono has taken major strides to make the C# language with .NET objects and methods work on most if not all relevant platforms.

It should also be mentioned that scripting languages are dependant on the environment, conditions and requirements of each project. Some engines and libraries that you use may support or conflict with various interpreters or VM's that are used by various scripting languages. Some interpreters are very difficult to integrate into your base code (LUA for example is very difficult to link into your code base from what I hear).

Scripting languages are good to know but I would say it's a very bad practice to pick and stick to just one as it will severely limit you in the future unless you always intend to use the same engines, libraries and tools. I would more so suggest you ask yourself the following questions on a per project basis and make your decision on what to use from there...

Why do I need a scripting system?

- Seriously question what benefits you will get from implementing a scripting system over simply developing all in one language.

What do I want to script with said system?

- This goes along with the first question. What is it that you actually want to write in a scripting language as opposed to what you will write in standard code?

What systems are compatible with the language, engine and libs I plan on using?

- If you still feel that you need / want a scripting system look around to see what scripting systems you CAN integrate into the engine, libs and language that you are developing in?

Will the scripting system provide enough productivity boost to warrant it's usage?

- With the above answered try to make a comparison. Is it really worth it? After spending all of the time and working through all of the complications to get the scripting system working is it going to improve your productivity or the functionality of your project enough to warrant the time and hassle required to get it working?

Also you should consider that the major benefits of a scripting language are that you can integrate some coded aspects without having to learn the underlying programming language. Eg most scripting languages are simpler than C++ are and easier for non programmer types to learn. If you yourself are a C++ programmer this benefit doesn't necessarily apply to you. The other major reason is that you can hot swap logic scripts without having to recompile. In some larger projects this is nice because it's easier to test small modifications without spending half an hour or more recompiling each time you want to change and test something. Also it allows you to allow your gaming community to script in their own game mods. With that said, using precompiled headers and linked libraries you can drastically lower your compilation times. If you don't want the community creating mods to the game then this isn't really a benefit for you either. In this instance where you are a C++ programmer, you know how to precompile as much as possible and don't care to let your community create mods for the game there isn't really any reason to use a scripting language or system.

Dan Mayor

Professional Programmer & Hobbyist Game Developer

Seeking team for indie development opportunities, see my classifieds post

You make a lot of solid points for embedded scripting languages, but what about standalone usage of them? e.g. I use a fair bit of various languages for shell scripting, minor task automation, simple tools, etc. etc.

Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]

Python is a good one. I also see and here good things about Lua.
http://www.lua.org/about.html

I think a lot of people here use Lua as their scripting language in their games.

Lua is good for including as part of a bigger project, because it's lightweight. However, for stand alone projects or short scripts, you might as well use a more feature full language like Python.

Thanks for the advice it has helped a lot. I think Ill probably go with Apoch and just learn several over the summer and see what happens. I may focus on python a bit more as I think itll help me get a job next year but Ill certainly look at the others.

This topic is closed to new replies.

Advertisement