22

質問

Windows で clozure cl を使用して common lisp (使用: lispbuilder-sdl、quicklisp、cffi) で 2D ゲームを作成した場合、後でそれを他のプラットフォーム (linux/iPhone(多分)/android) に簡単に移植できますか? Lisp はインストール可能なプログラムに「適しています」か?

情報

  1. ゲームは、グラフィックに OpenGL を使用します。ほとんどの場合、入力/opengl の初期化には sdl を使用し、オーディオには sdl または openal を使用します。後でsdlの代わりに自分のライブラリを使用することになるかもしれません。
  2. cffi (「移植可能な」方法で機能をラップするため) 用のいくつかの C++ ライブラリを作成することは問題ではありません。

推論

私は本当にC++にうんざりしています。より単純な構文 + より強力な何か (Python ではない) を試してみたい。ゲームプロジェクトを念頭に置いて、後でゲームを突然配布/移植することを決定した場合、ゲームに Lisp を選択することは深刻な問題を意味するかどうかを知りたい.

- 編集 -

追加情報

「適切な」および「インストール可能なプログラム」とはどういう意味ですか?

自分のマシンで実行できる完成したプログラムをインストール可能なパッケージ (Windows の Windows インストーラーなど) に変換しようとすると、CFFI/quicklisp がどれだけうまく機能するかわかりません。たとえば、quicklisp は、ユーザーのホーム ディレクトリ内にパス/リポジトリを設定し (これは受け入れられない動作である可能性があります)、外部ソースからパッケージを自動的にダウンロードしようとします。意図されました。CFFIはある時点で外部ライブラリをLisp関数に「バインド」しますが、プログラムイメージをダンプしてexeに埋め込み、そのexeを別のマシンで実行すると、どのように機能するかは不明です。常識的にはそのままでも問題なく動作するはずですが、最悪の場合、lisp ディストリビューション固有の複雑なインストーラーを書かなければならなくなる可能性があります。

4

4 に答える 4

2

後で他のプラットフォーム (linux/iPhone(たぶん)/android) に簡単に移植できますか?

まあ、それはあなたが選んだライブラリに大きく依存します。

Android や iOS での開発経験はまったくありませんが、現在、Lispbuilder-sdl、cl-opengl、quicklisp などを使用する Common Lisp で小さなプロジェクトを開発しており、SBCL 間での移植に問題はありませんでした。 Linux 上の Clozure-CL から Windows 上の Clozure-CL へ。

また、少なくとも 1 つの有望なモバイル Common Lisp 実装があります: https://wukix.com/mocl

したがって、コードの移植に問題はないと思いますが、アプリケーションで使用されるすべてのライブラリが、各プラットフォームと Lisp 実装で適切にサポートされていることを確認してください。

Lisp はインストール可能なプログラムに「適しています」か?

ほとんどの Lisp には、組み込みライブラリを使用してスタンドアロンの実行可能ファイルを作成する機能があります。一方、プロジェクトが十分に大きくなった場合、可能性のある Lisp 関連の問題に関係なく、プラットフォーム固有のインストーラーを作成する必要があります。そして、Lisp 関連の部分が最も複雑になるとは思えません。Lisp Executableという記事もチェックして、スタンドアローンの実行可能ファイルの代わりに Lisp ランタイム イメージを配布するという考えを検討してください。

于 2013-08-01T10:00:05.817 に答える