SlideShare a Scribd company logo
Building the Game Server both API and Realtime via c#
河合 宜文 / Kawai Yoshifumi / @neuecc
Cysharp, Inc.
Cygames
C#大統一理論
C#
C#の可能性を切り開いていく
https://github.com/Cysharp
Building the Game Server both API and Realtime via c#
OutGame API Server
アウトゲーム(API Server)
インゲーム(Realtime Server)
Backend
Services
API
Server
Game
Client
Realtime
Server
Backend
Services
API
Server
Game
Client
Realtime
Server
RDBMS
Redis
ただのHTTPサーバー
よって言語はなんでもいい
非同期処理に専用構文 型付き
RDBMS + Cache(Redis)が好まれる
垂直分割 vs 水平分割
RDBMS + Cache(Redis)が好まれる
垂直分割 vs 水平分割
無限スケール
DB管理はGUIツールを使いたい
水平分割はツールと相性最悪
永久に保存する領域 – データベース
期間保存 –RedisにExpire付きで保存
リクエスト単位 - HttpContext.Items
アプリケーション単位 – Static変数
インメモリKey-Valueストア
RDSの不得意な部分を補える
C#最速のシリアライザ
https://github.com/neuecc/MessagePack-CSharp
究極の埋込み型インメモリDB
https://github.com/Cysharp/MasterMemory/
JSON(MessagePack/Protobuf)を返す
クライアント/サーバーのスキーマ共有が鍵
中間言語からコード生成する
IDL(JSON/XML/proto/etc...)
サーバーコード
(PHP/Ruby/Go/C#/etc...)
クライアントコード
(C#/Swift/JavaScript/etc...)
PROS
CONS
protoはC#/* 任意の言語 */ではない
C# as a Schema
C#に固定することで
通信定義そのものをC#で表現する
言語の違うREST
Response型を別々
に書く
APIクライアント
を手書きする
(ザ・マイクロ
サービスみたいな
構成)
中間IDLを書く
そこからクライア
ント・レスポンス
型自動生成
(←を嫌う時によ
くある構成、一番
メジャー)
サービスを普通に
書く、そこからク
ライアントを自動
生成、リクエス
ト・レスポンス型
はC#のDLLとして
共有
言語の違うREST
Response型を別々
に書く
APIクライアント
を手書きする
(ザ・マイクロ
サービスみたいな
構成)
中間IDLを書く
そこからクライア
ント・レスポンス
型自動生成
(←を嫌う時によ
くある構成、一番
メジャー)
サービスを普通に
書く、そこからク
ライアントを自動
生成、リクエス
ト・レスポンス型
はC#のDLLとして
共有
サービスを普通に
書く、クライアン
トはそのプロジェ
クト参照から実行
時動的生成
Unified Realtime/API Engine
https://github.com/Cysharp/MagicOnion
特徴
public class TestService : ITestService
{
// パブリックメソッドがそのままgRPC定義
public async UnaryResult<int> Sum(int x, int y)
{
// async/awaitにも自然に対応
// マジカル技術によりasync Task<T>じゃなくてもawait可能
await Task.Yield();
return x + y;
}
}
// 普通のgRPCの接続を作る(MagicOnion用の特別なことはない)
var channel = new Channel("127.0.0.1:12345");
// 自然な書き味で、タイプセーフにRPC通信を実現
// C#のasync/await構文により、非同期通信も自然に見える
var client = MagicOnionClient.Create<ITestService>(channel);
var result = await client.Sum(100, 200);
クライアントもサーバーも自
然に繋がっているように見え
る(デバッガもサーバー/クラ
イアント共有でステップ実行
で繋がって動いていく)
認証、課金、クエスト、ミッション、etc...
https://logmi.jp/tech/articles/322333
適切なコードを適切なところに書く
作り込みを現実のものにする
適切なコードを適切なところに書く
作り込みを現実のものにする
mBaaSで対応しきれるかどうか
ハイパーカジュアルなら気にする必要はないけど、
ヒットを狙うモバイルゲームなら難しいでしょう
mBaaSを部分的に使うというのはある
認証だけ、課金だけ、Push通知だけ、etc...
なにをコアに思って注力するか、ですね
しかし、だからクライアントだけに注力すると、痛
い目にあう確率の方が高いと思っています
言語はなんでもいい、が、理由はいる
クライアント(Unity)がC#
CysharpのOSS郡
Unityとサーバーのcsprojを結合する
https://github.com/Cysharp/SlnMerge
C#でシナリオを書く負荷テスト(分散バッチ)ツール
https://github.com/Cysharp/DFrame/
C#でシナリオを書く負荷テスト(分散バッチ)ツール
https://github.com/Cysharp/DFrame/
C#は近年パフォーマンス向上に注力
https://www.techempower.com/benchmarks/#section=data-r19&hw=ph&test=plaintext
gRPCと一口で言っても性能は言語で千差万別
ZLogger
Zero Allocation Text/Structured Logger for .NET Core and Unity
https://github.com/Cysharp/ZLogger
InGame Realtime Server
対戦などのインゲーム用サーバー
Backend
Services
API
Server
Game
Client
Realtime
Server
P2P
P2P
Dedicated Server
P2P
Dedicated Server
Backend
Services
API
Server
Game
Client
Realtime
Server
⚫ Mirror
⚫ Photon Engine
⚫ Monobit Engine
⚫ DIY - WebSocket + Server App
⚫ DIY - WebSocket + mBaaS
⚫ DIY - TCP(UDP) + Server App
⚫ Unity Headless
Mirror
Photon Engine
Monobit Engine
WebSocket + ServerApp
WebSocket(TCP/UDP) + mBaaS(mobile backend as a Service)
TCP(UDP) + ServerApp
TCP(UDP) + Unity HeadlessApp
TCP(UDP) + ServerApp
TCP(UDP) + Unity HeadlessApp
リアルタイム通信のための双方向の型付きRPC
public interface IGamingHub : IStreamingHub<IGamingHub, IGamingHub
{
Task<Player[]> JoinAsync(string roomName, string userName, Vec
Task LeaveAsync();
Task MoveAsync(Vector3 position, Quaternion rotation);
}
public interface IGamingHubReceiver
{
void OnJoin(Player player);
void OnLeave(Player player);
void OnMove(Player player);
}
Building the Game Server both API and Realtime via c#
il.Emit(OpCodes.Ldloc_0);
il.Emit(OpCodes.Ldloc_0);
il.Emit(OpCodes.Call, typeof(AsyncDuplexStreamingCall<byte[], byte[]>).GetProperty("RequestStream").GetMethod);
il.Emit(OpCodes.Ldarg_0);
il.Emit(OpCodes.Ldfld, serializerOptionsField);
il.Emit(OpCodes.Newobj, (typeof(MarshallingClientStreamWriter<>).MakeGenericType(def.RequestType).GetConstructors().Singl
il.Emit(OpCodes.Ldloc_0);
il.Emit(OpCodes.Call, typeof(AsyncDuplexStreamingCall<byte[], byte[]>).GetProperty("ResponseStream").GetMethod);
il.Emit(OpCodes.Ldarg_0);
il.Emit(OpCodes.Ldfld, serializerOptionsField);
il.Emit(OpCodes.Newobj, (typeof(MarshallingAsyncStreamReader<>).MakeGenericType(def.ResponseType).GetConstructors().Singl
il.Emit(OpCodes.Ldarg_0);
il.Emit(OpCodes.Ldfld, serializerOptionsField);
resultType2 = typeof(DuplexStreamingResult<,>).MakeGenericType(def.RequestType, def.ResponseType);
il.Emit(OpCodes.Newobj, resultType2.GetConstructors()[0]);
MethodType t;
string requestType;
string responseType;
ITypeSymbol unwrappedOriginalResponseType;
ExtractRequestResponseType(y, out t, out requestType, ou
var id = FNV1A32.GetHashCode(y.Name);
return new MethodDefinition
{
Name = y.Name,
MethodType = t,
RequestType = requestType,
ResponseType = responseType,
UnwrappedOriginalResposneTypeSymbol = unwrappedOrigi
OriginalResponseTypeSymbol = y.ReturnType,
IsIfDebug = y.GetAttributes().FindAttributeShortName
HubId = id,
Parameters = y.Parameters.Select(p =>
{
C#で自然にサーバーとクライアントを繋げる
機能として提供するものはシンプルなRPCのみ
あとはアプリケーションの作り込みで何でも作れる
Unityにも依存しないことであらゆる使い方ができる(サーバーtoサーバーなど)
一つのシンプルなやり方で応用が効く(土管にもなるし土管以外もOK)
サーバープログラムを透明にしない
どちらにも平等に配置できることを意識したフレームワーク
サーバーもクライアントもどちらも大事
適切な場所に適切なコードを書くことで、サーバー/クライアント全体を通し
たアーキテクチャの最適化を支援する
C#で自然にサーバーとクライアントを繋げる
機能として提供するものはシンプルなRPCのみ
あとはアプリケーションの作り込みで何でも作れる
Unityにも依存しないことであらゆる使い方ができる(サーバーtoサーバーなど)
一つのシンプルなやり方で応用が効く(土管にもなるし土管以外もOK)
サーバープログラムを透明にしない
どちらにも平等に配置できることを意識したフレームワーク
サーバーもクライアントもどちらも大事
適切な場所に適切なコードを書くことで、サーバー/クライアント全体を通し
たアーキテクチャの最適化を支援する
LogicLooper
https://github.com/Cysharp/LogicLooper
MagicOnionのデフォルトはイベント駆動
(クライアントからの命令を起点に
サーバーが結果を返す)
LogicLooperはMagicOnion用の拡張で
ティックレートベースの駆動で動かせる
こちらのほうがゲーム向きな動きが可能
(AIが自動行動したり、
複数コマンドを溜めてバッチ処理したり)
エコシステムには全部乗る
未来で償却する
エコシステムには全部乗る
未来で償却する
現実的にはホスティングに困る
ステートフルサーバー
ゲームセッションとコンテナが1:1
ゲームセッションとコンテナが1:1
Other Components
管理画面やお知らせウェブビューなど
ウェブもなんだかんだで重要
ASP.NET Core MVC
普通の、フルセットのMVCフレームワーク
ミドルウェアがありテンプレートエンジンがありORMがあり……
C#ユーザーは皆これを使うので、フレームワーク選びに悩まない
情報も豊富だしコンポーネントも揃っている(認証連携など)
ASP.NET Core Blazor
C#だけでSPAを実装できるキワモノ
とはいえ、管理画面の実装などには便利
バッチ量産のためのフレームワーク
https://github.com/Cysharp/ConsoleAppFramework
ASP.NET Coreと同じ土台に乗って、
MVCフレームワーク的にCLIアプリケーションが作れる
// Foo.exe hello “world” のように書ける
class Program : ConsoleAppBase
{
static async Task Main(string[] args)
{
await Host.CreateDefaultBuilder()
.RunConsoleAppFrameworkAsync<Program>(args);
}
[Command(“hello”)]
public void Hello([Option(0)]string name)
{
Console.WriteLine($"Hello My ConsoleApp from {name}");
}
[Command(“Echo”)]
public void Echo(string name)
{
Console.WriteLine(name);
}
}
Conclusion
(当たり前)
完全統合形フレームワークという理想の現実化
クライアントとサーバーを、APIとリアルタイムを
全てをC#で統合するという理想を具現化するのがMagicOnion
ゲームサーバーの未来へ
ゲーム x サーバーはニッチなところがあり、
どの言語もパーツ(ライブラリ)が揃いきっていない場合も多い
CysharpはC#を最高のゲーム開発環境とすべく、
MagicOnionだけでなくあらゆるライブラリの提供で実現する
そしてそれは国内ローカルではなく、ワールドスタンダードを自分
達が作るという気概でやっていきます……!
Building the Game Server both API and Realtime via c#

More Related Content

What's hot (20)

PDF
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
Unity Technologies Japan K.K.
 
PPTX
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
sairoutine
 
PDF
UniTask入門
torisoup
 
PDF
Docker Compose 徹底解説
Masahito Zembutsu
 
PDF
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
モノビット エンジン
 
PDF
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
Unity Technologies Japan K.K.
 
PDF
BuildKitの概要と最近の機能
Kohei Tokunaga
 
PDF
Observableで非同期処理
torisoup
 
PDF
UniRx完全に理解した
torisoup
 
PPTX
Photon Fusionのはじめの一歩
聡 大久保
 
PDF
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
Naoya Kishimoto
 
PDF
UE4 アセットロード周り-アセット参照調査-
com044
 
PDF
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
UnityTechnologiesJapan002
 
PDF
多機能ボイチャを簡単に導入する方法
Unity Technologies Japan K.K.
 
PDF
『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER
エピック・ゲームズ・ジャパン Epic Games Japan
 
PDF
IL2CPPに関する軽い話
Wooram Yang
 
PDF
UniRx の1歩目
infinite_loop
 
PDF
サーバー知識不要!のゲームサーバー "Azure PlayFab" で長期運営タイトルを作ろう
Daisuke Masubuchi
 
PDF
ゲームの仕様書を書こうまとめ
Sugimoto Chizuru
 
PDF
目grep入門 +解説
murachue
 
【Unite Tokyo 2018】さては非同期だなオメー!async/await完全に理解しよう
Unity Technologies Japan K.K.
 
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
sairoutine
 
UniTask入門
torisoup
 
Docker Compose 徹底解説
Masahito Zembutsu
 
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
モノビット エンジン
 
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
Unity Technologies Japan K.K.
 
BuildKitの概要と最近の機能
Kohei Tokunaga
 
Observableで非同期処理
torisoup
 
UniRx完全に理解した
torisoup
 
Photon Fusionのはじめの一歩
聡 大久保
 
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
Naoya Kishimoto
 
UE4 アセットロード周り-アセット参照調査-
com044
 
【Unite Tokyo 2019】Unity Test Runnerを活用して内部品質を向上しよう
UnityTechnologiesJapan002
 
多機能ボイチャを簡単に導入する方法
Unity Technologies Japan K.K.
 
『FINAL FANTASY VII REMAKE』におけるプロファイリングと最適化事例 UNREAL FEST EXTREME 2021 SUMMER
エピック・ゲームズ・ジャパン Epic Games Japan
 
IL2CPPに関する軽い話
Wooram Yang
 
UniRx の1歩目
infinite_loop
 
サーバー知識不要!のゲームサーバー "Azure PlayFab" で長期運営タイトルを作ろう
Daisuke Masubuchi
 
ゲームの仕様書を書こうまとめ
Sugimoto Chizuru
 
目grep入門 +解説
murachue
 

Similar to Building the Game Server both API and Realtime via c# (20)

PDF
A quick tour of the Cysharp OSS
Yoshifumi Kawai
 
PDF
【Unity道場京都スペシャル4】Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
UnityTechnologiesJapan002
 
PDF
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Yoshifumi Kawai
 
PDF
【Unite Tokyo 2019】Understanding C# Struct All Things
UnityTechnologiesJapan002
 
PPTX
The evolution of c#
leverages_event
 
PDF
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
Yoshifumi Kawai
 
PDF
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
Yoshifumi Kawai
 
PPT
20010127
小野 修司
 
PDF
Roslynで体験してみるC#スクリプト #cs_fukuoka
Yuta Matsumura
 
PPTX
C#の書き方
信之 岩永
 
PPTX
C#の書き方
信之 岩永
 
PDF
20131209_buildinsidermeetup
kumake
 
PDF
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
Yoshifumi Kawai
 
PDF
Guide to Cassandra for Production Deployments
smdkk
 
PPT
2006-04-22 CLR/H #14 .NET and open source
Yoshiyuki Nakamura
 
PDF
20140830 2014年版 C #でできること
Takayoshi Tanaka
 
PPTX
広がる .Net
信之 岩永
 
PPTX
それでもC#使いたい
Tomona Nanase
 
PDF
ネットワークコマンド入力に対応したツール事例
fumoto kazuhiro
 
PDF
汎用apiサーバの構築
Hidetoshi Mori
 
A quick tour of the Cysharp OSS
Yoshifumi Kawai
 
【Unity道場京都スペシャル4】Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
UnityTechnologiesJapan002
 
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Yoshifumi Kawai
 
【Unite Tokyo 2019】Understanding C# Struct All Things
UnityTechnologiesJapan002
 
The evolution of c#
leverages_event
 
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
Yoshifumi Kawai
 
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
Yoshifumi Kawai
 
20010127
小野 修司
 
Roslynで体験してみるC#スクリプト #cs_fukuoka
Yuta Matsumura
 
C#の書き方
信之 岩永
 
C#の書き方
信之 岩永
 
20131209_buildinsidermeetup
kumake
 
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
Yoshifumi Kawai
 
Guide to Cassandra for Production Deployments
smdkk
 
2006-04-22 CLR/H #14 .NET and open source
Yoshiyuki Nakamura
 
20140830 2014年版 C #でできること
Takayoshi Tanaka
 
広がる .Net
信之 岩永
 
それでもC#使いたい
Tomona Nanase
 
ネットワークコマンド入力に対応したツール事例
fumoto kazuhiro
 
汎用apiサーバの構築
Hidetoshi Mori
 
Ad

More from Yoshifumi Kawai (20)

PDF
A Brief History of UniRx/UniTask, IUniTaskSource in Depth
Yoshifumi Kawai
 
PDF
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
Yoshifumi Kawai
 
PDF
Implements OpenTelemetry Collector in DotNet
Yoshifumi Kawai
 
PDF
Deep Dive async/await in Unity with UniTask(EN)
Yoshifumi Kawai
 
PDF
True Cloud Native Batch Workflow for .NET with MicroBatchFramework
Yoshifumi Kawai
 
PDF
Memory Management of C# with Unity Native Collections
Yoshifumi Kawai
 
PDF
Deep Dive async/await in Unity with UniTask(UniRx.Async)
Yoshifumi Kawai
 
PDF
Binary Reading in C#
Yoshifumi Kawai
 
PPTX
RuntimeUnitTestToolkit for Unity(English)
Yoshifumi Kawai
 
PPTX
RuntimeUnitTestToolkit for Unity
Yoshifumi Kawai
 
PDF
NextGen Server/Client Architecture - gRPC + Unity + C#
Yoshifumi Kawai
 
PDF
How to make the Fastest C# Serializer, In the case of ZeroFormatter
Yoshifumi Kawai
 
PDF
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
Yoshifumi Kawai
 
PDF
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
Yoshifumi Kawai
 
PDF
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
Yoshifumi Kawai
 
PDF
Photon Server Deep Dive - View from Implmentation of PhotonWire, Multiplayer ...
Yoshifumi Kawai
 
PDF
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用
Yoshifumi Kawai
 
PPTX
Clash of Oni Online - VR Multiplay Sword Action
Yoshifumi Kawai
 
PDF
LINQPad with LINQ to BigQuery - Desktop Client for BigQuery
Yoshifumi Kawai
 
PDF
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Yoshifumi Kawai
 
A Brief History of UniRx/UniTask, IUniTaskSource in Depth
Yoshifumi Kawai
 
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
Yoshifumi Kawai
 
Implements OpenTelemetry Collector in DotNet
Yoshifumi Kawai
 
Deep Dive async/await in Unity with UniTask(EN)
Yoshifumi Kawai
 
True Cloud Native Batch Workflow for .NET with MicroBatchFramework
Yoshifumi Kawai
 
Memory Management of C# with Unity Native Collections
Yoshifumi Kawai
 
Deep Dive async/await in Unity with UniTask(UniRx.Async)
Yoshifumi Kawai
 
Binary Reading in C#
Yoshifumi Kawai
 
RuntimeUnitTestToolkit for Unity(English)
Yoshifumi Kawai
 
RuntimeUnitTestToolkit for Unity
Yoshifumi Kawai
 
NextGen Server/Client Architecture - gRPC + Unity + C#
Yoshifumi Kawai
 
How to make the Fastest C# Serializer, In the case of ZeroFormatter
Yoshifumi Kawai
 
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
Yoshifumi Kawai
 
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
Yoshifumi Kawai
 
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
Yoshifumi Kawai
 
Photon Server Deep Dive - View from Implmentation of PhotonWire, Multiplayer ...
Yoshifumi Kawai
 
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用
Yoshifumi Kawai
 
Clash of Oni Online - VR Multiplay Sword Action
Yoshifumi Kawai
 
LINQPad with LINQ to BigQuery - Desktop Client for BigQuery
Yoshifumi Kawai
 
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Yoshifumi Kawai
 
Ad

Recently uploaded (8)

PDF
PostgreSQL18新機能紹介(db tech showcase 2025 発表資料)
NTT DATA Technology & Innovation
 
PDF
人気ブロックチェーン基盤「Hyperledger Fabric」最新版を動かしてみた!
LFDT Tokyo Meetup
 
PDF
[Hardening Designers Confernece 2025]ランサムウェアでの見えざるログ・見えるログ
kataware
 
PDF
20250711_日本IBM ミドルウエア・ユーザー研究会(JIMUC)総会_中村会長資料.pdf
ChikakoInami1
 
PDF
20250710_Devinで切り拓くDB革命_〜価値創出に集中せよ〜.pdf
Masaki Yamakawa
 
PDF
Hyperledger Fabric最新v3.x系での機能強化、変更点にキャッチアップ!
LFDT Tokyo Meetup
 
PDF
Hyperledger Fabric公式サンプル fabric-samples徹底解説
LFDT Tokyo Meetup
 
PDF
プライバシ保護のためのインターネットアーキテクチャの進化 (2025-07-11)
Jun Kurihara
 
PostgreSQL18新機能紹介(db tech showcase 2025 発表資料)
NTT DATA Technology & Innovation
 
人気ブロックチェーン基盤「Hyperledger Fabric」最新版を動かしてみた!
LFDT Tokyo Meetup
 
[Hardening Designers Confernece 2025]ランサムウェアでの見えざるログ・見えるログ
kataware
 
20250711_日本IBM ミドルウエア・ユーザー研究会(JIMUC)総会_中村会長資料.pdf
ChikakoInami1
 
20250710_Devinで切り拓くDB革命_〜価値創出に集中せよ〜.pdf
Masaki Yamakawa
 
Hyperledger Fabric最新v3.x系での機能強化、変更点にキャッチアップ!
LFDT Tokyo Meetup
 
Hyperledger Fabric公式サンプル fabric-samples徹底解説
LFDT Tokyo Meetup
 
プライバシ保護のためのインターネットアーキテクチャの進化 (2025-07-11)
Jun Kurihara
 

Building the Game Server both API and Realtime via c#