戻る


2014/04/30 03:47

ミニチュアを作るべきだと思った。

肝心なところがまだもやついている。しかし、これは実際にやってみればぱっと解決する気がする。

なので、まずは簡易的なミニチュアで表現し、色々試してみることにする。

最初から実際のコードでやってみようとするから、躊躇したり混乱したりしてしまうのだ。


2014/04/24 01:37

想定していた設計ではどうもうまくできそうにない。

今まで作っていた部分については、土台として問題なく使えると思うし、前に作っていた部分についても、大体そのまま使えそうなイメージはある。

しかし、その中間に作るものが、どうもだめだ。

根本的な思想からしてだめだった感が否めない。

どう実装するかについても考慮しつつ、きちんと考え直す必要がありそうだ。


2014/04/18 17:50

wafの挙動で納得できなかった点が解決した。

python3でwafを動かしビルドすると、変更点が無い場合でもコンパイルやリンクが走るのがなぜなのか分からなかった。python2で動かすと再現しないこともあって奇妙だった。

今日、それとは別件でwscriptを修正していたら、偶然原因が判明した。

どうも、python3とpython2で、セットの挙動が違うらしい。

セットに文字列をつっこむ場合、同じ順序で同じデータをつっこんでも、python2の場合は常に同じ順序になるが、python3の場合は順序が変わっていることが多い。

セットの性質を考えればpython3の挙動でも全然問題ないのだが、ソースファイルをセットに詰めて渡していたため、python3で動かした場合に毎回ソースファイルの順序が変わってしまい、同じコマンドだと判断されず、コンパイルやリンクが走ってしまっていたようだ。

そこで、セットではなくリストに詰める形にしたところ、問題は解決した。

ideoneに検証用コードを上げてリンクを張っておこうとしたのだが、なぜかideoneのpython3では再現しなかった。実装が違うのかしら。

結局、また作り直している。どうも私の作り方は変な気がする。なんか知らんが変なところから作り始めている気がする。

今回はちゃんと、先頭から順々に作っていっている。はず。呼び出す処理自体はこれまでに作った処理を大体そのまま使っている。

ベースディレクトリが書かれているファイルのパスを生成し、ベースディレクトリを読み出し、まで書いた。

次はベースディレクトリに配置されているコアライブラリのロード、実行。コアライブラリにはJSONパーサのようなものを搭載し、JSONで書かれた設定ファイルを読み込み、ローダライブラリをロードし、うんぬんかんぬん、のような予定。


2014/04/03 22:50

dlopen()とLoadLibrary()らへんの違いを確認した。

結論から言うと、実現は容易いが少しめんどうだ。

linuxの共有ライブラリは、ビルド時に依存する共有ライブラリをリンクしなくてもビルドできる。

一方、windowsの動的ライブラリは、ビルド時に依存する動的ライブラリをリンクしなければビルドできない。

linuxにおいて、dlopen()を使って共有ライブラリを実行中にロードする場合、対象のライブラリが依存している共有ライブラリはLD_LIBRARY_PATHの環境変数が示すパスに存在していなければならない。

windowsにおいて、LoadLibrary()を使って動的ライブラリを実行中にロードする場合、対象のライブラリが依存している動的ライブラリはどこかに存在していなければならない、ということはない。

今作っている複数のライブラリの中には、作っている別のライブラリに依存しているものも多いが、このライブラリはLD_LIBRARY_PATHなどの環境変数が示す場所に置いておくつもりはない。

なので、linux用にビルドする場合には、依存ライブラリを指定せずにビルドし、実行中に自分でライブラリの依存関係を解決し、ロードする必要がある。

ビルド時に依存ライブラリを指定してしまうと、ロード時にこけてしまう。

windows用にビルドする場合は、実行中については同様だが、ビルド時には指定しないとこけてしまうため、依存ライブラリを指定しなければならない。

私が作っているライブラリの生成時にだけ影響するというのならいいのだが、ここで言うライブラリというのは、ゲーム自体のプログラムも含まれる。

つまり、ライブラリを利用する側の、存在するかもしれない私以外の開発者にも、そのようなルールを強いなければならないわけだ。なかなか心苦しいものがある。

どうしようもないことではあるのだが。


2014/04/03 04:15

前の日記から1ヶ月ほど空いてしまった。

えらくローペースながら、進んではいる。コマンドライン引数の処理をして、その引数を元にゲームを起動しようとするところまで書けた。

しかしこの部分については、後々変更することになりそうだ。今の状態は、あくまで一時的なもの。

ゲームをロードする仕組みらへんについても大体考えがまとまってきたし、悪くはない感じ。

ただちょっとやる気が出にくいのと体調がよくなりにくいのが気になるところ。


戻る