home home

downloads files

forum forum

docs docs

wiki wiki

faq faq

Cube & Cube 2 FORUM


Sauerbraten scripting and Chicken Scheme

by bvanevery on 03/31/2006 03:57, 14 messages, last message: 04/01/2006 21:01, 2639 views, last view: 04/29/2024 12:56

I found Cube and Sauerbraten while doing a Google search for open source OpenGL games with MIT, BSD, or zlib style licenses. I'm using a Windows MinGW toolchain. I haven't actually built Sauerbraten yet so my comments may be premature, but I'll make them anyways.

I notice you haven't settled on a scripting language. Myself, I'm trying to prove the viability of <A href=http://call-with-current-continuation.org>Chicken Scheme</A> for 3D game development. It offers both a compiler and an interpreter and has some ability to talk to C++. I can't really state what's possible yet, this is all experimental for me. However, I'm committed to making Chicken Scheme work with OpenGL somehow. I've been looking around for games with good licenses to try it out. If that doesn't pan out I'll eventually write everything from scratch. Most open source games are GPLed, and I'm a nominally commercial developer, so the list of games that's worth bothering to do this with is pretty short.

So, I'm curious what your current thoughts about scripting languages are, and what directions you've been leaning towards, if any. Myself, as a 3D graphics guy I'm constantly irritated by the low performance of Python, Lua, Ruby, and the like. I think Chicken Scheme can offer a better way, as it is both a Scheme --> C compiler and an interpreter. I don't see that languages have to be slow to be flexible, but at present that's the production reality of the rest of the universe.

   Board Index   

#1: ..

by bvanevery on 03/31/2006 03:58

Apologies for a mishmashed URL. I thought it would take URL tagging. For Chicken Scheme try http://call-with-current-continuation.org

reply to this message

#2: Three time's a charm

by bvanevery on 03/31/2006 04:06

The URL I gave is correct. But oddly, clicking on that link doesn't work in either Netscape or IE. But, right clicking it and opening it in a new tab in Netscape does. Let's try this version:
http://www.call-with-current-continuation.org/

Too bad this board doesn't have a post preview function.

reply to this message

#3: Hmm

by Pxtl on 03/31/2006 04:11

The problem with using native code is that it becomes impossible to sandbox the code. Imho, a scripting language is useless unless it allows you to run untrusted code. When I play UT2k4, I don't have to worry that the mods I'm fetching aren't malicious. With anything native, I'm not so lucky.

Alternately, if you distribute the source as mods instead of the bytecode (which you must do to be cross-platform), you have to compile it on the client side. This means bundling both the scheme compiler and a C compiler into Cube.

reply to this message

#4: tangled issues

by bvanevery on 03/31/2006 04:25

I agree that embedding a Scheme compiler into Sauerbraten would be required, but I don't see that you'd need to embed a C compiler. Chicken would either interpret Scheme code, or compile to C, leaving the C --> ASM job to an available native compiler. I agree that a native C compiler would have to be installed somewhere if you want performance.

I don't think all scripting issues are modding or multiplayer issues. It's a viable way to prototype code for its own sake. Write an interpreted version, move it to a compiled version as you wish. Also, I'm not really experienced with it, but in the Scheme / Lisp universe it's possible to do this sort of thing dynamically, while systems are running. Most languages have this capability.

I will peruse the Chicken archives about sandboxing issues. Proving that it can actually work for simpler stuff would be my 1st priority though. I'm not sure that any language is ideal for sandboxing, I don't know that it's a language's fault really. I wonder if Erlang has something to offer in that dept., but I don't do Erlang.

reply to this message

#5: most languages *don't* have dynamic compilation capability

by bvanevery on 03/31/2006 04:26

Gaagh, for love of a preview!

reply to this message

#6: ..

by makkE on 03/31/2006 04:29

Current thoughts on scripting are (as far as I´m concerned) :

Not decided yet if Aard wants it at all,
but if so, he will write his own scripting language.

reply to this message

#7: ..

by bvanevery on 03/31/2006 04:46

Does he realize how many GameDeveloper postmortems are littered with the bones of development teams who thought they should write their own compiler and/or scripting language from scratch? What's the point? Other than "I wanna do this and I can." Or in a commercial context, "I wanna do this, I can, and I can do it on someone else's nickel for my career benefit. Yippie!"

reply to this message

#8: Re: ..

by rancor on 03/31/2006 04:50, refers to #7

Aard has something of a track record with this sort of thing though... http://strlen.com/proglang/index.html

reply to this message

#9: ..

by bvanevery on 03/31/2006 05:09

Ok, interesting research, but this doesn't look at all aimed at building communities or industrial utility / acceptance. Looks like I'm on my own, so I'll plan accordingly.

reply to this message

#10: Aard already decided

by eihrul on 03/31/2006 07:44

Basically, Aard decided against using any scripting language at all. The reasoning is that he only wants people with a clue doing anything significant with the engine, rather than someone changing 3 lines of script code and declaring it their own fantastical new game they made themselves. The C++ code is small and easy to understand, so the scripting is rather unnecessary.

And for anyone with a clue who wants to use a scripting language for their own Sauer project, it's trivial to add.

reply to this message

#11: Re: Aard already decided

by eihrul on 03/31/2006 07:48, refers to #10

I should add that for client-side things, the console language we have is perfectly adequate, and is extremely powerful for what it is.

For server-side stuff, the FPS game is NOT, I repeat NOT, meant to be extended for any other use than the FPS game. We have no need of a scripting language in the FPS game for that simple reason. The core engine does not define any gameplay, so it's rather trivial to build whatever game you like on top of it, using whatever pet language you want.

reply to this message

#12: Re: ..

by Pxtl on 03/31/2006 15:27, refers to #7

Yes, apparently Aard is actually quite famous in the Amiga world as a prolific language designer (which I discovered after I made a similar charge of "not-invented-hereism"). And he runs the project. So when he decides that the engine needs a scripting language, he'll make one.

reply to this message

#13: yes..

by Aardappel_ on 04/01/2006 04:33

What eihrul said. And I can safely say that I am not being arrogant when I say that I have made languages much more suitable to gameplay scripting than any of the mainstream scripting languages out there.

Me & eihrul have been working on a design for a really kickass language, but at the rate things are going right now, there's not going to be time for that in the immediate future.

The current small builtin scripting language is going to be the only scripting language in sauer. If I'd ever integrate a mainstream language for whatever reason, it be something like Lua, not scheme.

reply to this message

#14: ......

by Corpus Callosum on 04/01/2006 21:01

CorpusC: is there a bvanevery from #sauerbraten forums here?
* Q sets ban on *!*@*.hsd1.tn.comcast.net
* You have been kicked from #chicken by Q (You are BANNED from this channel.)


heheh, was just trying to get ahold of you. i would like to talk with you via email about possibly working together.
i use hotmail
and i am \"corpus_callosum\" there

reply to this message

   Board Index   


Unvalidated accounts can only reply to the 'Permanent Threads' section!


content by Aardappel & eihrul © 2001-2024
website by SleepwalkR © 2001-2024
53848751 visitors requested 71621842 pages
page created in 0.019 seconds using 10 queries
hosted by Boost Digital