調べ物した結果

現役SEが仕事と直接関係ないことを調べた結果とか感想とか

TheGameをつくる①~下準備~

目次

TheGameってご存知?


年末は友人たちと集まってボードゲームをするんですが、
いつも持ち寄られたボードゲームを遊んでばかりだったので、
「今年は自分でも何か」ということでかったのがこちら。
https://www.amazon.co.jp/%E3%82%A2%E3%83%BC%E3%82%AF%E3%83%A9%E3%82%A4%E3%83%88-Arclight-GAME-%E3%82%AA%E3%83%90%E3%82%B1%E3%82%84%E3%81%97%E3%81%8D%E3%81%AE%E3%81%99%E3%81%86%E3%81%98%E3%81%AE%E3%82%A2%E3%82%AF%E3%83%9E/dp/B07P21F52C

リングフィットアドベンチャーを求めて近所のお店にいって見つけてついでに買った代物。
2~99をすべて場に出し切る単純なゲームではあるが、なかなかに難しかった。
リングフィットアドベンチャーはない。

それで。


ある程度、ルールに慣れてきても完全攻略(場に2~99を出し切る)の達成率が低く、
攻略法を探りたい。ので、つくってできるか知らんけどSageMakerなりにぶち込んで、
強化学習させたら面白いんじゃないのか?
ということでやってみることにした。

とりあえず下準備


やってみることにはしたけどまずはゲームを作るところからだなーということで、今回は 準備まで。
SageMaker使いたいだけなら、DeepRacerで十分だと思う。
が、この課題には目的があって
・SageMakerつかってみたい。
Pythonをもっと呼吸をするような感じで触れるようになりたい。
・Pytestつかってみたい。
・コンテナ環境のみで開発してみたい。
ということを満たすために、開発環境は
Docker For Windows。を使って、コンテナ上でごりって行くことにした。

Dockerfile

<p>
FROM python:3
USER root

#基本準備
RUN apt-get update
RUN apt-get install -y vim less
RUN pip install --upgrade pip
RUN pip install --upgrade setuptools

WORKDIR /root/src
# gitの準備(これ書いとくと便利)
RUN git config --global user.name -----------
RUN git config --global user.email -----------

#clone
RUN git clone https://github.com/yukiYamada/TheGame.git
WORKDIR /root/src/TheGame
RUN pip install -r requirements.txt

ENV LANG ja_JP.UTF-8
ENV LANGUAGE ja_JP:ja
ENV LC_ALL ja_JP.UTF-8

EXPOSE 8002
CMD ["bash"]

雑に書いたがこれでとりあえずPythonは動かせるし、自動でGitもCloneしてくれてるところからスタートできる。
</p>

Compose

version: '3'
services:
        thegame:
                restart: always
                build: .
                container_name: 'thegame'
                ports:
                        - "8002:8002"
                working_dir: '/root'
                tty: true

とりあえずこれだけあれば、
docker-compose build --no-cache
docker-compose up -d
docker-compose exec thegame bash

とコマンドをぶち込めばいつでもどこでも途中の環境に乗り込めるって感じだ。

gitリポジトリ


github.com

勉強もかねてCodePipelineとか、AWSCommitを使ってみるのもよさそうだったが。
Git Actionもまだちゃんと使えてないので今回はGitにすることにした。あとわからないことが多すぎて、
作業が進まずとん挫するのを避けたかった。順番にゆっくりやらないとね。

今回の反省点


・この辺を整備するだけで1時間以上かかってしまった。もっとコンテナとDockerと仲良しにならないと(はまると時間がすごくかかる)
・Dockerのタイポがおおすぎ&発見が遅れる。どうにかしないと。VSCodeによさげなプラグインがないか探してみたほうがよさそう。
・GitActionに組み込むとこまでいけなかった。
Pythonディレクトリ周りの解釈が怪しい。