Suche senden
Hochladen
Building the Game Server both API and Realtime via c#
•
3 gefällt mir
•
54,376 views
Yoshifumi Kawai
Folgen
Report: https://dev.classmethod.jp/articles/game-server-development-seminar-by-cysharp/
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 67
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
UnityTechnologiesJapan002
MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~
torisoup
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
MagicOnion入門
MagicOnion入門
torisoup
オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫
Yuta Imai
Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話
torisoup
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
Yoshifumi Kawai
Unity開発で使える設計の話+Zenjectの紹介
Unity開発で使える設計の話+Zenjectの紹介
torisoup
Empfohlen
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
UnityTechnologiesJapan002
MagicOnion~C#でゲームサーバを開発しよう~
MagicOnion~C#でゲームサーバを開発しよう~
torisoup
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
MagicOnion入門
MagicOnion入門
torisoup
オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫
Yuta Imai
Unityでオンラインゲーム作った話
Unityでオンラインゲーム作った話
torisoup
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
Yoshifumi Kawai
Unity開発で使える設計の話+Zenjectの紹介
Unity開発で使える設計の話+Zenjectの紹介
torisoup
The Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnion
Yoshifumi Kawai
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
infinite_loop
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
Naoya Kishimoto
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
Yoshifumi Kawai
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
Yugo Shimizu
Riderはいいぞ!
Riderはいいぞ!
UnityTechnologiesJapan002
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Yoshifumi Kawai
Unityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTips
Unity Technologies Japan K.K.
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
sairoutine
【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things
UnityTechnologiesJapan002
ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計
sairoutine
Unityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechcon
DeNA
UniTask入門
UniTask入門
torisoup
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
Game Tools & Middleware Forum
ゲームサーバ開発現場の考え方
ゲームサーバ開発現場の考え方
Daisaku Mochizuki
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
infinite_loop
UniRx完全に理解した
UniRx完全に理解した
torisoup
Architecting on Alibaba Cloud - 超基礎編 -
Architecting on Alibaba Cloud - 超基礎編 -
真吾 吉田
Hyper-V 仮想マシンをAzure ARMへV2C移行...のメモ
Hyper-V 仮想マシンをAzure ARMへV2C移行...のメモ
wintechq
Weitere ähnliche Inhalte
Was ist angesagt?
The Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnion
Yoshifumi Kawai
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
infinite_loop
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
Naoya Kishimoto
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
Yoshifumi Kawai
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
Yugo Shimizu
Riderはいいぞ!
Riderはいいぞ!
UnityTechnologiesJapan002
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Yoshifumi Kawai
Unityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTips
Unity Technologies Japan K.K.
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
sairoutine
【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things
UnityTechnologiesJapan002
ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計
sairoutine
Unityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechcon
DeNA
UniTask入門
UniTask入門
torisoup
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
Game Tools & Middleware Forum
ゲームサーバ開発現場の考え方
ゲームサーバ開発現場の考え方
Daisaku Mochizuki
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
infinite_loop
UniRx完全に理解した
UniRx完全に理解した
torisoup
Was ist angesagt?
(20)
The Usage and Patterns of MagicOnion
The Usage and Patterns of MagicOnion
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
[CEDEC 2021] 運用中タイトルでも怖くない! 『メルクストーリア』におけるハイパフォーマンス・ローコストなリアルタイム通信技術の導入事例
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
Riderはいいぞ!
Riderはいいぞ!
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityでパフォーマンスの良いUIを作る為のTips
Unityでパフォーマンスの良いUIを作る為のTips
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
CEDEC2019 大規模モバイルゲーム運用におけるマスタデータ管理事例
【Unite Tokyo 2019】Understanding C# Struct All Things
【Unite Tokyo 2019】Understanding C# Struct All Things
ゲームエンジニアのためのデータベース設計
ゲームエンジニアのためのデータベース設計
Unityネイティブプラグインマニアクス #denatechcon
Unityネイティブプラグインマニアクス #denatechcon
UniTask入門
UniTask入門
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
FINAL FANTASY XVにおけるPhoton利用事例 - Photon運営事務局 GTMF 2018 OSAKA / TOKYO
ゲームサーバ開発現場の考え方
ゲームサーバ開発現場の考え方
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
UniRx完全に理解した
UniRx完全に理解した
Ähnlich wie Building the Game Server both API and Realtime via c#
Architecting on Alibaba Cloud - 超基礎編 -
Architecting on Alibaba Cloud - 超基礎編 -
真吾 吉田
Hyper-V 仮想マシンをAzure ARMへV2C移行...のメモ
Hyper-V 仮想マシンをAzure ARMへV2C移行...のメモ
wintechq
クラウド概要 by Engine Yard
クラウド概要 by Engine Yard
Yu Kitazume
20120508 aws meister-rds-public
20120508 aws meister-rds-public
Amazon Web Services Japan
Microsoft Share Point on AWS
Microsoft Share Point on AWS
Amazon Web Services Japan
ATC301 AWS re:Invent 2017/11/27 - 1 Million Bids in 100ms - Using AWS to Powe...
ATC301 AWS re:Invent 2017/11/27 - 1 Million Bids in 100ms - Using AWS to Powe...
Amazon Web Services Japan
Amazon Web Services 最新事例集
Amazon Web Services 最新事例集
SORACOM, INC
BigQuery + Fluentd
BigQuery + Fluentd
徹 上野山
OSS on Azure で構築するウェブアプリケーション
OSS on Azure で構築するウェブアプリケーション
Daisuke Masubuchi
20201118 AWS Black Belt Online Seminar 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説
20201118 AWS Black Belt Online Seminar 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説
Amazon Web Services Japan
[B15] HiRDBのSQL実行プランはどのように決定しているのか?by Masaaki Narita
[B15] HiRDBのSQL実行プランはどのように決定しているのか?by Masaaki Narita
Insight Technology, Inc.
Serverless backendformobilegame and_aws-appsync_gamingtechnight-2
Serverless backendformobilegame and_aws-appsync_gamingtechnight-2
Amazon Web Services Japan
20200214 c#tokyo lt_upload
20200214 c#tokyo lt_upload
Shuhei Nishizawa
20180508 AWS Black Belt Online Seminar AWS Greengrassで実現するエッジコンピューティング
20180508 AWS Black Belt Online Seminar AWS Greengrassで実現するエッジコンピューティング
Amazon Web Services Japan
20180220 AWS Black Belt Online Seminar - Amazon Container Services
20180220 AWS Black Belt Online Seminar - Amazon Container Services
Amazon Web Services Japan
Growing up serverless
Growing up serverless
Amazon Web Services Japan
Amazon Elastic MapReduce@Hadoop Conference Japan 2011 Fall
Amazon Elastic MapReduce@Hadoop Conference Japan 2011 Fall
Shinpei Ohtani
[よくわかるクラウドデータベース] CassandraからAmazon DynamoDBへの移行事例
[よくわかるクラウドデータベース] CassandraからAmazon DynamoDBへの移行事例
Amazon Web Services Japan
C++ AMPを使ってみよう
C++ AMPを使ってみよう
Osamu Masutani
ゲームインフラと解析基盤 そのものの考え方を変えるAWS
ゲームインフラと解析基盤 そのものの考え方を変えるAWS
Yasuhiro Horiuchi
Ähnlich wie Building the Game Server both API and Realtime via c#
(20)
Architecting on Alibaba Cloud - 超基礎編 -
Architecting on Alibaba Cloud - 超基礎編 -
Hyper-V 仮想マシンをAzure ARMへV2C移行...のメモ
Hyper-V 仮想マシンをAzure ARMへV2C移行...のメモ
クラウド概要 by Engine Yard
クラウド概要 by Engine Yard
20120508 aws meister-rds-public
20120508 aws meister-rds-public
Microsoft Share Point on AWS
Microsoft Share Point on AWS
ATC301 AWS re:Invent 2017/11/27 - 1 Million Bids in 100ms - Using AWS to Powe...
ATC301 AWS re:Invent 2017/11/27 - 1 Million Bids in 100ms - Using AWS to Powe...
Amazon Web Services 最新事例集
Amazon Web Services 最新事例集
BigQuery + Fluentd
BigQuery + Fluentd
OSS on Azure で構築するウェブアプリケーション
OSS on Azure で構築するウェブアプリケーション
20201118 AWS Black Belt Online Seminar 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説
20201118 AWS Black Belt Online Seminar 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説
[B15] HiRDBのSQL実行プランはどのように決定しているのか?by Masaaki Narita
[B15] HiRDBのSQL実行プランはどのように決定しているのか?by Masaaki Narita
Serverless backendformobilegame and_aws-appsync_gamingtechnight-2
Serverless backendformobilegame and_aws-appsync_gamingtechnight-2
20200214 c#tokyo lt_upload
20200214 c#tokyo lt_upload
20180508 AWS Black Belt Online Seminar AWS Greengrassで実現するエッジコンピューティング
20180508 AWS Black Belt Online Seminar AWS Greengrassで実現するエッジコンピューティング
20180220 AWS Black Belt Online Seminar - Amazon Container Services
20180220 AWS Black Belt Online Seminar - Amazon Container Services
Growing up serverless
Growing up serverless
Amazon Elastic MapReduce@Hadoop Conference Japan 2011 Fall
Amazon Elastic MapReduce@Hadoop Conference Japan 2011 Fall
[よくわかるクラウドデータベース] CassandraからAmazon DynamoDBへの移行事例
[よくわかるクラウドデータベース] CassandraからAmazon DynamoDBへの移行事例
C++ AMPを使ってみよう
C++ AMPを使ってみよう
ゲームインフラと解析基盤 そのものの考え方を変えるAWS
ゲームインフラと解析基盤 そのものの考え方を変えるAWS
Mehr von Yoshifumi Kawai
A quick tour of the Cysharp OSS
A quick tour of the Cysharp OSS
Yoshifumi Kawai
A Brief History of UniRx/UniTask, IUniTaskSource in Depth
A Brief History of UniRx/UniTask, IUniTaskSource in Depth
Yoshifumi Kawai
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
Yoshifumi Kawai
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
Yoshifumi Kawai
Implements OpenTelemetry Collector in DotNet
Implements OpenTelemetry Collector in DotNet
Yoshifumi Kawai
Deep Dive async/await in Unity with UniTask(EN)
Deep Dive async/await in Unity with UniTask(EN)
Yoshifumi Kawai
True Cloud Native Batch Workflow for .NET with MicroBatchFramework
True Cloud Native Batch Workflow for .NET with MicroBatchFramework
Yoshifumi Kawai
Memory Management of C# with Unity Native Collections
Memory Management of C# with Unity Native Collections
Yoshifumi Kawai
Deep Dive async/await in Unity with UniTask(UniRx.Async)
Deep Dive async/await in Unity with UniTask(UniRx.Async)
Yoshifumi Kawai
Binary Reading in C#
Binary Reading in C#
Yoshifumi Kawai
RuntimeUnitTestToolkit for Unity(English)
RuntimeUnitTestToolkit for Unity(English)
Yoshifumi Kawai
RuntimeUnitTestToolkit for Unity
RuntimeUnitTestToolkit for Unity
Yoshifumi Kawai
NextGen Server/Client Architecture - gRPC + Unity + C#
NextGen Server/Client Architecture - gRPC + Unity + C#
Yoshifumi Kawai
How to make the Fastest C# Serializer, In the case of ZeroFormatter
How to make the Fastest C# Serializer, In the case of ZeroFormatter
Yoshifumi Kawai
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
Yoshifumi Kawai
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
Yoshifumi Kawai
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
Yoshifumi Kawai
Photon Server Deep Dive - View from Implmentation of PhotonWire, Multiplayer ...
Photon Server Deep Dive - View from Implmentation of PhotonWire, Multiplayer ...
Yoshifumi Kawai
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用
Yoshifumi Kawai
Clash of Oni Online - VR Multiplay Sword Action
Clash of Oni Online - VR Multiplay Sword Action
Yoshifumi Kawai
Mehr von Yoshifumi Kawai
(20)
A quick tour of the Cysharp OSS
A quick tour of the Cysharp OSS
A Brief History of UniRx/UniTask, IUniTaskSource in Depth
A Brief History of UniRx/UniTask, IUniTaskSource in Depth
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
ライブラリ作成のすゝめ - 事例から見る個人OSS開発の効能
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
Unity C#と.NET Core(MagicOnion) C# そしてKotlinによるハーモニー
Implements OpenTelemetry Collector in DotNet
Implements OpenTelemetry Collector in DotNet
Deep Dive async/await in Unity with UniTask(EN)
Deep Dive async/await in Unity with UniTask(EN)
True Cloud Native Batch Workflow for .NET with MicroBatchFramework
True Cloud Native Batch Workflow for .NET with MicroBatchFramework
Memory Management of C# with Unity Native Collections
Memory Management of C# with Unity Native Collections
Deep Dive async/await in Unity with UniTask(UniRx.Async)
Deep Dive async/await in Unity with UniTask(UniRx.Async)
Binary Reading in C#
Binary Reading in C#
RuntimeUnitTestToolkit for Unity(English)
RuntimeUnitTestToolkit for Unity(English)
RuntimeUnitTestToolkit for Unity
RuntimeUnitTestToolkit for Unity
NextGen Server/Client Architecture - gRPC + Unity + C#
NextGen Server/Client Architecture - gRPC + Unity + C#
How to make the Fastest C# Serializer, In the case of ZeroFormatter
How to make the Fastest C# Serializer, In the case of ZeroFormatter
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
ZeroFormatterに見るC#で最速のシリアライザを作成する100億の方法
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
ZeroFormatter/MagicOnion - Fastest C# Serializer/gRPC based C# RPC
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
What, Why, How Create OSS Libraries - 過去に制作した30のライブラリから見るC#コーディングテクニックと個人OSSの...
Photon Server Deep Dive - View from Implmentation of PhotonWire, Multiplayer ...
Photon Server Deep Dive - View from Implmentation of PhotonWire, Multiplayer ...
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用
Photon Server Deep Dive - PhotonWireの実装から見つめるPhotonServerの基礎と応用
Clash of Oni Online - VR Multiplay Sword Action
Clash of Oni Online - VR Multiplay Sword Action
Kürzlich hochgeladen
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
Kürzlich hochgeladen
(8)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Building the Game Server both API and Realtime via c#
1.
2.
河合 宜文 /
Kawai Yoshifumi / @neuecc Cysharp, Inc. Cygames C#大統一理論 C#
3.
C#の可能性を切り開いていく https://github.com/Cysharp
4.
5.
OutGame API Server
6.
アウトゲーム(API Server) インゲーム(Realtime Server)
7.
Backend Services API Server Game Client Realtime Server
8.
Backend Services API Server Game Client Realtime Server RDBMS Redis
9.
ただのHTTPサーバー よって言語はなんでもいい 非同期処理に専用構文 型付き
10.
RDBMS + Cache(Redis)が好まれる 垂直分割
vs 水平分割
11.
RDBMS + Cache(Redis)が好まれる 垂直分割
vs 水平分割
12.
無限スケール
13.
DB管理はGUIツールを使いたい 水平分割はツールと相性最悪
14.
永久に保存する領域 – データベース 期間保存
–RedisにExpire付きで保存 リクエスト単位 - HttpContext.Items アプリケーション単位 – Static変数
15.
インメモリKey-Valueストア RDSの不得意な部分を補える
16.
C#最速のシリアライザ https://github.com/neuecc/MessagePack-CSharp
17.
究極の埋込み型インメモリDB https://github.com/Cysharp/MasterMemory/
18.
JSON(MessagePack/Protobuf)を返す クライアント/サーバーのスキーマ共有が鍵
19.
中間言語からコード生成する IDL(JSON/XML/proto/etc...) サーバーコード (PHP/Ruby/Go/C#/etc...) クライアントコード (C#/Swift/JavaScript/etc...)
20.
PROS CONS
21.
protoはC#/* 任意の言語 */ではない
22.
C# as a
Schema C#に固定することで 通信定義そのものをC#で表現する
23.
言語の違うREST Response型を別々 に書く APIクライアント を手書きする (ザ・マイクロ サービスみたいな 構成) 中間IDLを書く そこからクライア ント・レスポンス 型自動生成 (←を嫌う時によ くある構成、一番 メジャー) サービスを普通に 書く、そこからク ライアントを自動 生成、リクエス ト・レスポンス型 はC#のDLLとして 共有
24.
言語の違うREST Response型を別々 に書く APIクライアント を手書きする (ザ・マイクロ サービスみたいな 構成) 中間IDLを書く そこからクライア ント・レスポンス 型自動生成 (←を嫌う時によ くある構成、一番 メジャー) サービスを普通に 書く、そこからク ライアントを自動 生成、リクエス ト・レスポンス型 はC#のDLLとして 共有 サービスを普通に 書く、クライアン トはそのプロジェ クト参照から実行 時動的生成
25.
Unified Realtime/API Engine https://github.com/Cysharp/MagicOnion 特徴
26.
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); クライアントもサーバーも自 然に繋がっているように見え る(デバッガもサーバー/クラ イアント共有でステップ実行 で繋がって動いていく)
27.
認証、課金、クエスト、ミッション、etc...
28.
https://logmi.jp/tech/articles/322333
29.
適切なコードを適切なところに書く 作り込みを現実のものにする
30.
適切なコードを適切なところに書く 作り込みを現実のものにする mBaaSで対応しきれるかどうか ハイパーカジュアルなら気にする必要はないけど、 ヒットを狙うモバイルゲームなら難しいでしょう mBaaSを部分的に使うというのはある 認証だけ、課金だけ、Push通知だけ、etc... なにをコアに思って注力するか、ですね しかし、だからクライアントだけに注力すると、痛 い目にあう確率の方が高いと思っています
31.
言語はなんでもいい、が、理由はいる クライアント(Unity)がC# CysharpのOSS郡
32.
Unityとサーバーのcsprojを結合する https://github.com/Cysharp/SlnMerge
33.
C#でシナリオを書く負荷テスト(分散バッチ)ツール https://github.com/Cysharp/DFrame/
34.
C#でシナリオを書く負荷テスト(分散バッチ)ツール https://github.com/Cysharp/DFrame/
35.
C#は近年パフォーマンス向上に注力 https://www.techempower.com/benchmarks/#section=data-r19&hw=ph&test=plaintext
36.
gRPCと一口で言っても性能は言語で千差万別
37.
ZLogger Zero Allocation Text/Structured
Logger for .NET Core and Unity https://github.com/Cysharp/ZLogger
38.
InGame Realtime Server
39.
対戦などのインゲーム用サーバー
40.
Backend Services API Server Game Client Realtime Server P2P
41.
P2P Dedicated Server
42.
P2P Dedicated Server
43.
Backend Services API Server Game Client Realtime Server
44.
⚫ Mirror ⚫ Photon
Engine ⚫ Monobit Engine ⚫ DIY - WebSocket + Server App ⚫ DIY - WebSocket + mBaaS ⚫ DIY - TCP(UDP) + Server App ⚫ Unity Headless
45.
Mirror
46.
Photon Engine Monobit Engine
47.
WebSocket + ServerApp WebSocket(TCP/UDP)
+ mBaaS(mobile backend as a Service)
48.
TCP(UDP) + ServerApp TCP(UDP)
+ Unity HeadlessApp
49.
TCP(UDP) + ServerApp TCP(UDP)
+ Unity HeadlessApp
50.
リアルタイム通信のための双方向の型付き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); }
51.
52.
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 => {
53.
C#で自然にサーバーとクライアントを繋げる 機能として提供するものはシンプルなRPCのみ あとはアプリケーションの作り込みで何でも作れる Unityにも依存しないことであらゆる使い方ができる(サーバーtoサーバーなど) 一つのシンプルなやり方で応用が効く(土管にもなるし土管以外もOK) サーバープログラムを透明にしない どちらにも平等に配置できることを意識したフレームワーク サーバーもクライアントもどちらも大事 適切な場所に適切なコードを書くことで、サーバー/クライアント全体を通し たアーキテクチャの最適化を支援する
54.
C#で自然にサーバーとクライアントを繋げる 機能として提供するものはシンプルなRPCのみ あとはアプリケーションの作り込みで何でも作れる Unityにも依存しないことであらゆる使い方ができる(サーバーtoサーバーなど) 一つのシンプルなやり方で応用が効く(土管にもなるし土管以外もOK) サーバープログラムを透明にしない どちらにも平等に配置できることを意識したフレームワーク サーバーもクライアントもどちらも大事 適切な場所に適切なコードを書くことで、サーバー/クライアント全体を通し たアーキテクチャの最適化を支援する
55.
LogicLooper https://github.com/Cysharp/LogicLooper MagicOnionのデフォルトはイベント駆動 (クライアントからの命令を起点に サーバーが結果を返す) LogicLooperはMagicOnion用の拡張で ティックレートベースの駆動で動かせる こちらのほうがゲーム向きな動きが可能 (AIが自動行動したり、 複数コマンドを溜めてバッチ処理したり)
56.
エコシステムには全部乗る 未来で償却する
57.
エコシステムには全部乗る 未来で償却する
58.
現実的にはホスティングに困る ステートフルサーバー
59.
ゲームセッションとコンテナが1:1
60.
ゲームセッションとコンテナが1:1
61.
Other Components
62.
管理画面やお知らせウェブビューなど ウェブもなんだかんだで重要 ASP.NET Core MVC 普通の、フルセットのMVCフレームワーク ミドルウェアがありテンプレートエンジンがありORMがあり…… C#ユーザーは皆これを使うので、フレームワーク選びに悩まない 情報も豊富だしコンポーネントも揃っている(認証連携など) ASP.NET
Core Blazor C#だけでSPAを実装できるキワモノ とはいえ、管理画面の実装などには便利
63.
バッチ量産のためのフレームワーク 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); } }
64.
Conclusion
65.
(当たり前)
66.
完全統合形フレームワークという理想の現実化 クライアントとサーバーを、APIとリアルタイムを 全てをC#で統合するという理想を具現化するのがMagicOnion ゲームサーバーの未来へ ゲーム x サーバーはニッチなところがあり、 どの言語もパーツ(ライブラリ)が揃いきっていない場合も多い CysharpはC#を最高のゲーム開発環境とすべく、 MagicOnionだけでなくあらゆるライブラリの提供で実現する そしてそれは国内ローカルではなく、ワールドスタンダードを自分 達が作るという気概でやっていきます……!
Jetzt herunterladen