Skip to content →

カテゴリー: 雑記

そろそろ終盤

開発中のゲームの進捗について.

去年の暮れに「来年の早い段階には」とか言ってましたが,とうとう9月になってしまいました.本来なら夏休みシーズン中に2本同時リリース!!……と,やりたかったのですが,さすがに無理だったみたいです.遅くなった理由は色々とありますが,一番の理由は対応プラットフォームが増えた事だと思います.そういう事にしておいてください.

という訳で,まずは1本に絞ってリリースします.

先行するゲームについては一通りの実装が完了しており,今は販売に関する面倒なあれこれを片付けている最中です.が,いかんせん,テストプレイが全然足りていません.大幅な変更や機能の追加はもうやらないつもりですが,もし致命的な何かを見つけてしまったら……まあ,それはその時考えましょう.何事もなければ,今月中には少なくとも情報を,上手くいけばゲームそのものを配信できる予定です.

もう片方のゲームについては……えーと,どこまで進めたっけかな.

……確認中……

こっちも一通り機能は入っているけど,全体から見れば3分の1〜半分くらいってところですかね.こちらは今年中を目処に進めていく予定です.

* * *

ゲーム内容にはあまり関係のない事なのですが……

実は今のままだと私の活動期限は来年の明け頃なのです.それより先は,最悪の場合住む場所すらありません.

もちろん,”今のまま”でいるつもりはありません.望ましくない将来を変えるため,あらゆる策を講じています.ゲームの開発もそのひとつです.

残念ながら,過去の売り上げ記録から予測するに,ゲームの売り上げだけでは問題の解決に至る見込みはありません.それでもゲームの開発を続けているのは,今を逃すともう次は無いからです.同じ無念でも,やり遂げた無念と諦めた無念では一味も二味も違う事でしょう.

まあ,つまり,暗い話をしたい訳ではなく,今回はそれくらい本気で作ってますよって事.いや,今までが本気じゃなかったって意味ではないですよ.

Comments closed

Windows対応

新型のMacBook Proが欲しいです.メモリとグラフィックをちょっと良くして約35万,失業中にはきついなーとか思っていたところ,区と社会保険庁から諸々の請求が来てほぼ同じ額を持っていかれました.仕方がないので7年前のMac miniにはもう暫く頑張ってもらいます.

* * *

新型のMacBook Proは買えませんでしたが,代わりに安い中古PCを調達しました.実に10年ぶりくらいのWindowsPCです.

一応ゲーミングモデルという事で,Core i7-4770にGTX 1650が乗っています.……と,書いておきながら,最近のPCパーツにはさっぱり疎いためどの程度のスペックなのか良く分かっていないのですが,とりあえず中程度らしいです.GTX 1650がおおよそGTX 970に近いとの事だったので,推奨スペックが近いであろうFallout4(Core i7-4790,GTX 970)を試しに動かしてみたところ,高品質設定でも特にもたつかずPS4より快適に動作しています.もっとも,普段PS4でプレイしているFallout76が重すぎて,こっちが軽く感じているだけかもしれませんが.

開発中のゲームを快適に動かすには製品版よりも遥かに高いスペックが要求されるものですが,まあFallout4が動くなら私の需要は問題なく満たせるでしょう.

* * *

そんな訳で,早速自作のライブラリをWindowsに対応させてみました.

写真はライブラリ実装用のテストプログラムをそれぞれ動作させている状態.左がWindows,その下がiPad,右がmacOSです.写真は控えますが,開発中のゲームもそれぞれで動作しています.

Windows対応は1週間くらいでできたものの,それを行うにあたって済ませておきたかった改修には10日くらいかかりました.改修は必須ではありませんでしたが,Windowsに対応したあとでは手間が増えてしまう気がしたので,作り直したかった部分をごっそり作り直しています.今回の改修で他の環境へも対応しやすくしてあるため,次回以降はもっと早く対応可能……だといいなあ.

Windows版の構成としては,グラフィックにDirect3D11,コントローラの入力にDirectInputとXInput,サウンドにXAudio2を利用しています.本当はサウンドにWASAPIを使う予定だったのですが,諸々の事情でXAudio2になっています.音を鳴らす事自体は可能なので,もしかしたらオプションで排他モードのみ対応するかもしれません.

苦労の甲斐あってそれなりに使えるライブラリへと成長していますが,忘れてはいけないのはこの苦労はお金で解決できるという事.今の時代,ライブラリは自作するよりも市販のゲームエンジンに頼る方がよっぽど楽で安全です.自作するメリットも皆無ではありませんが,そのせいで肝心のゲーム本編の開発がいつまで経っても終わらないのでは本末転倒.そろそろゲームのほうの作業に戻らねば.

* * *

肝心のゲームのほうの開発状況ですが,2つほど進行中です.今年はもう間に合いませんが,来年の早い段階には何かしらの情報を公開できるかと思います.失業を期に作業時間は増えていますが,タイムリミットは逆に短くなっていますからね.

Comments closed

macOS Catalina対応

相変わらず失業の日々を送っています.色々とやるべき事は多いのですが,いかんせん会社から離職票が届かないと動くに動けないことも多く,とりあえず今やれる事を消化しています.

まあ,それはそれとして,たまには開発者らしいネタを書きます.

* * *

さて,本日ようやくmacOSの最新バージョン「Catalina」が配信されました.今回は多くの新機能を備えた大幅なアップデートのようですが,ゲーム開発者として真っ先にやるべき事は,自分の作ったゲームの動作確認でしょう.という訳で確認したところ,キーボードまわりを改修する必要があったみたいです.

macOSのキー入力を拾う手段は主に2つあって,ウィンドウのイベントとして通知されるものを拾う方法(NSEvent)と,ハードウェアから直接状態を取得する方法(IOKit)があります.私は後者のIOKitを利用していたのですが,今回のアップデートから,IOKitでキーボードの情報を取得するにはOSのプライバシー設定でアプリごとに許可してやる必要があるようです.許可していないアプリでは,初回起動時に次のようなダイアログが表示されます.

このウィンドウが出る条件として,少し調べた限りではIOHIDManagerSetDeviceMatching()にPageがGenericDesctopでUsageがGD_KeyboardのHIDを要求すると引っかかるようです.また,許可されていない状態では,IOHIDManagerRegisterDeviceMatchingCallback()で登録した関数に無効なデバイス参照が届きます.おかげでNULLアクセス起こしてたのは秘密.

対策としては素直にNSEventで実装することなのですが,いかんせんこのNSEventが素直な奴じゃないんですよね.イベント駆動はフレーム単位で動作するゲームプログラムとは相性が良くないし,修飾キーまわりが特殊なため,熟知していないと「押した通知は来たけど離された通知が来ない」とう状況が起こり,キーが入りっぱなしになるという大変残念なゲームになります.

面倒な事ではありますが,こうなった理由はキーの入力情報を監視して情報を盗むマルウェアへの対策でしょう.なので,ユーザーに許可を促すというのもあまり良い選択ではありません.ゲームに偽装したマルウェアなんて珍しくもない今日,軽率に「ただのゲームアプリだから大丈夫だよー」なんて吹聴したらセキュリティ意識を疑われてしまいますからね.

ちなみに,UsageがGD_GamePadでは問題なくスルーしているので,ゲームコントローラを利用するのは問題なさそうです.

* * *

Catalinaのアップデートで最も期待しているのが,Simulator上でMetalが動作するようになった(らしい)事.

今までMetalは実機でしか確認できず,かといってOpenGLは非推奨になったため,iOSでゲームを配信するには各種モデルを買い揃える必要がありました.申請の際に各解像度の端末で撮ったスクリーンショットが必須だったからです.公式ドキュメントにはSimulatorで撮ったやつで良いよと書いてあるのですが,そのSimulatorが動かないという状況.最近は若干緩和されて,iPhoneでは2種類,iPadでは1種類が対応必須な解像度になりましたが,それぞれ最上位機種になるため結構な額になります.(ちなみに「反撃BLOCKS」が現在配信停止中なのは,おおよそこれが原因です)

そんな状況も,Simulator上でMetalが動作するようになれば解決.という事で早速試してみたら……動きませんでした.

どうも頂点バッファのオフセットは256バイト境界でないと受け付けてくれないご様子.バッファの先頭アドレスにはアライメントの制限があって,macOSで256バイト,iOSとtvOSで4バイトというのは満たしていたのですが,オフセットのそんな制限ドキュメントに書いてあったかな?少なくとも同じコードがmacOS上では動いているのですが.

こちらの修正はまだ着手していませんが,うまく動いてくれればiOSアプリ配信再開の可能性もあるかもしれません.もっとも,申請の条件を抜きにしても,どのみち実機での動作確認は必要なのですけどね.

* * *

今回のアップデートではぎりぎり対応していましたが,現在使用しているMacが7年前のモデル.次はもう無いだろうなと思いつつ,どうしようかと迷い中です.本当は増税前に新調するつもりだったのですが,まさか増税前に失業するとは思いませんでしたからね.

曲がりにも技術で飯を食っていた人間のメインマシンが7年前のモデルというのも相当なものですが,この期に及んでWindowsマシンも欲しいのですよ.開発中のゲームのWindows対応というのもあるのですが,それ以前に役所に提出する書類,何でPDFなのにWindowsじゃないとレイアウト崩れるのさ.

Comments closed

失業の日々

無〜職 無職 無〜職 窮人
無〜職 無職 No収入
無〜職 無職 無〜職 窮人
無〜職 無職で ハロワ行こ〜
M! U! S! Y! O! KU! 無職!
M! U! S! Y! O! KU! 無職!

……という某宣伝カーのパロディを思いつきTwitterで呟こうとしましたが,何だかうまく言葉に表せない抵抗感に襲われました.

* * *

仕事に追われていた頃は,仕事さえなければ大量に積んである本とゲームを消化できるんだろうなーとか思っていましたが,いざ職を失うとそうでもない事に気付きました.ちょいちょいゲームを起動したり本を手に取ったりするものの,今は消化している場合じゃないというか,気持ち的に集中できず,何だかんだでゼルダもまだクリアしていません.普段から「今年一年真面目に働くのは,来年も楽しくゲームをするため」とか言ってた私ですが,あれは経済的理由だけでなく精神的な意味も含まれていたのだと実感しています.

で,何をしているのかと言えば,次への準備です.これからどうなるかは殆ど決まっていませんが,何も考えていない訳ではないですからね.

* * *

生活の節目のついでに少し変化をという事で,愛用のキーボードから離れて普通の日本語キーボードに変えてみました.

私が英語キーボードを使い始めたのは,就職して間もない頃なのでかれこれ10年以上も前.当時オンラインゲームの開発でクライアント2台とサーバ1台を操作しており,3台のフルキーボードでデスクが埋め尽くされていました.この状況を解決すべく小型キーボードを求めた結果,小型ながら実用性重視のHappyHackingKeyboardに辿り着いたのがきっかけです.

その頃は上位モデルに日本語配列がなく,それを買う余裕もなかったのですが,店頭デモで触れた静電容量無接点方式のキーに惚れ込んで「いつかはこれを買う!」と意気込みながら下位モデルの英語配列を買ったのはとても良い思い出です.エディタにvimを使い始めたのもその頃だったっけか.

私は職業柄色々な職場を転々としていたので(所属会社はずっと同じでしたよ),場所を移る度に「私物のキーボード持ち込みOKですか?」なんて質問をしていました.もうそんな質問もしなくなるんだなぁ……2つの意味で.

Comments closed

遂に無職

……です.正確には月末に退職ですが,今はもうお休み中です.

理由は様々です.ポジティブなものからネガティブなものまで色々.さすがの私も,1つや2つの理由で約12年勤めた会社を辞めたりはしません.会社も仕事も私には合っていたし,続けられるのであればそれが最善だったのでしょう.それでも辞めてしまった理由は……長くなりそうなので割愛します.

そんなこんなで,谷底に転げ落ちた私は,空を見上げながら「さて,どうしよう?」という状況です.

* * *

以前,今年中にゲーム作って配信するよーと言っていた記憶があるのですが,こんな状況なので無理そうです.これまでのゴタゴタで全然作業が進んでいないし,この先も色々なゴタゴタが待ち構えているため,少なくとも年内には無理です.いつになるかも明言はできませんが,それも含めて色々と画策しています.

ん?画策している場合じゃない?

* * *

今後どう動くにせよ,のんびりしていられる状況ではないのですが,タイミングを見計らったかのように色々届いてしまいました.

とりあえず,ゼルダですかね.うるりらじいさんが私を呼んでいる.

Comments closed

2019年抱負とか来月の事とか

2019年になりました.

去年の2018年という年は,経験した中では過去最悪のろくでもない年でした.あまり生々しい話は避けますが,今年はそうでありたくないと願っています.とはいえ,去年のツケを払わなければならない関係上,今まで通りという訳にはいかないようです.

良くも悪くも変化のある年でしょう.どちらにどう転がるかは私次第.過去を取り消すことは不可能ですので,先の見えない未来を少しでも良い方向へと向けていくのが今年の抱負です.

……などと考えながら新年を迎えた早々,人生初の食中毒にやられました.腹痛の強化版くらいに考えていたのですが,この世の終わりかというくらいの悪寒が印象的でした.以前腹に大穴開けた事がありましたが,ピーク時はあれより辛かったと思います.

* * *

まあ,何がどう変わるかと言うと,来月(つまり明日)から1ヶ月間休職でして,そこから先のことは未定な状態です.復職するかもしれないし,そのまま退職するかもしれません.退職したら転職は厳しいだろうなとは思うんですけどね.

休職理由はというと,そこに至るまでの過程は省略しますが,この先仕事を続けていくか判断したいという個人的な理由です.本当は一度退職願を提出したのですが,あれこれ話し合った結果今の状況になりました.こんなめんどくさい人間に付き合ってくれる会社の方々には感謝しています.

* * *

来月はゲームを作る時間も多めに取れる訳ですが,これを本業にするのは現実的ではないんだよなぁ……(過去の売り上げを見ながら)

Comments closed

252日ぶり

気がついたら今年も終盤になっていました.実はここ暫くの間体調を崩しており,まあ色々と面倒なことになっているのですが,その辺は書いても楽しくないのでさらりと流すことにします.

とりあえず,最後にどんな事書いてたかな……と.

  • ぺぐそり公開終了
  • 反撃BLOCKS作り直し中

主にこの2つですかね.

* * *

ぺぐそりはお亡くなりになりましたが,現在公開中の反撃BLOCKSも後を追いそうです.と,いうのも,改定後のガイドラインに準拠しておらず,今後何かあってもアップデート対応ができない状態なのです.

この改定したガイドラインというのが厄介者でして,かなり根っこの部分からの修正が必要なレベルです.それこそ,作り直した方が早いというレベルに.

今ちょうど作り直し版があるので,これをアップデートと称して挿げ替えよう……とも考えたのですが,それをやろうとすると今度はGameCenterという厄介者に引っかかってしまいました.仕様変更に伴って削除された要素があるので,アンロックできない実績が出てきてしまうのです.

これ以上サポートできないものをこのまま売り続ける抵抗感に加え,そもそも売れていないという現実も鑑みて,近いうちに配信停止すると思います.幸い64bit対応などは済ませてあるため,手元の端末で動かなくなるという事態は当分先とは思います.それまでに良い解決策が思い浮かべば,そのときまた再開するかもしれません.

* * *

それとは別に,ゲームとはちょっと異なるものを色々と進めていました.それも最終的にはゲームになるのですが,形になるのはかなり先な見込みです.

しかし,配信停止によって何も配信していない状況になるのも嫌なので,一旦作業を中断してゲームのほうにシフトしようかと考えています.今はというと,ざっくりと仕様を書いて,実装の前準備として古くなったツール類を書き直したりしています.

こちらは2019年公開予定.何故なら,2019年じゃないと成り立たない文字が含まれているから.これを自分に課した締め切りと思って進めていく予定です.

Comments closed

2017年末

2017年も残すところあと2日.いつもなら「もう年末」とか「今年は一瞬だった」といった感想を持つのですが,どういう訳か今年は「まだ2017年だったんだ」という感覚です.仕事の都合で勤務先が3回変わったり,ゲーム三昧だった去年とは対照的に割と作業していたのが理由かもしれません.そういえば,この活動記録も今年に入ってからだったっけか.

* * *

今年中には一通り実装と思っていた作り直し版「反撃BLOCKS」ですが,リプレイのUIの一部が終わりませんでした.ゲーム自体はおおよそ作業が済んでいるのですが,調整し直したい箇所や作り直したい箇所も一部あったりします.そういえば新規追加要素のSEも作っていない事をたった今思い出しました.

……あれ,全然終わってないじゃん.

* * *

作り直し版「反撃BLOCKS」と平行して,次以降となるものにも着手しています.これは今までとはちょっと変わったもので,自分にとって初の試みになるものなので,完成するのかさえ怪しいものです.仮に完成するにしても,今の私では少なく見積もっても数年はかかりそう.そのため,他の作業と平行して少しづつ進めています.

実のところ,作り直し版「反撃BLOCKS」が今年中に終わらなかった理由は,こっちを進めていたからというのが大きかったりします.平行作業をこなせるほど要領の良い人間ではないので,その辺も大きな課題です.

* * *

今年更新できそうなタイミングが今しかなさそうだったため,徹夜明けの寝不足状態で書いています.推敲する余裕が無いのでちょっと文章がおかしいかもしれません.

今年は睡眠時間を削りすぎた……って,今年が異様に長く感じたのは,単純に起きている時間が長かっただけかも.

Comments closed

あれから10年

とある事がきっかけで古いデータを漁っていたところ,その時に発掘した自作ゲームが今日で10周年だった事に気付きました.

タイトルは「SGAME 3」.Windows向けのフリーゲームで,マニュアルによると公開日は2007年11月27日だそうです.

* * *

内容としてはシンプルな固定画面STGで,自機は左右だけでなく若干上下にも移動できる仕様でした.やや特徴的なのは,ステージ(フェイズ)クリアの条件が敵の殲滅ではなく一定数スコアを稼ぐ事であり,ランキングにはその時間が登録されるという,タイムアタック仕様な事.稼ぎの要は狙い撃ちによる倍率で,敵を倒すとスコアの倍率が上昇するが,打ち損ねてショットが画面外に出ると倍率が減少するという仕様でした.タイムを稼ぐには,より早くより正確に撃つ必要があります.残機制と見せかけてステージクリア時に全回復するという実質ライフ制で,特定条件でクリアするとエクステンド(=実質ライフの上限が上昇)等,シンプルと見せかけて普通じゃないゲームだった気がします.

このゲームの(ルールとしての)最大の欠点は,意識して稼ぐ場合とそうでない場合のスコアの差が大きすぎるため,何も考えずにプレイすると1ステージあたりの時間が長く,単調なゲームになってしまう事でした.そして,普通のプレイヤーは初回プレイから稼いだりはしません.このゲームをプレイした人がどれだけいたのかは分かりませんが,きっと面白いとは思わなかったでしょう.ちなみに,倍率を意識すれば全10面が7〜8分くらいで終わるゲームですが,稼がないと理論上は最長30分かかるゲームでした.(1ステージで3分以上かかると救済措置として強制的にクリア扱いになるため)

* * *

実を言うと,このゲームは私の中では「反撃BLOCKS」の前作にあたるものだったりします.ジャンルそのものは異なりますが,「一見シンプル中身複雑」なコンセプトや,図形的なキャラクター+実写背景というデザイン,ステージ表記が「PHASE」,トライアルモードや達人モードの存在など,いくつかは意識して似せてあります.ゲームの取っ付きにくさも似てしまいましたが……これは意識してません.

今となっては人に見せられるクオリティではないとしても,そこで得たものが次に継承できれば意味のある製作だったと思う次第.逆の意味で記録的な売り上げの「反撃BLOCKS」も,その存在を無意味にしないために次に生かす事にします.

* * *

……で,久々にプレイしようと思って仮想環境のWindows10で起動してみたところ,垂直同期が取れずに超高速で動作してしまい,ゲームになりませんでした.他のDirectX9のゲームがちゃんと動いているところを見ると,恐らくアプリ側の問題のような気がします.ビルドし直して動かして見るかと思ったのですが,Windows10にDirectX9のSDKを導入するのが結構めんどくさそうだったので諦めました.

試しにソースコードを覗いてみると,目を覆いたくなるほど稚拙なベタ書きプログラムでした.(一応言い訳をしておくと,10年前の私はプロではなく単なるゲーム好き青年でした)……が,未熟でできる事が少なかったが故に小規模で複雑な処理も行っておらず,良くも悪くもシンプルな内容.多分,移植しようとすれば割と簡単に実現できると思います.

いや,やりませんけどね.さすがに今はそんな余裕はありません.

* * *

余裕と言えば,新型のPSVRを発売日(かれこれ1ヶ月前)に購入しているものの,現在(デスク周りが)作業モードなため,(物理的な意味で)箱から出す余裕がありません.来月に出るVR版Skyrimまでには作業を一段落させるつもりでしたが,作り直し版「反撃BLOCKS」がもはや単なる移植でなくなっているため,PSVRさんにはもう暫くの間,ヨドバシの箱に入ったまま玄関に鎮座してもらう事になりそうです.

Comments closed

魔王さん討伐帰り

1ヶ月くらい前にドラクエは控えるような事を言っていた記憶がありますが,案の定手を出した挙句プラチナトロフィー取得までプレイし,クリア特典の無料版ドラゴンクエストもクリアし,ついでにファミコン版ドラクエ4を久々に起動したところ2章クリアまでのセーブデータが残っていたのでさくっとクリアしていたら1ヶ月が経過していました.まあ,だいたい予想通り.むしろプラチナトロフィー取得が普通にクリア+α程度だったのが救いです.

今回のドラクエは発売前の宣伝で度々「原点回帰」という言葉を耳にしましたが,どの辺が原点回帰なのかを自分なりに考えてみたところ,以下のような結論に達しました.

  • 1988年 ドラゴンクエストIII そして伝説へ…
  • 1989年 グラディウスIII 伝説から神話へ
  • 1990年 パロディウスだ! 神話からお笑いへ
  • 1994年 極上パロディウス 過去の栄光を求めて
  • 2017年 ドラゴンクエストXI 過ぎ去りし時を求めて

正に原点回帰.

……というのは冗談で,実際にはプレイすれば分かる事なのですが,その辺はネタバレも含まれそうなので触れないことにします.ファミコン時代の旧作ファンなら最後までプレイして損はない良作だと思いますよ.

* * *

ドラクエも落ち着いたので,先週頭あたりから公開に向けての作業を行なっています.主に提出の際に対応必須なものへの対処です.

iOSで公開した際にも面倒だと思いながら色々と対処しましたが,MacやAppleTVはそれ以上に面倒です.iOSは何だかんだで動作環境が数える程度しかないし,Macのような面倒なセキュリティ対応もなければAppleTVの変に厳しい制約もなく,何よりもメジャーな環境なので少し調べればノウハウで溢れかえっています.逆にMacとAppleTVはマイナー過ぎて日本語の情報が殆どありません.結局のところ公式のドキュメントとサンプルコードを読み解くのが近道なのですが,英語力に乏しい人間なのでどうにも時間がかかります.

色々と面倒ではありますが,どのみち超えなければならない壁ですのでやるしかありません.

* * *

Windowsの開発環境も用意しないとな…….が,それ以前に5年前のモデルのMacが未だにメインなのを先に何とかすべきか.動作速度に不満は無いのですけどね.

Comments closed