【大阪 / 横浜】インフラ / サーバーサイドエンジニア募集中!

【大阪 / 横浜】インフラ / サーバーサイドエンジニア募集中!

【25卒向け】AI×バーチャル面接の募集を開始いたしました!

【25卒向け】AI×バーチャル面接の募集を開始いたしました!

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【導入実績 500社以上】AWS 構築・運用保守・監視サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【CentOS 後継】AlmaLinux OS サーバー構築・移行サービス

【WordPress 専用】クラウドサーバー『ウェブスピード』

【WordPress 専用】クラウドサーバー『ウェブスピード』

【格安】Webサイト セキュリティ自動診断「クイックスキャナー」

【格安】Webサイト セキュリティ自動診断「クイックスキャナー」

【低コスト】Wasabi オブジェクトストレージ 構築・運用サービス

【低コスト】Wasabi オブジェクトストレージ 構築・運用サービス

【予約システム開発】EDISONE カスタマイズ開発サービス

【予約システム開発】EDISONE カスタマイズ開発サービス

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【100URLの登録が0円】Webサイト監視サービス『Appmill』

【中国現地企業に対応】中国クラウド / サーバー構築・運用保守

【中国現地企業に対応】中国クラウド / サーバー構築・運用保守

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

【YouTube】ビヨンド公式チャンネル「びよまるチャンネル」

ビヨンド第7回勉強会「ゲーム開発の【ごっついい感じ】 ~ ソーシャルゲーム開発で使える 『ゲームAPI開発』」を開催しました!

インフラエンジニア兼Webマーケティングチームの伊藤です。
2017年1発目の勉強会を開催しました!

お知らせ:【第7回】 ビヨンド勉強会を開催します! | 株式会社ビヨンド

Doorkeeper:ゲーム開発の【ごっついい感じ】 ~ ソーシャルゲーム開発で使える 『ゲームAPI開発』 ~ ビヨンド勉強会 #7 - ビヨンド勉強会 | Doorkeeper

今回は、剣と魔法のログレスでおなじみの、株式会社 Aiming(エイミング)様に会場をお借りしました!

毎度のごとく、少し中身をご紹介したいと思います!

まずは今回のセッションの一覧です。

<tr>会社名登壇者名セッションタイトル

クローバーラボ株式会社 畑中様 GoによるAPI開発と使い所
株式会社ビヨンド 萬代 Phalconを使ったAPI開発
株式会社Aiming 植森様 Rails-API Way in Aiming

GoによるAPI開発と使い所


クローバーラボ畑中様によるセッション。
言ってしまうと、今回説明して頂いた部分は実はGithubに上がっています笑

GitHub - hatajoe/kug2

今回の資料はこちら。
GoによるAPI開発と使い所

ワンダークラウンのバックエンドに関しては全てGo言語で書かれているそう。
ワンダークラウン~七つの大陸と忘れられた島国~

ソーシャルゲーム開発は小規模な開発から、大規模な開発へシフトしてきています。
そこで役に立ってくるのがGo言語です。

  • 静的片付け言語
  • シンプル
  • マルチプラットフォーム

この他にも理由はあるのですが、こんな感じ。

静的片付け言語

Go言語は静的片付け言語で型が決まっていて、
大規模開発でいろんな人が触る上ではもってこい。

シンプル

Go言語はシンプルにできているので、覚えるのが簡単で、
誰が書いても同じようなコードになります。

マルチプラットフォーム

マルチプラットフォームで、WindowsだろうがMacだろうがLinuxだろうが、
同じものが見れる環境が出来ます。
Windows派とMac派が仲良くなれる時代ですね。

って、説明していても元資料があるので、そちらをご覧ください!!
GoによるAPI開発と使い所

その場でターミナルで実行結果を表示してくれるので、
すごくわかりやすいプレゼンでした!

Phalconを使ったAPI開発


弊社ビヨンドの萬代によるセッション。

PHPの「爆速」のフレームワーク、Phalconの紹介でした。

まずはPHPの代表的なフレームワークの一覧とその速さを紹介してくれたのですが、
そのトップ3がこちら。

  1. High Performance PHP Framework - Phalcon Framework
  2. Fast PHP framework | Ice framework
  3. Tipsy, an MVW PHP micro framework

よく使われている(であろう)Laravelとかfuelphpは速度でいうと下位に属していて、
「laravel使っているやつは甘え」なんて名言も生まれていました。laravel使いの方、すみません。

インストール方法は他のフレームワークとは違っていて、
githubからなどではなく、yumインストールが可能。
所謂共有ライブラリファイルをphpを読み込んであげるという手法を取ります。

Cバイナリで出来ているので、すげー速いって寸法です。

ORMも内部処理は速いですが、DBとのやり取りは少し苦手みたいですが、
それを補う速さがあるみたいですね。

マルチモジュール構成が取れるようになっていて、
例えばフロントとバックエンドで分けたり、APIのバージョンごとに簡単にソースコードを分けることが可能になっています。

インストールごとは違うけど、他のMVCフレームワークと似たようなディレクトリ構成になっていて、
他のフレームワークから移ってくる学習コストもそうかからないそう。

その学習コストをかけて、爆速のフレームワークが手に入るなら十分コストはかけてもいい、なんてことも言ってました。

ってことで、みんなPhalconに乗り換えましょう!

弊社のブログにPhalcon記事が少しずつ上がってきてますので、ぜひご覧ください!
Phalcon | 株式会社ビヨンド

Rails-API Way in Aiming


最後はAiming植森様のセッションです。

「Aimingのスタイル」のお話です。

Aimingさんでは、プロジェクトごとに言語を決めているそうです。

クライアント側はほぼほぼUnityで開発しているそうです。
ちなみに大ヒットゲームログレス いにしえの女神はcocos-2dxで、
それはUnityが2D対応がほとんど出来ていないときに作り始めたからだそうです。

また、リアルタイム性が必要な部分はC++かC#を使っていることが多く、
WebAPIの部分はRuby(Rails)かPythonが多いみたいですね。
ちなみにログレスはPython。

Aimingさんでは、REST APIを使うのではく、RPCをよく使っているそうです。
それは、リソース指向であることのメリットは特に多くはなくて、クライアント→WebAPIへの通信はラップして抽象化していて、
エンドポイント側を意識して使うことがないからだそう。

プロトコルを定義する

WebAPIとリアルタイムサーバ・クライアント間の通信プロトコルを定義するものは内製で作ってしまっていて、
それぞれの環境(クライアント側、リアルタイムサーバ側、APIサーバ側)が独自に実装していってしまうことを防いでいます。
もし独自で作ってしまっていたら、そこで色々と共有していく必要が出てきますからね。。

開発だけでなく、ドキュメントの生成やテストクライアントの生成も容易になって、いい感じ!というわけです。

Railsを使うということ

Rails自体がエコシステムになっているところが大きいそうで、難しい実装だったとしても、
既存のgemを使ったり、参考にすれば実装が簡単になるそう。
アーキテクチャが書かれていて、ベストプラクティスが豊富なので、
いろんなことがあっても対処がしやすいのがRails。

ただ、パフォーマンスが劣ることがあるので、そこはトレードオフですかね。

まとめ

当たり前なんですが、いろんな会社がいろんな方法で開発してるもんですねー、って改めて思いました。
いろんな会社のいろんな方法を見ることで、取り入れたほうがいいものとか、そうでないものの取捨選択をすることが出来ます。
弊社の勉強会には学生の方もこられることがあるのですが、どう感じているんでしょう。

ってかAimingさんのオフィスめっちゃきれい。。。

では、第8回でお会いしましょう!

この記事がお役に立てば【 いいね 】のご協力をお願いいたします!
0
読み込み中...
0 票, 平均: 0.00 / 10
402
X facebook はてなブックマーク pocket
【2024.6.30 CentOS サポート終了】CentOS サーバー移行ソリューション

【2024.6.30 CentOS サポート終了】CentOS サーバー移行ソリューション

【25卒向け】AI×バーチャル面接の募集を開始いたしました!

【25卒向け】AI×バーチャル面接の募集を開始いたしました!

【大阪 / 横浜】インフラエンジニア・サーバーサイドエンジニア 積極採用中!

【大阪 / 横浜】インフラエンジニア・サーバーサイドエンジニア 積極採用中!

この記事をかいた人

About the author