スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

日記。

背中が痛くなって半年。もうそろそろ死ぬんじゃないかという昨今です。

しょっぺえなあ。
という感じです。


○SharpDXのtoolkitでポチポチ作っていたモノの話
Toolkitとは直接の関係がないのだけれど。
音声の再生にはそれまでXACTを使用していた。DirectX関連の中では際立って高レベルな、ミドルウェア的なアレ。
使い方を覚えてしまえば意外とイケるものなんだけれども。

一旦話は変わり、Windows10に環境を変えて、ゲーム作るのを継続してたんだけれども、ゲームのメモリ耐久テストのためにシーン・モデルの読み込みを延々と繰り返させていたときに、Visual Studioでデバッグ実行してるのにデバッガにも移行せずにAccess violationして落ちることに気付いた。
しばらく繰り返してるとわかったことが、どういうわけか15分丁度で必ず落ちるということ。ゲームループ内での放置でもメモリ耐久テストの放置でも関係なく落ちる。
ゲームループ突入直後にreturnしてまったく処理をさせない状態でも同じように15分で落ちる。

初期化コードを一行ずつはずしながら15分待つという脳味噌が煮えたぎるような作業を繰り返して一晩。

XACTの初期化コードを外すと落ちなくなった。そう件のXACTである。
てめえか!と唸りながら回避策を探したが謎。
涙目で別のwin7マシンで実行すると、べつにXACTそのままでも問題なし。

死ぬ

ポンコツOSめ・・・と唸りながら、調べる過程で知ったXACTはすでに非推奨である事実とともに、ほかの手段であるXAudio2に置き換えをしてみると・・・
同じように15分で落ちる。
ゲー出そう。
なんか俺がおかしい処理をさせているのか、と思ってSharpDXのXAudio2サンプルを走らせると、
同じように15分で落ちる。
という結果に。

調べた感じではアプリケーションがロードしたXAudio2のDLLをwindowsが勝手にアンロードしてくださるのが原因のようで、ネイティブ的には回避策はあるがSharpDXを使ってるだけの俺には打つ手なし。ただこの話的にはSharpDXがそういうヘマをしているとは考えられないし(その辺のソースは見てない★)、そもそもwindows10以外では正常に動いている。

わかんない。
とつぶやきつつ、そういや使ってるSharpDXは、Toolkitが対応している最後のバージョンである2.6.3。あたらしい3.x系はどうなんだろう・・・と見てもよくわからないリリースノートを確認しつつ、nugetで取得してサンプルを動作させてみる。
15分経過しても落ちない・・・。
つまり、windows10上でもSharpDX 3.x系なら正常に動作させられるっていう・・・。

そして問題はToolkitは2.6.3で最終バージョンであり、ディスコンであり、滅んでいる。公式からToolkit使うならParadoxかmonoなんとかgameでも使えよと言われる有様であった。
monoなんとかgameはスタンスが好きくない。様々なオープンソースの詰め合わせであり印象的にはかなりイビツ。まあXNAが死んだときにくやしがりながら一度monoなんとかgameに全移植してみたけどね。なんか未来がありそでなさそで厳しいかなと思ってブッ消した。
そしてfbxからのアニメーションやモデル読み込みを1から作ってSharpDX toolkitへ移行した経緯がある。行列を眺めて過ごしていた時期を忘れられない。
閑話休題。
話的には、問題を起こさないXAudio2は3.x系であり、toolkitは2.6.3まで。XAudio2だけ3.x系からもってくればいいのではとおもったけどXAudio2のアセンブリがSharpDX本体を参照しているので無理。
元のソースをいじってどうのこうのするのは規模大きすぎて無理。

Toolkitを捨てるか・・・

というわりと絶望的な岐路が待ち構えているとは、予想だにしなかった。


だが待てよ、Toolkitに依存してる部分ってなんだろう?
Toolkitでしかできない機能をつかってるのか?と考えれば、Toolkitでは超便利なToolkitFXCとToolkitTextureとEffectまわり、そしてSpriteBatchか。ContentManagerもつかってない。
つまり、そこ自分で用意できるとToolkitにこだわる理由はなくなる。

なので、実験的に素のSharpDXをつかってポリゴン描画などしつつ、初期化とゲームループを簡単に実装したコアライブラリを試しに作ってみると、まあまあサクっと作れた。エフェクト関連も(DirectX12では死んでるけど)Effectクラスが用意されていて楽ちん。
そもそもは現在のゲームがリリースできたら即Toolkitは脱却していきましょうと思っていたし、そのための情報も集めていたし、自分でモデルを読み込み描画する過程でナニをどうすればいいのかっていうのはまあまあ見えていた。

そしてToolkitを使っているという事実が自分の中で負い目であったことも事実だった。

XNAからゲームを作り始め、そういうヌルい環境を選んでやってきた代償なのだ。
いやXNAより前から作ってたけどそれでもなにかのラッパーライブラリを使ってた。
素でDirectXを叩こうとした時期もあったけど就職活動が重なって中途半端におわってた。相当昔である。

俺はバグに直面したのではない。自分に直面したのだ。

上司にパワハラされて混乱しながら会社で言ったことを思い出す。
何を棄て、何を得るか・・・。

棄てた上で何か得られるならまだマシだけどね。
寒くて死にそうなときに着るものを棄てて、暖かいものが得られるのかっていうとアレ。


先週から今週にかけて身内の不幸でバタバタしたのと今週末には妹の結婚式がありかなりアレな状況が続いていてなんていうかアレ。
スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

zerobyteorbit

Author:zerobyteorbit
deathpiyoがgameをdevelopしたり、musicをcomposeしたり迷走したりする。

現在は迷走中。

under the lotusはリビルドのために考え中。

deathpiyo twitter

UnderTheLotus test3h(download)
I'm thinking about rebuilding UTL.


同人音楽アルバム
[Lovers Immortality]
-Japanease-
Lovers Immortality -works until worldend- DLsite.com直リンク
Melonbooks DL
-English-
Lovers Immortality -works until world end- Link to DLsite.com

18+
【東の森の魔女2 VS 魔王 -終宴する世界と肛虐(逆)の魔女たち-】
東の森の魔女2 VS 魔王 -終宴する世界と肛虐(逆)の魔女たち- DLsite.com直リンク
DMM.同人

紹介ページ


【地下迷宮の機械姦自壊オナニー生活。】
地下迷宮の機械姦自壊オナニー生活。 DLsite.com直リンク
DMM同人

紹介ページ




DLSite
Link to DLsite.com

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
FC2カウンター
検索フォーム
RSSリンクの表示
リンク
QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。