Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
Quasar

Eternity officially to use Small scripting language!

Recommended Posts

Its now official, I'm going to move Eternity to use the Small scripting language, a very well-established C-like scripting language that has been used in multiple games and other products and has a totally free license for this kind of usage.

Information on Small can be found here:
http://www.compuphase.com/small.htm

Small looks to be highly reliable and is very robust and featured. It will be compiled to binary like ACS, but doesn't share any of the frustrating static limits of that language.

Moving to Small will solve all the problems experienced by FraggleScript: static limit on number of scripts, scripts that didn't return values or take parameters, lack of reliable multitasking (running more than one script at once), lack of reliable save game code, problems accessing map things when the map is edited, and problems accessing lines and sectors by tag only.

Finally, ExtraData is going to now be script-based, and Small can enable this very quickly and without the sacrifice of tons of initialization scripts like FraggleScript would have required.

Small is pretty simple too, not much more complex than ACS in most respects and a bit simpler than it in a few, so hopefully it will be well received by editors.

Share this post


Link to post

* Small is a simple, C-like, language.
* Small is a robust language with a robust compiler.
* Small comes with an implementation of an abstract machine in portable C. The abstract machine is a set of C functions that you can easily link to an application or function library. By compiling the source code to P-code for an abstract machine (or "virtual machine"), Small is much faster than pure interpreters.
* Small has a good interface to native functions (in C/C++); your application calls functions from Small programs, Small programs call functions from your application.
* Small is a 32-bit language, even when compiled with 16-bit DOS tools.
* For porting purposes, Small is written in ANSI C as much as possible; Big Endian versus Little Endian is handled.
* Small is quick (especially with Marc Peter's assembler implementation and/or his "just-in-time" compiler)
* Small is, er..., small.
* Small is free and it has a liberal license (you may use it for commercial applications, and you may also freely distribute modified sources or binaries ---though you take responsibility for those modifications).


Looks like an interesting and excellent choice over FraggleScript (not to say FS isn't a good scripting language). I'm sure that Eternity will benefit from the use of Small.

Share this post


Link to post
mmnpsrsoskl said:

How will it be implemented?
What kinda effect will we be able to do with Small? Same as FS?


Well, I dunno yet, I haven't dragged it out of Quas yet about what Small can do.

Share this post


Link to post

I will be rewriting all of the FS builtins to work with Small. Of course I'm going to take the liberties of revising their interfaces, making them work better and with more features, etc, while doing that, and I fully expect to start adding a steady stream of totally new functions, including ones to support ExtraData stuff, new stuff from Hexen, etc, as I was at one time doing for FS (before I figured out it was mostly a waste of time).

I plan to look over the ACS function set as well. FS already has a few functions directly from ACS, like setlineblocking and setlinetexture. There are a few I had to put off for ExtraData, though, and now I should be able to hit on those.

The Eternity set of native functions for Small will be "robust" :P That's about all I can say.

Share this post


Link to post

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  
×