【发布时间】:2013-08-01 10:32:16
【问题描述】:
问题
如果我在 windows 上使用 clozure cl 在 common lisp(使用:lispbuilder-sdl、quicklisp、cffi)中制作 2d 游戏,我是否能够轻松将其移植到其他平台(linux/ iPhone(也许)/安卓)稍后? lisp “适合”安装程序吗?
信息
- 游戏将使用 OpenGL 绘制图形。很可能它将使用 sdl 进行输入/opengl 初始化,并使用 sdl 或 openal 进行音频。以后可能会使用我自己的库而不是 sdl。
- 为 cffi 编写几个 C++ 库(以“可移植”方式包装功能)不是问题。
推理
我真的、真的厌倦了 C++。想尝试一些语法更简单+功能更强大的东西(不是python)。有一个游戏项目,想知道如果我以后突然决定分发/移植游戏,为游戏选择 lisp 是否意味着严重的麻烦。
--编辑--
其他信息
“合适的”和“可安装的程序”是什么意思?
如果我尝试将可以在我的机器上运行的已完成程序转换为可安装包(例如 Windows 上的 Windows 安装程序),我不确定 CFFI/quicklisp 的性能如何。例如,quicklisp 在用户的主目录中设置路径/存储库(这可能是不可接受的行为)并尝试从外部源自动下载包,当您尝试分发程序并确保它作为故意的。 CFFI 在某些时候将外部库“绑定”到 lisp 函数,我不清楚它的工作情况,例如,如果我转储程序映像,将其嵌入 exe 并在另一台机器上运行该 exe。根据常识,这应该可以正常工作,但在最坏的情况下,它可能导致我不得不编写特定于 lisp 分发的复杂安装程序。
【问题讨论】:
-
我猜这取决于使用的库。如果它们也在其他操作系统下提供,问题应该出在哪里?应该与任何其他语言相同:保持给定的标准,检查使用的库是否被移植并且仍然提供相同的接口。不过,您的第二个问题非常模糊。 “合适的”和“可安装的程序”是什么意思?
-
“更强大”?比在 C++ 中?嘿,你确定你试过了吗?;)
-
@MichaelIV:7 年的经验应该足够了。
-
@Sim:我不确定当我尝试将完成的程序转换为可安装包时,CFFI + quicklisp 的效果如何。
-
根据我的经验,common lisp 非常便携。
标签: opengl common-lisp portability