SlideShare a Scribd company logo
1 of 50
Download to read offline
ゲームサーバ
開発現場の考え方

1
今日のお話
ゲームサーバってどうやって作るの?
普通のWebサーバと何が違うの?
作る時に気にすることは?
そんな疑問にお答えします!
2
略歴
ゲーム開発を7年ほど
殆どがiアプリ or スマフォアプリ
主にサーバ、ここ2年はクライアントメイン
サーバは主にJava(Tomcat)
クライアントはJava(iアプリ)、C#(Unity)
3
はじめに

今回の内容は、全て私一個人の経験則
に基づいた考え方です。ご了承下さい。
資料は後ほど公開いたします

4
プロジェクト開始
プロジェクト開始
パズドラ風のゲームを開発する事になりました
パズドラ風ゲームの特徴・・・
通信はHTTPのみ。
クライアントはネイティブアプリ。
起動後はメニュー画面(フレンド、ガチャ、ユニット編成、ク
エスト選択など)。
クエスト部分はクライアントのみで遊び、結果をサーバに送
信。
6
パズドラ風ゲーム
サーバ
ロ
グ
イ
ン

フ
レ
ン
ド

ガ
チ
ャ

ユ
ニ
ッ
ト
編
成

ク
エ
ス
ト
受
託

ク
エ
ス
ト
結
果

クエスト開始

タイトル
画面

ゲーム開始

メニュー
画面

クエスト終了

クエスト
画面

7
開発体制
プロデューサー(統括、予算の責任者)
ディレクター(クオリティの責任者)
プランナー(仕様、データ作成)
デザイナー(絵、UIレイアウト)
プログラマー
8
最初に

ゲームの概要を理解した段階で、まずは
全体のアーキテクチャを検討する。

9
想定するシステム構成
KVS

DB(Master)

DB(Slave)

DB(Slave)
・・・

Webサーバ
クライアント
クライアント
クライアント
クライアント

Webサーバ

・・・

クライアント
クライアント
クライアント
クライアント
10
通信システム
リアルタイム通信が不要であればHTTP
送受信(POST)するデータ形式は?
XML, JSON, MessagePack, Google Protocol
Buffers, 独自シリアライズ
通信の頻度とデータ量、デシリアライズ処理の重
さ、開発&デバッグのやりやすさなどから検討(慣
れないうちはJSONオススメ)
11
想定負荷
例)DAU(Daily Active Users) 10万
10万 x 20 Login/日= 200万 Login/日 = 23 Login/秒
3倍して 23 x 3 ≒ 70 Login/秒 これが日々のピーク
Webサーバ1台で12程度さばけると仮定すると、Webサーバ6台
となる。(この時点はざっくり)
基本的にログインが最も重い(多くのデータを読み込み、送信
する必要がある)ので、まずはログインの負荷を目安に考える。

12
システム構成案
Web サーバ6台
DB(Master)1台、DB(Slave)2台
KVS 1台
Webサーバからのコネクション数は、DB(Master):30,
DB(Slave):50, KVS:100とする
要求を満たす最もシンプルな構成を心がける
無駄に複雑な構成にして失敗するケースは多い
13
言語、ミドルウェア
言語やミドルウェア、フレームワークを決める
慣れや実績で決める
Webサーバ:Tomcat(Java), Seasar2(s2jdbc)
DBサーバ:MySQL
KVS:memcached
クライアント:Unity
14
システム構成
KVS

DB(Master)

memcached

MySQL

DB(Slave)

30

100

MySQL

Webサーバ
クライアント
クライアント
クライアント
クライアント

DB(Slave)
50

x6

MySQL

Tomcat	
 +	
 Seasar2

クライアント
クライアント
クライアント
クライアント

Unity

15
基盤開発

16
基盤開発
通信処理基盤
DB処理基盤
ソースコード自動生成ツール
マスターデータ用ツール
チーム開発用環境構築
17
通信処理基盤
MVC形式 or チャンク形式
MVC形式:1つの通信に1つの機能
チャンク形式:1つの通信に複数の機能
どちらもメリット・デメリット存在す
る。(個人的にはチャンク形式を採用)

18
通信処理基盤
MVC形式
ログインリクエスト
処理が1対1
ログインレスポンス

クライ
アント

に対応

フレンド承認リクエスト
フレンド承認レスポンス

サーバ

「フレンド承認レスポンス」に最新のフレ
ンドリストを組み込みたい場合、サーバ・
クライアントの両方で対応が必要

19
通信処理基盤
MVC形式
メリット
分かりやすい
フレームワークが既存で存在する
デメリット
通信の設計変更毎に実装作業が発生する
20
通信処理基盤
チャンク形式
クエストリスト

フレンドリスト

ログイン

ログイン フレンドリスト クエストリスト

クライ
アント

フレンドリスト
フレンド承認

各チャンク
の振り分け
処理が必要

フレンド承認

フレンドリスト

サーバ

「フレンド承認」に最新のフレンドリスト
を組み込みたい場合、クライアントが「フ
レンドリスト」を組み込むだけでOK

21
通信処理基盤
チャンク形式
メリット
仕様変更に柔軟に対応可能
細い回線の時に威力を発揮
デメリット
機能の振り分け処理などのフレームワークの開発が必要
慣れてないとバグを生みやすい

22
DB処理基盤
ER図作成方法、DDL文出力方法、プログ
ラマ間での共有方法を決める(既成のツー
ルで良い)
DBのマイグレーション(テーブルのカラ
ム変更など)方法に関してはこれといって
決め手はない。地道にAlter Table文を書い
てプログラマ間で共有するぐらい。
23
ソースコード自動生成ツー
ル
定型文的なソースは、極力ソースコードを生成するツールを自作し
たい
特にサーバ・クライアント間で共有するソース(通信のクラス、
define、enum、マスターデータ)
自動生成の元データ形式は例えば以下
通信のクラス:JSON
define, enum:Excel or CSV
マスターデータ(後述):Excel
24
ソースコード自動生成ツー
ル
“login” : {
“request” : {
“id” : “string”,
“password” : “string”
},
“response” : {
“result” : “int”
}
}
通信データ定義JSON

public class LoginRequest {
public String id;
public String password;
}

public class LoginResponse {
public int result;
}
public class LoginProcess {
private LoginRequest request;
private LoginResponse response;
public void exec() {
// サーバのログイン処理を記述
}
}

出力ソースコード

25
ソースコード自動生成ツー
ル
MONEY_MAX

int

999999

MONEY

string

Gem

SWORD

enum(WeaponType) 1

GUN

enum(WeaponType) 2

ROD

enum(WeaponType) 3

define, enum定義CSV
public class Definition {
public static final int MONEY_MAX = 999999;
public static final String MONEY = “Gem”;
}

public enum WeaponType {
SWORD = 1,
GUN = 2,
ROD = 3,
}

出力ソースコード
26
マスターデータ用ツール
マスターデータとは:ゲームで利用する
各種固定データ
データをプログラムで処理出来る形式
(JSON, バイナリなど)に変換
サーバ・クライアントで読み込む用の
ソースコードも生成する
27
マスターデータ用ツール
id

name

attack

1

スライム

3

2

ゴブリン

15

3

ドラゴン

750

モンスター定義Excel
“Monster” : {[
{“id” : 1, “name” : ”スライム”, “attack” : 3},
{“id” : 2, “name” : ”ゴブリン”, “attack” : 15},
{“id” : 3, “name” : ”ドラゴン”, “attack” : 750},
]}

モンスターデータJSON

public class MonsterData {
public final int id;
public final string name;
public final int attack;
}

モンスターデータ
ソースコード
28
チーム開発用環境構築
ファイル共有(svn)
コミット内容をメールで共有
自動ビルド環境(Jenkins)
ソースコード静的解析(Coverity)
29
基盤開発まとめ
ここまでは経験豊富なベテラン開発者で固めると
良い。特にゲーム経験のある方の主導で構築する
べき。
何かチャレンジしたいことがあればこの時期に検
証の日程と目標を定めておくこと。
この時期の過ごし方で、プロジェクトがデスマー
チ化するかはほぼ決まる、技術者にとってプロ
ジェクトで最も重要な時期になる。
30
機能実装

31
機能実装
タスク単位の工数見積は、全力の2倍。作業は見積の
半分を目標。
例:全力で2日なら見積もり4日、但し2日で完了
を目標にする。
作業内容を洗い出して、不安な箇所や不明点を解決
してから着手する
上記2点を守れればスケジュールの遅延はほぼでない
32
サーバ・クライアント
同一人物開発
サーバ・クライアントの、同一開発者による実装オススメ
機能実装段階でのサーバなんて単なるデータ処理。作れて当たり前と考
えるべし。
クライアントのUIと一緒に作ることで工数を大幅に削減できる。(例:
サーバ5日、クライアント5日のタスクを、サーバ&クライアント合わせ
て3日で実装)
メリットは挙げきれない。コミュニケーション不要、通信の設計書不要、
処理の最適化が可能、単体テスト簡略化(クライアント実装 単体テス
トコード)、仕様変更&バグ修正容易、問題解析・対応能力向上、様々
な実装方法を理解することでコーディングセンスが向上、技術力向上

33
サーバ・クライアント
同一人物開発
注意点
サーバ技術者 = クライアント開発
リソース(画像、音声など)管理に注意。省メモリを意識し、使い
終わったら解放する。
画面を常に動かす。固まらせない。
クライアント技術者 = サーバ開発
DBの勉強期間は十分に取る。最初は触らせないぐらいでも良い。
危険なコード(デッドロック、無限ループ)に注意する。

34
実装時の注意点
実装時の注意点
資産は減らしてから増やす
アイテムの購入やトレード、移動などの際には、必ず「減らす」
後に「増やす」
例)アイテム購入時は、お金を減らしてからアイテムデータを
作る
逆だと何かの問題により処理が中断された場合、資産の無限増殖
(デュープ)が出来る危険性がある。
特定のユーザの「得」は、他のユーザの「損」
但し、問題発生時にユーザは不利益を被る。ログを残して補填対
応を適切に実施する必要がある。
36
実装時の注意点
チート対策
チートはされる。様々な方法でチートされる。
プレイ中のメモリ書き換え、通信データ改ざん
クライアントは嘘をつく。チートされても最悪の事態は回避出来
るような仕様にするべき。また、クライアントから送信されたデー
タは、全パラメータをチェックする。
ユーザの資産(お金、アイテム等)は必ずサーバで生成する。
(ガチャ、ドロップアイテム等)
乱数アルゴリズムはたまに質の悪いのがあるので注意。メル
センヌ・ツイスタはオープンソースの実装もありオススメ。
37
ログ
ログは2種類。ユーザの行動ログ、システムログ
ユーザの行動ログ:ユーザからの問題やクレームの
解析、運営のための統計データに利用(特にユーザ
の資産に関わる部分は必ず取ること)
検索システム、統計処理が必要
サーバのシステムログ:問題検知、解析に利用
担当者への通知の仕組みが必要
38
その他

開発者を増やすならこの時点で。機能
実装なら誰でも出来る。(基盤開発が
適切に行なわれている前提)

39
デバッグ
BTS(Bug Tracking System)を使う(Mantisや自作ツール
など)
Redmineなどのプロジェクト管理ツールをそのまま使
うことも可能だが、管理するタスクの粒度が細かく
なるので余りオススメしない。
この時期にブラッシュアップの要望が大量に来る
定期的にリストアップ、優先度付けを行うと良い。不
慣れなプランナーは思いつく限り言ってくるので
40
本番サーバ選定
CPU

メモリ

HDD

Web

⃝

⃝

△

ゲームが動作する

DB

△

◎

⃝

データベース

△

◎

△

キャッシュデータ保存

◎

管理ツール
ログ収集など

KVS
管理サーバ

△

△

用途

※ 実際には機能実装時点で仮決定しておく

41
本番サーバ選定
各ミドルウェアで必要なパラメータを決める
catalina.sh

Javaヒープサイズ

8GB

server.xml

最大スレッド数

2000

Webサーバ
(Tomcat)

DB接続数

Master : 30
Slave : 50

KVS接続数

100

max_connections

300

innodb_buffer_pool_size

8GB

context.xml

DBサーバ
(MySQL)

my.cnf

事前に決めておかないと、後でメモリ使用量などの計算
が合わなくなる

42
本番サーバ選定
その他、CDNで大きなファイル、大量のファイ
ルを配布(キャラ画像データなど)
フロントのWebサーバは仮想マシンでOK(多
少遅くなっても許容範囲。ディスクI/Oも少な
い)
バックエンドのDBサーバは物理サーバ(常に
一定以上のパフォーマンスが必要なため)
43
負荷テスト
Jmeterや自作ツールを使う
本番稼働後のデータ量、アクセス数を想定(100万ユーザ、10万
DAUなど)
大体1年後ぐらいを想定する。最近のスマフォのサービスの寿
命は1年程度が多い。想定外に売れたら運用後に頑張る。
CPU使用率、メモリ使用量の監視、重いクエリの発見
負荷テスト自体はサービスインの2ヶ月前までには実施する。万一
ハードウェア調達が必要になった場合、1ヶ月はかかるので。

44
サービスイン後
サーバの負荷状況を監視(同時接続数、DAUと合わせて)し、
しきい値を越える or 異常検知でアラートメール
監視ツール:hobbit, Zabbix, Xymon
障害発生時、サーバによって放置度合いが異なる。
一定期間放置可能:冗長化されたWebサーバ
早めに復旧させたい:管理用サーバ、バックアップサーバ
即時対応必須:DBサーバ
45
サービスイン後
ゲーム自体の定期的なバージョンアップ
バグやプランナーの設定ミスによる障害は日常茶飯事
障害に対する対応方法はディレクター判断で毎回
異なる(即時メンテ、告知のみなど)
ユーザにお詫びを配布する仕組みは必要(特定の
ユーザ、全ユーザ、特定期間にログインした全ユー
ザ、等)
46
サービスイン後
保守、トラブル対応しながら追加機能の実装
を行うので、開発期間はサービスイン前の軽
く倍はかかる。
バースト的な負荷(メンテ明けやイベント開
始時など)の対策は必要かも。
過去1週間ログインしたユーザをメモリに
キャッシュしておく、など
47
終わりに
当然ながら、全てを対応する必要はない。タイトルによって考え方、
重要度は大きく異なってくる。
「

かったら対応」は現場では有効な判断
但し、対応コストはあらかじめ検討しておくこと。

メジャーなタイトルほどローテクで何とか凌いでいる場合が多い。(開
発・運営期間が長いし、新しい技術はリスクが高いので採用されにく
い)
しかも多くの開発者が関わるため、作りが雑になる
最初は小規模のプロジェクトを数多く経験する方が良い

48
終わりに
常にベストな環境にあるとは限らない。炎上プロジェクトのヘルプをさ
せられる場合も多い。
であればせめて以下だけでも意識したい。
なるべくツールによる自動化
サーバ・クライアントの各々の作りを把握し、問題を追えるように
する。
目標とする工数と、スケジュール化する工数の区別
迷ったらシンプルに作る(シンプル = 複雑は可能だが、複雑 =
シンプルは不可能なので)

49
ご清聴、ありがとうご
ざいました

50

More Related Content

What's hot

【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~UnityTechnologiesJapan002
 
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現Yoshifumi Kawai
 
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法モノビット エンジン
 
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編infinite_loop
 
Building the Game Server both API and Realtime via c#
Building the Game Server both API and Realtime via c#Building the Game Server both API and Realtime via c#
Building the Game Server both API and Realtime via c#Yoshifumi Kawai
 
自宅で出来る!ゲームサーバの作り方
自宅で出来る!ゲームサーバの作り方自宅で出来る!ゲームサーバの作り方
自宅で出来る!ゲームサーバの作り方光晶 上原
 
サーバーのおしごと
サーバーのおしごとサーバーのおしごと
サーバーのおしごとYugo Shimizu
 
DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容sairoutine
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けモノビット エンジン
 
一般的なチートの手法と対策について
一般的なチートの手法と対策について一般的なチートの手法と対策について
一般的なチートの手法と対策について優介 黒河
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなKentaro Matsui
 
MagicOnion入門
MagicOnion入門MagicOnion入門
MagicOnion入門torisoup
 
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~infinite_loop
 
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>エピック・ゲームズ・ジャパン Epic Games Japan
 

What's hot (20)

【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
 
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
 
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
Unityネットワーク通信の基盤である「RPC」について、意外と知られていないボトルネックと、その対策法
 
新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編新入社員のための大規模ゲーム開発入門 サーバサイド編
新入社員のための大規模ゲーム開発入門 サーバサイド編
 
Building the Game Server both API and Realtime via c#
Building the Game Server both API and Realtime via c#Building the Game Server both API and Realtime via c#
Building the Game Server both API and Realtime via c#
 
UE4 MultiPlayer Online Deep Dive 実践編2 (ソレイユ株式会社様ご講演) #UE4DD
UE4 MultiPlayer Online Deep Dive 実践編2 (ソレイユ株式会社様ご講演) #UE4DDUE4 MultiPlayer Online Deep Dive 実践編2 (ソレイユ株式会社様ご講演) #UE4DD
UE4 MultiPlayer Online Deep Dive 実践編2 (ソレイユ株式会社様ご講演) #UE4DD
 
UnityのMultiplayサービスの得意な事
UnityのMultiplayサービスの得意な事UnityのMultiplayサービスの得意な事
UnityのMultiplayサービスの得意な事
 
自宅で出来る!ゲームサーバの作り方
自宅で出来る!ゲームサーバの作り方自宅で出来る!ゲームサーバの作り方
自宅で出来る!ゲームサーバの作り方
 
サーバーのおしごと
サーバーのおしごとサーバーのおしごと
サーバーのおしごと
 
UE4でマルチプレイヤーゲームを作ろう
UE4でマルチプレイヤーゲームを作ろうUE4でマルチプレイヤーゲームを作ろう
UE4でマルチプレイヤーゲームを作ろう
 
Online MultiPlay Game Design
Online MultiPlay Game DesignOnline MultiPlay Game Design
Online MultiPlay Game Design
 
DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
 
一般的なチートの手法と対策について
一般的なチートの手法と対策について一般的なチートの手法と対策について
一般的なチートの手法と対策について
 
テスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
 
MagicOnion入門
MagicOnion入門MagicOnion入門
MagicOnion入門
 
UE4 MultiPlayer Online Deep Dive 基礎編2 -Traveling- (historia様ご講演) #ue4dd
UE4 MultiPlayer Online Deep Dive 基礎編2 -Traveling-  (historia様ご講演)  #ue4ddUE4 MultiPlayer Online Deep Dive 基礎編2 -Traveling-  (historia様ご講演)  #ue4dd
UE4 MultiPlayer Online Deep Dive 基礎編2 -Traveling- (historia様ご講演) #ue4dd
 
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
 
[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)
[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)
[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)
 
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>  そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
そう、UE4ならね。あなたのモバイルゲームをより快適にする沢山の冴えたやり方について Part 1 <Shader Compile, PSO Cache編>
 

Viewers also liked

リソースのバージョン管理/運用の失敗談と改善策について
リソースのバージョン管理/運用の失敗談と改善策についてリソースのバージョン管理/運用の失敗談と改善策について
リソースのバージョン管理/運用の失敗談と改善策についてgeechs inc. / geechs株式会社
 
[CEDEC2012]ネットワークゲームの不正行為と対策
[CEDEC2012]ネットワークゲームの不正行為と対策[CEDEC2012]ネットワークゲームの不正行為と対策
[CEDEC2012]ネットワークゲームの不正行為と対策gree_tech
 
通信対戦ゲームを作った話
通信対戦ゲームを作った話通信対戦ゲームを作った話
通信対戦ゲームを作った話mipsparc
 
Java で書かれたAndroid アプリに Kotlin を適用させていく
Java で書かれたAndroid アプリに Kotlin を適用させていくJava で書かれたAndroid アプリに Kotlin を適用させていく
Java で書かれたAndroid アプリに Kotlin を適用させていく健一 辰濱
 
スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門Hisashi HATAKEYAMA
 
日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた
日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた
日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみたYuusuke Takeuchi
 
Djangoフレームワークの紹介
Djangoフレームワークの紹介Djangoフレームワークの紹介
Djangoフレームワークの紹介Shinya Okano
 
分割と整合性と戦う
分割と整合性と戦う分割と整合性と戦う
分割と整合性と戦うYugo Shimizu
 
負荷がたかいいんだから~♪(仮)
負荷がたかいいんだから~♪(仮)負荷がたかいいんだから~♪(仮)
負荷がたかいいんだから~♪(仮)Yohei Hamada
 
Imprementation of realtime_networkgame
Imprementation of realtime_networkgameImprementation of realtime_networkgame
Imprementation of realtime_networkgameSatoshi Yamafuji
 
MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例
MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例
MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例Satoshi Yamafuji
 
Djangoによるスマホアプリバックエンドの実装
Djangoによるスマホアプリバックエンドの実装Djangoによるスマホアプリバックエンドの実装
Djangoによるスマホアプリバックエンドの実装Nakazawa Yuichi
 
Fluentd and Embulk Game Server 4
Fluentd and Embulk Game Server 4Fluentd and Embulk Game Server 4
Fluentd and Embulk Game Server 4N Masahiro
 
FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術dena_study
 
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜 リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜 Yugo Shimizu
 
Halo2 におけるHFSM(階層型有限状態マシン) 【ビヘイビアツリー解説】
Halo2 におけるHFSM(階層型有限状態マシン)  【ビヘイビアツリー解説】Halo2 におけるHFSM(階層型有限状態マシン)  【ビヘイビアツリー解説】
Halo2 におけるHFSM(階層型有限状態マシン) 【ビヘイビアツリー解説】Youichiro Miyake
 
負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~
負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~
負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~johgus johgus
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とToru Takahashi
 
年の瀬!リアルタイム通信ゲームサーバ勉強会
年の瀬!リアルタイム通信ゲームサーバ勉強会年の瀬!リアルタイム通信ゲームサーバ勉強会
年の瀬!リアルタイム通信ゲームサーバ勉強会monobit
 

Viewers also liked (20)

「オルタンシア・サーガ」開発の裏側
「オルタンシア・サーガ」開発の裏側「オルタンシア・サーガ」開発の裏側
「オルタンシア・サーガ」開発の裏側
 
リソースのバージョン管理/運用の失敗談と改善策について
リソースのバージョン管理/運用の失敗談と改善策についてリソースのバージョン管理/運用の失敗談と改善策について
リソースのバージョン管理/運用の失敗談と改善策について
 
[CEDEC2012]ネットワークゲームの不正行為と対策
[CEDEC2012]ネットワークゲームの不正行為と対策[CEDEC2012]ネットワークゲームの不正行為と対策
[CEDEC2012]ネットワークゲームの不正行為と対策
 
通信対戦ゲームを作った話
通信対戦ゲームを作った話通信対戦ゲームを作った話
通信対戦ゲームを作った話
 
Java で書かれたAndroid アプリに Kotlin を適用させていく
Java で書かれたAndroid アプリに Kotlin を適用させていくJava で書かれたAndroid アプリに Kotlin を適用させていく
Java で書かれたAndroid アプリに Kotlin を適用させていく
 
スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門スマートフォン向けサービスにおけるサーバサイド設計入門
スマートフォン向けサービスにおけるサーバサイド設計入門
 
日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた
日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた
日曜プログラマーが
1週間くらいで通信対戦ゲームを作ってみた
 
Djangoフレームワークの紹介
Djangoフレームワークの紹介Djangoフレームワークの紹介
Djangoフレームワークの紹介
 
分割と整合性と戦う
分割と整合性と戦う分割と整合性と戦う
分割と整合性と戦う
 
負荷がたかいいんだから~♪(仮)
負荷がたかいいんだから~♪(仮)負荷がたかいいんだから~♪(仮)
負荷がたかいいんだから~♪(仮)
 
Imprementation of realtime_networkgame
Imprementation of realtime_networkgameImprementation of realtime_networkgame
Imprementation of realtime_networkgame
 
MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例
MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例
MMOのサーバについて 剣と魔法のログレス ~いにしえの女神~ での実装例
 
Djangoによるスマホアプリバックエンドの実装
Djangoによるスマホアプリバックエンドの実装Djangoによるスマホアプリバックエンドの実装
Djangoによるスマホアプリバックエンドの実装
 
Fluentd and Embulk Game Server 4
Fluentd and Embulk Game Server 4Fluentd and Embulk Game Server 4
Fluentd and Embulk Game Server 4
 
FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術FINAL FANTASY Record Keeperのマスターデータを支える技術
FINAL FANTASY Record Keeperのマスターデータを支える技術
 
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜 リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
リアルタイムサーバー 〜Erlang/OTPで作るPubSubサーバー〜
 
Halo2 におけるHFSM(階層型有限状態マシン) 【ビヘイビアツリー解説】
Halo2 におけるHFSM(階層型有限状態マシン)  【ビヘイビアツリー解説】Halo2 におけるHFSM(階層型有限状態マシン)  【ビヘイビアツリー解説】
Halo2 におけるHFSM(階層型有限状態マシン) 【ビヘイビアツリー解説】
 
負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~
負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~
負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~
 
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤とEmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
 
年の瀬!リアルタイム通信ゲームサーバ勉強会
年の瀬!リアルタイム通信ゲームサーバ勉強会年の瀬!リアルタイム通信ゲームサーバ勉強会
年の瀬!リアルタイム通信ゲームサーバ勉強会
 

Similar to ゲームサーバ開発現場の考え方

ngCore engine for mobage platform
ngCore engine for mobage platformngCore engine for mobage platform
ngCore engine for mobage platformToru Yamaguchi
 
ソーシャルゲームとスマフォアプリとクラウドの関係
ソーシャルゲームとスマフォアプリとクラウドの関係ソーシャルゲームとスマフォアプリとクラウドの関係
ソーシャルゲームとスマフォアプリとクラウドの関係gipwest
 
マインクラフトPEのマルチプレイサーバー立ててみた
マインクラフトPEのマルチプレイサーバー立ててみたマインクラフトPEのマルチプレイサーバー立ててみた
マインクラフトPEのマルチプレイサーバー立ててみたMasaya Hayashi
 
#01-03 solaris11で深化するクラウド
#01-03 solaris11で深化するクラウド#01-03 solaris11で深化するクラウド
#01-03 solaris11で深化するクラウドSolarisJPNight
 
Azure PlayFab トレーニング資料
Azure PlayFab トレーニング資料Azure PlayFab トレーニング資料
Azure PlayFab トレーニング資料Daisuke Masubuchi
 
第8回テックヒルズIBM資料
第8回テックヒルズIBM資料第8回テックヒルズIBM資料
第8回テックヒルズIBM資料Tomoari Yasuda
 
【Unity道場スペシャル 2017京都】〜ブラウザアプリ・ネイティブアプリの複数プラットフォームのゲーム開発の現場〜
【Unity道場スペシャル 2017京都】〜ブラウザアプリ・ネイティブアプリの複数プラットフォームのゲーム開発の現場〜【Unity道場スペシャル 2017京都】〜ブラウザアプリ・ネイティブアプリの複数プラットフォームのゲーム開発の現場〜
【Unity道場スペシャル 2017京都】〜ブラウザアプリ・ネイティブアプリの複数プラットフォームのゲーム開発の現場〜Unity Technologies Japan K.K.
 
誰でも今日から実践できるUnity x PlayFab(Demoパート)
誰でも今日から実践できるUnity x PlayFab(Demoパート)誰でも今日から実践できるUnity x PlayFab(Demoパート)
誰でも今日から実践できるUnity x PlayFab(Demoパート)YutoNishine
 
さくらのIoT Platformを使ってみよう ~OSC大阪編~
さくらのIoT Platformを使ってみよう ~OSC大阪編~さくらのIoT Platformを使ってみよう ~OSC大阪編~
さくらのIoT Platformを使ってみよう ~OSC大阪編~法林浩之
 
年の瀬リアルタイム通信サーバ勉強会
年の瀬リアルタイム通信サーバ勉強会年の瀬リアルタイム通信サーバ勉強会
年の瀬リアルタイム通信サーバ勉強会モノビット エンジン
 
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみたゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみたKohei Kadowaki
 
ゲームインフラコンテナ実践導入
ゲームインフラコンテナ実践導入ゲームインフラコンテナ実践導入
ゲームインフラコンテナ実践導入Hiroki Tamiya
 
VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報 - モノビットエンジン - GTMF 2018 O...
VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報 - モノビットエンジン - GTMF 2018 O...VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報 - モノビットエンジン - GTMF 2018 O...
VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報 - モノビットエンジン - GTMF 2018 O...Game Tools & Middleware Forum
 
Webプログラマの為のUnity入門
Webプログラマの為のUnity入門Webプログラマの為のUnity入門
Webプログラマの為のUnity入門Yusuke Ando
 
わんくま名古屋#25(20121201) 「Win8ストア・アプリ WP8アプリ、両面撃破作戦」
わんくま名古屋#25(20121201) 「Win8ストア・アプリ WP8アプリ、両面撃破作戦」わんくま名古屋#25(20121201) 「Win8ストア・アプリ WP8アプリ、両面撃破作戦」
わんくま名古屋#25(20121201) 「Win8ストア・アプリ WP8アプリ、両面撃破作戦」Yasuhiko Yamamoto
 
ICSをビルドしてみた
ICSをビルドしてみたICSをビルドしてみた
ICSをビルドしてみたkinneko
 
チームグリグリ メンバーの個性を生かすゲーム作り
チームグリグリ メンバーの個性を生かすゲーム作りチームグリグリ メンバーの個性を生かすゲーム作り
チームグリグリ メンバーの個性を生かすゲーム作りIGDA Japan
 
UnityとnodeとMMDと
UnityとnodeとMMDとUnityとnodeとMMDと
UnityとnodeとMMDとsters
 

Similar to ゲームサーバ開発現場の考え方 (20)

ngCore engine for mobage platform
ngCore engine for mobage platformngCore engine for mobage platform
ngCore engine for mobage platform
 
ソーシャルゲームとスマフォアプリとクラウドの関係
ソーシャルゲームとスマフォアプリとクラウドの関係ソーシャルゲームとスマフォアプリとクラウドの関係
ソーシャルゲームとスマフォアプリとクラウドの関係
 
マインクラフトPEのマルチプレイサーバー立ててみた
マインクラフトPEのマルチプレイサーバー立ててみたマインクラフトPEのマルチプレイサーバー立ててみた
マインクラフトPEのマルチプレイサーバー立ててみた
 
#01-03 solaris11で深化するクラウド
#01-03 solaris11で深化するクラウド#01-03 solaris11で深化するクラウド
#01-03 solaris11で深化するクラウド
 
Azure PlayFab トレーニング資料
Azure PlayFab トレーニング資料Azure PlayFab トレーニング資料
Azure PlayFab トレーニング資料
 
第8回テックヒルズIBM資料
第8回テックヒルズIBM資料第8回テックヒルズIBM資料
第8回テックヒルズIBM資料
 
【Unity道場スペシャル 2017京都】〜ブラウザアプリ・ネイティブアプリの複数プラットフォームのゲーム開発の現場〜
【Unity道場スペシャル 2017京都】〜ブラウザアプリ・ネイティブアプリの複数プラットフォームのゲーム開発の現場〜【Unity道場スペシャル 2017京都】〜ブラウザアプリ・ネイティブアプリの複数プラットフォームのゲーム開発の現場〜
【Unity道場スペシャル 2017京都】〜ブラウザアプリ・ネイティブアプリの複数プラットフォームのゲーム開発の現場〜
 
誰でも今日から実践できるUnity x PlayFab(Demoパート)
誰でも今日から実践できるUnity x PlayFab(Demoパート)誰でも今日から実践できるUnity x PlayFab(Demoパート)
誰でも今日から実践できるUnity x PlayFab(Demoパート)
 
さくらのIoT Platformを使ってみよう ~OSC大阪編~
さくらのIoT Platformを使ってみよう ~OSC大阪編~さくらのIoT Platformを使ってみよう ~OSC大阪編~
さくらのIoT Platformを使ってみよう ~OSC大阪編~
 
年の瀬リアルタイム通信サーバ勉強会
年の瀬リアルタイム通信サーバ勉強会年の瀬リアルタイム通信サーバ勉強会
年の瀬リアルタイム通信サーバ勉強会
 
Unitynetwork
UnitynetworkUnitynetwork
Unitynetwork
 
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみたゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
ゲーム開発初心者の僕がUnity + WebSocketで何か作ってみた
 
ゲームインフラコンテナ実践導入
ゲームインフラコンテナ実践導入ゲームインフラコンテナ実践導入
ゲームインフラコンテナ実践導入
 
Unity ゲーム開発
Unity ゲーム開発Unity ゲーム開発
Unity ゲーム開発
 
VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報 - モノビットエンジン - GTMF 2018 O...
VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報 - モノビットエンジン - GTMF 2018 O...VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報 - モノビットエンジン - GTMF 2018 O...
VRライブ・コミュニケーションサービス「バーチャルキャスト」でのモノビットエンジンの採用事例と最新情報 - モノビットエンジン - GTMF 2018 O...
 
Webプログラマの為のUnity入門
Webプログラマの為のUnity入門Webプログラマの為のUnity入門
Webプログラマの為のUnity入門
 
わんくま名古屋#25(20121201) 「Win8ストア・アプリ WP8アプリ、両面撃破作戦」
わんくま名古屋#25(20121201) 「Win8ストア・アプリ WP8アプリ、両面撃破作戦」わんくま名古屋#25(20121201) 「Win8ストア・アプリ WP8アプリ、両面撃破作戦」
わんくま名古屋#25(20121201) 「Win8ストア・アプリ WP8アプリ、両面撃破作戦」
 
ICSをビルドしてみた
ICSをビルドしてみたICSをビルドしてみた
ICSをビルドしてみた
 
チームグリグリ メンバーの個性を生かすゲーム作り
チームグリグリ メンバーの個性を生かすゲーム作りチームグリグリ メンバーの個性を生かすゲーム作り
チームグリグリ メンバーの個性を生かすゲーム作り
 
UnityとnodeとMMDと
UnityとnodeとMMDとUnityとnodeとMMDと
UnityとnodeとMMDと
 

ゲームサーバ開発現場の考え方