ゲームデザイン
================
ゲームデザインを自宅にて学習する場合は、将来のことを含めて
プログラミング環境を自己 PC に構築することが望ましい。

必要になるものは以下の3点。
* Git  
  リモートリポジトリ(サーバ上に自分の作品を履歴ごと格納する)管理ツール
* テキストエディタ(Emacs, VS Code, vim)  
  プログラムの入力に必要
* 言語処理系(Ruby)  
  プログラム実行に必要

なお、ネット接続が良好なら [VPN+VNC接続](vpn-vnc.md)
して大学環境をそのまま利用するのも手であり、その場合以下は不要である。

以下は、自分PCに環境構築する説明である。

Gitの導入
---------
* Linuxの場合  
  おそらく既に入っている。
* Windowsの場合  
  [【初心者向け】Gitのインストール方法をわかり易く解説(画面付き)](https://eng-entrance.com/git-install)
* macOSの場合  
  [Gitのインストール〜GitをMacにインストールしよう〜](https://tracpath.com/bootcamp/git-install-to-mac.html)

ターミナル(あるいはWindowsコマンドシェル)で
````
    git --version
````

と叩いてバージョンが番号が出てくれば完了。

テキストエディタの導入
----------------------

|エディタ	|特徴
|---------------|-------------
|GNU Emacs	|情報リテラシーで使ったのと同じ。導入やや難。
|VS Code	|導入簡単。Emacs互換モードにすると教室とほぼ同じ感じになる。

### GNU Emacsの場合
参考サイト:
[Emacsを使えるようにするための最低限のこと](https://qiita.com/lis_t_s/items/3735838ba21af8052041)

↑リンク先は26.1が最新だが、2020/4現在の最新は26.3である。
LinuxMintは「Debian系OS」の所の説明に従う。
その後、日本語入力の設定をする。ターミナルを起動しコマンドラインで
emacs-mozc をインストールする。

````
$ sudo add-apt-repository ppa:kelleyk/emacs
$ sudo apt update
$ sudo apt install -y emacs26
$ sudo update-alternatives --config emacs
    # ↑ここで emacs26 の番号を選ぶ
$ sudo apt install -y emacs-mozc
$ touch ~/.emacs
$ cat <<EOF >> ~/.emacs
;;; mozc
(require 'mozc)
;; mozc
(set-language-environment "Japanese")
(setq default-input-method "japanese-mozc")
(prefer-coding-system 'utf-8)
EOF
````


### VS Codeの場合
参考: 三浦先生の
[テキストエディタ(VisualStudio Code)の導入](https://koeki.negix.org/rubyenv/vscode.html)
のあと、拡張機能の設定で以下の3つを入れるとよい。

|拡張機能名		|概要
|-----------------------|-----------------
|Awesome Emacs Keymap	|Emacsと同じ操作にする(お好みで)。
|Code Runner		|エディタ内でRubyプログラムを実行できる。
|VSCode Ruby		|Rubyの文法に応じた編集を補佐してくれる。

### Ruby言語処理系の導入
#### Ruby本体
[RubyInstaller Downloadページ](https://rubyinstaller.org/downloads/)
などから
Ruby+Devkit 2.6.x の最新版(x64)を入れて実行する(2.7系
はまだライブラリが揃っていないのでこの講義用のプログラムが作れない)。
インストール完了後、コマンドプロンプトで

	ruby -v

と打ってバージョン番号が出てくれば完了である。

#### ライブラリの導入
本講では curses と tk の各ライブラリを利用する。

* Linux  
````
  sudo apt install -y ruby-dev libncurses-dev
  sudo gem install curses
  # ↑ここまでできればOK ↓ はチャレンジ
  sudo apt install -y tk-dev
  sudo gem install tk -- --with-tcltkversion=8.6 \
  --with-tcl-lib=/usr/lib/x86_64-linux-gnu \
  --with-tk-lib=/usr/lib/x86_64-linux-gnu \
  --with-tcl-include=/usr/include/tcl8.6 \
  --with-tk-include=/usr/include/tcl8.6 \
  --enable-pthread
````
* Windows (Ruby2.6まで)
````
  gem install tk curses
````

参考: https://qiita.com/kojix2/items/e33592024b8029dd13bc

## Gitサーバを核としたワークフロー
Gitリポジトリを利用したプログラム開発を進めて行く。
目の前の端末(PC)に置くファイルは「作業用コピー」であると考える。

![workflow](img/repotree.png)

1. Gitサーバからpull
2. 作成・編集・実行・デバッグを繰り返し一区切りごとに git commit
3. 一息ついたところでサーバにpush

