[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
SlideShare a Scribd company logo
剣と魔法のログレス(PC版)
の自慢と課題
剣と魔法のログレス(PC版) とは
ジャンル MMO RPG
プラットフォーム ブラウザゲーム(Flash動作が出来るもの)
IE, FireFox推奨
開発期間 2010年4月~2011年10月
運用期間 2011年10月~2016年 (継続中)
開発環境
サーバー
C++(gcc version 4.1.2)
PHP 5.19
MySQL 5.5
クライアント Action Script 3 ( Adobe Flash 10.1~)
ツール
Excelによるサーバーデータ作成
(一部perl にてコンバート)
Ruby on Rails によるBackOfficeツール
zabbix,Cacti による監視ツール
バージョン管理 SVN
こんな感じのゲームです①
(C)Marvelous Inc. Aiming Inc.
こんな感じのゲームです②
(C)Marvelous Inc. Aiming Inc.
過去に起きた問題で一番大変だった
問題はどのようなもので、どのような
対応をしたのでしょうか?
題目
数々あったトラブル達
・ポータル側のSSL認証期限切れ
・ハードウェアトラブル
・サーバーダウン
・(通信・表示)遅延など課金にまつわるトラブル
etc・・・・
→過去の経験から難なく(なんとなく)回避
ポータル側のSSL認証期限切れ
・ハードウェアトラブル
・サーバーダウン
・(通信・表示)遅延など課金にまつわるトラブル
etc・・・・
2013.12.XX に突如発生
突如サーバーが重くなる!
 →サーバーダウンはしない。
 →ロードアベレージが高く表示される
 →全部ではなく一部のゲームサーバーが重い
→ゲーム内でのレスポンスがすべて遅くなる
  →ログイン障害・イベント動作に支障
Action1 問題箇所を発見せよ
①ログを追加しよう
②社内で再現が出るまで、問題が起きた週の内
容をやりつくそう
③アップデート内容で関係のありそうのものを
抜いて、解消したらそいつが犯人だ。 
Action1 問題箇所を発見せよ
①ログを追加しよう
 →ログを追加しまくっても問題検出できず
   FPS表示するようにしたら状況は分かりやすくなった
②社内で再現が出るまで、問題が起きた週の内容をやりつくそう
  →社内で再現できない。問題のトリガーさえ分からず
③アップデート内容で関係のありそうのものを
抜いて、解消したらそいつが犯人だ。 
  → アップデートそのものの撤去はやりたくない
Action2: アップデート内容を少しずつ撤去
・このままだと正月をいい感じで過ごせないので
可能性の高いものから抜いていく
Action2: アップデート内容を少しずつ撤去
・このままだと正月をいい感じで過ごせないので
可能性の高いものから抜いていく
  →緊急メンテごとにダウングレードするが・・・
・問題の発生は昼夜問わずに発生するので、
問題が起きたら該当サーバーのみ再起動
・対策プログラムを検討&デバッグ
・思考・体力の限界に
Action3: 法則性からの予想
・少しずつダウングレードしていくものの解消しない
がログから傾向が報告されていく。
 →なんか戦闘終了後に起きる傾向にあるね。
  →再現できるまでデバッグしまくろう
結果:正月少し前に問題解消
・「特殊な方法で戦闘から離脱」する事で、
戦闘が終わらない&チェック処理フル活動
することによる事による問題と発覚。
①経験則から関連箇所と踏んでなかった部分
②dumpファイルがあるわけじゃないから判断難しい
③ログがあれば、安全、なんでも追えるわけじゃない。
④鉈(なた)を振るいたくても、運用事情があるので・・・
過去に起きた問題で一番大変だった
問題はどのようなもので、どのような
対応をしたのでしょうか?
おわり
これまでで一番大変だったことと
それをどのように乗り越えたか
または現在乗り越えようとしている
最中かを教えてください。
題目
カオスがカオスである
「カオス」システムとは?
・BMMO内主力コンテンツの1つ
・いわゆるレイド戦 5クランで
最大125人同時戦闘
・特定時間帯のみで発生する。
(火・水・金・日 大体開催時間が違う)
・イベント中は、MOフロアで
レイドボスを発見&討伐を繰り返す
特殊なルールによる
システム及びイベント内容がカオスに
イベント予告
チームマッチング
イベント開始
カオス
発見?
カオス
討伐?
イベント終了
カオス捜索
フェイズ
カオス戦闘
フェイズ
YES
YES
YES
NO
NO
NO
イベント時
間外?
カオス戦闘例
(C)Marvelous Inc. Aiming Inc.
これまでの改修の歴史
・(最低)報酬条件の調整
・チームマッチング調整
・装備効果の拡張
・探索報酬
etc・・・
 →カオスは修正・調整の歴史!
http://mmo-logres.com/pages/chaos_update_140828
これまでで一番大変だったことと
それをどのように乗り越えたか
または現在乗り越えようとしている
最中かを教えてください。
おわり
産まれてしまったと思う技術的負債に
ついて。それについての失敗談や
負担になっていると思う部分について
教えてください
題目
失敗例と負担例 題目
<失敗例>
・メール履歴について
・市場の購入履歴について
<負担例>
・英霊武闘会
・Flash開発(ActionScript)
失敗例1-1
◆メール履歴について
・ユーザーは最新100件まで見れる。
それ以前のデータは削除される事になっている。
メール画面例
(C)Marvelous Inc. Aiming Inc.
失敗例1-2
◆メール履歴について
・ユーザーは最新100件まで見れる。
それ以前のデータは削除される事になっている。
→ よく見るとソース上絶対にお掃除機能が走らな  
いようになっていた。
  お掃除機能は一度も発動せず3年間で
  2,000万件の不要なデータが蓄積・・・
  テーブル内の約7割が不要なデータ
失敗例2-1
◆市場の購入履歴について
・成立した物品の履歴は10件まで見れる仕様
市場例 市場履歴例
(C)Marvelous Inc. Aiming Inc.
失敗例2-2
◆市場の購入履歴について
・成立した物品の履歴は10件まで見れる仕様
→お掃除機能は・・・最初からなかった。
 運用開始以降の履歴だけで2,000万件
 テーブル内の約9割が不要なデータだった。
負担例1-1(サーバー編)
◆英霊武闘会
エントリーしているユーザー同士を闘わせるイベント。
特定の時間になると開始される。
ログアウトしているユーザーも対象になる。
英霊武闘戦 例
(C)Marvelous Inc. Aiming Inc.
負担例1-2(サーバー編)
◆英霊武闘会
エントリーしているユーザー同士を闘わせるイベント。
特定の時間になると開始される。
ログアウトしているユーザーも対象になる。
 
→実装当初はそれほど問題なかったが、
  戦闘の複雑化によって負荷が増え、だんだん重くなってきた。
  この時間はユーザーのプレイに影響がでるほど・・・
負担例2(クライアント)
◆Flash開発(ActionScript)
・Visual Studio と 比べちゃうとね・・・
・FlashBuilder による開発は再起動との戦い
開発環境で1024M のメモリを使用するとフリーズ・・・
・シングルスレッド動作しか出来ない
・メモリ開放のタイミングが分からない(分かりにくい)
メモリ不足で落ちる画面
産まれてしまったと思う技術的負債に
ついて。それについての失敗談や
負担になっていると思う部分について
教えてください
おわり
プロジェクトでエンジニアからみて
他のプロジェクトに自慢したいことを
1つ挙げるとすると何ですか?
題目
自慢できる点について
◆Flash開発の利点
・SWFのリソースをそのまま利用できる
・FlexライブラリによるUI開発
◆他
・スマホ版に比べて小規模な開発体制
SWF
・SWFファイルを読み込んでそのまま表示するこ
とができる
 Flash Professional CS5等のソフトで
デザイナーが作成したアニメーション、エフェクト
をそのまま再生するだけでいい
FlexライブラリによりUIの作成が容易
◆オープンソースで改良、機能追加が容易
◆標準のコンポーネントが多数用意
 されている
• ボタン
• パネル
• チェックボックス
• スライドバー
• テキスト入力フォーム
等
(C)Marvelous Inc. Aiming Inc.
FlexライブラリによりUIの作成が容易
サンプル
XMLをベースとしたMXML形式で記述できる
構造が把握しやすい
(C)Marvelous Inc. Aiming Inc.
小規模な開発体制の利点
◆意思決定が早い
◆周りの状況をつかみやすい
◆いちアイデアや希望として新規機能や要望
 の意見が通りやすい
<実装例として>
 UIの拡張・調整、 リプレイ機能など
プロジェクトでエンジニアからみて
他のプロジェクトに自慢したいことを
1つ挙げるとすると何ですか?
おわり
ありがとうございました。

More Related Content

剣と魔法のログレス(PC版)の自慢と課題