ゲームエンジンのようにEXEをつくるには?


字輪  2003-09-12 00:14:53  No: 4774

ノベルゲームエンジン(その他も含めて)のように、単独で動作するEXEファイルを生成する方法をご存じの方、ヒントをいただければ幸いです。色々と試してみたのですが、どれもこれもうまくいきません。


キャップ  2003-09-12 00:37:43  No: 4775

delphi  enterpriseを使用していますが、
保存したプログラムを実行すれば自動的に
単独の.exeファイルができるのですが。


字輪  2003-09-12 00:51:49  No: 4776

そういう意味のEXEではなく、DelphiでつくったゲームエンジンでEXEを作る方法です。


にしの  2003-09-12 01:46:16  No: 4777

ノベルゲームエンジンの定義が曖昧ですので、もう少し詳しく書かれると、解決法が見つかるかもしれません。


ぷりお  2003-09-12 03:10:10  No: 4778

Delphiで作った開発ツールのことをゲームエンジンと表現しているのでしょうか。
その開発ツールで作成したツールをコンパイルしてEXEを作りたいと、つまりこういうことなんじゃないですか?
そういうことであれば、できます。
「ひまわり」という、日本語の開発ツール(開発言語と言った方がわかりやすいか)ってご存じですか?
それはdelphiで作られてますし、exeも生成します。


字輪  2003-09-12 05:07:58  No: 4779

ひまわりはEXEを生成しているのではなく、元からあるEXEに追加しているように思われますが、違うでしょうか?


にしの  2003-09-12 06:37:39  No: 4780

「ノベルゲームエンジン」で検索したところ、NScripterなどが見つかりました。
が、これは単一のEXEではなく、画像やテキストは別データだったと思います。

もしかして、コンパイラコンパイラのことでしょうか?
Lex/Yaccで字句解析・構文解析を行い、構文によって機械語を出力するようにしてやれば、ゲームのシナリオデータから実行形式にできます。

元からあるEXEに追加する手法は昔からあります。
インタプリタ系言語をEXEにする場合の常套手段と言えます。
# インタプリタ部分を実行ファイルにし、スクリプト部分を後ろにつけて、それを読み込み実行させます
後ろに追加しても、やはり「単独で動作するEXEファイル」だと思うのですが、もし違うのであれば、どういう条件で「単独で動作するEXEファイル」と言えるのでしょうか・・・。


たかみちえ  URL  2003-09-12 06:43:41  No: 4781

横から失礼します。
> 元からあるEXEに追加しているように思われますが
  それが一番手っ取り早いのではないでしょうか?
  ノベルゲームエンジンを作るのですよね?でしたら、それで十分だと思いますけど。


achi  2003-09-12 22:51:17  No: 4782

Delphiのライセンス規約ではEXEファイルを作成することの
できるアプリケーションを作成してはいけなかったような気がします。


にしの  2003-09-12 23:30:53  No: 4783

Delphiの再配布可能ファイルを、(作成したアプリケーションの)エンドユーザが再配布することを禁止しているだけで、ライブラリを自前で用意してEXEを作成するのはよいように読めます。

具体的にはどのあたりが作成禁止していますでしょうか。


achi  2003-09-13 00:01:39  No: 4784

とりあえず、
Delphi5のライセンス.txt から引用
83: お客様がどのような変更を行おうとも、お客様のプログラムをどのようにコンパイ
84: ル、リンクまたはパッケージしようとも、いかなる場合であっても、ライブラリ
85: (ランタイムライブラリを含む)、コード、再配布可能ファイルもしくは本ソフト
86: ウェアのその他のファイル(その一部であっても)は、お客様以外によるプログラ
87: ム開発に使用されてはなりません

上記だけで「ひまわり」は危険度が高いような気がします。
(Delphiのライブラリをそのまま使っているため)
VC++の「HSP」も怪しいものですが・・・。

ライブラリを100%自力で作成すれば良いかもしれませんが、
EXEファイルのお尻にコードを追加する形式では必ずこの規約
に違反してしまうかも知れません。

# 新規のEXEファイルを作成する分にはおそらく問題はないと思います。


にしの  2003-09-13 00:29:12  No: 4785

なるほど。
やはりライブラリですよね。
その点だけであれば、FCL(Free Pascal Class Libraries)とLCL(Lazarus Class Libraries)を利用することによりカバーできると思います。
http://www.freepascal.org/
http://www.lazarus.freepascal.org/
# LazarusはDelphiに似たRADツールです。
# 出始めの頃に使ってみましたが、WIN32版はうまく動きませんでした

詳しく読んでいませんが、確か、GPLかLGPL扱いのはず。


にしの  2003-09-13 00:31:29  No: 4786

ちなみに、Delphi7Proのlicence.txtには、
> お客様以外によるプログラム開発に使用されてはなりません
という部分はありませんでした。


ベータ  2003-09-13 02:09:17  No: 4787

>achiさん
ライセンスの、「プログラム開発に使われてはなりません」という意味は、
Delphiのライセンス取得者以外に"開発"に使ってはいけないという意味で、
一旦開発したアプリについては、そのアプリがexeファイルなどを作成したと
しても、それは"開発"行為ではありません。
またBorland・Delphi7の試用許諾契約書を読んでみると、このあたりのことは
開発ライセンス、再配布可能ファイルの使用許諾の項に詳細な記載がありますが、
正規ライセンス取得者が独占的に使用・配布をできる権利という内容となっています。
ですので別にひまわりがライセンス違反しているようには思えません。


にしの  2003-09-13 06:29:16  No: 4788

再配布可能な、vcl50.bplはダメだと思います。
そのことではないですか?
たとえば、
Delphiで「ひまわり」を作成する(再配布可能なvcl50.bplを付加=OK)。
(Delphiのライセンスを持っていない人が)「ひまわり」でEXEを作成。このときできたEXEが、vcl50.bplを必要とするならば、Delphiを購入する必要があると思います。

「ひまわり」がライセンス違反なのでなく、「ひまわり」が出力するEXEがライセンス違反になる可能性があるわけです。


achi  2003-09-13 21:23:14  No: 4789

> ベータさんへ

> 一旦開発したアプリについては、そのアプリがexeファイルなどを作成したと
> しても、それは"開発"行為ではありません。

開発したアプリで作成されるEXEファイルが「Delphiで作成したEXEファイルのお尻にコードを追加する形式」
ですと、そのEXEファイルの内部でDelphiが持っている機能を使用してしまう為、まずいような気が致します。
ただし、開発したアプリで「新規のEXEファイルを作成する」にはおそらく問題はないと思います。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加