C#でゲームをつくろう
第捌回 06/11
担当: suzusime
自己紹介
 京都大学理学部理学科二回生
 ID: suzusime(すずしめ)
 物理学徒
 解析学I中間テスト爆死しました。
今回の内容
 Git入門!
 ついでにLinux系コマンドの基本的な使い方をやります。
 ついでにネットワークの仕組みをさらっとみてみます。
 その他やり残した(話したい)ことをやります。
 今回で講義フェイズは終わりかなー、と。
Gitとはなんぞや
 バージョン管理システムのひとつ。
 なかでも「分散型」に分類されるもの。
 かなり広く使われている。
 Githubとは違う。
バージョン管理システムとは
 「歴史」を管理するもの。
バージョン管理システムとは
 これだと、どこが変わったのかすぐには分からない。
 誰がどういう目的で変更したのかという情報もない。
 つらい
 もうちょっとちゃんと管理したい。
 目録を作ろう。
バージョン管理システムとは
 「リポジトリ」(貯蔵庫)と呼ばれる目録に、誰がいつ
どのように変更したのかという情報を適宜書き込んでい
く。
 そうしたらあとで流れが追いやすい。
 昔の状態に戻すこともすぐにできる。
 便利。
分散型バージョン管理システムとは
 複数人で開発するときに、リポジトリをどうするかが問
題。
 分散型では、一人一人が手許にリポジトリを持っている。
 何か変更した時には、一度手許のリポジトリに登録した
後、それを全体のリポジトリに反映させる。
 これによって変更の衝突の管理がしやすくなる。
Githubとは
 Gitのリポジトリを置くことの出来るサーバーと、Gitと
連携して使える様々な便利機能を提供するWebサービス。
 Issueを投げて改善希望をだしたり、PullRequestをだして
自分の変更を全体に反映してくれとお願いしたり。
 開発用に特化した掲示板がリポジトリ毎に使えるように
なっているイメージ。一種のSNSでもある。
Githubは死んだんだ
 ですが今回はGithubの使い方については触れません。
 Git本来の概念に加えて様々なGithub特有の概念があって
難儀なので。
 Githubがいつまでもつかも分からない。
 この講座では普遍性のある知識習得を目指しています!
黒い画面はこわくない
 GUIで使えるGitも存在する(実はVisual Studioにも組み込
まれている)のですが、CUI(黒い画面)のGitでやろう
と思います。
 Gitはunix界隈初のソフトなので、GUIはあくまでCUIを
包んだだけという節がある。
 黒い画面もこわくはないです。
 折角なのでこの機に慣れましょう。
Gitの練習(ローカル編)
 覚えるべきは次の4つ!
 $ git status
 $ git add test.txt
 $ git commit –m “最初のコミット”
 $ git log
 あとは必要になったときに適宜調べる。
Linuxの基本
 とりあえず次の5つ
 $ ls
 $ cd “フォルダ名”
 $ less test.txt
 $ cp test.txt test2.txt
 $ vim test.txt
Vimの基本
 i 挿入モードに移行
 Esc 標準モードに移行
 :w 上書き保存
 :q 終了
 :q! 変更を破棄して終了
ネットワークの話
 $ ssh user@kmc.gr.jp
 $ ssh ringo
 下は部室の中からだけ繫がる
IPアドレス
 インターネット上の住所
 $ ssh user@192.168.220.34
 (これも部室の中からだけ)
DNS
 IPアドレスの直打ちは一般人には難しいので、適当に名
前を指定すると繫がるようにしたいです。
 そのために使う辞書のようなものがDNSです。
 さっきのringo→192.168.220.34は部室の中からだけみえる
DNSにはいっています。なので外から $ ssh ringoとして
も動かないのです。
ポート
 ネットワーク上のコンピュータは通信するための出入り
口のようなものをもっています。
 例:HTTPは80番ポート、sshは22番ポート
サーバーをたてる
 要はポートに来る信号を待ち受けて処理するプログラム
を書けばそれがサーバーになります。
 サーバーをたてるだけならとても簡単。
 持っているそのPCで今すぐやることもできるのです。
 サーバーもこわくない、ということだけ覚えておいてほ
しいかな、と。
スクリプトを読み込む
 弾幕の弾の定義とか、ストーリーのテキストとか、そう
いうものをソースコードに書くと毎回コンパイルしない
と行けなくて面倒です。
 外部のファイルに書いておいてそれを読み込めるように
すると良い(良さそう)。
スクリプトをどう考えるか
 CSVファイルとかそういうのに書くのが楽そうですね。
 自分で言語仕様を決めて適当にパーサを書いて読み込む
のもあり。
 Luaとかそういう既存の組み込み用言語を組み込むのも
あり。
 CSharpCodeProviderとかいうのも存在します。
外部ファイルの読み込み
 System.IO.StreamReader
 System.IO.StreamWriter
 あたりを使う。
 あとはConsole.ReadLine()したときを思い出そう。
その他
 だいたいこれで私の話せることは全部話したかな?
 何か聞きたいことがあったら聞いて下さい。
 適宜誰かに投げます。
次回からの進め方
 もうそろそろ課題(?)のゲームを作ってほしいという
ところです。
 後期の最初に発表会をしてこのプロジェクトは終わりに
したいと思います。
 それまではここにきて開発する、というので良いかなと。
 前期の最後に中間報告会をやります。
小課題
 というだけだと途方に暮れてしまうかも知れないので、
小課題を出します。
 次回(2週間後)までにシューティングゲームを作って
きてください!!!!
 素材とかそういうリソースの面は適当で良いです。
 とりあえず、「ちゃんと遊べる」ものを作ってきて下さ
い。
小課題
 がんばれ♡ がんばれ♡
次回予告
 次回は6月25日です。
 小課題頑張ってください。
――以上
 お疲れ様でした。

C#でゲームを作る2016 第8回