** 注意:对不起,如果我在这篇文章中陈述了明显的内容,我不确定你是否熟悉 Common Lisp **
从 sds 继续:
在 android 上运行 clozure 似乎有一点生命,但可用的性能还有待观察。我们不太可能在 iphone 商店中看到 lisp 游戏,除非它们编译成编译器在运行时不可用的其他语言(请参阅Nu或有关专有选项,请参阅mocl,它们都有解决此问题的方法)
可移植性 - 跨实现
在库中,让它们在尽可能多的实现中可移植地工作是绝对值得的,但是对于游戏,我真的只是选择一个实现并在那里磨练你的代码。您可能会将您的游戏作为每个平台的包分发,而不是通过 quicklisp 对吗?
可移植性 - 跨平台
请务必检查您在每个平台上首选实施的进度,可能会有一些微妙的陷阱。对我来说,我使用 SBCL,在 Windows 下仅完全支持 32 位,而 64 位仍在开发中。
包装
这对您来说是个好时机,因为今天在 openmcl-devel 上发布了一些有关为 Apple Mac Store 打包 Clozure 应用程序的信息 。我还没有好好阅读,但该线程可能会提供更多信息。
Zach Beane 还为 SBCL 制作了 buildapp
lispbuilder 的人似乎也有一些关于制作独立可执行文件的信息。
工具
cl-opengl是一个非常好的 opengl 包装器。它同时支持旧的和现代的 opengl 风格,所以我发现尝试提供更高级别抽象的领域有点限制(我个人避开了 cl-opengl 的 gl-arrays)。一定要阅读源代码,因为那里有一些很棒的东西,尤其是当您开始编写更多 cffi 代码时。
{cl-opengl 仍在开发中,可通过 quicklisp 获得——我已经在 linux 和 windows 下愉快地使用它}
lispbuilder-sdl非常酷,但您可能会再次找到控制某些领域的冲动。例如 sdl:with-events 宏很棒,但它可以控制您的主循环和时间步处理。这可能对您非常有用,但如果不是,请不要害怕挖掘并编写更好的东西来替换这些部分!
lispbuilder 还提供了一系列库,因此在使用它们之前,请检查 quicklisp 中是否有更新的等价物。例如 lispbuilder 有 lispbuilder-opengl。不要使用这个,坚持使用 cl-opengl。同样 lispbuilder 有 lispbuilder-regex 而使用CL-PPCRE可能要好得多。
我可能不建议按现状使用它,但我花了一点时间来剥离所有与现代 opengl 游戏无关的 lispbuilder-sdl(因此没有 sdl 软件表面等)。我不认为人们应该使用它,但它可能会给你一些想法!{lispbuilder 没有进行大量开发,但可以通过 quicklisp 获得 - 我已经在 linux 和 windows 下愉快地使用它}
此外,当我在拉皮条由伟大的人编写的代码然后被我撕毁时,请参阅此视频,了解如何在游戏运行时重新编译游戏的某些部分。这不是我的技术,但效果很好。
以上将要求您使用SLIME或SLIMV,这意味着使用 Vim 或 Emacs。SLIME 真的值得你花时间去看看!
总而言之,祝你好运,Common lisp 的开发非常有趣,虽然你可能会发现需要一段时间才能获得你喜欢的 opengl 工作流程,但如果你有时间,我相信你会玩得很开心。
期待看到比赛!