TOP > テキスト目次 > マインドルのリリース作業



◆◆ したこと: ◆◆

        マインドルのリリース作業
        
        学園モノと言えば処理落ちするカットイン。
        
        
        
        左上の数字がFPSでございます。普段は60なのに半分という恐ろしさ。
        右下の黒い窓はWindowsのコンソール。
        デバッグ用に表示しているのですけども、文字化けしまくってて何のデバッグになっているのかよくわかりません。
        WindowsのコンソールってSJISというかCP932がデフォルトなのですね。
        UTF-8を表示する方法もないこともないらしいのですけども、なんかうまくいきません。このやろ〜。
        どうせ最終的には非表示にするのですから、こんなところで頑張るのはヤメにして、
        あくまで内部動作を推測する目安用ということにして、このまま突っ走ります。
        
        そんなことよりカットインの処理落ちが大変です。
        お写真はキレイに撮れてますが、実際にはすんごいガクガクしてますので、イマギナティオーンでお察しいただければ幸いです。
        Linux上で動かしていたときには問題なかったのにな。
        
        ちなみに普段はFPS60で動いておりますよの図。表示している画像の枚数自体は大して違いません。まさに怪奇現象。
        
        
        ともかくWindowsマシン用にチューニングするしかございません。
        ソースコードとニラめっこして、怪しい気がする箇所をイロイロとイジってみるも変化なし。怪しんでごめんね。
        
        特に重くなるような処理なんてドコにもないはずなのに、一体何なのか?
        もう諦めて死ぬしかないのかなぁ。わくわく。
        
        そう思って手頃なロープを探し始めたとき、なぜか改善が見られました。
        
        
        むむ? 一体何が?
        はい。デバッグ用のコンソールを非表示にするとFPSが大幅に改善するのでした。パンパカパーン。
        コンソールめ〜。
        
        数字の上では60を下回ってはおりますが、体感的なガクガク感はほとんどありません。
        なんだか釈然としませんが、さしあたり問題解決というか、そもそも問題自体が存在していなかったというか。
        ともかく一安心。明るい未来が見えて参りましたよ! わくわく。
        
        
        
        というわけで前回の進捗報告から今回の報告までの間、
        ファイル名が日本語で読み込めない件にかかり、全ファイルのファイル名を半角英数字に書き直しておりました。
        その数、画像ファイルが5187枚。オーディオファイルが約200枚。
        なんかうまい具合に自動的に変換する魔法があるんじゃないの?
        と夢見ながら手を動かしているうちに、いつの間にか全部終わってました。なるほど、これが魔法ということですか。さすがは21世紀。
        
        で、意気揚々とWindowマシンで動作確認してみたところ、無事に画像およびオーディオは読み込めるようになったものの、
        冒頭で述べましたように予期せぬ処理落ちに悩まされた次第でございます。
        
        他にもイロイロと「あれ? なんか動作重くない?」という案件は随所に発生しておりまして、
        結局Windows用にチューニングしないわけにはいかないのだなぁ、しみじみ、という感じでございます。
        
        特に恐ろしかったのはマルチスレッドでございます。
        なぜかミューテックスが取得できずにデッドロックにハマる。
        
pthread_mutex_lock( &_criticalSection ); { /* クリティカルセクション内の処理 */ } pthread_mutex_unlock( &_criticalSection );
よく分からないので郷に従うつもりで Win32APIを使ってみたら、なぜか解決しました。
EnterCriticalSection( &_criticalSection ); { /* クリティカルセクション内の処理 */ } LeaveCriticalSection( &_criticalSection );
で、これだけだと突然落ちるなどの災害が勃発するようになったので、 スレッドを立ち上げる処理も併せてWIN32APIを使う。C++11の機能は諦める。
// WIN API 版 _beginthreadex ( NULL, 0, スレッドとして動作させる関数名, arg, 0, NULL ); /* // ちなみにC++11 版 std::thread t1 ( スレッドとして動作させる関数名, arg ); t1.detach(); */
C++11の機能を使えば、触れ込みとしては「プラットフォーム非依存」ということになってはおりますが、 なかなか実際にはうまくいかないものですね。 なんか他にうまい書き方があるのかもしれませんけども、 この期に及んで「プラットフォーム非依存」にこだわってもあんまり意味はありません。 「ともかくWindowsマシンで動くようにする!」と割り切って、モリモリとソースコードを汚して参る所存でありますよ。 それにしても、なんやかんやと時間がかかってしまっております。 地球が滅ぶ前に終わらなければならないというのに、こんなことで本当に間に合うのでしょうか? リリースを遅らせようとする何らかの意志を感じずにはいられません。コノヤロ〜。 当初の予定では、Linux側で作り込んだソースコードをちょろっとWindowsにコピーして、 ちょろっとビルドすればちょろっとexeファイルが出来上がってメデタシメデタシということになるはずだったのに。 で、今回の進捗報告ではリリースできましたよ〜、的なオメデタイことが言えるであろうと信じ込んでいたのに。 あとですね、起動時の設定ファイルの読み込みがWindows版だと、これまたナゼか死ぬほど時間がかかってしまっておりましてですね、 人生は有限なのに、こんなことではイケません。 そんなに重くなるような処理であるハズがないのですけども。まさに怪奇現象。夏なのでサービスなのでしょうか。気が利いてますね。ゾクゾク。 ともかく一応動作するトコロまでは到達しております。 もうこの状態で「完成ぃ!」と言い張ってしまいます? 欲張ればキリがないとは知りつつ、今の状態では、イロイロと残念すぎて、成仏できそうにありません。うらめしや。 そんな感じで、もう少々チューニングをして、近日中にリリースできるのではないのかなぁ、と思ってはおります。願わくば今月中。 ただ、何らかの意志の作用というものも考慮すると、確定的なことは申せないのではありますけれども。 それにしてもこの世は何なのか? 個々別々の問題について「正しい」「正しくない」を議論することが無意味だと言うつもりはないのですけれども、 そういうことを「延々と」繰り返して、最終的にどうなるというのか? とは思います。 あるいはそうした過程自体に何らかの意味があるのだというのだとして、なんでそんなことをしなきゃならんのか? とは思います。 そして、そもそもなんで「こんなこと」になっちゃってるのか? とは思います。 物質の世界。分断の世界。 人間の精神とは無関係に物質や物質間の法則(物理法則)がある、ということになっている。 その中に、分断された個々別々の人間がいる、ということになっている。 物質とは「精神とは無関係に存在するもののこと」です。 精神が望んでも望まなくても、物質は存在する。 精神の力は不要かつ無用です。 そして物質のテクノロジーが「自動機械」のごとき「精神の力なしで動くもの」を作り出す。 物質の世界とは、 精神の力を使わなくても済む世界であり、 精神の力を排除する世界とも言えます。 結局のところ、物質の世界とは「精神をがっかりさせる世界」です。 思い通りにならない。 精神の力は不要かつ無用なのであり、精神の力を使わなくて済む、と同時に、精神の力が排除される。 舞い上がろうとする自由な精神を重力で地面に引きずり下ろし叩きつける。ここはそういう世界です。 さらに、そういう中に、(分断された個々別々の)精神が放り込まれる。 そもそもの最初から無理ゲーです。苦しみが保証されている。 「死後の世界はこうなっている!」的なご本を読むと、そこは物質ではなく、精神の力だけで成立している世界であるといいます。 なるほど、そうなのでしょう。 ではなおのこと、なぜ物質世界が存在しなければならなかったのか? おそらく、この物質世界というものは、広大無辺な精神世界「の一部」なのでしょう。特殊事例。 なんでもありの精神の世界の中に、なんらかの事情で、このような特殊空間が発生してしまった。 ではその「広大無辺な精神世界」とは一体「何」で、 そしてその中に物理世界という特殊空間が発生した(している)ということは一体「何」なのか? そしてもちろん、そもそもその「広大無辺な精神世界」自体が、何でまた存在しちゃってるのか? 何度でも言いますが、最初から何も存在しなければよかったし、しなくてもよかったハズ。 しかし、「何でもあり」ということは、いずれ結局「何か」が存在し始めてしまう、ということにならざるを得ないということなのでしょうか。 無の中には必然的に有の存在が避けられない。 「真空」とはマクロ的な観察結果なのであって、ミクロ的には「存在」と「非存在」が絶え間なく生成と消滅を繰り返している、と言います。 存在の反対側に非存在があって、で、バランスが取れている、のかどうかは実のところどうでもいいハナシで、 そもそも何でもありなのだから、バランスだってどうでもいいことであるハズ。偏りだって何のその。 それにしても空がキレイだなぁ。 ゆっくりと、それでいて絶え間なく形を変えながら動く雲。 すべての部分が別々に、緻密に、動いている。 明るい空を背景に風に揺れる木の葉。 枝先に生い茂る木の葉の一枚一枚が別々に、絶え間なく、動いている。 空を鳥が横切る。 そこかしこに草が生え、花が咲く。 ああ、キレイだ。死ぬほどキレイだ。 一体どんな「力」が、こんなにも緻密な世界を作り出せるんだろう? しかし忘れてはいけない。 ここは精神をがっかりさせる地獄の世界なのでした。 誕生は喜ばしく、死は忌まわしい、ということになっている。 すべてが周到に組み合わされた、精神の牢獄。 一体どんな「力」が、こんなにも周到で悪意に満ちた世界を作り出しているんだろう? 何ひとつわかりません。 が、一つだけ確実にわかっていることがあります。 私は、「こんなのはイヤだ!」と思っています。 こんな、根本的に人を苦しめることになっている世界を、私は心の底から「イヤだ!」と思っています。 誰もが幸せでいられる方がいいに決まってるじゃないですか。 なぜ「いい」のかといえば、それが定義だからです。議論以前の定義だからです。 「何でもあり」なのだから「この世」が「このよう」だというダジャレだって「有り」なのだとしても、 それにしても、何で、よりによって「このよう」なのか? しかし「広大無辺な精神世界」が「広大無辺」である以上、 我々の住んでいる「この世」が仮にパラダイスに変貌を遂げることがあったとしても、 「広大無辺」な世界のどこかには、相変わらず、別の「このようなこの世」というダジャレ、あるいはさらに寒い何かが存在するのかもしれません。 一体何をどうすればいいのでしょう? まったく何にもさっぱりわかりません。 さしあたり祈るしかありません。 今日もあなたが幸せでありますように。