TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Embedding Scheme for a game mission scripting DSL

106 pointsby carloscmover 10 years ago

8 comments

sreanover 10 years ago
Given the requirements I was rooting for Guile. He ended up choosing TinyScheme. Those who have not kept up with Guile development for the last 4 years would, I think, would be very pleasantly surprised, I was.<p>It has been vigorously developed upon, lots of changes to make it more performant and you can catch the highlights of all this action on Andy Wingo&#x27;s blog <a href="http://wingolog.org/tags/guile" rel="nofollow">http:&#x2F;&#x2F;wingolog.org&#x2F;tags&#x2F;guile</a><p>I like his rundown of different Scheme implementations <a href="http://wingolog.org/archives/2013/01/07/an-opinionated-guide-to-scheme-implementations" rel="nofollow">http:&#x2F;&#x2F;wingolog.org&#x2F;archives&#x2F;2013&#x2F;01&#x2F;07&#x2F;an-opinionated-guide...</a> including the comments that readers left there.<p>Another neat scheme for games that I am aware of is ypsilon <a href="http://code.google.com/p/ypsilon/" rel="nofollow">http:&#x2F;&#x2F;code.google.com&#x2F;p&#x2F;ypsilon&#x2F;</a> one driving motivation for it was to keep GC pauses small, pretty important for games. I believe it has an incremental GC, not a fully concurrent one.<p>&gt; The requirements included &quot;Windows (compiled with MSCV) and iOS.&quot; Guile can do that?<p>Yep! with MinGW on Windows. IIRC they distribute such a prepackaged bundle. Will probably work with cygwin dlls too. Dont know about GUI inter-op, but Guile would build with Xcode<p>@xpolitix Good point about the need to link statically on iOS, had not thought about that one.
评论 #8250390 未加载
评论 #8250455 未加载
评论 #8250394 未加载
wrlover 10 years ago
Embedded programming languages are really cool. Lua&#x27;s still ruling the roost, as far as I&#x27;ve seen, but there are some nice options out there.<p>I&#x27;m currently using mruby for a project and have been quite happy with it so far. The community around it is still somewhat thin, but the code quality is good and development is quite active. <a href="https://github.com/mruby/mruby" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;mruby&#x2F;mruby</a>
评论 #8251860 未加载
justincormackover 10 years ago
&gt; &quot;The &quot;small Lisps&quot; are truly small, unlike, say, Lua.&quot;<p>Well tinyscheme seems to be about half the size of Lua, which is not that different. Lua really is pretty small.
评论 #8250597 未加载
nanexcoolover 10 years ago
Hey, I visited your game website <a href="http://thespatials.com/" rel="nofollow">http:&#x2F;&#x2F;thespatials.com&#x2F;</a> and it started blasting audio automatically. Some consider this an anti-pattern!<p>The info on mission scripting is really good though!
评论 #8252080 未加载
bakulover 10 years ago
s9fes is another small Scheme that runs on Unixes, OS X, Plan9 &amp; Windows. The code is in public domain and fully described in a very nice book &quot;Scheme 9 From Empty Space: a guide to implementing Scheme in C&quot;. It weighs in at roughly 25% more lines than tinyscheme for *.{h,c,scm}.<p><a href="http://www.t3x.org/s9fes/" rel="nofollow">http:&#x2F;&#x2F;www.t3x.org&#x2F;s9fes&#x2F;</a>
chipsyover 10 years ago
My kneejerk reaction was &quot;oh my god don&#x27;t dump a general-purpose language into the runtime just to write mission scripts,&quot; but this is actually a good example of how to do it: The DSL defines some data structures that the C++ code uses, and has a direct handoff of the emitted results from Lisp into C++. Lisp doesn&#x27;t have to interact with every frame of the game.<p>If you start exposing the engine in arbitrary fashion, things go south rather quickly; the scripting language will never stop finding more things it happens to need to get access to, and then you have an inner platform with boilerplate abstractions that make for worse tooling than whatever you started with.
评论 #8251504 未加载
davidwover 10 years ago
Tcl is probably a bit bigger than he wanted, but still does this kind of thing admirably.<p>Originally created by antirez, the &quot;Jim&quot; Tcl interpreter is pretty cool if you want something a bit more minimalistic than regular Tcl: <a href="http://jim.tcl.tk/index.html/doc/www/www/index.html" rel="nofollow">http:&#x2F;&#x2F;jim.tcl.tk&#x2F;index.html&#x2F;doc&#x2F;www&#x2F;www&#x2F;index.html</a>
krosaenover 10 years ago
Neat - I wonder if ClojureScript-Terra could have worked too:<p><a href="https://github.com/ohpauleez/cljs-terra" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;ohpauleez&#x2F;cljs-terra</a>