開発者に薦める良いサイトやツール

かなり幅広い分野で利用されている便利なツール・サイトや，
個人的に推していきたいものを紹介します。

今回の記事は，基本的にはゲーム開発者向けの内容となっております。
ただ，ゲーム開発者の方でなくても使えるモノが沢山含まれているので，一応最後まで目を通していただけるとありがたいです。


※ 更新履歴
**2021/12/17：** 内容の大幅修正。項目にFigmaとMiroを追加。
**2021/02/10：** 項目にCanvaを追加。

# [GitHub](https://github.com)
プロジェクトの変更履歴を保存・追跡できるバージョン管理システム [Git](https://ja.wikipedia.org/wiki/Git) に幾つかの機能を加え，クラウド上で操作できるようにしたものです。

下記のようなケースに対応できます。

- ファイルを消してしまったが，何を消したか分からない
- 開発途中で致命的なバグが発生したが，いつからあるのか分からない
- ひとつのプロジェクトを複数人で平行して作業を行いたい

といったケースです。

GitHubを使用するにあたって，以下の情報も知っておきましょう。


### [Git ignore](https://techacademy.jp/magazine/10179)
Gitのバージョン管理に含めないファイルを指定する機能です。

例えば以下のようなものを指定します。

- プロジェクトを開いた時に，自動生成されるファイル
- 個人のIDやパスワードなど，載せてはいけないファイル

自動生成されるファイルを除外したい場合は，下記のサイトを参考にしてください。

https://www.toptal.com/developers/gitignore

https://github.com/github/gitignore


### [Git-Flow](https://qiita.com/KosukeSone/items/514dd24828b485c69a05) / [GitHub-Flow](https://qiita.com/tatane616/items/aec00cdc1b659761cf88)
ブランチ戦略と呼ばれる，Gitをどう利用していくかを定めたものです。

ブランチとは，プロジェクトを分岐させることで複数人で平行して作業を行えるようにするGitの機能で，ブランチ戦略はこの分岐をどうやって分けるかを定めたものです。ブランチを`リリース用`，`バグ修正用`，`機能追加用`に分けるといった内容のことを指します。

細かく知りたい方は下記のサイトを参考にしてください。

https://backlog.com/ja/git-tutorial/stepup/01/


# [Sourcetree](https://www.sourcetreeapp.com)
Git，GitHubをより使いやすくしてくれるツールです。

前述したブランチの関係を分かり易く表示してくれる他，
コマンド入力をしなくてもある程度操作ができるようになります。

よく比較されるものに[GitHub Desktop](https://desktop.github.com)があります。
違いを軽くまとめると，下記のような形になります。

**Sourcetree**

- GitHub以外（AWS等）でも使用できる
- ブランチの流れが分かり易い

**GitHub Desktop**

- GitHub専用に作られているので，Sourcetreeよりも簡単に使うことができる
- ブランチの流れが掴みづらい

ブランチを使用することがない個人開発者や，まだバージョン管理を始めたばかりの人は**GitHub Desktop**を，少し慣れてきた人は**Sourcetree**を使用すると良いです。

ただ，開発を進めていると，どうしてもツールの機能だけでは解決できない問題が発生することがあります。そういった場合は，コマンドを使用しましょう。

https://qiita.com/muran001/items/dea2bbbaea1260098051

ツール内の何処かしらに必ずコマンドを入力できる場所が存在するので，頑張って探してください。


# [CircleCI](https://circleci.com/ja/product/)
GitHub、GitHub Enterprise、Bitbucketといったバージョン管理システムと連携して使用するサービスです。

クラウド上にコードがコミットされた際に自動的にテストを行い，問題が発生していた場合は直ぐに通知が届くので，開発終盤になってから問題が見つかるという最悪の展開を防ぐことができます。
また，この一連の流れを [CI](https://cloudbees.techmatrix.jp/devops/ci/) や [CD](https://cloudbees.techmatrix.jp/devops/cd/) と呼び，これらを導入することで開発に使う時間を大幅に減らすことができます。

CircleCIとよく比較されるものに[Jenkins](https://cloudbees.techmatrix.jp/jenkins/)というものがありますが，この２つの違いは大まかに分けて以下のような点です。

**CircleCI**

- ファイルの設定１つで運用ができるので，学習コストが低い
- 直ぐに開発に移ることができる
- クラウドサービスなので，ある程度利用すると追加でお金が掛かる

**Jenkins**

- ユーザー数が多い為，情報が得やすい
- 高い汎用性と拡張性を持ち合わせている
- 開発を行う際は１から環境構築を行わなくてはいけない為，学習コストが高い

より古くからあるのはJenkinsで，CircleCIは比較的新しめのサービスになっています。
しかし最近では，学習コストの低さと直ぐに開発に移れるということから，JenkinsからCircleCIへ多くのユーザーが移っています。

より詳細な部分を知りたいという方は，CircleCI公式が比較表を出しているので，下記のリンクを参照してください。

https://circleci.com/ja/migrate-jenkins-to-circleci/


# [Figma](https://www.figma.com)
UI/UXのデザインツールで，プロダクト開発をより簡単に進めることができるようになります。

何処がどう便利なのか，少しだけ紹介します。

- ブラウザで動き，動作が軽い
- 複数人でUIを共同開発・編集することができる
- 完成形だけではなく，細部に残したメモを含めて共有することができる
- コメント機能を利用し，簡単に意見を知ることができる
- 自動修正機能が優秀なので，作業に使う時間を大きく減らすことができる

上記はほんの一例ですが，本当に便利です。

更に詳しく知りたい人は，下記のサイトが最高に分かり易いです。

https://okojodesign.com/figmagoodpoint/1872/


# [Miro](https://miro.com)
会議やちょっとした意見交流を簡単に行うことができる便利なツールです。
実際に見た方がイメージが掴みやすいと思うので，以下画像です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/954115/52a8701e-88ea-ce4f-5aa9-c5e15bda28e9.png)
このようなホワイトボード上で複数人で図を作成したり，ペンを使って記述するなどの共同作業を行うことができます。
作業後は画像ファイルやPDFとして出力したり，Google Drive等の外部サイトに保存することも可能です。

また，デフォルトで幾つかのテンプレートも用意されており，様々な使い方をすることができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/954115/1a5dfea5-b30b-168c-b00d-88a8d26489c2.png)


# [JetBrains製品](https://www.jetbrains.com/ja-jp/products/#type=ide)
JetBrains社が提供している [IDE](https://e-words.jp/w/IDE.html) が非常に使いやすいです。
IDEとは，[Visual Studio](https://ja.wikipedia.org/wiki/Microsoft_Visual_Studio) や [Xcode](https://ja.wikipedia.org/wiki/Xcode) といった開発環境のことで，ソースコードの記述からビルド，デバッグ，バージョン管理までの様々な機能を同一の画面から操作することができるもののことを指します。

JetBrains製品の認知度は上記のものに比べればまだ低いですが，非常に高性能なIDEなので，GoogleやNetflix，Nasaといった世界的企業にも好んで利用されています。

というか一度使用すると他のエディタには戻れません（本当に）

以下，簡単に説明します。

- 足りない記述（名前空間の使用）があった場合に自動で補完してくれるので，ストレスなく開発を進めることができる
- パフォーマンスの悪い処理や冗長な記述があった場合に，より良い方法を自動で提案してくれる
- それぞれの言語やゲームエンジンに特化したIDEが提供されているので，VS Codeのように自分で環境を整えなくても良い

この他，チームでの命名規則の設定や細かなインデントの変更等，それぞれの好みにあった環境を自分で設定することができるので非常にオススメです。


# [Canva](https://www.canva.com)
素材・テンプレがめっちゃあって，超使いやすいPowerPointです。


# [Photon](https://www.photonengine.com/ja/PUN)
簡単にオンライン環境を作成することができるようになるサービスです。

通常ならサーバーへの負荷から開発が難航するリアルタイム通信でさえも，Photonを利用することでかなり短い時間で作成することができるようになります。

またクロスプラットフォームにも対応していて，東京にもサーバーがあるので軽くて速いです。


# [Vivox](https://unity.com/ja/products/vivox)
Unityが提供している音声およびテキスト通信機能で，『VALORANT』、『PUBG』、『League of Legends』、『Rainbow Six Siege』といった超有名ゲームにも導入されています。

また，Unityが提供しているシステムではありますが，ゲームエンジン問わず利用することができます。

同時接続5000人までは無料で使えるみたいなので，気軽に導入してみてください。


# [Spine](http://ja.esotericsoftware.com)
シンプルな操作方法で，Live2Dの開発時間を大幅に短縮することができるサービスです。

といってもここはエンジニア用の技術共有サイトなので，詳細が気になる方は下記のurlから公式ホームページで解説されている利点をご覧ください。

http://ja.esotericsoftware.com/spine-in-depth#Spineとは


# [Docker](https://www.docker.com)
全てのユーザーに共通するもの（アプリ，プログラム）と，それぞれ異なるもの（OS，インフラ）を分けて扱うことで，開発環境と実行環境の違いによる修正作業をなくすサービス。

これに関しては下記のサイトが本当に分かり易いです。

https://engineer-ninaritai.com/docker-commentary/#Docker


# [Game UI Database](https://www.gameuidatabase.com/index.php)
ゲームのUIが集められたサイトです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/954115/ead9dacd-8e9d-20f9-4ba0-a27a72086688.png)
タイトル画面からセーブロード画面，設定画面など，細かい部分まで掲載されているので，UI/UXデザイナーの方や個人開発者にはとても助かるサイトとなっています。


# [Codic](https://codic.jp/engine)
入力した言葉に合わせ，最適な変数名を提案してくれるサイトです。
チームで利用することもでき，提案された変数名を編集することもできるので，微妙な表記揺れを抑えることもできます。


# [ArtStation](https://www.artstation.com/?sort_by=community)
[Unreal Engine](https://www.unrealengine.com/ja/) や [Fortnite](https://www.epicgames.com/fortnite/ja/home) を開発している [Epic Games](https://www.epicgames.com/site/ja/home) さんが運営しているサイトです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/954115/56885f2d-ccff-0cc4-855e-f616d1b5598e.png)
基本的にはデザイナーさん向けのサイトとなっていますが，開発に使える素材を探しているという方や，デザイナーの情報に興味があるという方にもオススメのサイトとなっています。


# [Notion](https://www.notion.so)
クラウドメモと呼ばれるWeb上にデータの保存ができ，PC・スマホ関係なく情報を共有することができる便利なメモ帳です。

下記画像のように様々な機能が用意されており，またチームでの利用やマークダウン記法も使用可能な為，大変便利です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/954115/f16ffe2c-05e8-622c-8b34-8cd84af7843d.png)
それと最近日本語（Beta）に対応し，更に使いやすくなりました。