4人規模で同人ゲームを制作するに当たって使用したツールやサービスの紹介

# 同人ゲームを制作するに当たって使用したツールやサービスの紹介

　[しあわせの国](http://syawasekingdom.hatenablog.com/)って同人サークルでゲーム制作してます。

　ダラダラと野郎4人でゲーム制作を開始してから1年経ちました。まったり楽しく制作しています。

　そんな同人活動ですが、資金はないし、同じ物理スペースに居るわけでもないし、活動時間なんて決まってないしと、様々な事情が会社という組織と異なってきます。そんな中で、快適に活動するためにいろんなツールだとかサービスだとか試してきました。以前はコロコロ使用サービス増やしたり使用ツール変更したりしてましたが、安定してきたのでいくつか紹介します。

　なお、それぞれのツールについては軽く紹介する程度とします。気になる物があったらぜひググって、利用してみてください。

　メンバー全員Windowsです。Windows以外のOSじゃ動かないものも含まれてます。

## ゲームそのものを作るためのもの

- [Unity - Game Engine](http://japan.unity3d.com/)
    - 最強のゲームエンジン
- [Visual Studio](https://www.microsoft.com/ja-jp/dev/default.aspx)
    - 最強のIDE

　最強。特に説明することはない。

　Unityは最新のベータ版を積極的に使用しています。新しい機能が使えるって素敵。

　VisualStudioはVS2015使ってる人と、VS2017RC使ってる人とに別れてます。新しいもの好きが新しいもの使ってるだけで、意図的に、目的を持って別れてる訳ではありません。


## git関係のもの

　ゲームのソースコードやアセットのバージョン管理にGitを利用しています。

### gitホスティングサービス

- [GitLab.com](https://about.gitlab.com/)
    - Gitのホスティングサービス

　自前のサーバーにインストールして運用しなきゃってやつじゃなく、オンラインで無料ホスティングサービスやってくれるやつ使ってます。

- 無料で
- プライベートリポジトリが好きなだけ作れて
- プライベートのコラボレーターを好きなだけ追加できる

　ってのが主な選択理由です。BitBucketやGitHubだと有料になっちゃうサービス内容が、GitLab.comでは無料で利用できます。
個人活動は課金してGitHub使ってますけどね。


　Issueが操作されたり、コミットがプッシュされたなどのイベントは、後述するDiscordのグループチャットに通知を飛ばす連携・運用してます。

### gitクライアント

- [GitKraken](https://www.gitkraken.com/)
    - 早い。見やすい。かっこいい。UI表示は英語のみ。
- [SourceTree](https://ja.atlassian.com/software/sourcetree)
    - 日本語UI対応。利用者が多いため日本語の情報が多い。

　gitクライアントはGitKrakenとSourceTreeが使用されています。私を含む２名がGitKraken、それ以外の２名がSourceTreeを利用してます。好きなものを勝手に使ってるだけ。GitKraken組は、SourceTree組に操作説明するためにSourceTreeもインストール済み。

　gitの習熟度は人それぞれで、初心者の人は操作が分からなくなって動けなくなることもしばしば。そういったときは、後述するGoogleHangoutやTeamViewer使って解決していきます。


## テキスト/ボイスチャットツール

　コミュニケーション、必須です。

- [Discord](https://discordapp.com/)
    - [テキストチャットもボイスチャットもほぼ無制限で利用できる](https://discordapp.com/features)ツール

　気に入ってる機能を一部紹介。

- 無料で
- ルーム好きなだけ作れて
- ルームの人数上限なくて
- テキストチャット出来て
- ルームの人全員とボイスチャットできて
- [いろいろいじれるAPIが用意されている](https://discordapp.com/developers/docs/intro)

　無料とは思えないほど、分かりやすく高機能です。

　このチャットツールにたどり着くまでに試したツールと、不採用となった理由をば。

- Skypeは通話開始時に部屋にいる人全員に通知飛ぶのがうるさくてやめました
- TeamSpeakはサーバー上での運用が面倒になってやめました
- Slackは無料でのボイスチャットが１対１しかできなかったのでやめました

　DiscordにはAPIが用意されているので、GitLab.comやGoogleDrive、IFTTTなんかと連携させてます。連携のためのボットは後述するツール群使って自分で組みました。

### チャットボット制作でお世話になったフレームワークとか

　開発に必要な情報を集めたり、自動化のためにチャットボットを作成しました。その際にお世話になったツールだとかを一部紹介します。

- [Discord.Net: An unofficial .Net wrapper for the Discord API](https://github.com/RogueException/Discord.Net)
    - DiscordのAPIの.Netラッパー。C#
- [Nancy - Lightweight Web Framework for .net](http://nancyfx.org/)
    - 軽量Webサーバー。[Sinatra](http://www.sinatrarb.com/)っぽくサクサク実装できる。C#
- [Raspberry Pi - Teach, Learn, and Make with Raspberry Pi](https://www.raspberrypi.org/)
    - 名刺サイズの小型PC。Rasbian入れてボットを動かすためのサーバーとして利用

　オープンソース大好き。Raspberry Piをサーバーとして、その上にNancy走らせてWebHookだとか拾わせて、Discord.Netで作成したオレオレボットを経由して通知を表示したり、外部ファイルを操作したりさせてます。[NancyをRaspberry Pi上で動かすためのドキュメント](https://github.com/NancyFx/Nancy/wiki/Running-Nancy-on-your-Raspberry-Pi)も[Discord.NETをLinux上で動かすための情報](https://github.com/RogueException/Discord.Net/issues/297)も、それぞれの開発リポジトリから見える範囲で揃ってたのがGood.



## デスクトップ配信/受信ツール

　現在、開発メンバーは全員社会人♂で、同棲♂してるわけでもありませんし同棲する予定もありません。遠隔地で作業していると意思疎通が難しいもんです。特にUIやグラフィック、ゲームの雰囲気などなどは実際に見てみないと議論もへったくれもありません。そこで、お互いの画面を簡単に配信/受信するツールとして、Googleハングアウトを利用しています。

- [Google ハングアウト](https://hangouts.google.com/)

　Googleアカウントとブラウザだけで利用できる神ツール。ボタン一つで自分のデスクトップの内容を配信することが可能です。作業進捗の確認をする際は積極的に利用しています。4人全員のデスクトップ風景を同時に配信/受信することができるので、とりあえず作業するときは垂れ流しておく、なんて運用も出来ます。非常に低遅延なのもGood.


## デスクトップ共有ツール

　そんな神ツールのGoogleハングアウトですが、あくまでも「画面配信ツール」であって相手の画面を操作することは出来ません。「Unityの○○に関する操作方法がそもそもわからない～」「SourceTreeの○○に関する操作方法がそもそもわからない～」「ソースコード少しだけいじって欲しい～」なんてとき、あります。チャットで解決するのが面倒そうな問題にぶつかったとき、リモートで相手のデスクトップを操作するためにTeamViewerを利用することがあります。

- [TeamViewer – リモートサポート、リモートアクセス、オンラインコラボレーション、オンラインミーティング](https://www.teamviewer.com/ja/?pid=google.tv_ex_en.s.jp&gclid=Cj0KEQiAzsvEBRDEluzk96e4rqABEiQAezEOoJKyZ-EuaGRRD9-m22IjX8uUj19-sxyWf-arD9QLAcwaAqep8P8HAQ)
    - リモートで相手のデスクトップ操作できるやつ

　お互い同じツールインストールしてアプリ立ち上げて、適当なIDを共有すればマウス操作もキーボード操作も投げることができるツールです。簡単に利用できますが、GoogleハングアウトのURL踏むだけというシングルアクションより手間がかかるので、どうしてもデスクトップをリモートで操作したいという場合のみ利用しています。


## お絵かきチャット

　一つのキャンバスにみんなで同時にゴチャゴチャ書き込んで議論したい場面、あります。

- [MagicalDraw | お絵かきチャットレンタルサービス](http://draw.kuku.lu/)
    - ブラウザで動作するお絵かきチャット。無料。アカウント不要で入室パスワード付きのルームを作れる

　非常に手軽に利用できる絵チャ。言葉で伝えるのが難しい、かと言ってガッチリ清書するのは面倒というときに力を発揮します。企画の草案作成時やざっくりとしたステージ構成の話、こんな見た目の敵にこんな動きさせたい～、とかってのをガリガリ描いて共有できます。


## ファイル共有

　サークルカットやゲームの草案、議事録を保存するスペースが必要です。

- [Google ドライブ](https://www.google.com/intl/ja_ALL/drive/)
    - 通常のフォルダ感覚でファイル共有だとかできるやつ

　ゲーム開発のリポジトリに含めなくて良さそうなものなんかはココに保存していきます。ただのファイル共有機能だけでなく、[REST API](https://developers.google.com/drive/v3/web/about-sdk)が用意されています。こいつを利用し、Discordからコマンド送信することで議事録を生成する機能を実装しました。


## デザイン系のツール

私はほとんど関与してないんで、ホントに紹介するだけ。

- [Steam：Aseprite](http://store.steampowered.com/app/431730/?l=japanese)
    - ドット絵用意するのに使用。有料。
- [高機能ドット絵エディタ EDGE | TAKABO SOFT](http://takabosoft.com/edge)
    - ドット絵用意するのに使用。無料。
- [CLIP STUDIO | 創作応援サイト](https://www.clip-studio.com/clip_site/)
    - 立ち絵とかサークルカットとか用意するのに使用。



## 宣伝ツールとか


- [はてなブログ](http://syawasekingdom.hatenablog.com/)
- [Twitter](https://twitter.com/syawasekingdom)

　ブログサービスについては以前、RaspberryPi上でWordpress動かしてたんですが、運用が面倒になってやめました。


## 焼肉の予約ができるサービス

　サークル活動の節目、打ち上げには焼肉が必須です。

- [ぐるなび - レストラン予約と宴会・グルメ情報 検索サイト](https://www.gnavi.co.jp/)


---

## まとめ

　こんな感じのインフラで開発してます。無料・低コストでもいろんなことが出来ますね。

　改めて見てみると、ブラウザで動作するサービスに頼ってることに気付かされますね。だって便利なんだもん。また、ブラウザで動作するサービスはチャットボットと非常に相性が良いです。ボットに、URLを吐かせるコマンドを持たせ、URLを吐かせ、みんながそれを踏むって流れで、全員が同時に一つのサービスを利用することが出来ます。とても快適。

　おすすめのツールとかあったら教えてもらえると喜びます。