Advertisement

Hunting: C Source for an Embedded Scripting Engine

Started by August 21, 1999 04:39 AM
6 comments, last by DavidRM 25 years, 3 months ago
Hi ya,

I also have need fo such a setup. Currently I am messing with Python (www.Python.org) which is a compleat langage in its own right. Overkill for what you need I suspect (it is for me!) however I believe a lot of the modules can be pruned out. It went in my mfc app easy enough though I have a memleak with it at the moment (still playing with it. (: )
Anyway, might be worth looking into.
Hope this helps.

------------------
----------------
Robert Kelly IV (aka Feral Trobar)
Feral@FireTop.Com
FireTop.Com
http://FireTop.Com
For information email Info@FireTop.Com

We've found a little interpreted C engine. We're not totally sure it'll work out, but it's small...you might check it out: http://www.anarchos.com/eic/

------------------
DavidRM
Samu Games
http://www.samugames.com

Advertisement
I've been working on something similar to that, but a bit different. In my solution DLLs contain a library of functions with a uniform calling convention (a void * array of parameters is passed in along with an int specifying how many parameters). DLLs are then loaded and unloaded at run time and functions are explicitly linked by the interpreter, per script in the interpreted language. This is a lot easier than working with a static executable (because DLLs were designed for it).

Presently I'm dealing with the interpreter; the grammar for my scripting language is pretty simple, but it could be simpler. If anyone knows of Win32 equivalents to yacc/lexx or knows of open source for a popular scripting language, feel free to jump right in and stop me from writing one of those nasty parsers...

In any case, I WOULD recommend going with DLLs. It's "hella" easier.

If your interested in a 'C' like script engine capable of calling exported C functions. Take a look at SeeR which can be found at: http://home.elka.pw.edu.pl/~ppodsiad/seer/index.html
Also check out Bob, which is a very small embededdable Java-like language.
http://www.mv.com/ipusers/xlisper/

Also on the page is XLisp, which is a popular embedded Lisp.

(my byline from the Gamedev Collection series, which I co-edited) John Hattan has been working steadily in the casual game-space since the TRS-80 days and professionally since 1990. After seeing his small-format games turned down for what turned out to be Tandy's last PC release, he took them independent, eventually releasing them as several discount game-packs through a couple of publishers. The packs are actually still available on store-shelves, although you'll need a keen eye to find them nowadays. He continues to work in the casual game-space as an independent developer, largely working on games in Flash for his website, The Code Zone (www.thecodezone.com). His current scheme is to distribute his games virally on various web-portals and widget platforms. In addition, John writes weekly product reviews and blogs (over ten years old) for www.gamedev.net from his home office where he lives with his wife and daughter in their home in the woods near Lake Grapevine in Texas.

www.python.org

Python is what I use. Its actually fun just to play with as the module library (scripts) that comes with it is outstanding, from crypto,CGI,database,math, Socket Server,...ect. Its also VERY easy to learn and maintain (i.e NOT pearl).

Python is copyrighted but freely usable and distributable, even for commercial use.

Its the scripting lang thats used in Caligari's TruSpace 4 (www.caligari.com) and in Alice (www.alice.org)

They can describe it better than I can so here it is :
"Python is an interpreted, interactive, object-oriented programming language. It is often compared to Tcl, Perl, Scheme or Java.

Python combines remarkable power with very clear syntax. It has modules, classes, exceptions, very high level dynamic data types, and dynamic typing. There are interfaces to many system calls and libraries, as well as to various windowing systems (X11, Motif, Tk, Mac, MFC). New built-in modules are easily written in C or C++. Python is also usable as an extension language for applications that need a programmable interface. "


"You know you're obsessed with computer graphics when you're outside and you look up at the trees and think, "Wow! That's spectacular resolution!""
Advertisement
I'm hunting C source code for an embedded scripting engine that is able to call functions from the main program or module.

The idea is that the program can use the scripting engine to load and process scripts at runtime, with the scripts being able to call functions declared in the program and "exported" to the scripting engine.

Thanks!

------------------
DavidRM
Samu Games
http://www.samugames.com

You should also check out "LUA", it's what I'm using in my game. it's a byte-code-compiled language which runs in a small virtual machine, so it's fast, and you can ship pre-compiled bytecode with your game, so you can avoid having to ship source if you don't want to.

it's small, fast, portable, and (kinda) C like. I've programmed in lots of scripting languages, and I've become quite smitten with LUA for "embedded" use.

LUA is also the embedded language in Baldur's gate, and other Bioware projects.

The homepage for LUA is at:
http://www.tecgraf.puc-rio.br/lua/

Write me if you want me to send you a handy set of Win32 project files to compile LUA with.

-- Pryankster (mcuddy@fensende.com)

-- Pryankster(Check out my game, a work in progress: DigiBot)

This topic is closed to new replies.

Advertisement