villagerHの日記

勉強したことや苦労した事などを書き綴ります

1年間お疲れ様でした

少し早いですが1年間お疲れ様でした。

12月は新しい勉強を全くしていなかったので全然記事を書けてませんが^^;;;
12月でプライベートでの開発が一区切りするのでそしたら少しは時間できるかなと。

今後もマイペース更新にはなると思いますがのんびり勉強や本の感想をまとめていこうと思います!

Photonでイベントを起こしたい場合

相変わらずプライベートの開発とかでいっぱいいっぱいで勉強が全く進んでません(言い訳)

なのでPhotonについて学んだことをメモ書きしておこうと思います。

ルームに入室し、ネットワーク上に各オブジェクトを配置した後に、何かイベントが発生した場合に他のクライアントへ通知を行いたい場合。

[PunRPC]属性を付けて呼び出したいメソッドを定義します。

その後呼び出したい部分からPhotonViewを使用して呼び出します。

PhotonView photonView = PhotonView.Get(this);
photonView.RPC("ChatMessage", PhotonTargets.All);

イベント発生させたクライアントに通知したくない等の場合はターゲットのALLをRpcTarget.Othersに変えればOKです。
ものすごい簡単にできました!

photonの設定で引っかかったお話

プライベートで友人とアプリ開発をしてたりします。

今作っているものでネットワーク対戦を実装するためにphotonを使用させていただいております。
https://www.photonengine.com/ja/photon


アプリ自体はUnityを使用して作製しているのですがUnityとphotonを組み合わせたときに引っかかってしまったことがあったのでそのお話です。

詳細な設定は省きますが、photonを使用するための準備としてunity側にアセットストアからアセットを取得してきてServerSettingsを行います。

ここまでは友人がやってくれておりコミットしてくれていたので私はルーム入場部分を作成しました。

流れとしてはこんな感じです。

・接続しているサーバーから入れるルームにランダムで入室
・入れるルームがなければルームを立てる

友人といざテストをしてログを確認してみるとお互いにルーム作成になってしまう…

ドキュメントとにらめっこしながら色々処理を見直してみるものの怪しい部分は見つからずに困っていたら別の友人Bもテストに参加してきました。
私は処理とにらめっこ中だったので友人Aと友人Bでテストしてみたところ…同ルームに入場成功。

特に処理を変えた様子はないので私と友人Bで試してみたところ失敗。

どうやら私の環境に問題があるのが発覚したので色々確認したところServerSettingsが初期化されてることが発覚しました。

Unityのバージョンアップを行っていたので初回起動時は初期化されてしまっていたようです;;

node.js触ってみました

機会があったのでnode.jsに軽く触れてみました。

いつものようにインストールからかなと思ったら既にmacにインストールされてる状態でした。楽ちん。

サーバー上でjavascriptを動かすといったものなんですね。
Dappsのときにjavascriptは少し触れたので入門レベルだと困りませんでしたが、まだちょっとjavascriptの記述は慣れないです><

とりあえずlocalhostでアクセスできるhttpサーバーを立ててみました。

qiita.com

こちらのコードを丸コピさせていただきましたがすんなり動きました。

httpのモジュール設定して動かしてやるだけで出来るんですねー。

細かい設定に関してはまだわかりませんが、動作させるのがApacheより楽なのでは?と一瞬思いましたがApacheもインストールしたらほぼおしまいみたいな感じだった記憶があるので初期設定に関しては大差なさそうですね。

Docker触ってみました

昨日インストールしたので今日はどんな感じなのかDockerを実際に少し触ってみました。

参考になりそうなサイトさんを探して、わかりやすそうだったのでDocker上でjenkinsを動かしてみました!

DockerHub?に既にコンテナは用意されてるのでポートとかのオプションを設定してrunしてやるだけでOK。

初回は取得してきたりで数分ほどかかりますがしばらく待つと起動完了。

起動終わったのでDockerのアドレスにオプションで指定したポートでアクセスしてみます。


jenkins...動いてる...!


Dockerの方の画面だとフォアグラウンドで動いてるのでCtrl+cで停止しますね。
runはコンテナの生成コマンドとのことなので1度runするとコンテナとしてローカル上に保存されてるので次回からはstartとstopコマンドで動かせるみたいですね。


有名なもののコンテナはもう上がってそうですし。
面倒な環境構築が一瞬で済むのはすごいですね。

ほんの触りですが皆さんが夢中になるのがよくわかりました。

Dockerインストール

最近流行ってるし触っといてみようかなーって感じでDocker入れてみました。

今回はmacでなくwindows7の環境にインストールしてみました。

インストールの前段階としてBIOSで「intel virtualization technology」を有効にしておかないとだめらしいです。
私の環境は無効になってたので切り替えました。(久々にBIOS画面にいった...)

インストーラーをダウンロードしてきます。
https://docs.docker.com/toolbox/overview/#ready-to-get-started

インストーラーをダウンロードしてきたら実行します。
インストール途中でデバイスソフトウェアの質問が来たらとりあえずインストールしました。

インストール完了後に実行してみたらbash.exeが見つからないって言われました。
こいつは何者だ?と調べてみたらgitのインストールフォルダにあるんですね。先にgitをインストールしてある環境だと出る模様です。
gitをインストールしたフォルダ内にある\bin\bash.exeを指定してやれば動きました。

初期設定が動き出すのでしばらくまっていれば完了…しませんでした…

「Looks like something went wrong in step 'Finalize'...」とかって怒られました。
とりあえず困ったらぐぐります。すんなり解決方法が出てくれました。

バグ?らしいのでstart.shの該当箇所をコメントアウト

STEP="Finalize"
#clear
cat << EOF

再度実行してみたら無事クジラが表示されました!
とりあえず今日のところはここまで~。

ブロックチェーンゲーム

coinpost.jp

まだまだ発展途上の技術だと思いますが、
こういうニュース記事を読むとすごく心躍ります!

レアカードだと仮想通貨ではありますが通貨とトレードが成立することもあると思いますし
リアルのカードと全く変わらないなってところまで来た気がします。