開発・技術資料
全体の設計構想
おおよそ以下のような設計構想(コンセプト)を掲げています。
・実行時の外見は本家XOPSと同様のシステムを目指す。
・ファイルシステムも本家XOPSと同様のシステムを目指す。
・低スペックPCでの動作を考慮し、軽いアルゴリズムの採用が中心。
・ゲームエンジンや処理ライブラリなどは極力利用しない。
・小規模な変更が簡単に行えるような設計にする。
※画面の高解像度化、武器の追加、操作・攻撃方法の追加、画面のデザイン変更 など
基本姿勢として、ゲームエンジンと呼ばれているような汎用ライブラリを作るつもりはありません。
描画周りやサウンド再生といった他のゲームにも流用・応用可能な部分も多々含まれていますが、OpenXOPSを開発することを第一に考え、OpenXOPS向けに特化・最適化しています。
将来的には他のプラットフォーム(Windows以外)にも移植できるよう、ある程度考慮しています。プラットフォームに依存する一部のクラスをごっそり書き換えることによって、他のプラットファームでも動作する可能性はあります。
全体にC++によるクラスを使用した設計を行っていますが、完全な‘オブジェクト指向’に基いた設計になっていません。デザインパターンも特に意識せずに構築しています。
「オブジェクト指向を徹底する方」「デザインパターンを厳守するのが好きな方」はソースコードは読みにくいかもしれませんが、予めご了承ください。
開発言語や環境など
開発言語 : C/C++
開発環境 : Microsoft Visual Studio 2019
使用SDK : Microsoft DirectX SDK (June 2010)
DirectXバージョン : 9.0c
OpenGLバージョン : 1.1
パイプライン : 固定パイプライン または シェーダー
俗に言う‘ゲームエンジン’は一切使用せず、全てフルスクラッチで書き上げます。
3D/2D描画関係 : DirectX または OpenGL
入力関係 : DirectInput または WindowsAPI
サウンド関係 : 本家XOPS付属の ezds.dll または DirectSound (※)
ファイル読み込み関係 : C言語標準関数
物理エンジン : 独自
AI関係 : 独自
ドキュメントの生成に Doxygen(ドキシジェン) を活用しています。
開発環境の構築については、「開発環境の構築」をご覧ください。
※ ezds.dll を開発された nine-two氏 からは「ezds.dllは出来が良くないため、作り直した方がいい。」という趣旨の助言を頂いていますが、一先ずOpenXOPSでは使わせて頂き、作り直す作業は派生プロジェクトに委ねるつもりです。
ライセンスや著作権
ライセンスは修正BSDライセンスを適用しています。
選考理由は、参考資料をご覧ください。
原文は英語ですが、日本語に訳すと以下のようになります。(参考程度)
・BSDライセンス(Open Source Group Japan)
プロジェクト自体は、本家XOPSの開発者の一人である nine-two氏 に確認済みです。
プロジェクトによる成果物の著作権は [−_−;](みかん) にあります。
nine-two氏にはプロジェクトの趣旨や意図を理解して頂いた上で、nine-two氏が著作権をお持ちのデータ(付属のプログラム、効果音、ミッション)を貸して頂けることになりました。 ※著作権はnine-two氏にあります。
グラフィックデータ(2D、3Dグラフィック、マップ)は TENNKUU氏 が著作権をお持ちで、現在(2014年6月現在)確認中です。
OpenXOPSの開発体制
プロジェクト代表
[−_−;](みかん)
開発担当 [設計、プログラミング、テスト]
[−_−;](みかん)
広報担当 [サイト運営、動画企画・作成]
[−_−;](みかん)
直接ご協力頂いている方々
nine-two さん ― 一部ファイルの提供
黒猫 さん ― 本家XOPSの解析作業・解析データ提供、アイコンの作成・提供
TAMICRON さん ― OpenXOPSのロゴマークの作成・提供
Manda さん ― 人/武器/小物の設定値確認
その他、常日頃から応援して頂いている全ての方々に感謝いたします。
各種資料
再配布や改造物の配布に関する注意事項については、「再配布および改造物の配布について」をご覧ください。
OpenXOPSの開発に必要な開発環境の構築については、「開発環境の構築」をご覧ください。
ソースコードの入手方法については、「ソースコードの入手」をご覧ください。
OpenXOPSの基本設計や各システムの詳細については、「OpenXOPS技術解説書」をご覧ください。
OpenXOPSの改造サンプルについては、「改造サンプル」をご覧ください。
OpenXOPSに使われているファイルのフォーマットや仕様については、「ファイル解析情報」をご覧ください。
【技術者向け】 よくある質問
「よくある質問」をご覧ください。