Sign in to follow this  
essell2

Getting into LUA scripting, as an industry-experienced level designer

Recommended Posts

Hi there everyone, have just signed up to this place, so I'm new :) I'm an industry-experienced level designer, wanting to teach myself to use LUA to improve my CV. How would you suggest I go about doing this, in terms of software / tools / coding environments to use, etc? A friend of mine has suggested Love, which looks interesting and appropriate: http://love2d.org/home But I wonder how relevent it is to the kind of LUA scripting that might be used in big AAA game development. Any ideas / suggestions / advice?

Share this post


Link to post
Share on other sites
Hello,
LOVE is 2D game engine based on lua, it might be useful to get some basics of the language, but I think you will use your own engine for your own games.
I suggest you reading this book http://www.lua.org/pil/ . It explains every aspect of the language and there is a part at the end, which teaches you how to bind the interpreter with your own C/C++ application.
I think you should study that book and then, when you can write some scripts, you can play with LOVE to get more experience.
You might also get basic interpreter from http://www.lua.org/download.html for learning purposes.

Share this post


Link to post
Share on other sites
Thanks for the quick reply :)

One thing I should probably have said is that I'm really set on making the most progress I can in as short a time as possible here. Ideally I'd hope for an approach that will bring some form of tangible results from my experimentation as soon as possible.

An example of what I mean is Processing (http://processing.org/), which I've very recently started playing around with to become familar with the basic principles of coding. It's designed very-specifically for small experiments that can be picked up by newcomers quickly, and if there's anything remotely similar for LUA, I think that would be exactly what I'm after here.

I know that ultimately there's no instant shortcut to understanding a programming language, but if there are any suggestions to be made that are particularly suited to these aims, then that'd be great :)

Share this post


Link to post
Share on other sites
Just as a side note, it is "Lua" not "LUA"; the latter would imply an acronym and simply isn't correct.

Easy mistake to make, many people do just because they have seen it (incorretly) as LUA somewhere and haven't known better.

*continues his quest to correct this mistake*

Share this post


Link to post
Share on other sites
Lua is used in several AAA titiles ( Crysis uses it as its core scripting language, WOW uses it for its front end GUI scripting, etc ). Like any scripting language it all about fitting the language to the task.

There are several IDEs which you can use with Lua (Decoda, QDE, etc..) but most developers make their own frontend tailored to their applicaiton (Decoda is ide developed by UnkonwnWorlds for their game Natural Selection and QDE was also developed by Quotix as an ide for their games).

The hardest part of utilizing a scripting language is how to create a clean binding of low level code with the scripts themselves. This isn't trivial, poor binding implementation and design limits both scripts and the native applicaiton. Novice coders get confuses at what scripts are capable of, once scripts were nothing more than configuration files for entities and subsystems, but they've moved beyond that. Scripts now are complete languages in themselves (Lua and other scripting languages got their start this way) fully capable of executing complex logic and storing statefull data.

Most AAA games use a very complete scripting backend, I would guess most AAA games these days probably have 30-60% of their programmed content as scripts (that's just an estimate from my experience, there's been no published numbers). Scripts do everything from configure GUIs, control AIs, make quests, major gameplay features etc..

From a level designer standpoint, usually you'll code scripts within a framework ( which is also in script, built either by senior scripters or programmers ). Your tasks will include usually creating content within the confines of this framework. A framework might for example call your scripts when preset conditions are met and then your script would be started and continuously executed until some condition is met to end it.

What kind of scripting is really dependent upon what type of game your making. For instance if you were making a puzzle game and each puzzle board was managed by scripts, your script task would involve laying out the puzzle board, the rules, each players moves and the winning conditions,etcc..

Something more relevant to a AAA game would be scripting for a FPS for instance. In that case you would would create script content for say triggering various fx, spawning creatures at certain times, panning the camera perhaps in an interactive cutscene, moving objects around after certain triggers have been pressed etc..

Hope this helps!

Enjoy!

-ddn

Share this post


Link to post
Share on other sites
If you want to ease the binding process, and don't mind a huge footprint (Or the frustration of setting it up), you can always use Luabind: http://www.rasterbar.com/products/luabind.html

I tried it, and it's absolutely awesome. But it's more in tune with the "extend" philosophy, rather than the "embed" one, which is what lua was originally designed to do.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this