Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ゲームタイトル開発側と サーバー基盤の連携事例の紹介
Search
COLOPL Inc.
September 28, 2023
Technology
1.8k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ゲームタイトル開発側と サーバー基盤の連携事例の紹介
COLOPL Inc.
September 28, 2023
More Decks by COLOPL Inc.
See All by COLOPL Inc.
DBについての基礎説明(MySQL編) - コロプラ 2026年度 新卒研修
colopl
0
55
オンラインゲームのシステム全体像 - コロプラ 2026年度 新卒研修
colopl
0
1.2k
Claude Code 再入門 会話の渡し方の4つの道具 - Claude Codeスキル・ハーネス社内勉強会
colopl
0
480
Copilot / Claude Code 両方で使えるスキル・ハーネスの紹介 - Claude Codeスキル・ハーネス社内勉強会
colopl
0
660
実務で動くAIエージェントを作ろう!MCP×Mastraをライブコーディングで実践
colopl
0
540
Cloud Runでコロプラが挑む 生成AI×ゲーム『神魔狩りのツクヨミ』の裏側
colopl
0
2.8k
PHPStan をできる限り高速化してみる
colopl
1
1.5k
コロプラ最新作インフラ構成について
colopl
0
400
Cloud Spanner 導入で実現した快適な開発と運用について
colopl
1
2.5k
Other Decks in Technology
See All in Technology
触りたくないデータに、どう触るか AI時代のRBACアクセスガバナンス
ivry_presentationmaterials
0
260
実体験から学ぶ分析エージェントの開発と運⽤
recruitengineers
PRO
8
2.4k
JAWS-UGグッズ職人仕事の流儀
kentapapa
0
100
JAWSUG TOHOKU 青森支部 「LoGoチャット」のAWS移行で 乗り越えたこと
taketakekaho
0
330
Claude Code本は、どのように執筆チームで書かれたか
oikon48
1
380
ブラウザとサーバーから考えるAI時代のフロントエンド監視
shogo4131
3
940
Tofu-Controller lightning talk @ Containerday 2026
gionn
0
110
実践!Cloud Run ハンズオン!! / Cloud Run handson
y0hgi
2
280
ソフトウェア ファクトリー - 再現性のあるソフトウェアの工場づくり / Software factory
iktakahiro
6
4.9k
自作バイナリを動かす「入口」8選
puhitaku
2
1.3k
AIがコードを書く時代に、エンジニアは何で自分の価値を証明するのか / In an era where AI writes code how do engineers prove their value
carta_engineering
3
1.1k
re:Invent初参加で変わったこと、2回目にやってみたいこと(JAWS-UG彩の国埼玉 #12)
mhrtech
2
220
Featured
See All Featured
Six Lessons from altMBA
skipperchong
29
4.5k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
820
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
2
360
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
270
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.4k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
Color Theory Basics | Prateek | Gurzu
gurzu
1
490
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
730
Designing for Timeless Needs
cassininazir
1
530
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
280
Transcript
ゲームタイトル開発側と サーバー基盤の連携事例の紹介 薮智仁
2 経歴 1. 2019年:新卒入社 2. 運用ゲームタイトル2年 3. 新規ゲームタイトルローンチ + 運用移行
4. 新規ゲームタイトル開発2年 ← Now ! 氏名 : 職種 : 所属 : 薮 智仁 サーバーサイドエンジニア 技術基盤本部 第3バックエンドエンジニア部 マネージャー補佐 自己紹介
3 お話しすること ゲームタイトル開発側とサーバー基盤の 過去の相談や連携事例を3つご紹介
4 〜 ① Slack 相談編 〜
5 ① Slack 相談編 〜とあるゲームタイトルのエンジニア Slack チャンネルにて〜
6 ① Slack 相談編 〜とあるゲームタイトルのエンジニア Slack チャンネルにて〜
7 ① Slack 相談編 〜とあるゲームタイトルのエンジニア Slack チャンネルにて〜
8 Slack ならではの 気軽な流れでサーバー基盤チームに相談できる! ① Slack 相談編
9 〜 ②コントリビュート編 〜
10 ②コントリビュート編 〜GitLab の issue にて提案してコントリビュート〜
11 ②コントリビュート編 〜GitLab の issue にて提案してコントリビュート〜
12 ②コントリビュート編 問題:Model::push() の標準実装がループで Model::save() を呼んでおりN+1クエリになっていた $user->push(); // INSERT INTO
UserItem (userId, itemId, amount) VALUES ('user1', 1, 2); // INSERT INTO UserItem (userId, itemId, amount) VALUES ('user1', 2, 5); // UPDATE UserItem SET amount = 10 WHERE userId = 'user1' AND itemId = 3; // UPDATE UserItem SET amount = 10 WHERE userId = 'user1' AND itemId = 4;
13 ②コントリビュート編 問題:Model::push() の標準実装がループで Model::save() を呼んでおりN+1クエリになっていた $user->push(); // INSERT INTO
UserItem (userId, itemId, amount) VALUES ('user1', 1, 2); // INSERT INTO UserItem (userId, itemId, amount) VALUES ('user1', 2, 5); // UPDATE UserItem SET amount = 10 WHERE userId = 'user1' AND itemId = 3; // UPDATE UserItem SET amount = 10 WHERE userId = 'user1' AND itemId = 4; 対応:複数モデルを一括で保存するよう Model::push() の中身をオーバーライド $user->push(); // INSERT INTO UserItem (userId, itemId, amount) VALUES ('user1', 1, 2), ('user1', 2, 5); // UPDATE UserItem SET amount = 10 WHERE userId = 'user1' AND itemId IN (3, 4);
14 ②コントリビュート編 問題:Model::push() の標準実装がループで Model::save() を呼んでおりN+1クエリになっていた $user->push(); // INSERT INTO
UserItem (userId, itemId, amount) VALUES ('user1', 1, 2); // INSERT INTO UserItem (userId, itemId, amount) VALUES ('user1', 2, 5); // UPDATE UserItem SET amount = 10 WHERE userId = 'user1' AND itemId = 3; // UPDATE UserItem SET amount = 10 WHERE userId = 'user1' AND itemId = 4; 対応:複数モデルを一括で保存するよう Model::push() の中身をオーバーライド $user->push(); // INSERT INTO UserItem (userId, itemId, amount) VALUES ('user1', 1, 2), ('user1', 2, 5); // UPDATE UserItem SET amount = 10 WHERE userId = 'user1' AND itemId IN (3, 4); ゲームタイトルのコードはそのままでDB負荷を軽減! 🥳
15 OSSへのコントリビュートより ハードルが低いので練習として最適! ②コントリビュート編
16 〜 ③他タイトルとの議論編 〜
17 ③他タイトルとの議論編
18 ③他タイトルとの議論編 他ゲームタイトルのエンジニアからも意見が!
19 ③他タイトルとの議論編 意見も反映した上でマージリクエストを作ってみる テストコードの実装 + メンテがかなり楽に! 🥳
20 まとめ ゲームタイトル開発側とサーバー基盤で 連携することにより ゲームの開発効率を向上していっています!