Siv3D Game Jamに参加してVisual Studioで作品を作ってGitHubで公開しましょう

# Siv3Dとは

[Siv3D](http://play-siv3d.hateblo.jp/)は、C++でゲームやメディアアートを作成することができるライブラリです。これまでWindowsプラットフォームでゲームを作成されてきた方なら、DXライブラリのような、と言えば分かりやすいでしょうか（だいぶ大雑把ですが…）。

Siv3Dはライブラリ自体がC++11/14に準拠した形で書かれているため、利用する側も新しいC++を学ぶことができ、そのおかげで自然とソースコードが綺麗になり（願望）、またライブラリの開発も現在活発に行われているため、個人的に注目しています。

# Siv3D Game Jamとは

詳しくは[公式サイト](http://siv3d-gamejam.hatenablog.com/entry/start)をご覧ください。
http://siv3d-gamejam.hatenablog.com/entry/start

決められた期間内で、決められたお題に沿って、Siv3Dでゲームやプログラムを作るイベントが不定期的に行われています。月1～2回程度でしょうか。

期間は長くて1週間あり、参加表明も特に必要なく、誰でも参加できる、ゆるめのイベントです（こういうの好き）。

ゲーム作りたい！と思っていても、なかなか題材が決まらなかったり、ダラダラしちゃったりして滞ったりすることが結構あると思うんですが、こうやって期間とお題が与えられると、熱意を持って作品を作れるのでとても良いと思います。

# Visual Studio + Siv3D

私は[Visual Studio Community 2015](https://www.visualstudio.com/ja-jp/products/visual-studio-community-vs.aspx)を使っています（無料です）。

Siv3Dをダウンロード＆インストールすると、Visual Studioの新規プロジェクトの画面からすぐにSiv3Dプログラムを作成し始めることができるようになります。
![vs_siv3d_template.png](https://qiita-image-store.s3.amazonaws.com/0/35599/e298e5e2-d926-165e-942b-d5ca2bc51601.png)

# Gitとは

[割愛します](https://www.google.co.jp/search?q=git&hl=ja)

# GitHub

まずは[GitHub](https://github.com/)にアカウントを作りましょう。

作品はここで公開します。Visual Studioの拡張機能（GitHub Extension）を使うと、簡単にできます。

# Visual Studio + GitHub Extension

GitHub Extensionをインストールします。
![githubextension.png](https://qiita-image-store.s3.amazonaws.com/0/35599/4a142abe-89c3-9156-fdf5-1cb6932dc59c.png)


チームエクスプローラ＞GitHub＞"Connect"をクリックし、GitHubにログインします。


![login.png](https://qiita-image-store.s3.amazonaws.com/0/35599/3a8c6da9-4b86-0309-c6b8-eff75a70a810.png)

"Create"をクリックし、新しいリポジトリを作ります。
GitHub上と、ローカル（Local pathの場所）にもリポジトリが作られます。
![vsgithubextnewrepo.png](https://qiita-image-store.s3.amazonaws.com/0/35599/62cc90de-c68a-9c85-e762-6342842694ae.png)

上記で作成したローカルリポジトリのフォルダに、公開したいソースコードなどのファイルをコピーします。
（コピー元のファイルを開いている場合はすべて閉じて、コピーした先のファイルを開き直すといいです）

ファイルをコピーしたら、チームエクスプローラ＞ホーム＞変更 をクリック。先ほどコピーしたファイルが「追跡対象でないファイル」になっていると思うので、「すべて追加」します（Engineフォルダは除外したほうがいいかも）。

コミットメッセージ（「～～のファイルを追加した」とか「～～を修正した」とかそういうやつ）を書いて、コミットボタンを押すと、ローカルリポジトリに書き込まれます。
![commit.png](https://qiita-image-store.s3.amazonaws.com/0/35599/62ce51ec-7ebf-ff4c-4ba8-5563e26d34b4.png)

このローカルリポジトリをGitHub上に反映するには、「同期」します。
チームエクスプローラ＞ホーム＞同期＞プッシュ
![push.png](https://qiita-image-store.s3.amazonaws.com/0/35599/ced26057-7ad0-9fd9-fcb1-06c837cedcc3.png)

GitHubのウェブサイトに行ってログインすると、作ったリポジトリが見えると思います。

こんな感じで、ファイルを追加・修正したら「ローカルリポジトリへのコミット」、公開する準備ができたら「同期（プッシュ）」を繰り返していきます。

# README.mdを書く

リポジトリにREADME.mdファイルを置くと、GitHubのリポジトリのページにその内容が表示されるので、プログラムの説明とかを書いておきます。

Markdown形式のファイルを編集するときは、[Sublime Text](https://www.sublimetext.com/) + OmniMarkupPreviewerでプレビュー（Ctrl-Alt-Oでプレビュー開始）しながら書くのが良い感じです。

# .exeファイルの頒布

作ったゲームの実行ファイル（.exeファイル）を頒布する際は、使用する画像ファイルやEngineフォルダをまとめてzip形式等で圧縮し、GitHubのReleasesの所にアップロードし、そのURLをREADME.mdに書くのがいいと思います。

zipファイルに何を含めるかについては、公式のリファレンスに指針があります。
[アプリケーションの公開 · Siv3D/Reference-JP Wiki](https://github.com/Siv3D/Reference-JP/wiki/%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E5%85%AC%E9%96%8B)

# その他

* Visual Studio Communityインストール時にGitを入れなければいけない？
* ビルド時間短縮のためにプリコンパイル済みヘッダー使用＋必ずインクルード：stdafx.h の設定がおすすめ
* ファイルがMain.cppひとつの場合は[GitHub Gist](https://gist.github.com/)の方がお手軽でいいかも
* まとまりがなくてすみません