友人と二人で作るゲームの企画メモである。売ることより完成することを最優先に、
二人の持ち物(絵とコード)で閉じる形に絞った。仮題は変える前提。
一言で
深夜の給油所でワンオペ。来る客の中に、人間でないものが混ざっている。
気づいても、気づいたと悟られてはいけない。壁一枚隔てた裏には、家族が寝ている。
舞台は表と裏だけ
家は無い。給油所の表(窓口)と裏(バックヤード)、この2画面で全部やる。
主人公は住み込みで、母と子とペットが裏で暮らしている。
| 画面 | いつ | 何をする |
|---|---|---|
| 表(窓口) | シフト中 | 業務、客の対応、観察 |
| 裏(バックヤード) | シフト前後 | 帳簿、道具の購入、家族の様子 |
表と裏を隔てるのはドア一枚。表で起きたことは、物理的に裏へ来る。
住み込みなので、家賃はオーナーへの上納である。払えなければ職と住居を同時に失う。
深夜に働く理由と、怖くても辞められない理由が、これだけで揃う。
1晩の流れ
- 裏: 帳簿を見る。道具を買う。家族の様子を確認する
- 表: 客が一人ずつ来る。対応する。朝まで
- 裏: 給料が入る。帳簿が更新される。家族の状態が変わっているかもしれない
1晩=1セッション。セーブはこの単位で完結させる。
表: プレイヤーは分類しない、業務をする
「この客は化物だ」というボタンは無い。プレイヤーが選べるのは業務の動詞だけ。
給油する / 断る / 窓を拭く / 釣りを渡す / 目を合わせない / 通報する / 塩を撒く / シャッターを閉める
どう扱ったかの組み合わせが、暗黙のうちに判定になる。
「化物だと気づいたのに、普通に給油するしかない」という状況を作るためである。
Yes/No のクイズにすると怖くなくなる。
観察には時間のコストがある
客を見る手段: ナンバー(地元か県外か)、後部座席、給油口の音、ミラー、監視モニタ、時計、声。
全部見る時間は無い。長く見ていると、人間の異常客は苛立って暴れるし、
化物は「気づかれた」と判断する。どこまで見て、どこで手を止めるかがプレイヤーの技術になる。
声は合成音声で作る。ピッチ、速度、言い間違い、返事の間。「喋り方がおかしい」はここで表現する。
客の設計表(裏側の道具)
客は2×2で設計する。これはプレイヤーには見せない。客を作るときの表である。
| まとも | 異常 | |
|---|---|---|
| 人間 | 普通に対応する。雑にやると売上が減る | 人間のルールで対処(断る・通報)。塩を撒くと警察沙汰=クビ |
| 化物 | 気づいても手を出すな。普通に給油すれば帰る。塩を撒くと怒る | 化物のルールで対処(塩・シャッター)。普通に給油すると死ぬ |
肝は左下「化物・まとも」である。これがあることで判断が2段階になる——人間か化物か、そして手を出すべきか。
「化物には塩」と学んだ瞬間に、まともな化物に殺される。慎重すぎると異常な化物を通す。
見て見ぬふりという怪談の定番構造が、業務の中に自然に入る。
化物は金払いがいい
化物の客はチップを多めに置いていく。人間より稼げる。
だから怖くても相手をする動機ができ、後述の帳簿がリスクを取らせる装置になる。
先輩のメモ
ルールは最初から全部は分からない。初日は「レギュラー満タン、窓拭き、笑顔」だけ。
夜が進むごとに先輩のメモが1枚ずつ見つかる。
「後部座席を見るな」「県外ナンバーは給油だけして喋るな」
メモが正しいとは限らない。先輩はもういない。
失敗は3段階
| 種類 | 例 |
|---|---|
| 即死 | 異常な化物を通した。まともな化物に塩を撒いた |
| クビ | 人間に塩を撒いた。通報しすぎた |
| じわじわ | 業務が雑で売上が減り、道具が買えなくなる |
即死だけだと単調になる。緩い失敗を混ぜて緩急をつける。
裏: 帳簿
生活パートは作らない。1画面の帳簿で済ませる。
道具
給料で買うのは生活費ではなく、次の夜を越えるための道具。
| 道具 | 効果 | 切れると |
|---|---|---|
| 塩 | 化物・異常への対処 | 手を出せない |
| 懐中電灯の電池 | 後部座席・給油口を観察できる | 見えないまま判断する |
| 防犯ブザー | 人間・異常を追い払える | 通報するしかない(通報は回数制限) |
| 家賃(上納) | 週末に払う | 職と住居を失う |
業務が雑 → 売上が減る → 塩が買えない → 異常な化物に手が出せない → 死ぬ。
じわじわの失敗が、化物のループに戻ってくる。
家族
帳簿に3行。シーンは作らない。状態だけ。
| 毎日かかるもの | 状態 | |
|---|---|---|
| 母 | 食費 | 元気 / 具合が悪い。倒れると子の分の出費が増える |
| 子 | 食費、ときどき薬代・学用品 | 元気 / 病気 |
| ペット | 餌代 | 元気 / 食べない / いない |
金が足りない夜は、誰の分を削るかを選ぶ。塩を買うか、子の薬を買うか。
ペットは炭鉱のカナリア
その夜、化物と近く接した回数(目を合わせた、釣りを手渡した、チップを受け取った)が閾値を超えると、
翌朝ペットが「食べない」になる。バックヤードでドアの方を見たまま動かない。 理由は書かない。
数日続くと「いない」になる。
子を食わせるために化物の金を受け取り、その代償をペットが払う。
プレイヤーは金を受け取るたびに、帳簿の下の行を見るようになる。
語らない
ホラーに家族の不幸を足すとお涙頂戴に転びやすい。帳簿は事実だけ書く。
「子: 病気」「ペット: 食べない」。説明も回想もセリフも無し。語らないほうが怖いし、語らないほうが泣ける。
後で足す仕掛け(最初は作らない)
- 裏からの音: シフト中に、裏から子の泣き声やペットの吠え声がする。裏へ行けば表が無人になる。
客を待たせるか、家族を見に行くか。たぶんこのゲームで一番怖い二択になるが、客3体で回ってから - AIが演じる客: 台本の無い客を1体だけ入れ、マイクで応対する。「目の前の相手は人間か」を会話で見抜く。
面白いが、API課金・遅延・脱線の3つを解く必要があるので、基本ができてから
最初のマイルストーン: 客3体で1晩遊べる
| 客 | マス | 役割 |
|---|---|---|
| 1 | 人間・まとも | 業務の練習台。ここで動詞を覚える |
| 2 | 人間・異常 | 酔っ払いか強盗。通報が正解。塩を撒くとクビ |
| 3 | 化物・異常 | 初めての怪異。塩が正解。ここで初めて死ねる |
「化物・まとも」は4体目。3体目で「化物には塩」と学んだプレイヤーを裏切る。ここが最初の「やられた」になる。
客を1体描いて1体ぶんロジックを書けば、1体ぶん遊べる。二人の作業が1対1で対応する。
途中で止まっても「遊べるもの」が残る。
技術
- Python + pygame-ce。Python を書けるようにしておく、という目的も兼ねる
- 配布は pygbag(ブラウザ)→ PyInstaller(デスクトップ) の順。開発中はURL一つで共有し、出すときに実行ファイルにする
- pygbag の HTML は itch.io にそのまま上げられる。Steam を目指す段になって初めて PyInstaller が要る
初日から守ること
| 項目 | 理由 |
|---|---|
メインループを async で書く(ループ内で await asyncio.sleep(0)) |
pygbag はブラウザに制御を返す必要がある。後付けは全体の書き直し |
| pygame-ce を使う(無印 pygame ではなく) | pygbag が対象にしているのは community edition |
| 音声は OGG | ブラウザで MP3 は不安定 |
| アセットは相対パスでプロジェクト直下 | pygbag が同梱する範囲 |
| 実行時にネットワークを叩かない | ブラウザ内の Python から外部APIは動かない |
客の声は開発時に合成してアセットとして同梱する。実行時に生成しない。
APIキーを配布物に入れずに済み、コストも開発時に確定する。
役割
| 絵 | コード |
|---|---|
| 表の一枚絵(店内から見た窓と給油機) | ゲームループ、画面遷移 |
| 裏の一枚絵(バックヤード) | 客のロジック、判定 |
| 客の立ち絵(1体ずつ) | 観察の手段と時間のコスト |
| 家族3人の小さな肖像 × 状態差分(9枚以下) | 帳簿と道具 |
| 演出の絵コンテ | 音、声の合成 |
最初に必要な絵(発注リスト)
- 表の一枚絵 1枚
- 裏の一枚絵 1枚
- 客 3体(人間・まとも、人間・異常、化物・異常)。化物は出し惜しみする——最初は後部座席の影、正体は失敗時にだけ見える
- 家族の肖像 3枚(元気な状態のみ。差分は後)
ゲームオーバー画面の一枚は、いちばん本気の絵を取っておく場所。
決めていないこと
- 仮題
- 客の総数と、夜の進み方(何晩でクリアか、そもそもクリアがあるか)
- 通報の回数制限の値
- 化物のチップの相場と、ペットの閾値
- 先輩のメモの枚数と内容

コメント