こんにちは、インフラストラクチャー部(注:10月から異動になりました)のsue445(Sueyoshi GO)です

今年でドリコム入社5(GO)年目になりました。4年間の歴史の中で弊社アプリの事前登録にもいろいろ関わっていて、気づいたら弊社名義でリリースしたネイティブアプリの事前登録皆勤賞でした。

同じ事前登録でも4年間の中で変遷があったのでポエムを嗜もうと思います。

事前登録とは?

ゲームをリリースする前にユーザさんにメールアドレスなどを登録してもらい、実際にゲームをリリースした時に告知を出すというシステムです。

最近では フライングガチャ などのように事前登録に特化したサービスもあります。

アプリによって「事前登録」「事前予約」混在してますが、以降「事前登録」と書きます。

ドリコムの事前登録の変遷

時期 タイトル 事前登録の内容 構成
2013年7月頃 ファンタジスタドール ガールズロワイヤル メールアドレスで事前登録 メール配信プラットフォーム
2013年12月頃 フルボッコヒーローズ Twitterで事前登録。事前登録ガチャ Ruby 2.0.0 + Rails 4.0.2
2015年4月頃 崖っぷちバスターズ Twitterで事前登録。事前登録ガチャ Ruby 2.1.5 + Rails 4.1.8
2016年9月(NOW) ダービースタリオン マスターズ Twitter、メールアドレス、LINEで事前登録 Ruby 2.3.1 + Rails 5.0.0.1

詳細

ファンタジスタドール ガールズロワイヤル(ガルロワ)

事前登録時期は2013年7月頃。

昔ながらのメールアドレスによる事前登録でした。

今から見ると古かしいですが当時はメールアドレスでの事前登録は全盛期でした。

上記スクショの公式サイトを含めて僕1人で開発・運用していました。

余談ですが公式HPのHTMLにAAを埋め込むのは僕がやったことですw

登録されたメールアドレスに対して事前登録の特典(確か水着ささら)のシリアルコードを配布するというシステムだったと思います。

メールフォームのシステムは ビートレンド というサービスを使っていました。

月額1万円という安価でメールフォームの設置とメール配信ができてよかったです。数万件のメールも一瞬で送れて当時すごかったと記憶しています。

各ユーザごとに同一報酬だけど異なるシリアルコードを生成したいという要件があって、事前登録した人数分のシリアルコードを生成した記憶があります。

※サービス終了

フルボッコヒーローズ(フルボッコ)

http://official.fullbokko.drecom.jp/

事前登録時期は2013年12月頃。

アプリリリース前に事前登録でガチャがあり、事前登録であたったキャラが実際にアプリリリース後に報酬としてもらえるという業界初の試みでした。

また、時間帯ごとにガチャを回せる回数が決まっていました。

いろんなメディアで取り上げられたり、他社からもうちを模倣した事前登録ガチャが始まったのを記憶しています。

過渡期は2人いましたが、公式HPと事前登録ともにサーバサイドはだいたい自分1人で開発・運用していました。

裏側のことはこちらをご覧ください。

Resemaraを支えた技術 フライングゲットガチャの舞台裏 #ksgstudy #ドリコム

事前登録ガチャのシステムは当時最新の Ruby 2.0.0 + Rails 4.0.2 を使ってました。

当時社内の他アプリで導入していなかったcapistrano 3系をいち早く導入しその後capistrano-drecom-deployという社内gemとして共通化され、今でも社内のアプリで広く使われています。

またフルボッコの事前登録のガチャのシステムは フライングガチャ として生きています。

崖っぷちバスターズ(ぷちバス)

事前登録は2015年4月頃。

これだけは自分はメインではなくサブで関わってました。過渡期でサーバサイド3〜4人くらいいたんじゃないかと思います。

こちらも 当時最新の Ruby 2.1.5 + Rails 4.1.8 を使ってました。

フルボッコの時は時間帯によって回せるガチャの回数が決まっていましたが、ぷちバスでは自分が招待した人数によってたくさんガチャが回せるようになっていました。

※サービス終了

ダービースタリオン マスターズ(ダビマス)

今まさに事前登録しているやつです!

http://dabimas.jp/

これも普通にRailsアプリです。(Ruby 2.3.1 + Rails 5.0.0.1)

私事ですが1年ぶりくらいにRailsアプリ開発しています。

本来なら公式サイトだけならRailsアプリじゃなくてもいいじゃんと思ってたのですが、いろいろな大人の事情により事前登録も乗せることになりました。

Twitter認証を使ってるものの今までと違ってガチャ要素はなく、アプリリリース後のユーザへの告知のためにTwitter認証を使っています。

今回面白い試みとして、今後の共通化を見越してビジネスロジックのほとんどをmountable engine(社内gem)に寄せています。(後述)

mountable engine含めるとサーバサイドは4人くらい開発に関わっています。

余談

windy_egretというmountable engineについて

ぷちバス事前登録の時にDM一斉送信を実装するのにフルボッコやフライングガチャのソースコードを見ながら実装するのに苦労したこともあり、「二度あることは三度ある」ということでTwitter認証とDM一斉送信に特化したmountable engineを趣味で作りました。

これが windy_egret という社内gemです。

「こんなこともあろうかと」 作っていたgemのおかげでダビマスのTwitter連携とDM一斉送信は10分でアプリに組み込むことができました。

汎用化されたシステムなのでOSS化してもよかったのですが、

  • 社内用途に限定することで導入を簡単にしたい

    • 社内Railsアプリでデファクトになってる MySQL、SIdeKiqSentry 前提
  • 一部社内gemに依存している

ということで今のところOSS化の予定はありません(◞‸◟)

mountable engineについて詳しいことは下記を参照ください。

Mountable Engine だらけの Rails アプリ開発 – onk.ninja

ちなみに windy_egret という名前の由来はこんな感じです。

  • Twitterといえば鳥アイコン
  • 鳥といえば キュアイーグレット
  • キュアイーグレットといえば キュアウィンディ
  • 組み合わせればウィンディ・イーグレット(windy egret)
  • 和訳すれば「風の白鷺(しらさぎ)」ということでカッコイイ!!!

皆さんもググラビリティのある特徴的な名前をつける時はプリキュアを参考にするのがいいです。

ダビマス公式サイトのGemfile

こちらがダビマス公式サイトのGemfileです(社内gem除く)。ご査収ください。

source "https://rubygems.org"

gem "rails", "5.0.0.1"

gem "activerecord-simple_index_name"
gem "bootstrap_form"
gem "bower-rails"
gem "dalli"
gem "devise_ldap_authenticatable"
gem "global"
gem "jbuilder", "~> 2.5"
gem "jemalloc", require: false
gem "komachi_heartbeat"
gem "mysql2", ">= 0.3.18", "< 0.5"
gem "rails-i18n", "~> 5.0.0"
gem "redis-namespace"
gem "sass-rails", "~> 5.0"
gem "sentry-raven"
gem "sidekiq"
gem "sinatra", "~> 2.0.0.beta2"
gem "slim-rails"
gem "uglifier", ">= 1.3.0"
gem "unicorn"

group :staging do
  gem "rack-dev-mark", group: :development
end

group :development do
  gem "annotate"
  gem "capistrano-around_chatwork", require: false
  gem "capistrano-chatwork", require: false
  gem "capistrano-itamae", require: false
  gem "capistrano-npm", require: false
  gem "capistrano-rails", require: false
  gem "gitlab_mr_release", require: false
  gem "index_shotgun", group: :test
  gem "onkcop", "0.42.0.1", require: false
  gem "pre-commit", require: false
  gem "pry-byebug", group: :test
end

group :test do
  gem "factory_girl_rails", group: :development
  gem "rspec-its"
  gem "rspec-rails", group: :development
  gem "timecop"
end

最後に

是非皆さんもダビマス事前登録してください!

http://dabimas.jp/