ゲームのプレイテスト管理ソフト見つからないので、Djangoと2週間で作ってみた

ゲームプログラマーとしてのキャリアはとうとう始まるので、また大学生のところを思い出して、そのときについて面白い記事を書くと思いました。

「フルイド」っていうのは、３人の同級生で１年半を掛かりましたの卒業制作ゲームでございます。修士を卒業ためにプロジェクトだったからこそ、ゲーム作りスキルが先生たちから試してた。

![screen4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564614/ac587202-7e4f-c634-0d39-e66e170ef8f7.png)

> フルイドのバトル画面

ゲーム作りの中には複数のことがあるのでしょう。ゲームプレイ、レベルデザイン、3Dモデリング、UIデザイン、UX等。そして教えてもらったのプレイテストが詳しくわかるようになりました。

## プレイテストとは？

ご存じないの方に説明すると思います。開発中のまだ発表されていないゲームはよく、社員や未関係者にプレイされました。やりながら、画面の画像とプレイヤーの行動はすべてログされて、その後プレイヤーのご意見やトラブルは細かくて聞かせて書いときます。

![sheet.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564614/c6087e9f-ac36-97cf-3e33-51a1c7a47256.png)

> あるプレイテストの結果（日本語付き）

両方ゲームの実行とプレイヤーの気持ちは開発チームを非常に助けになるだからこそプレイテストを行います。

## プレイテストのやり方

![ookawa621458A3127_TP_V.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564614/64d3442b-25fb-1b5d-e518-65dd76c2ca54.jpeg)

とはいえ、うちの個人ゲームのためのプレイテストが必要となり、まずは同級生に試してくれました。僕はゲーム実行に特別「プレイテスト」モードを追加したんで、ゲームの中にの行動やコントローターの動きがすべてパソコンのどこかのファイルにログされました。

プレイテストが始まったら、管理者はプレイヤーのご意見を大声で言ってを頼む、そして静かに紙のシートに書いときます。そのシートの情報によって、複数の「バグ」や「問題」が現れます。

バグはもちろん開発者から直してくれるんですから、そのためにプレイテストされたのゲームバージョンと書いといたログのファイルが要ります。

![YUSEI_9V9A5412_TP_V.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564614/efc07bd5-2bc0-a6c1-f97c-5d59c3a989af.jpeg)

プレイヤーがたとえば、ゲームのことを完璧に理解できなかった場合、それとも欲しかったことがあったら、「問題」が生まれて開発チームが答えを見つけるかどうか決めます。たまに、多くのプレイヤーが同じ口コミを言って、前に見つけたの問題の重要度を上がります。

バグと問題は時間を通じると何回も変更されるだからチームメンバーがいつでも明らかに状態を見えるのは大切でございます。

```plantuml
"プレイテスト\nプレイヤー"->"プレイテスト\n担当者" :  ご意見や問題点を発表
"プレイテスト\n担当者"->開発者 : 起きたバグをすぐ伝う
"プレイテスト\n担当者"->"プレイテスト\n担当者" : 問題点を洗い出す
"プレイテスト\n担当者"->開発者 : 問題を伝う
開発者->"プレイテスト\n担当者" : 直したバグや問題点対応の通告
"プレイテスト\n担当者"->"プレイテスト\nプレイヤー" :  新しいプレイテストを行う
```

それはそうですが、紙のシートがいっぱいあったし、プレイテストされたゲームは別のパソコンでやってたし、情報を全部デジタルにするしかないでしょう。

デジタルといえば、ソフト？プレイテスト用のソフトっていうものあるかしら？

## 個人ゲーム開発の限界

ゲーム業界に問題があったら必ずソフトがあるのですが、プロ的な問題に答えるソフトがゲーム会社向けの有料ソフトしかありません。

プログラマーとして、プログラミングしたらある問題がすぐ答えるならやってみたい感じがよくするでしょう。

だから昔からのウェブプログラマーの体験のおかげで、プレイテストを管理するためのウェブアプリを速くに開発しました。

## 2週間だけで役立つになりました

ゲームがもう開発中だったから、もし同時にウェブアプリの開発をしたら、速く進んで早く役立つようになる欲しいと思いました。

スムーズと快適な開発といえば、PythonとDjangoの出番でした。大学院と同時にどこかで正社員としてWebプログラマーだったし、そのおかげでDjangoの腕がうまくなったし、正しいライブラリの選びが速くなりました。

データベース企画から始めました。開発チームが3人ですから違うパソコンにプレイテストが可能で、ゲームビルド号の違いもあるし、最初からすべてを考えないといけません。

簡単な便利なUIが欲しかったが、あまり時間を掛からないように、検索やフィルターがすべたクライアントサイドにJavaScriptのおかげでやります。正直に、いま考え直したら、サーバーサイドのページ付けはそんなに難しくないけどまあ。

たとえば問題やバグがソースコードと関係ある場合、ゲームのリポジトリまでのリンクを添付ことができます。

では、紹介します！できたサイトは「ゲームレンス」と言います。次の画面はプレイテストの一覧です。昔に使った本データベースがなくなったので今は仮データを使ってます。

![playtests](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564614/ec5dd99f-06d0-48af-cfd2-e8b283c1d3b8.png)

見えるどおり、大事な情報がすぐわかるようになります。プレイテストのログファイルがいつもパソコンに残るので、どんなファイルがどんなセッションからをわかるために、日付や管理者が大事でした。

![detail](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564614/ed23c3aa-0cad-f1c9-8657-ff78ab0a781e.png)

あるプレイテストのページに情報量は多いですね。先に言ったどおりに、プレイテストから口コミと問題が起きます。プレイテストされたゲームの状態が明らかにわかるようにビルドの情報が表示します。

![issue](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1564614/e9c80bba-5bc3-6c3d-d450-18e57fd884e0.png)

問題に対応は大切ので、そこのページも色々が表示します。特に、ある問題が複数のプレイテストに合わられたら、それとも重要が高ければ、速く対応するほうがいいって感じです。

## 今考えると

普通に紙やエクセルシートの入力が嫌がって、けっこう面白いプロジェクトだった。もっと時間があれば、エクセル保存やGitレポジトリーから情報の自動引き出し、その機能が役立つのだと思います。

その上、どうしてそんなプレイテスト向けソフトがオープンソースとして無くて、今日もとても残念です。インディ系のゲームにもプレイテストが大切にするはずけど、時間と金の問題で、プロ的にソフトが使えないでしょうか。

とはいえ、ウェブの力で社内開発が色々できて良かったですね。プログラマーとして好きじゃない事や状況があればいつも開発で対応したいっていうモットーがあるでしょう。そのせいで、いっぱい作って何も終わらないの良くない習慣になっちゃうけど、たまにやってみてよ！いつか面白いことができて、いい体験になります。

以上！

---

読んでいただきありがとうございます。このトピックで話したいなら、ツイッターは[@komanakun](https://twitter.com/komanakun)、Wantedlyは[こちら](https://www.wantedly.com/id/michaelhubert)、LinkedInプロフは[こちら](https://www.linkedin.com/in/michaelhubertme/)です。
フリー写真はpakutaso.comよりです。