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
JUNYA KITAYAMA
December 04, 2020
Programming
23k
6
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
中高生向け:アプリゲームでおわびのアイテムを配った話
NowDo様にて中高生向けのイベントで話した
本番環境でやらかしちゃった話です
https://nowdo.net/events/bualoba23akg00b6nd00
JUNYA KITAYAMA
December 04, 2020
More Decks by JUNYA KITAYAMA
See All by JUNYA KITAYAMA
Microsoft Azure でクラウド破産しないために
junki555
0
500
Other Decks in Programming
See All in Programming
Can LLMs Replicate 4 Years of Compose Migration? Exploring the boundaries of automation with 279 XML files from a real product
makun
0
130
コンパウンドプロダクト開発のためのローカルプロセスマネージャー再発明 #layerxgo
izumin5210
0
660
ソフトウェアラスタライザ
fadis
1
800
まだ間に合う!今年の夏こそSchemeのマクロ展開器を完全理解!
omasanori
0
650
tsc.rip を支える技術 / Kyoto.なんか #8
susisu
0
4.4k
App Storeの外へ──日本のiOSサイドローディング入門 for iOSDC Japan 2026
yuukiw00w
0
140
go-spidermonkeyでAIエージェントのCode Modeを実装する
syumai
3
1.5k
スマート反転とウェブアクセシビリティ
camiha
0
180
高専キャリア LT 発表内容
crysta1221
6
5.6k
AIとGame Jamで、ゲームを完成させた話
takahirosaeki
0
110
XHTMLが残したもの
yosuke_furukawa
PRO
2
620
新人はどこまで自力でやり、どこからAIに頼るべきか/エンジニア育成に向き合う_先輩たちの悩みと知見共有会
toppan_digital_dev
1
590
Featured
See All Featured
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
490
HDC tutorial
michielstock
2
860
Git: the NoSQL Database
bkeepers
PRO
432
67k
Build your cross-platform service in a week with App Engine
jlugia
234
19k
Making Projects Easy
brettharned
120
6.7k
Code Reviewing Like a Champion
maltzj
528
40k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
340
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
370
Ruling the World: When Life Gets Gamed
codingconduct
0
330
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
380
What's in a price? How to price your products and services
michaelherold
247
13k
Transcript
アプリゲームでお詫びの アイテムを配った話 〜ゲームイベントのバグとその裏側のエンジニア戦い〜 北山淳也
突然ですが
スマホのゲームなどで 「運営からのお詫びのアイテム」 を 受け取ったことはありますか?
私は 「運営からのお詫びのアイテム」 を 配ったことがあります!
今回は そんな話
自己紹介 • 北山淳也 • フリーランス / エンジニア • 得意分野: Webアプリケーション開発、
スマホゲーム開発 • 趣味:筋トレ、ロードバイク、ドライブ @JUNKI555 JUNKI555
あるアプリゲームのイベントの話
どんなイベントだったか • 期間内にポイントを集める • 集めたポイントでランキング • 期間終了後、ランキング順位に応じて アイテムがもらえる ・特別称号 ・特別激レアアイテム
・参加者プレゼント ・特別称号 ・参加者プレゼント ・参加者プレゼント 3位以下
イベント終了の監視 • AM 0:00 ランキング終了、 AM 1:00〜 ランキング報酬配布 のようなゲーム内スケジュールだった • 夜、眠い目を擦りながら
報酬配布が正常に行われているか監視してた
なぜ監視をするのか? • 1人1人アイテムを配る仕組み • 自分のアカウントに配られるまで待機 ランキング報酬 配布開始 参加プレイヤーの人数分だけ繰り返し 参加プレイヤーからプレイヤーを1人取り出し
プレイヤーの順位を確認、報酬を配布 僕のアカウントの分 まだかな…… 配布プログラム
プログラムって?
プログラムって何? • プログラミングは 「何かが起きたら何かをする」というように コンピュータにわかるよう「命令」すること これはプログラミングの初歩が 学べるサイト Scratch
プログラムって何? • Scratch では「ビジュアルプログラミング」という 方法で簡単にプログラムを体験することができます ◦ https://scratch.mit.edu/projects/editor/?tutorial=getStarted
話をもどして
なぜ監視をするのか? • 1人1人アイテムを配る仕組み • 自分のアカウントに配られるまで待機 ランキング報酬 配布開始 参加プレイヤーの人数分だけ繰り返し 参加プレイヤーからプレイヤーを1人取り出し
プレイヤーの順位を確認、報酬を配布 僕のアカウントの分 まだかな…… 配布プログラム
イベント報酬配布 • AM 0:00 無事、正常にランキング終了 • AM 1:00 ランキング報酬の配布開始 しかし、その時事件がおこる……
何かがおかしい……
運営が考えていた報酬配布 ・特別称号 ・特別激レアアイテム ・参加者プレゼント ・特別称号 ・参加者プレゼント ・参加者プレゼント 3位以下 1名様 そのほかのプレイヤー
1名様
実際に行われた報酬配布 ・特別称号 ・特別激レアアイテム ・参加者プレゼント ・特別称号 ・参加者プレゼント ・参加者プレゼント 3位以下 全ての参加プレイヤーに
1位の報酬が配布!!! ぼく
もちろん大炎上 1位の激レアアイテム届いてる! メンテナンスくる??? 運営やっちまったなww 詫び石 5000000個よろ
詫び石はよ おいおいなんだこれw キター! 1位私なんだけどなにこれ?
運営の戦いが始まる 運営 バグ
なにはともあれメンテナンスモードON ! • 「現在メンテナンス中です」と表示して ゲームをプレイできない状態にすること • エンジニアが裏側でスイッチONする エンジニア(ぼく) あからじめ準備して あるスイッチをON
プレイできなくなる
メンテナンスモードにしてしまったので… • Twitterなどでメンテナンスのお詫びを告知 ◦ このあたりはプランナーやCSで対応 • メンテナンス時間の試算 • 可能であればゲーム内のメンテナンス画面に メンテナンス終了予定時刻を掲載
• どのような対応をするのかチームで決定 • メンテナンス終了後の告知の準備
やるべきことは大きく7つ 1. ランキング報酬配布プログラムの緊急停止 2. 配布してしまったアイテムの回収 ◦ 受け取った後アイテムを売ってたりしたらそれも全て戻す 3. プログラムの修正 4.
プログラムのテスト 5. ランキング報酬配布プログラムの再実行 6. お詫びのアイテム配布 7. メンテナンスモードの解除
メンテナンスモード中の戦い • ランキング報酬配布プログラムの緊急停止 エンジニア(ぼく) あからじめ準備して あるスイッチをON プログラム緊急停止
メンテナンスモード中の戦い • 配布してしまったアイテムの回収 • これが大変 ◦ 単純に回収できる状態の人からは回収 ◦ 受け取り後に売却やアイテムの変換などを やっているプレイヤーは
プレイヤーが行ったことのデータを全て巻き戻す ◦ 1人ではとてもやりきれないので プログラムの修正を並行して別のエンジニアが対応
メンテナンスモード中の戦い • 配布してしまったアイテムの回収 ◦ プレイヤーが何をしたのかのログから追いかける 激レアアイテム受け取り 激レアアイテムをアイテムAと合成 できたアイテムA’をアイテムBと合成
できたアイテムA’’をアイテムCと合成 できたアイテムA’’’を売却してゴールドに ゴールドを使ってキャラクターAを強化 キャラクターAの強化を戻してゴールド返却 ゴールドを回収してアイテムA’’’を配布 アイテムA’’’を回収してアイテムA’’とCに アイテムA’’を回収してアイテムA’とBに アイテムA’を回収してアイテムAと激レアに 激レアアイテムを回収 巻き 戻し
メンテナンスモード中の戦い • プログラムの修正 ◦ 原因を突き止めて修正を行う ランキング報酬 配布開始 参加プレイヤーの人数分だけ繰り返し 参加プレイヤーからプレイヤーを1人取り出し
プレイヤーの順位 ≦ 報酬の順位 報酬を配布 ランキング報酬 配布開始 参加プレイヤーの人数分だけ繰り返し 参加プレイヤーからプレイヤーを1人取り出し 報酬の順位 ≧ プレイヤーの順位 ≧ 報酬の順位 報酬を配布
メンテナンスモード中の戦い • プログラムのテスト ◦ ダミーのプレイヤーリストに大して配布を実施 ◦ 本当はイベント終了までに実施しておくべき作業 ◦ 今回はこの「テスト」をやっていなかったのでバグに
メンテナンスモード中の戦い • ランキング報酬配布プログラムの再実行 エンジニア(ぼく) あからじめ準備して あるスイッチをON プログラム再実行
メンテナンスモード中の戦い • お詫びのアイテム配布 エンジニア(ぼく) あからじめ準備して あるプログラムを起動 お詫びのアイテム配布 プログラムが実行
メンテナンスモード中の戦い • メンテナンスモードの解除 • エンジニアが裏側でスイッチOFFする エンジニア(ぼく) あからじめ準備して あるスイッチをOFF プレイできるようになる
メンテナンスモードを終えたら… • Twitterなどでメンテナンスのお詫びを告知 • ゲーム内のお知らせなどでもお詫びを告知 • お詫びアイテムのお知らせを掲載 • その後大丈夫そうなことを確認してお布団へ 詫び石きたw
詫び石少ないぞ 結局すぐには 寝れないぼく
全てが終わったら次の日以降に反省会 • なぜ起こってしまったのか? ◦ プログラムのバグが原因 ▪ なぜ発生したのか? → 配布プログラムがバラバラ ▪
なぜ気づけなかったか? → テストしてないプログラムが 世の中に出てしまっていた
ゲームはどうやってみんなの手元に届く? • 会社で作られたものが世の中に出るまで 何をつくるか みんなで相談 イラストを描いたり プログラムしたり 敵の強さを決めたり バグがないか チェックする
(テスト) みんなの 手元へ (世の中に出る)
反省会が終わったら対策 • 配布プログラムがバラバラ → 「共通化」を行うことで標準化 イベントAの 報酬配布 プログラム イベントBの 報酬配布
プログラム 報酬配布プログラム 報酬リスト
反省会が終わったら対策 • テストしてないプログラムが世の中に出てしまった → テスト実施票を機能ごとに作成するように どれをテストした/してない が わからない どれをテストした/してない が わかる
そして次のイベントへ…
まとめ • スマホゲームもプログラムで動いている • ちょっとしたプログラムのミスで 大変なことが起きることもある → 責任重大だけど、それが楽しい! • 「エンジニア」は毎日PCに向かって
プログラムを書いてるだけじゃない → プログラムがわかるからできることがある
宣伝 • 本格的にプログラムやってみたいかも! と思った人はブラウザだけですぐ始められる Web本を出してるので見てみてください (無料分で大事なところは全部読めます) PaizaCloudで面倒な環境構築をスキップして
Ruby on Railsの勉強をサクッと始めてみよう - 北山淳也 https://zenn.dev/junki555/books/1c680742dc85b55147b0
おわり