8/26開催 CEDEC2023にて登壇した資料となります。 Pulseが展開する仮想空間『INSPIX WORLD』のエンジニアリーダーによる 当該プロジェクトの大改修についてご紹介します!
タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。
タイトルはここぞとばかりに全盛りにしてみました!今回NATSの.NETクライアント実装としてAlterNatsというライブラリを新しく作成し、公開しました。 github - Cysharp/AlterNats 公式の既存クライアントの3倍以上、StackExchange.RedisのPubSubと比較して5倍以上高速であり、通常のPubSubメソッドは全てゼロアロケーションです。 そもそもNATSとはなんぞやか、というと、クラウドネイティブなPubSubのミドルウェアです。Cloud Native Computing Foundationのincubating projectなので、それなりの知名度と実績はあります。 PubSubというと、特にC#だとRedisのPubSub機能で行うのが、StackExchange.Redisという実績あるライブラリもあるし、AWSやAzure、GCP
また、インフラ面でも課題があり、 既存のAPIサーバーは、オンプレミス での運用に対して、 現在開発中のリアルタイム通信サーバーは、クラウド (AWS) での運用が前提になっています。 そのため、運用中のユーザーデータなどへのアクセスに制限があり、 リアルタイム通信サーバー (クラウド) と APIサーバー (オンプレミス) で通信することも可能ですが、 APIサーバーの負荷等も考慮すると、頻繁なアクセスはできないため、 基本的に運用中のユーザーデータへのアクセスはできない前提とします。 技術的にいろいろハイブリッドな構成となっていますし、 いろいろな事情も絡んで、リアルタイム通信サーバー で実現できることも限られていますが、 そのあたりも含めて、全体像をご紹介したいと思います。 使用している技術 (2020年12月時点) サーバーサイド .NET 5.0 (C# 9.0) MagicOn
22. C#の型が通信定義となる単方向/双方向RPC // 自然な書き味で、タイプセーフにRPC(Remote Procedure Call)を実現 // C#のasync/await構文により、非同期通信も自然に見える var client = MagicOnionClient.Create<ITestService>(channel); var result = await client.Sum(100, 200); public class TestService : ITestService { public async UnaryResult<int> Sum(int x, int y) { return x + y; } } 23. C#の型が通信定義となる単方向/双方向RPC // 自然な書き味で、タイプセーフにRPC(Remote Procedure Call)を実現 //
Happy Elements Advent Calendar 2020 8日目の記事です。 7日目の記事に引き続き、「メルクストーリア」エンジニアの 岸本 です。 前回の記事では、MagicOnion の基本的な部分や、 サーバー構成 の考え方について、ご紹介させていただきました。 今回は、Kubernetes や Agones といったインフラ寄りの話題に加えて、 具体的な処理の流れなどをご紹介したいと思います。 本内容ですが、現在開発中のものであり、実際の仕様とは異なる場合があります! Kubernetes / Agones さて、 ここまでの内容を実現するために、今度はインフラ面でどうするか問題になってきます。 今回は、Kubernetes や Agones を用いることで解決します。 (Kubernetes や Agones の細かい説明は割愛します!) Kubernetes Ku
Amazon Linux 2 上に .NET 5 と MagicOnion を使ったゲームサーバー開発環境作ってみた #csharp 先日リリースされた .NET 5 SDKを使い、Amazon Linux 2上にMagicOnionを使ったゲームサーバー開発環境を作ってみました。 こんにちは、事業開発部の高野です。このエントリは下記のAdvent Calendar 2020への、8日目の参加エントリです。 AWS & Game Advent Calendar 2020 - Qiita C# その2 Advent Calendar 2020 - Qiita 前日はそれぞれ AWS & Game AWS SDKをUnity(2018.1以降)で使う - Qiita C# その2 【WPF】XAMLビューアーにRegionの内容を表示させたい【Prism】 - Qiita でした。 はじめに
CysharpからMagicOnion v4を先週リリースしました。今回のリリースの実装はほぼ全て@mayukiさんにやってもらったので、詳細はそちらに丸投げドンとして(ReadMeもかなり書き換えてあるので、詳しいところはそちらも読んでください)、改めて .NET 5とgRPC、そしてMagicOnionの位置付けとロードマップなどを説明したいかな、と思います。 MagicOnion v4ではサーバーサイド側は完全に ASP.NET Core KestrelベースのPure C#実装になりました。今まではGoogleの提供していたgRPC C Coreを利用していたのですが、今回よりMicrosoft実装に切り替えています。これによりASP.NET Core MVCなどと基盤が共通化されたので、gRPCを提供しつつHTTP/1 REST APIの口やHTML出力を行うような同居がとてもや
はじめに 本記事は、複数回に分けてUnityとMagicOnionを用いてメタバース空間を構築する内容(備忘録)となっています。 前回は、UnityとMagicOnionで簡単なチャット機能とアバターの位置同期を実装しました。 第二回目は、前回実装したサーバー側のプログラムをAWS上にデプロイする方法を紹介します。 具体的には、サーバー側のプログラムをDockerを用いてコンテナ化し、AWSのEC2上にデプロイします。 なお、筆者はUnityやサーバーサイドの経験は浅く現在も学習中であるため、間違っている部分がある場合は教えて下さると幸いです。 動作環境や使用したアセットなど Windows 10 Unity 2021.3.5f1 Visual Studio 2019 16.11 MagicOnion 4.5.1 MessagePack 2.3.85 gRPC 2.47.0 Unity-C
はじめに モバイルファクトリー Advent Calendar 2019の16日目担当のshioiyanです。 モバイルファクトリーには部活動制度があり、自分はゲームジャム部という不定期にゲームジャムを行ったりする部活に所属しています。 最近ゲームジャム部で、.NET CoreおよびUnity用のリアルタイム/APIエンジンのMagicOnionを使ってUnityでリアルタイム通信を実装してみたのでその方法を紹介してみます。 この記事を読んでわかること MagicOnionのStreamingHubを使ったリアルタイム通信の実装方法がわかる MagicOnionを利用するメリット クライアントとサーバでAPIの定義を共有できる 共有したインターフェイスを介して通信できるため, 直接クライアントからサーバ, サーバからクライアントのコードを呼び出すことができる C#のオブジェクトをMessg
2023 年 2 月、Amazon GameLift C# Server SDK が.NET6に対応 しました。このアップデートにより、Unity のヘッドレスサーバーだけでなく、C# ベースの軽量なロジックを持った専用ゲームサーバーの実装もしやすくなりました。物理演算を必ずしも必要としない、モバイル向けのライトなマルチプレイ用サーバーなどでも利用しやすくなっています。 本記事では、2024 年 2 月時点で最新となる MagicOnion v6 を使って作成した専用ゲームサーバーを AWS のゲームサーバーホスティングサービスである Amazon GameLift 上で動かしてみたいと思います。 MagicOnion は .NET ベースの双方向 RPC フレームワークです。サーバーサイド、クライアントサイド共に C# で実装でき、コードの共有等の面で効率的な開発が可能です。クライアント
はじめまして!ambrサーバーサイドチームです! メタバースのサーバーサイドの紹介記事って少ないですよね。本記事では先日のメタバースイベントから導入しているリアルタイム通信の新しいアーキテクチャについて紹介しております。ウェブサービス業界にいるけどメタバース業界に興味がある方、アーキテクチャの違いについて興味がある方など、ぜひ参考にしていただけたらと思います。 リアルタイム通信サーバーとは まず始めにリアルタイム通信って何?という方もいらっしゃると思います。メタバースではプレイヤー同士の移動や手の動きといったデータをリアルタイムに同期していく必要があり、それを行うのがリアルタイム通信サーバーです。いわゆるゲームサーバーと呼ばれたり、Photonと呼ばれるエンジンおよびSaaSなどが有名ですね。 多くのユーザーからのアクセスにも耐えながらも高速な通信を実現していく必要があり、アプリケーション
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く