はじめに
Happy Elements Advent Calendar 2020 4日目の記事です。
Happy Elements株式会社はRuby on Railsを使っています
Happy Elements株式会社(HEKK)のソーシャルゲームのバックエンドはRuby on Rails(Rails)を使って開発しています。
これは会社が設立されたときから変わらずなのですが、全社統一でRailsを長らく使ってみて感じたメリットについてまとめてみたいと思います。
開発方針
本題に入る前にHEKKの開発方針について。
HEKKでは開発方針として良いゲームを作ることを最優先に考えています。
そのため、「新しい技術だから……」とか「エンジニアのモチベーションを上げるために流行っていることを……」みたいなことをそこまで重要視しておらず、どちらかというと「枯れた技術の水平思考」のような考え方を大切にしています。
Railsを利用することのメリット
作りたいものを素早く作ることができる
Railsの良いところは、オールインワンのフレームワークで、作りたいものを素早く作ることができることだと思います。
O/Rマッパー、Routing、Test、Migrationの仕組みなど、Railsにはソーシャルゲームのバックエンドを開発するのに必要な機能が揃っています。
Rubyは静的な型付けがない言語であるため、一般的には大規模プロジェクトには合いづらいとされていますが、ソーシャルゲーム規模の開発には比較的マッチしやすいように考えています。
デファクトスタンダードなフレームワークである
RubyといえばRuby on Railsということで、デファクトスタンダードなフレームワークの存在は非常に大きいと思っています。
ソーシャルゲーム開発は基本的にゲームごとに0からの開発になるため、これがもしRuby以外の言語であれば、ゲームごとにフレームワーク(または言語)が違うという状況が頻出することが想像できます。
ゲームごとに新しい言語、フレームワークのキャッチアップなどが必要になることは、スタッフの流動性などにも関わってきますが、HEKKの開発方針からも避けたいところです。
利用者が多い
利用者が多いため、ウェブ上に事例や関連情報が多いこともRailsのメリットの一つです。
また、gemなどもGitHubなどに数多く公開されているため、利用することも参考にすることもできます。
Rubyは日本発のプログラミング言語ということもあり、日本語の情報が多いのも良いポイントです。
ウェブ画面が作りやすい
管理者やCS担当者向けの機能は、全アプリ共通で一つのプロジェクトとして独立させられると理想的に思えますが、実際は各アプリで管理画面を作る方がデータ連携の面でも機能追加のスピードなどを考慮してもメリットが多いです。
その場合、アプリのバックエンドと同じフレームワークで管理画面を作ることになるため、APIだけではなく素早くウェブ画面を作れることが大きなメリットになります。
まとめ
HEKKの開発方針とソーシャルゲームを作る際のRailsのメリットについて書きました。
“フレームワークから言語を選んだ”みたいなところもありますが、結果的には良い選択であったように思っています。
ただ、Rails自体に強くこだわっているわけではないため、今後変更するのも良いと思っています。
例えば、GoやElixirで作るのも楽しそうですし機能もそのまま作れるとは思うのですが、開発方針や上述のようなメリットを考慮すると気軽に変更できるものでもないため、今後慎重に考えていきたいと思っています。
メンバー募集
Happy Elements株式会社 カカリアスタジオでは、
いっしょに【熱狂的に愛されるコンテンツ】をつくっていただけるメンバーを大募集中です!
もし弊社にご興味持っていただけましたら、是非一度
下記採用サイトをご覧ください。
Happy Elements株式会社 採用特設サイト