ET scripting engine...?


(leifhv) #1

My first ever map is nearing completion and since I’m really a programmer by trade I’m a bit curious about the state of the scripting engine in ET.

Compared to every other programming language and scripting language I’ve ever seen it seems to be very primitive.

Why is there no normal ‘if’ construct? Since it it possible to create the correct logic for a normal ‘if’ statement (using trigger) it might as well have been implemented in the scripting engine? (I won’t even get into the other stuff that is missing in this language).

Also, what is the reason the scripting engine can’t implement normal identifier names for it’s variables? Instead we have to use this strange ‘accum’ naming scheme that makes identifier naming in most assemblers seem like paradise.

I’m guessing that the other Q3 engine games is using the same scripting engine and find it strange that it is missing so much functionality when it’s so widely used.

For my next project (if there is one) I’m thinking of using my C++ preprocessor and try to create some defines/macros to make scripting a bit less painfull.

Anyone tried this and have something to share?

lh03


(MindConfusion) #2

You talking about creating a program that will help us create the scripts for ET?

Hope you are mate cause I be in for that, I can’t understand programming fully, can make out little bits but having a program to do it for us where we full in the blanks is perfect for the newbies and advanced save alot of time and get the map done quicker.


(sock) #3

The scripting language was originally developed by Grey Matter and was simple in design because it was going to be used by non-programming people. When ET was being developed the scripting system was reduced down to just to the basic’s and then a few extra commands where added as when needed. There was a massive amount of extensions and plans meant for the script language but time/money/resources did not happen.

Alot of level designers are traditionally just into creating gameplay and environments and scripting is just another headache. Even thou ET has a simple scripting system it is a nice introduction for alot people. What most people seem to fall over on is syntax and curley bracket counting. Before making the system anymore complicated it would be worthwhile creating a syntax checker for the current script system.

Sock
:moo:


(leifhv) #4

Ok, I thought that all games based on the Q3 engine used the same scripting engine.

Since this version of the scripting engine is specific to ET it is more understandable that the language is relatively simplistic…the game was free after all.

I still think it would be helpfull to have more meaningfull identifier names. If I find any usefull ways of using my C++ preprocessor I’ll post them here…don’t know how many of you that would find that usefull but…

Totally unrelated: I’ve tried using a version control system for all my files instead of constantly saving with different names. I think it works quite good, but diff operations on the map file is not very usefull since Radiant totally changes the layout of the map file between saves, even when nothing much have changed. Works great with the other files offcourse making it very easy to go back to the exact version of your project you had yesterday. Those who have access to such systems might want to look into it.

lh03


(Wils) #5

Quake 3 doesn’t have any scripting, so all the developers licensing the engine developed their own, for the most part (occasional sharing aside).

ET’s scripting is not specific to ET - it’s a tweaked/slightly improved version of RTCW’s scripting. It has nothing to do with the game being free - it’s simply what was there when we came to develop the expansion pack (which subsequently turned into a standalone free game).


(boomart) #6

i’ve a simple question here. I dont know much about scripting in Qrdt, nor mapping, but for what it worth, why isnt there any point ‘n’ click interface usability from trigger > trigered object ?
(clic on select trigered object (brush) to apply trigger on it _ with a button “select” in triggerobject panel of course )
many little things that would be pain remover for non programmers.

idem for entities/properties : i’m used to have a context menu /properties menu on right clicking…

i mean no flaming you know, i’m only wondering what devs are thinking about that, if they 'll consider ergonomics in the future ?


(Machine for to kill) #7

this scripting is pretty akward. Some people think it’s intuitive but I don’t share that opinion. It would’ve been so much easier if it resembled C or C++ some more. Then you could really push it, and do all kinds of things with it. I don’t understant why scripting is not just plain C. That would be heaven. But I guess then most people wouldn’t know what to do with it, and the engine wouldn’t be as accessible so…in the end they’re all sell-outs.