Question : Scripting Engine?!

Get answers to all your basic programming questions. No Ogre questions, please!
WanabeCoder
Kobold
Posts: 26
Joined: Sun Jan 09, 2005 11:04 pm

Question : Scripting Engine?!

Post by WanabeCoder »

What's a scripting engine, and what differentiates it from.. oh.. Ogre3d.

If anyone has played Tribes/Tribes 2.. (tribes 2 sucks, tribes 1 > all), would you please tell me if THAT is a scripting engine?
And.. is it possible to create a scripting engine on top of Ogre3d?

(if so, briefly explain the steps taken to create an engine (not includnig the actual code))
User avatar
monster
OGRE Community Helper
OGRE Community Helper
Posts: 1098
Joined: Mon Sep 22, 2003 2:40 am
Location: Melbourne, Australia

Post by monster »

engine + scripting language bindings = scripting engine

yes you can add AngelScript, Lua, SpiderMonkey (etc) bindings to Ogre or just use Yake.
User avatar
temas
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 390
Joined: Sun Oct 06, 2002 11:19 pm
Location: The Woodlands, TX

Post by temas »

A scripting engine is mostly commonly used to refer to a system that allows simplified scripts to control the game/engine. The scripts are usually in a simple language such as lua, ruby, python, etc. Scripting engines are commonly used for AI tasks, but are becoming more and more common for all parts of a game system.

It's pretty easy to have a rudimentary scripting engine, look at PyOGRE for an example of how it could be started.
User avatar
Kojack
OGRE Moderator
OGRE Moderator
Posts: 7157
Joined: Sun Jan 25, 2004 7:35 am
Location: Brisbane, Australia
x 538

Post by Kojack »

I had a huge reply written for this, but Mozilla just crashes (first time in ages) before I could post it. Grrrrrrrr.

Tribes 2 is heavily scripted, as are many games these days, including all UnrealEngine based games, Farcry, Painkiller and World Of Warcraft (the last 3 all use the excellent Lua language. Most microsoft apps have scripting too (using Visual Basic for Applications), although they call it macros rather than scripts.

Scripting is often used to give artists and level designers control of the game without them needing to learn C++. Scripts are slower, but generally much easier to learn and use. With some games, you can open a console and write/execute code while the game is running (Bioware games like Balder's Gate had this, using Lua).
WanabeCoder
Kobold
Posts: 26
Joined: Sun Jan 09, 2005 11:04 pm

Post by WanabeCoder »

Aye.. wewt for consoles.
But. How? Is Lua a programming language? if so, are you saying the game is coded in Lua? The concept confuses me, as I am tired. Speaking of which, I gotta go to bed! Ill check back on the forums tomorrow morning.
Thank you all for being so friendly (and active :D))
User avatar
monster
OGRE Community Helper
OGRE Community Helper
Posts: 1098
Joined: Mon Sep 22, 2003 2:40 am
Location: Melbourne, Australia

Post by monster »

Lua is a scripting language, it's a programming language that won't do anything on its own you need to bind it to something else, the game is coded in C++, when you run a Lua command it executes the compiled C++ code that it's bound to

the nebula device has scripting built in out of the box; http://nebuladevice.cubik.org/
alphabeta
Kobold
Posts: 34
Joined: Mon Jan 03, 2005 5:07 am

Post by alphabeta »

It's entirely up to you how much of your game is done in script, just keep in mind C++ is faster and for that reason (and that programmers are already used to it and it's functionality) it is usually used for the core API. Scripting languages are just another language you can use, assuming you make the right bindings, in place of c++. This has two benefits, scripting languages are usually simpler making life for hobby modders easier, and they can be changed without a recompile (which I'm sure you know can get very annoying).