Skip to content →

Acerola Software Posts

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

iOS版「ぺぐそり」配信終了のお知らせ

突然ですが,iOS向けに配信中の「ぺぐそり」は近日中に配信終了となります.理由は,Appleからそういう通達を受けたため.

AppleはiOS向けアプリの世代交代を促すために,古くてアップデートが滞っているアプリに対して「このままだと販売継続できないから30日以内にアップデートしてね」という感じの呼びかけを行なっています.30日以内にガイドラインを満たしてアップデートを行えば何ら問題はないのですが,それが不可能な場合はストアから削除されてしまいます.で,現在配信中の「ぺぐそり」がそれに引っかかってしまいました.

この動き自体は2016年初頭くらいから始まっており,「ぺぐそり」は2015年1月に64bit対応のアップデートを行なっていたため,多分大丈夫だろうと思っていました.が,どうやらそういう問題ではなかったようです.

30日以内に対処すれば継続して配信できるのですが,機能だけでなく内容的にも時代に見合ったものではないのは事実.中途半端に対処して延命するくらいなら,ゼロから新作として作り直した方が良さそうなので,これを機に配信終了とします.(そもそも何が原因で引っかかったのか知らされていないため,対処も難しいというのも理由のひとつではありますが……)

ちなみに,64bitに対応していて,そこまで古くないSDKを使用していても引っかかったという事は,ほぼ同じシステムで動いている「反撃BLOCKS」もちょっと危ないかもしれません.

* * *

……さらっと「新作として作り直す」とか書いていますが,あんまりその余裕も無いんですよね.

現在,作り直し版の「反撃BLOCKS」と,それとは別の作業を同時進行していますが,シングルタスクな私の脳では2つだけでも結構大変.本業という最も時間を食い潰す(だけど唯一金になる)ものもあり,どちらか1つに絞るべきかと思っていた矢先にこの通知ですから,もうどうすれば良いのやら.

もう,休日だけ1日48時間とかになりませんかね.

* * *

そんな作り直し版「反撃BLOCKS」の進捗状況.

オリジナル版+αの当初予定していた形にはなっており,ストアに並べる準備も申請に関わる部分以外は出来ている状態です.

残りは何かと言うと…….

  • BGMとSEを作り直したい(オリジナル版の出来がイマイチだったため)
  • 演出面をもうちょっと強化したい(大画面でプレイすると見た目が地味なのが際立つため)
  • あんまりテストプレイできていない

プログラムで解決できる部分がもう殆ど残っていないのですよね.私にとっては最も時間を取られる作業のオンパレードです.

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

macOS版進行中

気がついたらもうすぐ11月.活動記録をサボり過ぎましたが,作業はちゃんとしてます.

どうも私はこの季節に体調を崩しやすいらしく,よりによって休日になると寝込むことが多いようです.崩すのはブロックだけにしたいところですが.

* * *

そんな訳で,例によって作り直し版「反撃BLOCKS」の件.

とりあえず,作業しやすいmacOS版をメインに色々と細かい対応を行なっています.主にシステムまわりの対応で,描画エンジンを作り直したり,入力まわりが別物になったり等々.数ヶ月かけた甲斐もあり,ストアに並べるのに必要であろう対応はmacOSに関しては大体完了しました.対応必須で面倒なものが1つ残っていますが,これはもう少し後に対応したほうが都合がいいので後回し.

それにしても,macOSの開発系の情報収集は本当に苦労します.ゲーム関係の情報となると特に.公式のドキュメントもiOSやtvOSに関しては需要のあるものは日本語化されていたりするのですが,macOSに関しては殆ど翻訳されておらず,当然インターネットで日本語で検索しても欲しい情報は殆ど見つからず.英語なら豊富なのかというとそんな事もなく,公式以外では運が良ければStack Overflowで見つかる程度.

いっその事ノウハウを集約して記事にでもしようかと思ったりもしましたが,それはそれで大変だし今のところ正しい実装である自信もないのでやめておきます.そもそも情報が少ないのは需要がないからとも取れる訳で……いや,作っているゲーム自体が需要無視か.

* * *

ゲーム内容に関してはもう実装は終えて残りは調整くらいに思っていたのですが,度々プレイしていたら色々とイマイチな気がしたため,こちらもごっそり変えました.

今までの内容はオリジナル版+αでしたが,このαが大きすぎてややバランスが崩れていました.難易度的に易しめになったのは狙い通りではありますが,「真面目にプレイしたら負け」のような内容に傾いていたのは少々問題.そもそも2周クリア時に残6というのは易しすぎな気もしていましたが.

という訳で,自機性能を分離して2つの自機タイプから選択するように変更しました.片方は今までに近い性能で,もう片方は今までに無い性能.どちらが優秀かというと実は後者寄りなのですが,扱いに若干慣れが必要なため,シンプルな前者のほうが攻略しやすいかもしれません.

で,分離して以来一度も2周できていません.色々と調整し直しです.

* * *

今回ちょっと懸念している事は,あまりテストプレイが出来ていないという事.iOSなら通勤電車の中でプレイする「通勤デバッグ」が可能だったのですが,今回はそれが出来ません.iOSで動かす事は可能なのでゲーム的なテストは不可能ではないのですが,環境依存のバグは見つからないし,決して安くない一体型コントローラも買う必要があります.

……それ以前に,今の職場,電車の乗車時間が10分ちょっとなんですよね.オリジナル版の開発時には合計40分くらいだったので,ほぼ毎日プレイしていたのですが.

* * *

このペースだと,macOS版の作業が一通り完了するのが早くて年末くらいという感じ.配信となると,来年頭くらいが現実的な時期でしょうか.

ここまで来たからには,少なくともmacOS版は配信すると思います.

Comments closed