開発合宿してかなり捗ってきた
結論からいうと、かなり開発が捗ったので、また機運が高まれば開発合宿したいと思う。
開発合宿のきっかけ
前々から開発合宿がしたかった。
半年近く継続的に開発してるゲームを進めるよりも、 1泊2日の間にがっつり何かプロトタイプを作りたいというモチベーションで参加した。
あまり大人数での合宿は考えていなく、セルフマネジメントできそうなメンバーで雑に行った。
幹事っぽいのを誰かがやって、それで開発が捗らないといったことが起きないように。
前日以前
予約はネットと電話で、最初4人で予約していたが途中で雑に6人に変更となった。 (宿側は電話一本で柔軟に対応してくれた。圧倒的感謝)
- バックエンドエンジニア
- インフラエンジニア
- アドエンジニア
- フロントエンドエンジニア
- デザイナー
- クライアントエンジニア
というすごいメンバーだったことに、出発時の新幹線で気がついて面白かった。 (ちなみにほぼ全員別々の開発してた(笑))
以下がキッカケで今回のおんやど恵を選択した。
- 会議室が翌日正午まで使える
- 温泉がチェックインからチェックアウトまでいつでも入れる
- 開発合宿プラン(メンバー全員がアンケート記入して代表者がブログで紹介する)で料金が50%OFF
ちなみに、開発の内容については、今回axross氏と2人で新規に何かつくることにしていた。
プロトタイプとなるWebサービスの設計とか大まかな方針を、 業務後とかに1〜2時間くらいとかに打ち合わせしてた。(計3〜4回?)
当日
- 1/23(土)11:00 雑に品川集合
- 新幹線(こだま)グリーン車で熱海へ
- 1/23(土)12:30 熱海到着
- 1/23(土)14:30 カフェを出ておんやど恵へ
- 結構捗った。WIFIが結構快適だった。店の半分くらい占領してスマンカッタ...
- タクシーでおんやど恵へ向かった
- 着いてチェックインと宿の説明をうけてお茶を飲んで一息ついたらすぐに全員会議室に向かった
- 1/23(土)15:30 開発1
- 会議室はとても広く卓球が出来そうだ!とか行ってたらどうも卓球場を改造した部屋っぽいことが分かった
- (会議室利用時は、卓球ができないという張り紙をみた)
- お茶のポットとかあって「前茶うまいうまい」言いながらコード書いてた
いままでの経験を生かしてる感あるコード書いてる
— きょこみ (@k_yokomi) January 23, 2016
- 1/23(土)18:00 夜飯
- 軽く日本酒飲んだがブレなかった
- 料理うまかった
- デザートくるの遅かったので、我慢できず会議室行ってしまった(あとでおいしく頂きました)
- 1/23(土)18:50 開発2
- 他のメンバーは部屋に残っていたが、自分は機運高まってたのでコード書いてた
- 1/23(土)21:30 風呂
- 開発の話とか私生活の話とかしてた
- 数人しか入ってる客がいなく露天風呂も空いていて良かった
- 1/23(土)23:21 開発3
- ハーデンダッツ食って加速した(フロントで売ってた。最高!!!)
- 1/23(土)26:00 初日終了
- キリもよくなったし、眠かったので終了した
学び多かった寝る
— きょこみ (@k_yokomi) January 23, 2016
- 1/23(土)26:30 就寝
- 片付けとか歯磨きとかしてたのでこの時間くらいに布団Inした
- 1/24(日)6:30 起床して朝風呂
- 朝風呂に入って足湯に浸かって、8:00の朝食までコードを書いてた
ねみい
— きょこみ (@k_yokomi) January 23, 2016
- 1/24(日)8:00 朝食
- 鮭とだし巻き卵を選択した。うまい。ご飯おかわりした
- 1/24(日)8:40 開発4
- 会議室へ行きチェックアウトギリギリの9:50くらいまでコード書いてた。ここで目的の機能まで実装が終わって達成感がすごかった
axross寝起き悪すぎワロタ
— きょこみ (@k_yokomi) January 23, 2016
- 1/24(日)10:00 チェックアウトと反省会
- 開発合宿プランの30%OFFが後日振込みでめんどくさそうだったので、12時までにブログ書くという話にもっていった
- この交渉力をしてる人、やはり普段から仕事できるエンジニアなこともあって流石だなーと思った
- 反省会というか雑に各々感想を述べていった(なんかようやく合宿っぽい)
- 1/24(日)12:00 おんやど恵出発
- ブログも問題なく、50%OFFが適用され無事その場で精算した(宿代は酒飲んだので14kくらい)
- 1/24(日)13:00 寿司そして帰路へ
- せっかくなので魚を食べようということで案内所で寿司屋を聞いて寿司くった
- 帰りは安く済ませて寝ようということで、JRのグリーン車で半分寝ながら、残タスクを整理して帰った
さっきのはフェイント pic.twitter.com/wQqRue9KhP
— きょこみ (@k_yokomi) January 24, 2016
普段日曜とかに開発してるときの3〜4倍くらいのパフォーマンスが出たような気がするため満足度が高かった(事前準備の成果もあると思うが)
やりきった感
— きょこみ (@k_yokomi) January 24, 2016
宿の雑感
- 会議室がかなり広く、10人くらいでも全然余裕そうだった
- 椅子のカバー色々用意してあって、座り心地よかった
- 温泉が大体空いていたので気軽に入れた
- 料理が見た目も良く、ボリュームもあり味もよかった
- もし次があれば、2泊3日というものありかなと思った
開発合宿というものへの雑感
- うまい飯、よい風呂、旅行に来てるのに観光しないで開発するという選択によって、なんとかアウトプットしないと損をする感があってブレない精神を鍛えられた
- 酒を呑んだり宴会するイベントが起きる気配があったが、ほぼ全員の意志が強く未遂で終わった
- やはり事前準備が大事だなと思った(何やるか決めておく)
- 普段まとまった時間がなくて、やりたいことがあるとかでも良さそうだった
- 各自の進捗発表会的なやつをやるまでもなく全員が満足度高い進捗出せていたのでこういうのもアリだなと思った
- 合宿でプロトタイプを一応つくりきったので、合宿後の数日たった今も当日に近いモチベーションで業務後とかに開発が続いてる
- WiFiの速度は重要(まあ無くてもいいか〜とかテザリングでもいいか〜とか、甘い考えは危険)
(ブログを書くまでが合宿です)開発合宿のブログ書かなきゃ。。。!
— きょこみ (@k_yokomi) January 25, 2016
2016年やること
あけまして
おめでとうございます!今年もよろしくおねがいします! pic.twitter.com/yfzYLZwKW3
— きょこみ (@k_yokomi) 2015, 12月 31
去年の振り返り(続)
年越して改めて2015年振り返りを見直すとかなり雑だったので補足がてら2015年のまとめ書いてから、今年やることを書こうかなと思います。
上記見直すと、転職して1年間とにかくGoを書いてLTしたり発表してみたりという感じです。 あとは色々な人と出会った年だったと思います。(転職によって人脈が広がっていく感じですかね)
各分野のスペシャリストや、天才的な若手エンジニアと一緒に仕事できたのも刺激的でした。
他にもユーザーへサービス提供すること、システムを運用することに対する考え方がとてもしっかりした方と一緒に仕事ができたのは、今後の人生を左右するくらい学びありました。
またそういった正論だけでは仕事は成り立たないのだな・・・という闇も同時に見ることができて、激動の1年でした。(自分としては、うまく折り合いをつけていきたい)
2016年やるつもりのこと
- 今作っている個人開発の放置ゲームを完成させる
- 脱エターナルする
- Androidアプリ開発を再開する
- 1年サーバーやったので、クライアント側もちゃんとできるようにする
- インフラ周りの知識をつける
- Dockerは何となく使えるようになったけど、まごころが足りない...
- Goは引き続きやる
- まだまだ理解足りてないので、1〜2年は書いていきたいと思っている
- Scalaそろそろ入門する
- Goだけじゃなく、固い言語も学んでおきたいので
- 英語やるぞ...
- 脱中学英語レベル
ざっくり言うと、 今の方向性でしっかりと地盤を固めつつ個人ゲーム開発の脱エターナルする感じでいきます。
2015年振り返り
毎月最低1記事はブログを書くという自分ルールを達成するため(?)にこの一年を雑に振り返ってみようかと思います。 技術関係ないネタも多めなので、お気をつけ下さいませ・・・
1月
- ゲーム会社を退職して、ニュースの会社に転職した
- 仕事でGoを書き始めた
2月
- 仕事で必死だったのでよく覚えてない
- 仕事で必要だったのでReactとか触ってた
3月
- Gunosy Go利用の現状確認会 - Gunosy.go#11 -を主催
- https://github.com/kyokomi/renkinを作ってた(go generate系がお気に入り)
- [PSVita] 神次次元ゲイム ネプテューヌRe;Birth3 V CENTURYをクリア
会社ブログ
Gunosy.go#11を開催し、GunosyのGo現状確認を行いました – Gunosy Tech Blog
スライド
4月
- 趣味開発の集まりで開発合宿に行った
- 妖精帝國の臣民Liveに初参加
- GolangNotHttpNight(Gunosy.go#12)を主催
- DroidKaigi参加した(発表なし)
- ニコニコ超会議に初めていった(疲れた)
- PS4買った
開発合宿主催者のブログ
DevMorning合宿ハッカソンを12人で開催しました!devmorning.wordpress.com
スライド
5月
- GWにMeetAppというサービスをリリース(前月の合宿で作ったプロトタイプを一応完成させた)
- [PS4] 新次元ゲイム ネプテューヌVⅡをクリア
MeetAppの構成とか書いたブログ
いま見てもコードが雑すぎるのでいずれなんとかしたい・・・
MeetApp
6月
- GolangTips(Gunosy.go#13)を主催(少数人数で飲みながらワイワイやるLT楽しい)
- BattleHackに出た。惨敗(疲れた)
- Go Conference 2015 summerでLTした
スライド
BattleHack
とにかくタダで参加できるイベントとは思えない飯とか設備だった。 ただ、インターネッツ不安定なのが結構辛かったのも覚えてる。
7月
- 引っ越した
- ドラム式洗濯機を買って人生変わった
- 羊一等まるごと食うイベント
- ジムに通い始めた(2ヶ月で解約したけど)
- GitHubの草活が367達成して埋まった(後半すごいのは、仕事がGithub.comなので)
- github.com/kyokomi/lotteryを作った
草
8月
- YAPC2015参加(発表なし)
- 夏コミに初参加(gregさんの手伝いで参加して、スルっと入れた)
- 前職の人たちと2015年2回目の沖縄に行った
9月
10月
- テキサスホールデムにハマる
- オクトーバーフェストに行った(昼からビールクズキメた)
- 次世代Webカンファレンスに行った(発表なし)
11月
- GAE/Goにハマり始める
- [PSVita] 激次元タッグ ブラン+ネプテューヌVSゾンビ軍団をクリア
12月
- [PSVita] 魔壊神トリリオンをクリアした
- Go Conference 2015 Winterで発表
- エムスリー x Gunosy Beer bash!(Gunosy.beer#1)でLTした
- また引っ越した
- eureka Go ~pairsのGo言語フルスクラッチの舞台裏〜に行った(発表なし)
- Go Advent Calendar 2015の13日目を書いた
- Gunosy Advent Calendar 2015の16日目を書いた
スライド
Advent
おわり
ざっと1年振り返って最後の方は写真も貼らず雑になりましたが、色々やってました。 やろうと思ってたことで実現できなかったことも多いので、来年何するかとかはこれから考えます・・・。
Goのslackbotを改良したのと、プラグイン増やしたので紹介
以前のGoCon 2015 SummerでLTしたkyokomi/slackbotですが、 かなりリニューアルしたので、改めて紹介しようかと思います。
大きな変更点
- x/net/contextの依存をやめた
- 魔法みたいになんでも出てくる感じで分かりづらかったので
- importするだけの実装をやめた
- importする順番をきにしたり、魔法っぽい感じがわかりずらかったので
- プラグインに
help() string
メソッドの実装を強制した- systemコマンドっぽいのでhelpをまとめて出せるようにしたかった
実装例はこんな感じ。
package main import ( "flag" "net/http" "os" "github.com/kyokomi/slackbot" "github.com/kyokomi/slackbot/plugins" "github.com/kyokomi/slackbot/plugins/echo" ) func main() { var token string flag.StringVar(&token, "token", os.Getenv("SLACK_BOT_TOKEN"), "SlackのBotToken") flag.Parse() bot, err := slackbot.NewBotContext(token) if err != nil { panic(err) } // pluginを追加する bot.AddPlugin("echo", echo.NewPlugin()) // joinしてる部屋全部のeventが来るので注意 bot.Run(func(event plugins.BotEvent) { if event.ChannelName() == "#general" { event.Reply("起きた") } }) // herokuとかで起動する用 http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { w.Write([]byte("OK")) }) http.ListenAndServe(":8000", nil) }
追加したプラグイン
sysstdプラグイン
- システム系のプラグイン。基本的にbotContext作るときに強制的にAddPluginしてる
- Timezone周りの設定や、help表示、linux commandの実行などができる
<@bot_name> <command>
でcommandの所には、help
とかtimezone
とかcommand ls -al
とか入力する
コハエース画像プラグイン
koha
というキーワードで雑に反応する- 経験値先生が放出したLINEスタンプになるはずだった画像を表示する
- 先月のブログで雑に紹介済みなので割愛
google画像プラグイン
あかりプラグイン
<キーワード> 大好き
に反応して、わぁいxxxx あかりxxxx大好き
をする
Twitterでお気に入りした画像をランダムで返すGAE/Goアプリをつくった
ランダムで返す部分が雑にキャッシュしてるのはご愛嬌・・・
https://koha-api.appspot.com/v1/api/image
画像はこちらを利用させていただきました。(経験値先生最高です!さっちん絵がほしかった・・・)
というわけでお蔵入りじゃから、ツイッター画像とかで使ってくれなのじゃ。あ、営利目的には使用禁止で頼むのじゃ。 pic.twitter.com/4QWYf45SuM
— 経験値@コハエースXP(9月頃発売) (@keikenti) 2015, 9月 30
注意!!!営利目的でのご利用はやめてくださいね!!!
お気に入りは適当にアカウント作って作りました。
GAE/Goの実装の方ですが、かなり雑ですが以下になります。
使い方はREADME.mdに書きましたが、 環境変数だけで一応どのアカウントにも対応できるようにしてます。
需要があれば、もうちょっとなんとかします!
主な使い方ですが、LGTMとかみたいな感じにAPIクライアント作ってしまえばいいかと思います。 自分はGo製のSlackbotでAPIクライアントを実装しました。
シルバーウィークにいよいよUnity入門した
はじめに
最近Goばかり書いてるのですが、今作ろうとしてるゲームをCocos2d-xで作るのは流石にもう辛いので、コレを期にUnity入門することにしました。
シルバーウィークの月〜水の3日間でサクッと1冊本読み切ってExampleを2,3個作るとこまでやりましたので、その所感とか。
準備したもの
Unity5 3D/2Dゲーム開発実践入門 作りながら覚えるスマートフォンゲーム開発
- 作者: 吉谷幹人
- 出版社/メーカー: ソシム
- 発売日: 2015/07/24
- メディア: 単行本
- この商品を含むブログ (2件) を見る
細かいミスだけど、正誤表あるので先に見ておくと良いです。 今の最新版のUnity5.2で挫折しないで最後までいけたので、すごいと思います。 自分みたいなガチ入門者向けかと。
正誤表はこちら => http://www.socym.co.jp/support/s-967#ttlWrong
- 出版社/メーカー: ロジクール
- 発売日: 2013/08/02
- メディア: Personal Computers
- この商品を含むブログ (24件) を見る
トラックパッド派なんだけど、流石に三次元の動きをトラックパッドで操作するの限界を感じて以前Unity挫折したので先に買っておいた。 買ってよかった・・・普通のマウスでも良かったかもしれないけどUnityで全然使えました。
環境
- Unityv5.2.0f3
はるか昔にUnity4になる前に触った頃に比べてサクサク動いてる気もするし、色々わかりやすくなった。 買った書籍がよかったのかもしれないけど、ストレスはほとんどなかった。
あと、マウス買ってよかった。以前にMacのタッチパッドでUnity操作しようとしたの無謀だった。 クリックしたまま引っ張るとか、回すとかかなりのテクニックがいるのでおとなしくマウスにしよう。
トラックボールだとマウス移動自体がないので場所も取らなくて楽だった。
Editorやばい
- Xamarin Studio: 日本語入力できるけど、日本語変換後の入力がスルーされることがあり結構ストレスだが、軽さや補完など平均点は維持してるのでコレに決めた
困ったこと
「変換が」を入力したつもりが「変換あ」になる
「変換」の時点でEnterをして確定してから「が」を入力すればいいのだが、「変換」の確定を「g」の入力でやる癖がもう抜けなくて辛い。(これ文章で説明してわかるのかな・・・)
他にも試したEditorたち
- MonoDevelop: まだ日本語入力できなくて消耗してるので没
- ReSharper: JetBrains製品好きとしては・・・と思ったがまさかのMac版なくて/(^o^)\
- VisualStudioCode: 一番ナウい感じなんだけど、Unity5.2での補完のきかせ方が分からず挫折
- 痛MonoDevelop: 惜しい所まできていたが、Unityちゃんの描画のためか重くなり没
色々教わったこと・学んだこと
- .gitignore設定しよう => ここにある
- 「Asset Serialization」を「Force Text」にする ※こちら参考にテラシュールブログ - Unity開発者が複数人で開発を進める上で覚えておくと幸せになる9つの事
- git initだけじゃなくてちゃんとこまめにCommitしよう(1回死んだ)
こんな感じでやってた
- まず章を1つざーっと目を通す
- 何作るかと何するかをざっくり把握してから、実際にExample作成の手を動かす
- とにかく作りきる
- 気が向いたら、ちょこっと改造する
こんな感じにキャラをUnityちゃんにしてみたり。
本読みながら、ポチポチ入力してくのもいいけど、結局図の方ばっかりみちゃって説明読み飛ばしちゃう気がする・・・(図だけで十分作れてしまうのもすごい)
なので、ざっと1回読んでから戻って作って行く感じでやっていくと、頭の中で整理もできて丁度良かったです。
C#なんとなく書ける
なんとなく書けるの良くない。もうちょいUnity自体の理解が深まったら、改めてC#も入門する。
(学生の時になんとなくC#書いてたから、軽く8年ぶりくらいか・・・)
所感
ようやくUnity入門してスタートに立てた感じ。Asset周りがなんか有料ばっかでゾッとしてるんだけど、まあ基本的な機能は揃ってるので、しばらくは手抜きしない方向でいこう・・・(素材周り以外は)
UnityちゃんかわいいよUnityちゃんかわいいよ
GitHubのREADME.mdに貼ったBadgeが更新されない時
なんかRefreshするタイミングとかミスすると更新されないときがあるので、手動でなんとかする方法。
こんなとき↓
↑のBadgeの画像URLをコピペして、こうする
$ curl -X PURGE https://camo.githubusercontent.com/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx {"status": "ok", "id": "xxx-xxxxxxxxxx-xx"}
そして、ブラウザを更新すると反映される。
参考
Aggressive image caching breaks image badges · Issue #224 · github/markup · GitHub