taki

剣と魔法のログレスにおけるバックアップのお話


ご無沙汰しております、ソフトウェアエンジニアの滝です。
今回は、Webブラウザ版 『剣と魔法のログレス』 (以下ログレス)のデータバックアップのお話です。

1日あたり数GBという膨大なデータが出力されるため、どのようにしてバックアップを取りどのように保管しているかについてお話したいと思います。

何のバックアップを取っているか?

ログレスでは、お客様のサポートや動向調査のために、行動履歴データが含まれるログデータやデータベースのバックアップを行っています。

バックアップはいつとっているのか?

データベースは毎朝定期的にバックアップを出力しています。
所要時間は1時間程度ですが、1日につき数GBのダンプデータが出力されます。
ログデータは、ゲームサーバーが出力したものを取得します。
これらのバックアップファイルは、社内のログ管理サーバーにキャッシュされ、定期的に圧縮作業を行っています。

バックアップデータはどのように保管されているのか?

ログレスでは月に一度、LTO(磁気テープ)にバックアップデータを書き込みます。
バックアップするデータは毎月cronで月初に圧縮され、一時的に別のディスクスペースに置かれます。
バックアップが完了すればメールが届くので、内容を確認してLTOに書き込みます。
数年前のプロジェクトでは、当時DVD-Rを使ったバックアップを行っていましたが、技術が進歩し記録メディアの大容量化進んで単価が安くなったため
現在そのプロジェクトでは、ブルーレイディスクでのバックアップを取っています。
ログレスも2016年5月まではブルーレイディスクへバックアップをしておりました。
しかし、ログレスのバックアップデータは圧縮しても1月あたり約160GBありますので、ブルーレイディスクを複数枚に渡って書き込む必要があり、それらの作業を自動化するには難があったため、LTO化することになりました。

終わりに

簡単ではございますが、ログレスのバックアップのことについてお話させていただきました。
オンラインゲームを運営する上では、あまり表の話に出ないバックアップですが
バックアップは、データ復旧などのもしものことがあった時だけでなく
様々な調査や分析にも使われる大切なデータです。

今回は、現場の裏側のそのまた裏の話ということで、以上バックアップのお話でした。


あなたの知らないキーボード拡張の世界


初めまして、エンジニアの山納です!

突然ですが皆さん、 キーボード配列入力方式 は何をお使いでしょうか?
恐らく、大多数の方々が QWERTY + ローマ字入力 なのではないかと思います。
しかしながら、世の中では少数ながらも、別の配列を使っている人たちが存在します。
数で見ると少数派ですが、この中には実に多くの配列や入力方式が入り混じっているのです。

今後の人生で何度キーボードが変わろうとも、キーボード配列はそう何度も変わりません。
そんな、まさに人生の伴侶とも言えるのがキーボード配列です。
好きなエディタで争うよりも、好きなキーボード配列で争いましょう!

とは言え、いきなりQWERTYから乗り換えるのはハードルが高いと感じることでしょう。
そこで今回は QWERTYのままでも使える 入力上の工夫を中心にご紹介したいと思います!

続きを読む


GWも近いので時間があるときに読んでおくとためになるサイトを紹介します!!


こんにちは、ソフトウェアエンジニアの平野です。

今回は GW も近いということで、時間があるときに読んでおくとためになるサイトを3つ紹介したいと思います。

Unity エディター拡張入門 (http://anchan828.github.io/editor-manual/web/)

「エディター拡張をすることで何ができるようになるの?」がとても分かりやすく書かれていて、エディター拡張をしてみたいと思っている方はぜひ一度読んでみるといいと思います。最近WEB無償版が公開されたようです。

任天堂 社長が訊くシリーズ (https://www.nintendo.co.jp/corporate/links/)

任天堂のさまざまなプロジェクトの制作エピソードが読めるサイトです。
ファイアーエムブレムシリーズが好きなので、ファイアーエムブレムの開発秘話が知れるだけでテンション高まりました(ちなみに私はカジュアルモード肯定派です)

電ファミニコゲーマー ゲームの歴史を紐解くシリーズ (http://news.denfaminicogamer.jp/category/projectbook)

今年の2月から連載が始まったシリーズで、ゲームに名を残している名作ゲームの製作エピソードが読めるサイトです。個人的にはコーエーの記事がおすすめです。「旦那のゲームを売るために離婚を辞さない」の言葉のインパクトはなかなかでした。

終わりに

今回は時間があるときに読んでおくとためになるサイトということで3つ紹介しました。
開発秘話や製作エピソードは一ユーザとして楽しく読みながらも、開発者として考えさせられる話とかもありますので、興味のある方はぜひ読んでみてください。


mewlist

Redmine で技術仕様書を書こう


はじめまして!
株式会社 Aiming の土井です! エンジニアをやっております!

今回の開発者ブログでは、情報共有ツールとしての UML の活用方法について、現場での取り組みをご紹介させていただければと思います!

技術仕様書の“図” どうやって書いてますか?

株式会社 Aiming では、プロジェクトの Wiki やバグトラッキングに Redmine をメインに使っています。みなさんも既にご存知だったり、実際にバリバリ活用されていることとおもいます。

また、企画仕様書、技術仕様書などは Redmine の Wiki やエクセルに代表されるオフィススイート等を活用して作成しますが…
図の表現を求められるような仕様書を作る時に、どうやって作成しようか悩んだことはありませんか?

  • 標準ペイントソフトで頑張って作成
  • オフィススイートに含まれる、ドローツールを使って図を作成、画像吐き出し

というケースが一般的には多いようです。かくいう私も、Google スライドでの図表作成に明け暮れたものです(p_-)

そこで、今回は、技術仕様書で必要となる図の表現方法について、Aiming で行われている取り組みについて紹介したいと思います。

技術仕様書といえば、UML!

UML について詳細は割愛しますが、仕様を視覚的に見せなければならない時に用いられる、図の書き方に関する取り決めです。

例えばこんな感じです。

すごい戦闘システムのフロー

2366afd8450116b7157a68cbbd5f03b357ca53886bbe89633f17fcdf3e46642c

適当なプレイヤーモデルのクラス設計

e68f045825b59ced550524e65dcb848465a2d8260e931ae8b23f450ad58a62de

こんな感じで、要点をシンプルに図で見せられるとわかりやすいですよね?
でも、UML のルールにしたがって図を綺麗に書くのって、やってみると結構大変。

特にエンジニアは、絵心については自信がない方も多いのではないでしょうか?(絵心あるエンジニアの方すいません)

絵心がなくても大丈夫!

こういった図を描くために、「Windows の標準ペイントソフトと格闘して、気づけば日が暮れていた!」 みたいな経験、皆さんありますよね? この苦痛に耐え、その先に産みの苦しみを知るわけですが……ちょっと待って下さい。

実は、先ほどの例に上げた図、Redmine の Wiki に直接テキストで記述されているんです! (ここ、びっくりするところです)

すごい戦闘システム

{{plantuml
  title すごい戦闘システム
  
  (*) --> "コマンド?" as Wait
  Wait --> ["たたかう"] "敵のHPを減らす" as Damage
    --> if "敵は生きてる?" then
         --> [HP == 0] End
       else
         --> [HP > 0] Wait
       endif
  
  Wait -> ["にげる"] "戦闘終了" as End
  
  End -> (*)
}}

適当なプレイヤーモデルのクラス設計

{{plantuml
  abstract Abstract {
    HP
    MP
    瞑想する()
  }
  
  interface Interface {
    走る()
    投げる()
    飛ぶ()
  }
  
  class Player {
    名前
    運
    適当なことを言う()
  }
  
  Abstract <|-- Player
  Interface <|.. Player
}}

Redmine のプラグイン (PlantUML) を導入する

UML をテキストで記述する機能は、PlantUML Redmine plugin という Redmine のプラグインで提供されています。

PlantUML Redmine plugin

図をテキストで書くことのメリット

  • ペイントソフト・ドローツールの使い方に明るくなくても
    プログラムみたいに図が描ける
  • エンジニア間だけでなく、プランナーとの情報共有にも活用できる。図なので!
  • Redmine Wiki の履歴がテキストで残る。つまり、図の差分が把握できる
  • クラス図なんかは そのままソースコードの雛形として使える
    設計段階からコードの全体像を意識することができるので、設計と実装を分離して考えることにもつながる
  • 順番の入れ替え、追加削除が容易なので仕様変更に強い
    (仕様が変わって矢印をマウスで一つ一つ引き直すみたいな経験…ありますよね)

最後に

Redmine をお使いの方は、PlantUML Redmine plugin をインストールしてみてはいかがでしょうか。

UML はとても強力なツールですが、敷居が高い印象を持つ方も多いと思います。
まずは、PlantUML の公式サイトのサンプル画像をみて簡単な図から描いてみましょう!


skatsushima

Aiming 開発者ブログを開設致しました


このブログはオンラインゲームの制作・プロデュース会社 Aiming の開発者ブログです。
弊社の開発チームには、大規模ウェブや MMOG(多人数同時接続型オンラインゲーム) といったシステムの開発を成功に導いてきたスタッフが集まっています。
オンラインゲーム制作の現場で働くエンジニアの技術情報、ゲームの最新情報などを投稿していきます。
また、弊社主催による勉強会情報・インターンシップ情報も告知掲載します。