読者です 読者をやめる 読者になる 読者になる

naichi's lab

3日後の自分(他人)への書き置き

【Unity、TextMeshPro】簡単な使い方+日本語フォントアセットを作るときの設定値メモ

f:id:naichilab:20170301225136p:plain

ストアはこちら -> TextMeshPro

TextMeshProが無料になったらしい。

すごいですね。

自分はだいぶ前のセールに買ってからずっと使ってます。

日本語フォント作るときの設定値をメモしておきます。

Font Asset Creater

TextMeshPro付属のアセット作成ツール

Window -> TextMeshPro - Font Asset Creater

f:id:naichilab:20170301225453p:plain

ひらがなだけとか、使う文字が決まってる場合

key value
Font Source <フォントファイルを選択>
Font Size Custom Size - 48
Font Padding 5
Packing Method Fast
Atlas Resolution 1024 * 1024
Character Set Custom Characters
Custom Character List 下記参照
Font Style Normal - 2
Font Render Mode Distance Field 16
Get Kerning Pairs? false
0123456789
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
あいうえおかきくけこ
さしすせそたちつてと
なにぬねのはひふへほ
まみむめもやゆよ
らりるれろわをん
がぎぐげござじずぜぞ
だぢづでど
ばびぶべぼぱぴぷぺぽ
ぁぃぅぇぉっゃゅょゔ
アイウエオカキクケコ
サシスセソタチツテト
ナニヌネノハヒフヘホ
マミムメモヤユヨ
ラリルレロワヲン
ガギグゲゴザジズゼゾ
ダヂヅデド
バビブベボパピプペポ
ァィゥェォッャュョヴ
、。!?ー…「」『』×
( ) +-%.'・/:;

こんな感じ

f:id:naichilab:20170301224910p:plain:w480

あとは Generate Font Atlas -> Save TextMeshPro Font Asset で保存するだけ。

文字数によってはフォントサイズを小さくしないとダメかもですね。

使い方

UGUIなら -> Create -> UI -> TextMeshPro - Text

f:id:naichilab:20170301225543p:plain

3Dなら -> Create -> 3D Object -> TextMeshPro - Text

f:id:naichilab:20170301225813p:plain

あとはまぁさっき作ったフォントアセット選んでテキスト入力してって感じ。

f:id:naichilab:20170301230144p:plain

日本語全部は?

漢字含めた日本語全部、とかは作ったことないです。 必要になったら調べます。

【読んだ】UnityではじめるC# 基礎編

読んだ本の感想メモ。

読んだ本

UnityではじめるC# 基礎編

UnityではじめるC# 基礎編

なぜ読んだ?

Twitterで分かりやすいと評判っぽかったので一度読んでみたいと思ってた。
全くの素人にプログラミング教えたりすることがたまにあるので、
教え方の参考になるような箇所があればいいなーという思いもあった。

さらにたまたまAmazonの技術書セールで半額になってたので購入。

どんな本?

表紙に 知識ゼロでも大丈夫!! と書いてある通り、非常に分かりやすい。
非常に丁寧な説明と共に豊富なスクリーンショットが載っており、
誰でもゲームを完成させられる作りになっている。

この本で作成するゲームは下記2本。

  • 脱出ゲーム
  • 物理パズルゲーム

冒頭はC#の基本から、Unityの基本的なお作法とか。
脱出ゲームではタッチ判定とそれを受け取る処理、配列を使ってまとめる方法など。
物理パズルゲームでは2Dの物理処理と当たり判定とかに触れてた。
ゲーム自体はシンプルなものだけど、うまくUnityの機能を説明してるなーと感じた。

さらに最後にはXCodeでのビルド方法や、
GooglePlay/AppStoreへの公開方法まで書かれてるサービスっぷり。

とりあえず真似ればゲームができてスマホで動く、さらにストアにも公開できる。 これ1冊でばっちりスマホアプリ開発者を名乗れますね・・・ 初めてUnityを触る人にはとてもいい教材なんじゃないかな?

挿絵で 余裕があったらこういう改造してみよう! みたいに和尚が微笑んでる
とりあえずこれをベースに一本だしてみいって言われてるようだ・・・

おすすめできる?

こんな人におすすめ

  • スマホゲーム作ってみたいけど何から手をつけていいかわからない人
  • Unity触れるようになりたいデザイナーの人

こんな人にはオススメできない

  • 中級者以上(とっても易しいので)

まとめ

Unityの知識として知らなかった点は1つもなかったけど、
初心者への教え方とか、分かりやすい書き方とかの参考にはなった。
挿絵もたっぷりで誤植も見つからなかったし結構いい本だと思いました。

UnityではじめるC# 基礎編

UnityではじめるC# 基礎編

【zsh、percol】percolで履歴検索、cd履歴ジャンプとか

久々にターミナル触ったらほとんど忘れてたのでリハビリ

iTerm+zsh入れてたんだけどあんまり使いこなせてないし、 これを機に気になってたoh-my-zshっての入れてみることにした。

さらに調べてる途中で見つけたpercolってのも入れてみた。

環境

  • 2017/02/28
  • Mac OS X El Capitan 10.11.6

oh-my-zsh

git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc

インストールはこれだけ。

~/.zshrc のZSH_THEMEは wedisagree にした。

path が消えたので ~/.zshrc に下記を追加した。

export PATH=/bin:/usr/bin:/usr/local/bin:${PATH}
eval "$(rbenv init -)"

percol

sudo pip install percol してみたがエラー。

ぐぐったら easy_install pip すると直るよと書いてあったので試す。

入った

f:id:naichilab:20170228005320p:plain

percolでコマンド履歴検索

percolを使ってターミナル操作を早く、便利に。 - すぎゃーんメモ

上記の通りなんだけど、~/.zshrc に下記を追加した

# ctrl+Rで履歴検索
# http://memo.sugyan.com/entry/20140611/1402487717
function percol_select_history() {
    local tac
    if which tac > /dev/null; then
        tac="tac"
    else
        tac="tail -r"
    fi
    BUFFER=$(fc -l -n 1 | eval $tac | percol --query "$LBUFFER")
    CURSOR=$#BUFFER             # move cursor
    zle -R -c                   # refresh
}
zle -N percol_select_history
bindkey '^R' percol_select_history

はてなの引用貼り付けしたらフォーマット死んだのでコピペしました。すいません。

ctrl+r 押すだけでコマンド履歴がpercolで表示される。

f:id:naichilab:20170228005455p:plain

そのまま単語入れればAND検索で絞り込める。 さらにEnter押せばプロンプトに入力されるのでそのまま再実行できる。

なんて便利なんだ・・・

percolでcd履歴ジャンプ

percol で z / autojump のようにディレクトリ高速ジャンプ - Slip Ahead Logging

またまた上記の通りなんだけど、~/.zshrc に下記を追加した

# percolで履歴ジャンプ
# http://stillpedant.hatenablog.com/entry/percol-cd-history
# {{{
# cd 履歴を記録
typeset -U chpwd_functions
CD_HISTORY_FILE=${HOME}/.cd_history_file # cd 履歴の記録先ファイル
function chpwd_record_history() {
    echo $PWD >> ${CD_HISTORY_FILE}
}
chpwd_functions=($chpwd_functions chpwd_record_history)

# percol を使って cd 履歴の中からディレクトリを選択
# 過去の訪問回数が多いほど選択候補の上に来る
function percol_get_destination_from_history() {
    sort ${CD_HISTORY_FILE} | uniq -c | sort -r | \
        sed -e 's/^[ ]*[0-9]*[ ]*//' | \
        sed -e s"/^${HOME//\//\\/}/~/" | \
        percol | xargs echo
}

# percol を使って cd 履歴の中からディレクトリを選択し cd するウィジェット
function percol_cd_history() {
    local destination=$(percol_get_destination_from_history)
    [ -n $destination ] && cd ${destination/#\~/${HOME}}
    zle reset-prompt
}
zle -N percol_cd_history

# percol を使って cd 履歴の中からディレクトリを選択し,現在のカーソル位置に挿入するウィジェット
function percol_insert_history() {
    local destination=$(percol_get_destination_from_history)
    if [ $? -eq 0 ]; then
        local new_left="${LBUFFER} ${destination} "
        BUFFER=${new_left}${RBUFFER}
        CURSOR=${#new_left}
    fi
    zle reset-prompt
}
zle -N percol_insert_history
# }}}

# C-x ; でディレクトリに cd
# C-x i でディレクトリを挿入
bindkey '^x;' percol_cd_history
bindkey '^xi' percol_insert_history

こちらもはてなの引用貼り付けしたらフォーマット死んだのでコピペしました。すいません。

引用元の最後の2行はエラーしたので消した。

ctrl + x -> ; でcd履歴からジャンプ
ctrl + x -> i で履歴パスをプロンプトに貼り付け

もちろんpercolなので履歴を自由に絞り込める

これも超便利

まとめ

フォルダ移動する際に cd ~/hogehoge みたいなのを記憶を頼りに打ってたから超楽になった・・・

どっかに 世界変わるわ って書かれてたけどこれは本当に変わるわ・・・

ありがとうありがとう

【参加してきた】雲勉:大阪【勉強会:開発者向け】サーバーレスで作るモバイルアプリバックエンド #kumoben

kumoben.doorkeeper.jp

参加してきました。

会社紹介

おきまりの宣伝

  • アイレット株式会社
    • 2003〜
    • 従業員162名ちょい
    • システム開発、ゲーム開発、保守、マネージドホスティング
  • cloudpack大阪
    • 構築
    • MSP運用
    • MSP開発
  • cloudpack
    • デザイン
    • 設計・コンサル
    • システム開発
    • MSP
  • 7年間AWSのみで運用
    • 600社1200プロジェクト超
  • APNプログラム
    • Amazonパートナープログラムの
    • プレミアパートナーに5年連続選ばれている
    • アジアで7社だけ
  • 請求代行サービス
  • AWSよりも安い
  • 大阪の話
    • RoBoHon オートヒーリングシステム
      • 改ざん自動修復
    • スタバのサーバーレス案件
    • 毎日放送 動画イズム444
      • フルサーバーレスで実現
      • 3ヶ月でデザインからリリースまで
    • 近畿大学AWS移行
    • MSP事業支援開発
      • kibana
  • サーバーレス開発チームの取り組み
    • MaaS(仮) & ServerlessPack
  • KDDIの子会社になりました。 2017/01/25
  • 募集
    • 開発・インフラ・UI/UXエンジニア

雲勉について

  • cloudpackの社内勉強会を外に公開
  • 基本的に資料公開はしない
  • 今回は中級者向け
  • #kumoben

サーバレスで作るモバイルアプリバックエンド

やっとはじまり

自己紹介

  • すみさきさん
  • Webアプリケーションエンジニア
  • 2016/09~cloudpackにjoin

サーバレスってなに

サーバ「レス」

  • サーバが存在しない
    • サーバはあります
  • サーバの存在を意識しなくていい
    • 自動スケーリング
  • ハードウェア、OS、ミドルウェアに依存しない
    • コードが動くことが大事
  • ステートレス
    • リクエストごとにプロセスを使い捨てる
  • 使いたい「機能」にフォーカスを当てる
    • FaaS (Function as a Service)

どっかの偉い人 0.5秒実行するインスタンスを20mm秒以下で効率的に起動できるならサーバレス

メリット

  • リソースを時間単位で確保
    • 運用費用を削減できる
  • インフラが存在しないため構築の手間を削減
    • 初期費用も削減できる

デメリット

  • それぞれが独立・非同期
    • 原子性を確保することが難しい
  • SLAが保障されていないものが多い
    • 障害発生時のリカバリー手順が必要
  • 構築から運用まで一貫して考える必要あり

実案件で使おうとするとここらへんが難しい

構成例

f:id:naichilab:20170208195803j:plain

AWSにおけるサーバレスサービス

いくつかある。

f:id:naichilab:20170208195602j:plain

AWS Lambda

  • AWSのサーバレスといえばこれ
  • Java8、Node.js、Phthon2.7、C#で記述可能
    • java 初回が重たい
      • CPUがっつり使う処理には有効
    • Node.js
      • 色々めんどくさい
    • Phthon
      • コンソールでかけるのでよい
    • C#
      • まだあまり試してない
  • たいていの処理はなんとかしてくれる
  • 初期の同時実行数は100に制限(アカウント単位!
    • 過度な依存は禁物
    • AWSに相談すれば少しあげることはできる・・・
  • 最大処理可能時間は5分

Amazon API Gateway

  • RESTfulなAPIを構築できるサービス
  • 他のサービスのプロキシをしたり、APII/Fになったり
  • Webサービスのスロットリングにも使える
    • スロットリング:際限なくアクセスされることを防ぐ
  • Lambdaと仲良し
  • 30秒でタイムアウトする

Amazon DynamoDB

  • 高速で柔軟なNoSQLデータベース
  • 事前に設定したスループット要件に合わせて自動的にスケーリング
  • オンラインゲームのバックエンドに使われたりする
  • スループット要件に対して課金される
    • 利用料金が青天井
    • 例)秒間1万件データ取得したい
      • -> 秒間1万件以上に設定すると、その金額がずっとかかる
  • 1日2回しかスループット要件変えられない。

Amazon S3 (Simple Storage Service)

  • シンプルで耐久性がありスケーラブルなオブジェクトストレージ
  • 99.999999999%の耐久性
  • 99.99%の可用性
  • 静的ウェブサイトホスティングという機能があり、コレ1つでWebサイトを作ることも可能
  • 仕組み上高速ではない
    • 同じオブジェクトを読み書きする際には注意が必要
  • 親戚
    • グレイシア(長期保存用)

Amazon Cognito

  • ユーザーのサインアップとサインインの機能を追加できる
  • ソーシャルIDや自前のIDシステムによる認証もできる
  • 認証したユーザーにIAMロールを割り当てる使い方など
  • 中身は3つぐらいに分かれている
    • Cognito UserPool
    • Cognito Identity
    • Cognito Sync
      • スマホ間同期とか
  • 認証用メールがAmazon SESを通じて発行される
    • キャリアメールが関わる場合は工夫が必要
      • キャリア側の迷惑メールフィルタに引っかかる
    • 動画IZMではSendGridを利用

番外編

Amazon CloudFront

  • CDNサービス
  • コンテンツを世界に配信できる
  • S3やAPIGatewayの前段に挟むことで痒いところに手が届く
    • S3へのアクセスを減らせる
    • S3は404以外のエラーはサポートしていない
    • APIGatewayの前段でAppFirewallの機能を担う

Amazon Route 53

  • 可用性・拡張性に優れたDNSサービス
  • S3の静的ホスティング、APIGateway、CloudFrontを独自ドメインで使いたい場合に

他にも

  • Amazon SNS
    • プッシュ通知
  • Amazon SES
    • Email配信
  • Amazon SQS
    • メッセージキューイング
    • 溜め込んでLambdaで取り込んで処理とか。

実際にモバイルバックエンドをサーバレスで考えてみる

簡単な構築パターンを考えてみる

アプリから送ったデータを保存したい

  • 構成例
    • API Gateway -> Lambda -> S3 or DynamoDB
  • f:id:naichilab:20170208203148j:plain

  • Lambdaを直接たたくためにはIAMが必要

  • APIGatewayを挟むと抽象化できる

写真をとったらサムネイルを作りたい

  • 構成例
    • API Gateway -> Lambda(保存) -> S3 -> Lambda(加工) -> S3
      • たまにLambdaの処理が抜ける
  • f:id:naichilab:20170208203229j:plain

  • 構成例2

    • API Gateway -> Lambda(保存) -> S3 / SQS -> (Timer起動)Lambda(加工)
      • SQSを挟むことで確実性を上げる
  • f:id:naichilab:20170208203252j:plain

許可した人にだけAPIを公開したい

  • 構成例
    • Amazon Cognito
      • 認証トークンを発行
    • API Gateway -> Lambda -> …
  • f:id:naichilab:20170208203333j:plain

デモ

  • API Gateway -> Lambda -> Lambda -> S3
  • Unity -> Lambda <- S3
  • f:id:naichilab:20170208203455j:plain

Unity用SDKもあっていくつかの機能は直接呼べる

  • API Gateway
    • AJAXで呼ぶならCORS設定が必要

ホワイトペーパー

cloudpackサーバーレス開発ホワイトペーパーとして公開している

cloudpack.jp

質疑

サーバーレスのログ追跡どうやってるの?

  • CloudWatchは大変
  • 答えはあるがまだ発表できない
    • 2月末ぐらいに発表できる

次回予告

  • 2月開催
    • AWS Storage Gateway
  • 3月
    • 3/1 ホワイトペーパーの説明
    • 3/8 AWS Code Deploy
    • 3/29 クラウド基礎

感想

まだほとんど使えてないけど雰囲気つかめてよかった。 簡単に試せそうやし触ってみよう。

GGJ2017 精華町 けいはんなプラザ会場に参加してきました

f:id:naichilab:20170123021716j:plain

タイトルの通り、GGJ2017に参加してきました。

記憶が新しいうちに感じたこととかをメモ。

GGJ(Global Game Jam)は一言で言うと全世界同時開催のゲームジャム。 知らない人たちが互いに集まって即興でチームを作り、48時間でゲームを作ります。

29時間で作ったゲーム紹介

心電図パニック

f:id:naichilab:20170122211625p:plain:w320f:id:naichilab:20170122211656p:plain:w320

心電図パニック Electrocardiogram panic | Global Game Jam®

Mac版は上記サイトからダウンロードできます。

  • 夜間病棟に勤務する医者となって次々運び込まれる急患をひたすら助けるゲーム。
  • すごい勢いでやってくる患者
  • 放っておくとすぐに心臓が止まるので助けてあげよう
  • オンラインランキング対応

これをプログラマ2人、デザイナ3人の5人で作りました。

土曜日の10時にチーム分けされて、翌日15時に完成なので29時間ですね。 いやー楽しかった。

覚えてることメモメモ

21日 07:00〜

9時半集合だけど7時に出発しないと間に合わない。 京都駅から直通バスがあるって見つけたからタクシーでバス停まで行ったら土日は運行してないとのこと。 マジかよ、調べ直して近鉄で行けることを発見。

近鉄で揺られること40分ぐらい。さらにバスで15分ぐらい。

途中にかなりでかい工場やオフィス、国会図書館とか見かけた。 学研都市って何かわかんないけどなんだかワクワクする感じ。

でもやっぱ遠いぞけいはんなプラザ。

21日 09:00〜

会場になんとか到着。

f:id:naichilab:20170123010638j:plain:w320
とんがってるのは世界一巨大な日時計らしい。
夜はレーザー光線が出る。 なんでや。

ホテルや貸会議室がくっついたような行政施設?かな。

ロビーで待っていると プログラマのみ 先に部屋に通される。

何事かと思ったら、かなりプログラマが不足しているらしく、チーム分けの作戦会議がしたかったらしい。

6人(ぐらい)中、ゲーム作ったことある人が3人いたので3チームに別れることに決定。

そのままチームリーダーに任命されてしまった。ABCチームのうち、Bチーム。

21日 09:30〜

他の参加者も部屋に通される。 どうもチーム分けは事前にされていたようで?運営の人が名前呼びながらテキパキとチームを振り分けていく。すげー手際いい。

あっという間に自分のいた机に5人が座った。

自分を含めて男性3人、女性2人
プログラマの人を除き全員Mac、学生は学校で全員購入するそうな。さすがデザイン系。

全体的に学生は多く、特に精華大学の学生だけで9人ぐらい(全員デザイナ)いた。

そのあと運営の方から自己紹介や開催の経緯説明、精華町町役場の方から精華町の紹介などがありました。

f:id:naichilab:20170123011005j:plain:w320
精華町のイメージキャラクター 京町セイカちゃん
めっちゃおしてますね
https://twitter.com/kyomachi_seika

21日 09:45〜

GGJお約束のお題発表。ビデオを見る。GoldスポンサーのUnityの宣伝がふんだんに入ってた。

お題は WAVES 。波。

21日 10:00〜

ここからは各チームごと、チームリーダーに一任された。

とりあえず自己紹介はじめる。

  • 自分はプログラマで趣味でUnity使ってることを説明。あと 太陽人間の宣伝。
  • 他にプログラマが一人。SEやっててゲーム開発は趣味とのこと。
  • あとは学生が3人。全員同じ学科(キャラクターデザイン化)で2回生と3回生。
    • イラスト見せてもらった。うますぎ。

21日 10:30〜

付箋を使いながらブレスト。2~30枚が出たかな?

WAVE、、、波、、、波形(グラフ)、、、心電図、、、心肺停止、、、心臓マッサージ!!

訳わかんないけどこんな感じで方向性決定。

ここからはA3模造紙に画面レイアウトをざっくり書いてみてアイデアを詰めていく。

絶対面白いわ!って楽しそうにする学生。いいねいいね。

21日 11:30〜

運営の人からWikiやSlackの説明を受け、チームメンバー全員に設定。自分以外Slackは初めてだった。

さらに運営の人がSilverスポンサーのGitHubも利用を勧められたので(勧められなくても使うけど)、 全員にGitHubアカウントを取得してもらいSourceTreeもインストール。こっちも自分以外使うのは初めて。

作ったプライベートリポジトリに全員を招待。

21日 12:00〜

近くにあるでかいスーパー(アピタだったか?)のフードコートでご飯。

f:id:naichilab:20170123011632j:plain:w320
ゆっくり食べられる最後のご飯かなーとか考えてた。

21日 13:00〜

SlackやGit設定を全員分完了。

もう一人のプログラマはキャラクタの移動処理とかを作り始めてもらう。
自分はゲーム全体の流れを作るためにゲームマネージャやシーン制御クラス、音関係のマネージャクラスとかを過去プロジェクトから流用して雛形を作った。

デザイナの3人には背景、メインキャラクター、患者に分かれてラフ作成開始してもらった。

背景に関しては30分もしないうちにラフが出てきてビビる。

リソース作成早すぎてプログラムまにあわねーぞこれは。

21日 15:00〜

それぞれのチームのコンセプト発表


いつのまにか動画撮影&公開されてた

発表するいい練習になるだろうと学生をそそのかして発表させる。超緊張してるw

となりのAチームはハゲについて熱く語ってましたね・・・Cチームは2人対戦ゲームになるとのこと。
楽しみ。

ここで宿泊者には部屋の鍵が配られる。

f:id:naichilab:20170123012444j:plain:w320
精華町さんびっくりするほど太っ腹。
これだけ快適だと来年は規模拡大するだろうし宿泊者や社会人は有料になるのかなーとか考えてた。

発表後は引き続きプログラムや素材作成

f:id:naichilab:20170123012358j:plain:w320
作業風景

続々とできあがる画像素材たち。
ぜんぜん進まないプログラム。

あーこれは徹夜かなって感じ。

ゲームの細かいところだとかはすぐに声を掛けてプチミーティングを開く。悩んでる暇も無いのでその場その場で決めていく。

チーム名とか、翌日までに決めればいいようなものは付箋に書き出して壁に貼っておいた。余裕のある人にやってもらう予定。

プログラマ間で共有するやることリストはGitHubのプロジェクト機能でカンバン管理することにした。

f:id:naichilab:20170123012249p:plain:w320
まぁまぁ役立ったかな?

21日 17:00〜

すがやみつる先生が応援に来てくださった。
清華大学から参加している9名の学生は、すべて先生の教え子らしい。
学生との会話を聞いているととても慕われてらっしゃるのが伝わってきました。


ドーナツごちそうさまでした。

21日 19:00〜

運営の方から差し入れのたこ焼き

f:id:naichilab:20170123013235j:plain:w320
各チームに3パックずつ。
近所のスーパーの売り切りセールで買い占めてきたとのことw ごちそうさまでした。

このころUnityCloudBuildも設定。

f:id:naichilab:20170123013436p:plain:w320 これでWin/Mac用ビルドが常に届く。 チームメンバー全員にUnityアカウントも作ってもらい、アクセスできるようにした。 あんま使わなかったけどね。

この日は夜中3時ぐらいまで作業した。

  • 背景やあらかたのUI素材は完成
  • リザルト画面素材も完成
  • プレイヤー(医者)素材は完成
  • プログラムは医者の移動と患者の生成ぐらいは完成
    • ゲームロジックやUIの制御とかは全く。やばい。

相変わらずプログラマの進捗ピンチ

とりあえずデザイナのみんなには明日引き続き作業してもらいたいことを説明して解散。

もう一人のプログラマの人とは同じ部屋だったのでもう少し進める。

結局5時までやった。

  • 患者の生成と退場処理完成
  • UI要素の制御もある程度組んだ

なんとかなりそうな目処が立ったので寝る。

22日 07:00〜

朝7時に部屋から会場に向かうと、まだ人は少なかった。

f:id:naichilab:20170123013823j:plain:w320

朝ごはんは雲丹亭ラーメン。

f:id:naichilab:20170123014042j:plain:w320

朝食後はひものさんと早朝の変なテンションでじゃがりこタワー作った。


訳がわかんねぇな。

22日 10:00〜

ベータ版をプレゼン。

UIとかはまだまだだけどだいたいのゲームロジックは完成。
なんとかなりそうだ。

22日 12:00〜

運営からピザの差し入れ

f:id:naichilab:20170123014229j:plain:w320
ごちそうさまでした。ジャムも佳境って感じですねぇ

BGMやSEを実装し、開発も佳境へ。

午後はなるべく難易度調整に時間を割く、
プログラマが調整し、デザイナ全員でテストプレイ。

全員にSourceTree(Git)とUnityをインストールしておいたので、
プログラマがPush、デザイナはPullして即座にUnityエディタでプレイ。
ってことができた。これはなかなかいい感じだった。

みるみるゲームとして遊べる形になっていく。

終了30分前から急遽オンラインランキングを実装することにした。
NCMB使えば楽勝!

22日 15:00

そうこうしているうちに締め切り。

f:id:naichilab:20170123014654j:plain:w320
モニターに映し出されるカウントダウン

お疲れ様でした!

ここからGGJ本家サイトへの登録作業。地味だけど大事な作業。

22日 16:00〜

全チーム完成品のお披露目!

今回は全チームちゃんとゲームとして動くところまでできていました。みんなすごい。

これで冒頭に紹介したゲームができあがりです。

22日 17:00〜

試遊会&懇親会

f:id:naichilab:20170123015232j:plain:w320
f:id:naichilab:20170123015233j:plain:w320
f:id:naichilab:20170123015234j:plain:w320
懇親会の最後にはちゃっかり京ゆにの宣伝もさせてもらいました!

最後まで和気藹々と、談笑の絶えない会場でした。

最後に全員で記念撮影してお開き!

皆さんお疲れ様でした!

参加してみて

やっぱりゲームを作るのは楽しい!
しんどいけれど、とんでもなく多くの経験値を得られるすばらしいイベントでした。

プログラマが二人いたおかげで、適度に作業分担しつつ作りきることができ助かりました。

0からキャラクターを生み出せるデザイナ(で呼び方あってる?)さんのすごさ、自分には絶対無理なので尊敬しっぱなしでした。SlackだのGitだのSourceTreeだのと初めて聞くツールにも関わらず使ってみる姿勢は好印象でした。Gitとかプログラマでもなかなか難しいツールなんやけど使ってくれてありがとう。

前回(一昨年)のゲームジャムはメインプログラマを担当したけれど全く時間が足りず大変な思いをした。それから2年、着実に書いたソースは残っているので管理クラス等を流用することでかなり新規実装の負担を減らすことができたと思う。

あとはゲームジャムというとプログラマ8割!みたいなイメージでしたが、今回はデザイナ6割というプログラマから見たら(いつもグラフィックリソースに困るから)夢のような環境でした。

このようなすばらしい企画を実行してくださった精華町町役場の皆さん、運営側の皆さん、ありがとうございました。そしてお疲れ様でした。

また来年も開催されるのであれば是非参加したいと思います。
また機会があればよろしくおねがいします!

【読んだ】スペシャリストが解説する Amazon Web Services 知っておきたい基礎知識 IT Leaders選書

読んだ本の感想メモ。

読んだ本

スペシャリストが解説する Amazon Web Services 知っておきたい基礎知識 IT Leaders選書

スペシャリストが解説する Amazon Web Services 知っておきたい基礎知識 IT Leaders選書

なぜ読んだ?

  • AWS触る機会が増えそう
  • AWSの知識ゼロ
  • AWSのことググっても情報多すぎ!
  • 広く浅く、基礎知識つけたい
  • 知人に聞いたら紹介してくれた

どんな本?

  • AWSの知識ゼロの状態で広く浅く基礎知識をつけるのにうってつけ
  • たぶんこういう記事の集約本?
  • 各サービスをちょうどいい分量で紹介している
    • サービスごとに0.5P~3Pほどで読むのに苦じゃない分量
    • このサービスはこういうもので、これを使えばこんなことができるよね!みたいな説明
    • セットアップ方法や設定方法とかは無い
      • 各サービスの詳しい使い方はググるなりマニュアル読むなり必要
  • サービスのカテゴリごとに章立てしてあり、とてもわかりやすかった。
  • 通して読んでも2〜3時間あれば読めるぐらい

まとめ

AWS使ってみたいけどいっぱいあって何が何だか・・・って人にオススメ

スペシャリストが解説する Amazon Web Services 知っておきたい基礎知識 IT Leaders選書

スペシャリストが解説する Amazon Web Services 知っておきたい基礎知識 IT Leaders選書

hubotメモ

今更ながらhubot触ってみる。

下記記事を参考にしながら進める。 Hubot / ChatOps とは - Qiita

ただのメモ書き

メモ

nodejsのインストール

  • macだとnodebrewってのが主流?
    • nodebrewで入れた

新規でhubotを作成

yo hubot

新規でhubotスクリプトを作る

$ mkdir hubot-hoge
$ cd hubot-hoge
$ yo hubot:script

あとは質問に答えるだけ。

スクリプトをローカルで確認

HUBOT_SHELL_USER_NAME='naichi' PATH="./node_modules/hubot/node_modules/.bin:$PATH" $(npm bin)/hubot -a shell -n hubot -r src

herokuにデプロイ

git管理してから

heroku create
git push heroku master
heroku config:set \
HUBOT_SLACK_TOKEN=xxxx-11111111111-aaaaaaaaaaaaaaaaaaaaaa

リスナー登録

  • robot.respond /hello/, (res) ->
    • hubot hello のようなメンションを受け取るリスナーを登録する
  • robot.hear /(.+)から選んで/, (msg) ->
    • パターンそのままを受け取るリスナーを登録する

npm install

$ npm install --save cheerio

-g をつけなければそのフォルダにだけインストールされるみたい。

githubからnpm install

$ npm install --save naichilab/hubot-7days-later

上記npm install をした上で、external-scripts.json に追記する

[
  "hubot-diagnostics",
  "hubot-help",
  "hubot-heroku-keepalive",
  "hubot-google-images",
  "hubot-google-translate",
  "hubot-pugme",
  "hubot-maps",
  "hubot-redis-brain",
  "hubot-rules",
  "hubot-shipit",
  "hubot-7days-later"
]

環境変数

process.env.HOGEHOGE

参考:設定を読み込む Hubot スクリプトをつくろう - Qiita

test

npm install -g grunt-cli しておく

grunt test で単発実行

grunt test:watch でファイル監視&自動実行