タグ

ブックマーク / labs.gree.jp (21)

  • スマホゲームの API サーバにおける EKS の運用事例 | GREE Engineering

    *1 デフォルトでは Pod に割り当て可能なセカンダリ IP アドレスを ENI 1個分(その ENI に割り当てできる最大数)確保する設定ですが、実際には DaemonSet などがありすぐに ENI 1個分の空きという条件は満たさなくなるので、ワーカーノード起動時に ENI 2個分(「そのインスタンスタイプが ENI ごとに割り当てできる IP アドレス数」の2倍)が確保されるということになります。ドキュメントとしては次のリンクをご参照ください。 参考: https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/cni-env-vars.html 参考: https://github.com/aws/amazon-vpc-cni-k8s/blob/master/docs/cni-proposal.md 例えば、ピーク時に c5.4x

    スマホゲームの API サーバにおける EKS の運用事例 | GREE Engineering
  • Jenkinsfile、書いてますか? | GREE Engineering

    インフラの駒崎です。Jenkins の Pipeline スクリプトについてのお話です。 早速ですが Jenkins の Pipeline スクリプト、使われていますでしょうか。 もしかしたら以前ちょっと書いていたけどやめてしまったとか、従来の GUI 設定のほうが楽だ、となんとなく敬遠してしまっている方もいるのではないでしょうか。 私が実際そうだったのですが、最近になってやっと Jenkinsfile - Pipeline スクリプトが身近に感じられてきましたので、現状の簡単なまとめを書いてみたいと思います。少しでも似た状況の方へのヒントやきっかけになれば幸いです。 Pipeline スクリプトは難しい? 私は正直、2016年に Jenkins 2 の目玉機能として Pipeline が出た当初は、とっつきにくい…わからん…と思っておりました。Jenkins を上っ面でなんとなく使ってい

    Jenkinsfile、書いてますか? | GREE Engineering
  • ソーシャルゲーム サーバーアーキテクチャ選定 | GREE Engineering

    ※Read / Write のレスポンスタイムは大まかに計測した値のため適切な設定ができていない場合もあることをご了承ください MySQL 信頼と実績のあるRDBMS。新規タイトルの場合AWSではAuroraGCPではCloud SQLを利用することで運用の手間をある程度減らすことができる。分散システムではないため1クラスタでの書込性能には限界があり、ソーシャルゲームのように大規模なwrite処理がある用途では水平/垂直分割が必要になり、そのための設計とコーディングが煩雑になりがちである。またインスタンスのスケールアップ・ダウンで対応しきれない場合のクラスタの分割・統合のオペレーションは複雑なものになる。 スケールアップ・ダウンやnodeのメンテナンスなどでMaster nodeを切替える際には不通時間が発生してしまうため、安全のためゲーム自体をメンテナンス状態にする必要が発生する。 ※

    ソーシャルゲーム サーバーアーキテクチャ選定 | GREE Engineering
  • モバイルゲームにおけるマスターデータ運用事例 | GREE Engineering

    こんにちは。Wright Flyer Studios部のにしだ(@hosi_mo)です。LINE タワーライジングのメインプログラマを担当しています。 こんかいは趣向を変えて、“モバイルゲームにおけるマスターデータ運用事例"という題で、タワーライジングでのマスターデータの運用まわりについてお話しいたします。 ゲームの実装はこちらを参照ください。slideshare : http://www.slideshare.net/greetech/towerrising ※この投稿は GREE Advent Calendar 2015の18日目の記事です。 マスターデータとは マスターデータとは、ゲーム内で不変の共通パラメータ群のことを指します。モバイルゲームにおいては、アプリのバイナリアップデートをせずにゲームに反映できるよう、起動時に最新のマスターデータを引っ張ってくることが多いです。Excel

    モバイルゲームにおけるマスターデータ運用事例 | GREE Engineering
  • 社内AIプログラミングコンテストで優勝したゲームプレイAIの紹介 | GREE Engineering

    こんにちは、応用人工知能チームの辻です。 最近は計算リソース、データ量、アルゴリズムの改善によって簡単に精度の高いAIが利用できるようになりつつあります。しかし、現状では全てのタスクにおいてAIを利用すればいいわけでもありませんし、リソースの制限もあるため、特性を理解して上手に応用することが重要です。そこで、社内ではAI応用のための知見や環境を積み上げていく機会を増やす取り組みを行っています。 先日、取り組みの一環でゲームプレイAIのプログラミングコンテストが開催され、約20チームが参加して盛り上がりました。このコンテストで優勝したゲームプレイAIについて紹介します。 AIによるゲームプレイ動画です。 コンテスト概要 AIにアクションゲームなどのデバッグの一部を任せられるかどうか検証したいという考えもあったので、ゲームプレイAIが対象として選ばれました。ゲームAI用に変更せずに画面情報

    社内AIプログラミングコンテストで優勝したゲームプレイAIの紹介 | GREE Engineering
    astk_f
    astk_f 2017/10/29
  • Electronでゲームの設定ツール作ってみた | GREE Engineering

    みなさんご無沙汰しております。ちょびえです。 最近はやりのElectronでゲームの設定ツールを作ってたので事例共有ということで記事を書いてみたいと思います。 事例共有なのであまり技術的な内容ではありませんが、少しでも皆様の参考になれば。 (免責としては、自分のチームの話なので全体としてこう、というわけではありませんのでご了承下さい) モチベーション 元々UnityEditorの機能を使って色んなツールを作っていたのですが、特定のGUI APIに依存した少し複雑なGUIツールとなるとメンテを他の人に託しづらくなってしまう問題があります。 会社として普段からWindowsMac向けのアプリケーションを作っている、とかであれば特に問題にならないと思うのですが。どうしても弊社のようにWebサービスが主力な会社だとHTML,JavaScriptを始めとした技術が得意な人が多く、Nativeアプリ

    Electronでゲームの設定ツール作ってみた | GREE Engineering
  • Docker と ECS と WebSocket で最強のリアルタイム・マルチプレイ環境を運用 | GREE Engineering

    概要 AWS ECS でマルチプレイゲーム用インスタンスの管理すると限りなく最強。 はじめに リアルタイム・マルチプレイゲームを作る時、まず考えられることは、あるプレイヤーの行動や状態が他のプレイヤーに伝わることではないかと思われます。しかし、スマートフォンアプリは不安定であったり、複数端末同士で(基地局やバックボーンを介さずに)物理的に直接接続することは出来ませんし、理論的にできたとしても、だいたい開発が進んでいくうちに排他制御の問題などで炎上、もしくはとん挫してしまいます。軽い気持ちでマルチスレッド処理をおこない事故る現象と全くおなじです。 もっとも簡単な解決方法としてはマルチスレッド処理のときようにクリティカルセクションを設けることです。ようはサーバを用意してそこで処理すれば、比較的容易に一意な結果が得られますし、接続に関する問題も起こりにくくなります。 長くなるので → http:

    Docker と ECS と WebSocket で最強のリアルタイム・マルチプレイ環境を運用 | GREE Engineering
  • 開発チームから激モテ!ネイティブゲーム時代の愛されQA | GREE Engineering

    はじめまして、Quality Assurance部ネイティブゲームQAチームの13新卒トリオ、 @haruna_nishi・@fujiemon_828・@hujuu ※注1です。 このエントリーは「GREE Advent Calendar 2014」21日目の記事です。 「GREE Advent Calendar 2014」13日目の山さんの記事で弊社のQA体制についてご紹介したばかりですが、そちらの記事はテストエンジニアリングチームの取り組みが主なテーマだったので、当記事ではネイティブゲームQAチームの体制や取り組みについてもう少し踏み込んでご紹介したいと思います。 激モテ!愛されQAと題したからには、開発チームからモテるためにどのようなQAを行っているのかを主眼に置いてレポート致します。 表舞台には出ることが少ない部署ですが、当記事で少しでも雰囲気をつかんでいただければ嬉しく思います

    開発チームから激モテ!ネイティブゲーム時代の愛されQA | GREE Engineering
  • GREEのUserAgent比率を公開します(2014/07) | GREE Engineering

    このアイコン使い始めてそろそろ7年になります。ago(@kyo_ago)です。 今月もGREEを利用して頂いているクライアントのUA比率を公開します。 グラフは以下のデータを元に作成しています。 { "os": { "Android": 66.3, "iOS": 33.7 }, "version": { "Android": [ { "percent": 37.1, "name": "4.2" }, { "percent": 21.1, "name": "4.0" }, { "percent": 20.3, "name": "4.1" }, { "percent": 13.6, "name": "2.3" }, { "percent": 4.3, "name": "4.3" }, { "percent": 3.6, "name": "other" } ], "iOS": [ { "perc

    GREEのUserAgent比率を公開します(2014/07) | GREE Engineering
  • グリーのインフラに Chef を導入した話 | GREE Engineering

    類似のソフトウェアとして、Puppet や Ansible といったものもあります。こういったインフラ自動化まわりのソフトウェアについてはペパボの宮下さんの インフラ系技術の流れ が参考になります。 Chef in グリー さて、グリーでのChefまわりの構成をご紹介します。下図が全体の構成です。 開発環境 開発は各個人のマシン上で仮想マシンを立ち上げて行なっています。クックブックの開発では、クックブックを開発する人が serverspec でテストを書くようにしていて、構築後のサーバが期待通り動くことをテストしています。一つのクックブックでも設定値などの条件によって動作が変わってくるため、test-kitchen を用いて複数の条件(ランリストやノードのアトリビュート(以下、「アトリビュート」)などの組み合わせ)でテストを行っています。 また、一部仮想マシンを使う必要がないテスト(att

    グリーのインフラに Chef を導入した話 | GREE Engineering
  • ImageMagick 改造入門 (その壱) GIFアニメーション | GREE Engineering

    こんにちは。ミドルウェア開発チームのよやです。 今回は、ImageMagick についてお話します。 http://www.imagemagick.org/ ImageMagick は高機能で大変便利な画像処理ツールです。弊社でも利用させて頂いていますが、稀に実サービスにそのまま適用出来ないケースがあります。 そこで、困った時に ImageMagick 自体を改造する際のポイントと、実際の応用例をご紹介します。 ImageMagick のプログラム構造 ImageMagick のプログラムは主に以下のディレクトリに分かれます。(Magick+ ディレクトリ等幾つかは割愛します) utilities/<コマンド名>.c コマンドラインツールの起点(main 関数) wand/〜.c (コマンド共通処理とコマンド毎の処理、Wand API) magick/〜.c (機能モジュール、ユーティリテ

    ImageMagick 改造入門 (その壱) GIFアニメーション | GREE Engineering
  • SWFバイナリ編集のススメ番外編 (zlib 伸張) 前編 | GREE Engineering

    こんにちは。アプリケーション基盤チームのよやと申します。 バイナリの目利きや書き換えを主な業務フィールドとし、1% でも多くのユーザの皆様にサービスをお届けする為、より良質のバイナリを探し求める毎日です。 SWF の番外編として zlib 伸張について2回のブログに分けて解説します。(圧縮処理は対象外です) 前編の今回は概要についてお話し、具体的な実装は後編で扱う予定です。 はじめに SWF フォーマットは zlib 圧縮を多用します。例えば、GIF/PNG 画像は独自画像形式(DefineBitsLossless の BitmapPixelData)に変換後 zlib 圧縮して格納します。 http://labs.gree.jp/blog/2010/12/1902/ SWFバイナリ編集のススメ第五回 (PNG) SWF バイナリの中の zlib 圧縮されたデータが怪しい場合に、zlib

    SWFバイナリ編集のススメ番外編 (zlib 伸張) 前編 | GREE Engineering
  • Flash | GREE Engineering

    Flash について GREE Engineering

    Flash | GREE Engineering
  • 1時間で携帯サイトをスマートフォン対応にする方法 | GREE Engineering

    初めての投稿となります。エンジニアのmatsuです。 携帯向けウェブサイトを1時間でスマートフォン対応する方法を紹介します。 概要 2011年4月7日のニュースにて携帯電話の新規契約数のうち、スマートフォンが占める割合が50%を越え、スマートフォンが格的に普及する兆しが見えてきました。 現在、スマートフォン向けサイトを新規構築するためのチュートリアルは数多く出ていますが、既存の携帯サイトをスマートフォンに最適化する方法があまり紹介されていないのでこの記事で紹介したいと思います。 このチュートリアルを行うと以下のようになります。 実装 全部で8ステップあります。 このチュートリアルではブログのトップページを例にとって説明します。 前半では文字コードの変更、HTMLの変更といった構造を変更します。後半では絵文字や文字スタイルを行い、仕上げとしてHTML5のバリデーションを行っていきます。最初

    1時間で携帯サイトをスマートフォン対応にする方法 | GREE Engineering
  • SWFバイナリ編集のススメ第七回 (Shape基本構造) | GREE Engineering

    こんにちは。プラットフォーム開発のよやです。 今回は DefineShape タグについて解説します。DefineShape タグは Flash SWF がベクター画像を格納するタグです。 第3回~第5回でとりあげた Bitmap 系(DefineBitsJPEG, DefineBitsLossless)タグと、この DefineShape タグの機能と構造を理解すれば、(fla ファイル無しでも) Flash の任意の画像を好きなように編集できます。 DefineShape タグの大まかな機能とバイナリ構造を紹介して、最後にバイナリデータを編集する PHP のコードと動作サンプルを示す。といった流れで進めます。 読み解くポイント 一般的な描画ツールで絵を書くときには、まずパレットで色や太さを指定してから線を引きます。DefineShape はそれをなぞったようなフォーマットです。 現在の

    SWFバイナリ編集のススメ第七回 (Shape基本構造) | GREE Engineering
  • 多人数開発で Git を使う場合の環境構築 | GREE Engineering

    こんにちは、インフラやってる sotarok です。最近、社内でも「sotarok は そーたろっくと読む」という誤解が広がっていましたので改めて自己紹介しますと、sotarok と書いて「そーたろー」または「そーたろー・けー」と読みます。ロックしてないのでよろしくお願いします。 今日は、Git の話です。 GREE ではずっと Subversion を使っているという話を、以前開発環境の話をしたときに少し触れたことがあります。Subversion での運用方法も、GREE では割と面白い運用をしているのでその話もどこかでしたいのですが、まあ、それは今回は置いておきましょう。どこかで聞いてください。 GREE もその昔 CVS から Subversion に移ったのですが、時代は流れるもので、いよいよ Git 化という流れがきています。Subversion と Git の違いを今更あえて挙

    多人数開発で Git を使う場合の環境構築 | GREE Engineering
  • SWFバイナリ編集のススメ第六回 (おさらい編) | GREE Engineering

    こんにちは。メディア開発のよやです。 そろそろ SWF シリーズの記事は打ち止めにしようか迷っていましたが、暖かい励ましのメールを頂いたので、もう少し続きます。ご声援ありがとうございます。 今、作成中の Shape 編(ベクター画像)の記事が長くなりそうですので、一度、これまでの内容をおさらいします。 記事一覧 (第一回~第五回) 第一回 (SWF構造) 第二回 (SWF編集) 第三回 (JPEG編) 第四回 (Lossless - GIF編) 第五回 (Lossless - PNG編) 実は、記事を出した後でも図を追加したり文言も訂正を重ねています。ぱっと見で挫折した方も、もう一度読むと分かる記事があるかもしれません。 第一回から順に読むのを前提に記事を書いてしまったので、途中から読むと分かりにくい部分が多いと思います。後から古い記事を辿れるように、各記事のポイントを列挙します。 第一回

    SWFバイナリ編集のススメ第六回 (おさらい編) | GREE Engineering
  • 大規模インフラの監視システム | GREE Engineers' Blog

    こんにちは。インフラチームの ebisawa です。 今回はグリーのインフラにおける各種機器の監視がどのように行われているのかご紹介させていただきたいと思います。一般にサーバの監視というと、システムダウンを検出するための死活監視を意味する場合と、ネットワークトラフィック等のモニタリングのことを意味する場合とがあります。今回の監視は特に後者についてのお話です。大規模なインフラの監視には、やはり特有の課題があります。 どんなツールを使っているのか グリーではサーバの各種リソース使用状況をモニタリングしてグラフ化するためのツールとして、Cacti を利用しています。Cacti は、大変有名なツールなので皆様ご存知かと思いますが、バックエンドの RRDtool で作成したグラフを閲覧するための使いやすいユーザーインターフェイスを備えています。 http://www.cacti.net/ ツールの使

    大規模インフラの監視システム | GREE Engineers' Blog
  • SWFバイナリ編集のススメ第三回 (JPEG) | GREE Engineering

    こんにちは。メディア開発のよやです。 前回、SWF書き換えの簡単なサンプルを示しました。 今回は、JPEG 画像入れ替えについてです。 SWFにおける画像の扱い SWF はベクター画像とビットマップ画像の両方に対応しています。 画像情報を格納する tag には幾つかの種類があります。(tag 名の後ろにつく数字は省略) DefineShape (ベクター画像。どのペンで何処に線を引いたといった情報) DefineBitsJPEG (JPEG画像) (*1) DefineBitsLossless (PNG的な可逆圧縮画像, シンプルなフォーマットをZlib圧縮) これらの中で比較的差し替えが楽な JPEG画像を取り上げます。 JPEG tag について Flash Lite 1.1/2.0 で対応する JPEG 系 tag は以下の4つです。 JPEGTables, DefineBits,

    SWFバイナリ編集のススメ第三回 (JPEG) | GREE Engineering
  • SWFバイナリ編集のススメ第一回 | GREE Engineering

    こんにちは。メディア開発部のよやと申します。バイナリ編集エンジニアです。 はじめに GREE では携帯向けコンテンツに Flash Lite を利用していますが、Lite には様々な制限(*1)があり、SWF(スウィフ) の動的生成技術を活用しています。 ツール(ming, swfmill, swftools, etc...)を用いた SWF 生成の記事は世間に溢れてますので、SWFバイナリの生編集をテーマに記事を何回かに分けて進めようと思います。 ツールを使う場合でも何かしら問題に遭遇した際の一助になるかもしれません。 第一回の当記事は、SWF仕様書の読み方ガイドです。 SWF仕様 Adobe公式の SWF仕様書は一般公開されています。 英語です。 http://www.adobe.com/devnet/swf/ (swf_file_format_spec_v10.pdf) 理解の助けに

    SWFバイナリ編集のススメ第一回 | GREE Engineering