ユーセンブログ

ゲーム開発に関することをたまに書きます

Slackの/feedでUnityまとめの投稿を超簡単に通知する

Unityの最新の情報を集めたいときにいちいちネットサーフィンとかtwitterとかで情報探すのめんどくさいなーSlackさん教えてくれないかなーと思って探してみたらか簡単にできる方法があったので紹介です。

今回はSlackのスラッシュコマンド機能の/feedという機能を使います。

 

f:id:k_tachiban:20171113222717p:plain

使いたいchannelに  

 /feed https://unity-matome.com/feed

と書いてEnter押して終わり
これで新しい投稿があってから20分程度でSlackにリンクが投稿されます。便利。

説明

/feed コマンドはRSSAtomのリンクを登録することでwebサイトの最新の投稿を所得して投稿する機能です。

/feed [RSSのURL]

で登録し

 /feed remove [IDナンバー]

で削除できます。

IDナンバーは登録した後

/feed list

で取得できます。

ちなみに、わからなくなったら

 /feed help

 でこれらの使い方が見れます。

 

おまけ

自分が使っている便利なRSSリンクです。

「Unityまとめ」

https://unity-matome.com/feed

「UnityのタグがつけられたQiitaの投稿」

http://qiita.com/tags/Unity/feed

UE4のタグがつけられたQiitaの投稿」

http://qiita.com/tags/UE4/feed

「東京周辺のゲームが含まれるイベントの情報」

http://api.atnd.org/events/?keyword_or=ゲーム,game&keyword=東京&format=atom

 

QiitaやATNDのリンクにあるUnityやらゲームやらの名前を変えれば好きなタグやキーワードで投稿を監視できます。

RSSのリンクはサイトごとに取り方がいろいろあるので探してみてください。

例えばGoogleアラートというものを使えばGoogleで検索して出るサイトを監視することもできます。

参考

スラッシュコマンド – Slack

Slack に RSS フィードを追加する – Slack

GoogleアラートをRSSフィードで受信する | Googleアラートの使い方 | ぼくらのハウツーノート

 

 

 

【Unity】UNETを本格的に導入する前に知っておいたほうが良かったこと

お久しぶりの記事です。

今回はUnityの5.1から実装されたUnityのネットワーク機能「UNET」を実装する上で予め知っておいたほうが良かったと思ったことや、結局調べるはめになるであろうことを書いていこうと思います。

 

とはいえ基本的な部分はこちらの記事を読んだほうが早いです。

 

【Unity9】UNETでマルチプレイヤーなオンラインゲーム開発【UNET1】 - Unity5(C#)初心者・入門者向けチュートリアル ひよこのたまご

25回にわたって書かれているので導入としてとても良かったです。

Unity 5.1 から導入された新しいネットワーク機能の UNET について詳しく調べてみた - 凹みTips

こちらではUNETについて詳しく解説されています。

 

あと細かい仕様とかはここ

Unity - マニュアル: ネットワーキング リファレンス

 

 オープンソースを使う

さて、まずははじめに把握しておくべきだと思うことは、UNETはまだ未完成であるということです。

なのでこの段階で本格的に導入すると割りとめんどくさい事になります。

(そして圧倒的にUNETの日本語の記事は少なかった…)

なので、UNETをそのまま使わず基本的に中身はいじれるようにしておいたほうが吉です。

UNETはこちらのリポジトリオープンソースとして公開されているのでそれを改造しながら使うべき。

Unity-Technologies / Networking / source / — Bitbucket

 

エラーに注意

そしてもう一つめんどくさいのがサンプルなどでよく出てくるNetworkManagerとそのHUD、NetoworkTransformを使った超シンプルなサンプルで、ホストになる→ストップ→ホストになるという流れをなんどか繰り返すとエラーで止まります(8月12日現在

)。

どうやら作ったソケットか何かがきちんと破棄されていないらしく、StopServer、StopClientなどを呼ぶだけでは繰り返しのプレイに耐えられません。

ではどうするかというと

NetworkTransport.Shutdown();

NetoworkTransport.init();

の2つをセットで呼べばとりあえず正常に動くようになります。

 

ServerChangeSceneが謎だった

次に結構長い間挙動が謎だったのがこいつ。

NetworkManager.ServerChangeScene();

なにげに非同期読み込みです。

ロードシーンか何かを挟めば簡単に読み込み画面が作れます。

 

基本的にはいろいろ揃ってて便利

UNETはHLAPIなのでネットワークゲームを作る上で必要なものがある程度網羅されています。

LANで通信相手を探すNetworkDiscovery

マッチメイキング用のMatchmaker

ロビー用のNetworkLobbyManager

マッチングサーバーを提供してくれるServiceのUnityMultiplayer

この辺りを目的に合わせてうまく使えば結構つくりやすいかなと思います。

 

 

Unityのネットワーク機能が出てたので使ってみた現段階の感想としてまだ未完成ということ、日本語の資料がまだまだ少ないこともあって割りと大変でした。

ただ、基本的なところの実装はかなりはやくできるのでGameJamなんかでは結構使いどころがありそうな印象です。

 

 

大学でKPTを試してみた話

 

 初投稿。

 先日、大学のチーム制作の会議でKPT(けぷと)というものをやりました。

 KPTとはKeep、Problem、Tryの略称でアジャイル開発などで使われる振り返りのための会議のやり方です。

 

 このやり方は以前にも何度かやったことがあるのですが、今回ちゃんとやってみてかなり学校でのゲーム制作と相性がいいのでは? と感じたのでそこの所含めて書いていきたいと思います。

 

KPTってどうやるの?

 KPTのやり方は簡単です。

 ↓まずこんな感じでK、P、Tのそれぞれの枠をホワイトボードに書きます。

f:id:k_tachiban:20160410000938p:plain

 後はKeepの枠に良かったこと、Problemの枠に現在の問題点、そしてTryにこれからやっていくことをそれぞれふせんで書き出していきます。これをだいたい1、2週間くらいに一回やります。以上です。

 

 ……とだけ書いてしまうとあまりに雑なのでそれぞれの書くことを説明します。

「Keep」

 ここにはこれからも継続したいこと、良かったことを書いていきます。このKeep、他の2つと比べると割りと軽視されがちですがかなり重要なところ。

 ここでしっかりチームを褒め、雰囲気をよくすることでこの後のProblemで雰囲気が悪くなりにくくなります。これを怠るとただの反省会になってしまって良くない雰囲気になりやすくなります。

 とはいえはじめはそんなポンポン出てくるわけではないので開発の状況だけでなくプライベートであった良かったことなども書き出すようにすると楽しくなります。

「Problem」

 ここがメイン。これまで良くなかった問題点を書き出していきます。この時司会役の人はなるべくぶっちゃけてもらうように指示してください。

 チーム制作でありがちな「みんな何も言わないけど、なんとなくこれはヤバい気がする……」ということを共有します。自分がヤバいと思っていてほんとにヤバいことはだいたいみんなヤバいと思っています。

「Try」

 ここでは、まず、チームの人それぞれに自分が書き出したことについて話してもらってその人の意図を共有します。

 その後、Keep、Problemを踏まえてこれから実行していくことを書き出します。このとき「~を頑張る」などではなく、なるべく具体的にできたかどうかがはっきりわかるように書き出してください。

 あと、すぐに解決方法が出てこないし、時間で解決されそうな問題はスルーしても良いです。ほんとにヤバかったら次回やっても出てくるのでその時対処方法を考えるようにするとスムーズに進みます。

時間配分

時間配分ですが私は

Keep:3分

Problem:3分

Try:10分

くらいを目安にやっています。短く区切ったほうがダラダラしないし楽なので続けやすいです。

 

まとめ

 KPTを開発に使う上で大事な概念として、開発後ではなく、開発中、かつ頻繁にKPTを行うというのがあります。とはいえ朝会のように毎日やるというほどのものでもありません。大体1、2週間に一度位のペースで行います。

 そして、大学の授業でやっているなら週に一度は授業の日があり、サークルでも週に一度ミーティングをやるところは多く、それに合わせてKPTを行うと開発にリズムも生まれるしきちんと情報の共有ができるので、なんとなく発言しにくいといった問題を抱えているチーム開発におすすめの方法です。

 

 で、あってるよね? そうじゃねぇだろっていう意見があればコメント下さい。