紹介
- 非伝統的なプログラミングパラダイムに関心のある筆者は、LISPやPrologのような言語を学ぶことが頭を刺激するのに効果的だと気づいた。
- LISPは関数型プログラミングとメタ言語パターンに強く、Prologは論理プログラミングで人気がある。
- Prologはデータ構造やアルゴリズムを数学的関係として捉えることで、新たな計算的思考の地平を開いてくれる。
Prologの可能性
- Prologはリレーショナルデータベースやデジタル回路の入出力動作を実装するのに有用である。
- 論理プログラミングはデータ中心設計に最適化されており、複雑なシステムの設計と実装に大きな可能性を持つ。
- ゲームの中核メカニクスをPrologで実装すれば、より堅牢でモジュール化されたシステムを構築できる。
世界とアクター
- Prologベースのゲームプログラミングの中核となるアイデアは、関係をシステムの最も基本的な構成要素として活用することにある。
- ゲームは世界とアクターで構成され、アクターは世界に属するオブジェクトとしてさまざまなイベントを発生させる。
- アクターは固有の名前、状態、行動を持つ。
タグ
- 各アクターは固有の名前で識別され、タグを通じてアクターの特性を説明する。
- Prologコードではタグは単項関係として表現され、特定のタグが割り当てられると自動的に別のタグも割り当てられるよう規則を設定できる。
- たとえば、
breadタグが割り当てられたアクターには、flammableとdecomposableタグも自動的に割り当てられる。
関係
- ゲームプレイシステムでは、アクター間の関係を定義することが重要である。
- Prologでは二項関係を使ってアクター間の関係を定義でき、条件に応じて動的に関係を推論できる。
- たとえば、人間はパンを食べることができ、カビは分解可能なものを腐敗させることができる。
GN⁺のまとめ
- Prologを使ったゲームプログラミングは新しい考え方を提供し、複雑なシステム設計に有用である。
- 論理プログラミングの宣言的特性はデータ中心設計に最適化されている。
- Prologの関係ベースのアプローチによって、ゲームの中核メカニクスをより堅牢でモジュール化されたシステムとして実装できる。
- 類似した機能を持つ業界内プロジェクトとしては、Unityゲームエンジンやオブジェクト指向プログラミング環境がある。
まだコメントはありません。