PONOS Advent Calendar 2024の20日目の記事です。
はじめに
ずっとゲーム開発の仕事をしていますが、前職で業務用ゲーム機の修理を担当していた時期がありました。業務用ゲーム機とはゲームセンターに設置してあるアーケードゲーム筐体を指すのですが、大型の機械が中心なのでお店に訪問しての現地修理も数え切れないくらい経験しています。
今現在はスマホ向けゲームを開発していますが、意外とその経験が活きていると実感することもありまして、今回は当時のことを思い出しながら書き綴ってみたいと思います。
業務用ゲーム機とは
ゲームセンターに設置されているゲーム機は多種多様で、ビデオゲーム、プライズマシン、メダルゲーム、プリントシール機、音楽ゲームなど、いろんなタイプがあります。総称してアーケードゲームとも呼ばれます。
家庭用ゲームと違って都度100円玉を投入して遊ぶゲームなので、お客様につまらない思いをさせてしまったら終わりというシビアな商売でもあります。それだけに、短期間で面白いと思わせる仕掛け、もう一度遊びたいと思わせるリピート性など洗練されています。
今回はイメージしやすいようクルマを運転するドライブゲーム筐体を例に話を進めますが、モニタの有る無しや入力デバイスの違いなどはあれど、業務用ゲーム機のハードウェア構成としてはおおよそ次のような構成になっています。
ハードウェア構成
ドライブゲームの筐体を構成するハードウェアを大雑把に洗い出してみました。
プレイヤーに見えるところから、モニタ、ハンドル、ペダル、スタートボタン。筐体の中にあって見えませんが、コンピュータ(基板)と電源ボックス、ハンドルの根本には反力用ACモータもなんかも付いています。それぞれのユニットはケーブルで接続されています。もちろん実際はこんなに単純で無く、筐体内には血管のように配線が張り巡らされています。
故障箇所
そんなゲーム筐体の中で故障する箇所は「全て」です。
経験上、ユニット全ての故障事例を見てきました。故障しない機械はありません。初期不良も一定の割合で発生します。とはいえ、100円玉を投入して遊んでいただくゲームゆえ、極力早く直す必要があります。
プレイヤーが直接触る部分(ハンドルやペダル、スタートボタンなど)は消耗品として交換しやすく設計されており、部品を取り寄せて店舗側で交換修理されることが多いです。
モニタや基板についてはさほど壊れるイメージが無いかもしれませんが、劣悪な環境下では案外壊れるものです。コンセントから100Vが供給されるのは普通ですが、ゲーム機がずらりと並ぶ店舗では90Vを下回るようなこともありました。電圧が低いと電流が多く流れます。また冷却用ファンがホコリで詰まり熱暴走するという事例も日常的にあります。
業界的にメンテナンスフリーな機械が求められているのではなく、メンテナンスは自前でやるからその分安価で販売してくれた方がありがたい、という風土があるようにも思います。
出張修理
メンテナンスが必要なゲーム機なので、大手のゲームセンターにはお店側に技術者がいますし、個人経営の小さなお店でもスタッフの方がそこそこの技術知識をお持ちだったりします。ゲーム機付属の取扱説明書には部品の交換方法や配線図が載っていて、それを参考にしながら自前で修理されています。
そうは言うものの、大枚叩いて買ったばかりでお店に導入してすぐの機械がいきなり故障したらどうでしょう?メーカーには怒りの電話が掛かってきます。
「初期不良だ!」「営業補償どうしてくれるんだ!」「今すぐ直しに来い!」との見幕。
「今から向かわせていただきますが電車で2時間掛かります...」と言ったら...
「電車の中でも走れ!」と返されました。(今思うとユーモアある方だと思いますけど。)
新製品を楽しみに開店前から並んで待っているお客様がいらっしゃるのですからそのお怒りも当然です。こちらに落ち度のないケースもありましたが、メーカーとして「まずはお店に向かう」というスタンスで行動しました。電話口では怒鳴り散らすような方でも、お店に着くと「おう、わざわざ遠くまでありがとうな」と缶コーヒーを手渡されたり、意外とそこまで悪い想い出はありません。
初動調査
現場に到着してまずすることは現状の確認です。
電源スイッチをONにして電源が入るか、画面に映像が出るか?冷却ファンは回っているか?エラーが出ていないか?
エラーが出ていればエラーコードからある程度原因がわかりますが、そうでないケースも多く、それが新発売のものであれば尚更でほとんどノウハウを持ち合わせていません。ひとまずテスターでコンセントの電圧を測るなど基本的なところをチェックしながら、筐体や設置環境など全体をよく観察します。観察しながら原因を推理し、仮説を立てます。
頭の中はフル回転です。
仮説
「電源を入れたのに画面が真っ暗のまま起動しない」という報告の通りだったとして、以下のような原因が挙げられます。
・基板の故障
・ソフトウェアバグ
・モニタの故障
・配線の接続不良
・電源ボックス不良
「画面が真っ暗」という事実からだけでもこれだけのことを考えます。モニタ、基板、電源ボックスにもLEDランプやファンモータがついているもので、それをみて明らかに異常と分かるケースもありますが、見た目でわからない時は厄介です。
その場合の有効な手段が「ユニット入れ替え」です。
入れ替えて絞り込む
ドライブゲームの場合、同じ筐体が2台4台と並んでいることが多いので、正常に動作している筐体とユニットを入れ替えることができます。入れ替えた結果どうなるか?によって問題の切り分けができます。
例えば故障している筐体Aと正常な筐体Bがあるとして、筐体Aのモニタを外して筐体Bに載せ換えます。念の為、筐体Bのモニタも筐体Aに載せ換えます。それで症状が移行すれば故障箇所はモニタ、そうでなければモニタ以外の部分に故障原因があると判断できます。
必要ならば基板も同じく入れ替えます。電源ボックスやケーブルを入れ替えることもあります。症状や過去の経験から可能性の高そうなユニットから入れ替えます。
なんだか当たり前のことを書いているだけの気がしますが...
このユニット入れ替え作業はとても効率的、且つ信頼性の高い結果を得ることができます。
より確度を高めるために双方向で入れ替えるというのもポイントです。と言うのも「入れ替えたら両方正常になった」というケース、更には「入れ替えたら両方壊れた」というケースがあるからです。
前者は、ケーブルの差し込みが甘かった、差し場所を間違えた、そもそも差し忘れていたなど挙げられます。業務用ゲーム機は分割しないと店舗に搬入できないくらい大型のものが多く、搬入後に店舗側で組み立てることが普通にあります。
逆に、入れ替えてみたら両方ダメになったというのもあり、そうなった時は最悪に近い事態かもしれません。自分が経験したのはモニタではなくモータ制御基板でしたが、原因はモータが焼き付いていたためのショートだったのですが、それに気づかず次々と基板を壊してしまう事態となりました。(予備の基板を多めに持ち込んでいたので何とかなりましたが。)
いずれにしても、ユニットを入れ替えることで原因の特定ができます。直接の故障原因では無かったとしても、そのユニットが正常であることが確認できただけで収穫です。
なるべく大きな単位で入れ替え、徐々に細かい単位にしていくというのも鉄則です。
例:サテライト(筐体分割)→ コンパネ(操作部一式) → 操作レバー → マイクロスイッチ
刑事ドラマのように、捜査範囲を徐々に絞って犯人を追い詰めていく様にも似ています。泥臭いけれど現場修理においては最も有用な手法だと今でも思います。
まとめ
冒頭の繰り返しになりますが、この修理の経験は今のスマホアプリ向けのゲーム開発においても活きていると実感することがあります。
特にUnityのバグ、プラグインのバージョンの相性など、中身まで追えないようなものはそのように原因を特定していく他ありません。まずは大雑把に切り分け、入れ替えを繰り返し範囲を狭めていくことで着実に絞り込むことができます。
昔BASICプログラムを学んだばかりの頃に「数当てゲーム」というのを作ったのですが、その攻略法に似ている、とも思いました。
数当てゲームで遊んでみよう〜探索問題の二分探索アルゴリズム〜
なるほど!これって二分探索アルゴリズムなのですね。
仕事だけでなく日常生活においてもそれはあり、トラブル解消能力といいますか、何か想定外のことがあった時にも落ち着いて対応できるようになったとも思います。
ま、それでもハマる時はハマるんですけどねーw
明日は@e73ryoさんの記事です。お楽しみに!