ゲーム開発未経験が8番ライクゲームを作ってみた

**作ったもの**

~~以下のUnityPlayのリンクから遊べます。~~

:::note alert
現在、調整中のため一時的に公開を停止しております。
:::

https://play.unity.com/ja/games/36e3f4d8-6ca5-423e-98d0-68a1a57fd9fa/6

![top.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3828517/f7a6f613-d266-41bf-bcb2-8d35f8c40d1b.png)

![game_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3828517/dc238629-21dc-4f4d-9be7-6668112d72ae.png)

![game_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3828517/fbb27f17-60ed-4a54-82d6-a3df19bea1fc.png)

## 1. はじめに

この記事では、自身が通う大学の構内をモデルにした8番ライク(パロディ)ゲームの紹介と制作過程を振り返ります。

### 1.1 制作背景

普段は機械学習やシミュレーションに関する研究を行っていますが、もともとゲーム好きで、自分でゲームを一から作り上げることに挑戦してみたいという思いがありました。また、ゲーム開発を通じて、興味のあった3DCG技術にも触れ、自分のスキルをさらに広げたいと考えていました。

制作のきっかけとなったのは「8番出口」という作品をプレイしたことです。この作品からインスパイアを得て、初めてのゲーム開発に挑みました。

### 1.2 8番出口の類似作品について

今回制作したゲームは、コタケ氏（X：[コタケ/KOTAKE CREATE](https://x.com/NOTOKEKE) / Stesm：[KOTAKE CREATE](https://store.steampowered.com/developer/kotakecreate)）の作品「[8番出口](https://store.steampowered.com/app/2653790/8/?curator_clanid=44758507)」からインスパイアを得たものです。作者自身が二次創作ゲームの制作を基本的に許可しており「8番ライク」としての制作を歓迎する姿勢を表明しています。

https://x.com/NOTOKEKE/status/1738125876531994851

## 2. ゲーム概要

「理学部6号館」は、真夜中に閉じ込められた校舎から脱出を目指す探索型アドベンチャーゲームです。プレイヤーは異変を探しながら、1階を目指して校舎を降り続けます。

<details><summary>ゲームのルール</summary>
    
1. 周囲をよく観察すること
    校舎の中ではさまざまな「異変」が隠されています。異変に気づくかどうかが脱出のカギとなります。
        
2. 異変を見つけたら
    左の階段を降りてください。異変を見逃さずに進むことが大切です。
        
3. 異変が見つからなかったら
    右の階段を降りてください。周囲を注意深く観察しつつ進みましょう。
        
4. 1階を目指し続けること
    校舎の静寂に呑まれないでください。

**想定クリア時間**
    
5分～30分
    
**動作環境**
    
- OS：**Windows 10以上**
- メモリ：**4GB以上**
- 入力：**キーボードとマウス**
</details>

### 2.1 制作概要

制作期間：1ヶ月半

| 作業内容 | 期間 | 概要 |
| --- | --- | --- |
| 設計・調査・準備 | 1週間程度 | ゲームエンジンの選定<br>リファレンス収集<br>blenderの練習 |
| 3Dモデルの作成 | 3週間程度 | モデリング<br>マテリアルの設定 |
| 実装・デバッグ | 3週間程度 | ゲームシステムの実装<br>UIの作成<br>ライティングの設定 |
| ビルド・リリース作業 | 1週間程度 | 公開プラットフォームの選定<br>テストプレイ |

**設計・調査・準備**

この期間に8番ライクゲームの制作を思いつき、ゲームの構想を練りました。また、ここで初めてblenderを触り、好きなゲームの小物などをいくつか作って使い方・ショートカットを覚えました。

**3Dモデルの作成**

ゲームの雰囲気を表現するうえで重要となる部分なので、プロジェクトの中でも一番時間と労力を要する工程でした。Blenderの操作に慣れてきたとはいえ、細部の調整や質感の表現に多くの試行錯誤を重ねました。

**実装・デバッグ**

普段の授業でJavaを使っているので、Unityでのスクリプト作成には比較的スムーズに取り組むことができたと思います。イベント処理などUnityの特徴的なスタイルに触れ新たな知見を得るとことができました。

**ビルド・リリース作業**

開発当初はSteamやAppStoreへの公開を検討していたのですが、ある程度の費用がかかることがわかりUnityPlayでの公開に切り替えました。

### 2.2 技術スタック

| カテゴリ | 技術 | 選定理由 |
| --- | --- | --- |
| ゲームエンジン | Unity | Javaに慣れているのでC#の学習コストが低いと思ったから。小規模なゲーム開発だから |
| DCCツール | Blender | ライセンス費用などがかからないから |
| UI設計・デザインツール | Figma | UI設計やテクスチャの調整などに使えるから |
| バージョン管理 | Git,GitHub | 使い慣れていたから|

## 3. 振り返り

### 3.1 工夫・意識したこと

今回の制作では、技術的な工夫以上に、**意識面での取り組み**を大切にしました。

- **最後まで作りきること**
    
    「最後まで作りきること」を制作の最優先目標としました。アイデアを追加したくなったり、新しい技術に挑戦して挫折しそうになる場面もありましたが、とにかく形にすることを重視したことで、途中で迷走することを防ぎ、モチベーションを維持して取り組むことができたと思います。
    
- **トライ＆エラー！**
    
    初めての技術を触る中で、うまくいかないことも多々ありましたが、そのたびに調査をしスモールスケールでの実験を重ねて解決策を見つけました。これにより、遠回りをしてしまっていた場面もあったかもしれませんが、自分のスキルの幅を広げることができたと感じています。また、新しい技術に対して前向きに挑戦する姿勢を養う良い機会にもなりました。
    

### 3.2 詰まったところ・苦労したところ

- **Unityのライトベイク**
    
    今回のようなゲームはライティングがゲームのシーン全体の雰囲気や見栄えに大きく影響する要素だと考えています。特に、光源の配置や強度の調整が難しく、リアルな陰影を表現しつつ、プレイヤーが見やすいバランスを取るのに苦労しました。
    
    ゲームの中心的な仕組みとして「無限に続く廊下」の実装に、下図のようにプレイヤーがいる階をn階としたとき、ゲートを通過しことを検出したらn-2階を生成して後方のn+2階は削除することを繰り返すアルゴリズムを考えていました。
    
    ![Slide_16_9_-_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3828517/dff3c05d-9829-c4d9-0d6a-b988fde00c7e.png)

    
    しかし、廊下をPrefabsで管理・生成していたのですがこの方法ではベイクドライティングが適用されず、真っ暗な廊下が生成されてしまい意図した表現ができませんでした。
    
    この問題を解決するために、アプローチを大きく変更しました。廊下を動的に生成せず、固定された廊下を使い、プレイヤーを特定の位置へテレポートさせる方法を採用しました。この実装によって、ベイクドライティングを保持しつつ、無限に続くように見える廊下の表現を実現しました。
    
    ![Slide_16_9_-_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3828517/0b8527b9-9c58-5bc6-fa39-ec5c59b779c2.png)

    

### 3.4 今後の課題

- **オリジナルなゲーム開発**
    
    今回のゲーム開発は技術を学ぶ良い機会になった一方で、自分のアイデアやオリジナリティを反映する部分が乏しかったと感じています。もし次にゲームを作る機会があれば、企画段階から完全オリジナルのゲーム開発に挑戦したいです。
    
- **計画的な設計と開発**
    
    ゲーム制作のお作法は知らず、実装周りの設計や考え方、仕様をしっかり詰め切れていないため、結局「自分がわかればいいや」という気持ちで進めてしまい、設計・計画を無視してしまいました。個人開発あるあるでしょうか？
    

## 4. おわりに

初めてのゲーム開発という挑戦は大変なことも多かったですが、それ以上に得るものが大きく、充実した経験となりました。拙い文章ではありますがここまで読んでいただきありがとうございました。

## 参考にしたサイト等
https://qiita.com/T-H9703EnAc/items/c3ef4cdf985460cda543

https://from20150817.hatenablog.com/

https://sorceryforce.net/ja/tips/unity-input-action-map

https://mogi0506.com/unity-scale-ui/