simplestarの技術ブログ

目的を書いて、思想と試行、結果と考察、そして具体的な手段を記録します。

Online Game

PlayFab:タイトルデータで接続先サーバーを知る

基本はここで学びます。 qiita.com任意のデータ構造を配列で取得できるようになったら、少し汎用的なタイトルデータ取得コードを記述します。C# でジェネリックの型名を文字列で取得するには var type = typeof(T); var titleData = JsonSerializer.Deserial…

Magic Onion:複数ポート番号のサーバーをdockerコンテナで

手順だけ記録しておきます。基本 qiita.comここで Dockerfile を記述しているけど FROM mcr.microsoft.com/dotnet/core/runtime:2.2 WORKDIR /app COPY . .とエントリポイントを削除あとサーバー側の実装で引数一個目で port 番号を受け取って利用するように…

PlayFab:Unityゲーム内課金システムPayPal編

個人ゲーム制作でも何百万人にも膨れ上がるユーザーを平気で捌ける順応性のあるバックエンドサービスを短期無料で作れる時代になりました。 Amazon の GameSparks, Google の Firebase, Microsoft の PlayFab, 富士通クラウドテクノロジーズのmobile backend…

PlayFab:UnityのバックエンドとしてのAWS入門

不正を許さないため、オンラインゲームは基本的に現実のお金でのアイテムの購入、ゲーム内の仮想通貨やアイテムの交換はクライアント側では行わずにサーバー側で行います。 そうした不正を許さないバックエンド処理に使う api とデータベースをほぼ無料で使…

Unity:Amazon DynamoDB を C# から利用する

高速読み書きがスケーラブルなデータベース Dynamo DB を Unity から利用する 現在のルームメンバー一覧を取得したいとか、これからジョインするルームを決めるときに、ルームに何人入っているのかなどを確認したいときがあるのです。 S3 にファイルとして情…

Unity:オンラインVRMチャットサンプルの作り方4

数十MBある大きいVRM データのリアルタイム送受信 最後まで読むとできるようになる絵この記事の続きです。 simplestar-tech.hatenablog.comMagic Onion を Unity 間のリアルタイム通信に使いましたが、送受信するデータが 1MB より大きくなる場合は別の手段…

Unity:オンラインVRMチャットサンプルの作り方3

リアルタイム通信でオンラインチャット 最後まで読むとできるようになる絵こちらの記事の続きです。 simplestar-tech.hatenablog.comUnity 同士でリアルタイム通信するためのアセットはいくつかある様子ですが、全部試してられません。 C# を書く感覚でリア…

Unity:オンラインVRMチャットサンプルの作り方2

チャット入力画面とチャットテキストの表示 最後まで読むとできるようになる絵プラス、バルーンはこんな動きをする予定Unity で近くにいるキャラクターの発言だけを聞き取れるようにしつつ、画面外にいてもどこから声をかけられているかわかるような仕組みを…

Unity:オンラインVRMチャットサンプルの作り方1

VRM 選択画面と動的ロードの実装詳細 最後まで読むとできるようになる絵Unity 2019.1.3f1 で新規プロジェクトを作成 ゲームを起動すると次の UI が表示されるように UI 要素をセットします。ファイル選択UIVRM を動的にロードして TPS カメラワークで TPS キ…

Unity:VRMオンラインチャット構想

■画一的なエモーションコマンド作れる?→YES VRM には表情プロキシクラスがあるので、どのような VRM でも統一したエモーション名で表情を表出することができます。■テキストに合わせて表情と口を動かすことできる?→YES あいうえおの言葉の表現もあるので、…

Unity:オンラインVRM TPSゲーム作りログ5

■前書き 今回でこの連番タイトルもラストになりそうな進捗でてます。前回の記事はこちら simplestar-tech.hatenablog.com 要約すると 1.送信するタイミングとデータ構造を知るための調査 2.送受信のRPCインタフェースを設計 3.実際に送受信できている…

Unity:オンラインVRM TPSゲーム作りログ4

■前書き 前回の記事はこちら simplestar-tech.hatenablog.com前回の内容をまとめると 1.扉のあるチュートリアル閉鎖空間を用意し、VRMファイル選択で動的に VRM キャラクターを読み込める 2.扉の前でアクションを行うとAWS Cognito のサインアップ・サイ…

Unity:オンラインVRM TPSゲーム作りログ3

■前書き https://simplestar-tech.hatenablog.com/entry/2019/05/02/073820 の続きです 前回を要約するとUnity クライアント同士で 37MB くらいのVRMデータの受け渡しができるようになった。Unity から直接 S3 に上げてから、引くという構造で後から参加して…

Unity:オンラインVRM TPSゲーム作りログ2

■前書き 前回 Unity:オンラインVRM TPSゲーム作り作業ログ - simplestarの技術ブログ の続きです。 前回を要約 1.MagicOnion に習熟、形式自由でリアルタイム通信を作れるようになった 2.UI を設計して VRM ファイルとプレイヤー名を指定してサーバール…

Unity:オンラインVRM TPSゲーム作り作業ログ

■前書き ローカルで動く TPS ってのは思い立てば、アセットを買って 2時間で完成してしまうものでした。 これをオンラインゲーム化する前に、VRM ファイルを動的に読み込んで、ルーム名を決めてオンラインルームに入室し互いにチャットできるようにして、ロ…

Unity:リアルタイム通信ゲームのひな形

最近書いたQiita記事 qiita.com実際 Unity でリアルタイム通信ゲームを作ろうと思った時に、脳内で走ったシミュレーションをここに書き出してみます。ある一人がルームを作成している状態 もう一人がルーム一覧を知る術はあるか→知らないルーム名を固定した…

オンライン部分の構想をメモ

S3にチャンク情報を置いてDynamoDBにブロックの編集情報を置いて定期的に DynamoDB から S3 のチャンク情報をアップデートするようにしつつリアルタイム通信は gRPC を使いルームマッチにはサーバレス Web API を利用する感じ?クライアントは Unity のハイ…

AWS DynamoDB を Unity で操作する

AWS DynamoDB を Unity で操作できました。 詳細な手順をなんもわからん状態から出来るようになるまでを記録しました。記事概要として、AWS Cognito の機能として1.ユーザープールを作成(サインアップ、認証コードをメールアドレスへ送信、サインインでき…

ゲームデータの永続化

■前書き しばらくぶりで記事の書き方を忘れてしまいました。ここ最近は新たに Unity でゲームを作っていてちょうど見た目はこんな感じのサンドボックスゲームです。テキトーゲームデータの永続化の部分を後回しにしたおかげで、後半になってスケジューリング…

Unity:HTTP通信のベストプラクティス

前書き ちょうどこのブログを閲覧しているみなさんは、HTTP と呼ばれるプロトコルを介して私の文章とやり取りをしています。 皆さんは HTTP についてどれくらいご存知でしょうか?インターネットには、目的地へ電気信号を届ける決まりごとがあります。(何で…

AWS:Webページを作ってみる

インスタンスに独自の url を設定できたんだから、その url で Web ページを見てみたくありませんか? そこで、次の記事を参考にしてみることにしました。qiita.comyum update コマンドまでは成功したのですが…install nginx コマンドには失敗Amazon Linux E…

AWS:独自ドメインの購入とインスタンスのIPアドレスとの関連付け

AWS の一つに Route53 というものがある(なんで53なんだ?)やりたいことは、ついさっき作成した Amazon Linux 2 の AMI からインスタンス化したリソースに 独自ドメインを使った url を割り当てて、その url を使って ssh 接続できるようにしたいというも…

AWS:AMIの作り方4-テンプレのAMIで作ったインスタンスから作成

ここまで AMI の作り方の記事を参考に見てきましたが、いよいよ S3 のバケットに AMI に関するファイルを出力する段階になって ec2-bundle-vol コマンドをキーワードに調べたんですけど>インスタンス内から ec2-bundle-vol コマンドを実行して、Amazon S3 に…

AWS:AMIの作り方3-OpenSSLでX.509 証明書

Amazon のマシンイメージ作りたいだけなんだよ、なんで IAM とか SSL の話ばっかりになるんだよもうX.509 証明書ってなんですか なんで 509 なの? なんで X. なの?ITU という国際機関が定めたデジタル証明書の標準仕様 X.509は仕様の管理番号とみる 今日で…

AWS:AMIの作り方2-IAM ユーザー作成

AMIというAmazon マシンイメージを適当に作りたいだけなのに、やれ権限だのマニフェストファイルを用意しておけなど なんで一発で作らせないんだこのやろうと思うこのごろさて、まずはアクセスキー情報を作るために、IAM ユーザー作成が求められるようになっ…

AWSのAMIの作り方

Amazon のマシンイメージの略字として AMI というものがあるのですけど、要はどの OS で、どの CPU でコア数はいくつか、どんな感じのストレージにするのかなどを指定するわけです。UIを直感的に操作して AMI を作れると思ったのですが、初めて登録するとき…

Windows:自宅で使っているPCのグローバルなパブリックIPアドレスを確認したい

家でも会社でも、マシンに割当たっているIPアドレスはローカルエリア接続だけが許されたプライベートIPアドレスです。 Windows のコマンドプロンプトから ipconfig /all コマンドを打って調べられるのもこのプライベート IP アドレスのみあの…私はクラウドイ…

AWSのセキュリティ設定

ゲーム開発会社のエンジニアとして生きていると、ある時 GNU / Linux というものを扱えないといけない時がやってくるパソコンに触り始めてそろそろ10年くらい経つけど、ずっと Windows 系のOSマシンでしか仕事してこなかった。 そのためいきなり GNU / Linux…

TerraformでAWSのインスタンス管理

そういえばしばらく前にサーバー技術を学ぼうとしたんだっけ simplestar-tech.hatenablog.comAWS そういえば触ってたな(3か月前の作業だけど、もう忘れかけている) simplestar-tech.hatenablog.comAWS のコンソールページでポチポチクリックしてひな形(AMI…

Unity:UNETの基礎と実装

最近素晴らしい UNET の記事を見つけました。 nn-hokuson.hatenablog.comネットワークゲームには二種 Peer-to-Peer 型と Client-Server 型があります。数万人がアクセスするような商業成功タイプは Client-Server 型ですが、UNET は残念?ながら数人がリアル…