Live data from Hacker News

Embedding Scheme for a game mission scripting DSL

carloscarrasco.com

21–26 of 26 posts

Re: Embedding Scheme for a game mission scripting DSL

#21

Hey, I visited your game website http://thespatials.com/ and it started blasting audio automatically. Some consider this an anti-pattern! The info on mission scripting is really good though!

It's a chillout song, and, well, it's the home page of a videogame, so we thought we could get a pass with the video on autoplay. But it's been two people in the last 12 hours already complaining about it so I will disable it for awhile and see how it goes with conversions/ engagement. We well keep this in mind for future videos. Thanks for the feedback!

Re: Embedding Scheme for a game mission scripting DSL

#22
Tcl is probably a bit bigger than he wanted, but still does this kind of thing admirably.

Originally created by antirez, the "Jim" Tcl interpreter is pretty cool if you want something a bit more minimalistic than regular Tcl: http://jim.tcl.tk/index.html/doc/www/www/index.html

Re: Embedding Scheme for a game mission scripting DSL

#23
post #8
post #6

Earlier quoted context omitted.

Have you looked at Chibi-Scheme? http://synthcode.com/scheme/chibi/

Yep, and discarded it early. From the home page: Windows (under Cygwin) This is usually code for "needs UNIX/POSIX APIs", or its uglier cousin, "uses C99". I wouldn't mind Mingw32, and would mind a little bit Cygwin, but the problem is that for a video game I can't even begin to consider those platforms for Windows. All the official platform SDKs, or the third party ones (think Steam) require the Microsoft compilers…

The Microsoft compiler supports C99 since version 2013.

Re: Embedding Scheme for a game mission scripting DSL

#24
post #8

Earlier quoted context omitted.

Yep, and discarded it early. From the home page: Windows (under Cygwin) This is usually code for "needs UNIX/POSIX APIs", or its uglier cousin, "uses C99". I wouldn't mind Mingw32, and would mind a little bit Cygwin, but the problem is that for a video game I can't even begin to consider those platforms for Windows. All the official platform SDKs, or the third party ones (think Steam) require the Microsoft compilers…

The Microsoft compiler supports C99 since version 2013.

Partially, mostly in the library area. It still has some troubles with actual C99 code:

http://bellecrazysnail.wordpress.com/2013/11/14/some-thought...

There's also some weird double personality issues going on with their compilers in MSVC2013, for example they support designated initializers in plain C but not in C++. So you get partial C99 inside pure C or C89 (MS flavored) under C++.

I forgot where I read the quote, but for a decade Microsoft saw the plain C compiler as tool exclusively meant for Windows development. While gcc and later clang adopted and embraced new C idioms, like the struct syntax I mention, they kept their plain C support frozen in time.

I also found weird behavior in MSVC when pushing the C preprocessor VERY hard (nested variadic macros. That would require an entire blog post for itself...)

Re: Embedding Scheme for a game mission scripting DSL

#26
post #8
post #6

Earlier quoted context omitted.

Have you looked at Chibi-Scheme? http://synthcode.com/scheme/chibi/

Yep, and discarded it early. From the home page: Windows (under Cygwin) This is usually code for "needs UNIX/POSIX APIs", or its uglier cousin, "uses C99". I wouldn't mind Mingw32, and would mind a little bit Cygwin, but the problem is that for a video game I can't even begin to consider those platforms for Windows. All the official platform SDKs, or the third party ones (think Steam) require the Microsoft compilers…

It builds under Mingw32 as well, and at least an earlier version built with VC++ without modification (I don't have access to a windows machine right now to verify). It also builds under Plan 9, which uses a very old and basic C compiler very far from C99.

Some of the optional extension libraries like networking may not work out of the box, but TinyScheme doesn't have these anyway.

Basically, Chibi was designed as a better TinyScheme. It's just as small, can also easily be included statically without a library, has a nicer (optional) FFI, various features like full Unicode, full numeric tower and hygienic macros (all optional), and is an order of magnitude faster.

Post reply on HN