タグ

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

  • Docker と ECS と WebSocket で最強のリアルタイム・マルチプレイ環境を運用 | GREE Engineering

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

    Docker と ECS と WebSocket で最強のリアルタイム・マルチプレイ環境を運用 | GREE Engineering
  • GREE GameDevelopers' Meetup 01 ご来場ありがとうございました | GREE Engineering

    こんにちは。開発企画室の佐島です。 GREE GameDevelopers' Meetup とは? GREE GameDevelopers' Meetup は、ゲーム開発者のみなさんと一緒に、オープンに技術を学び交流できる場づくりを目指し創設されたミートアップです。 8月7日(金)に記念すべき1回目が開催されました。 GREE Tech Talkともどもよろしくお願いします。 セッション ゲーム開発者の働き方とキャリア形成の未来 橋 善久 最初にご登壇頂いたのは橋さん。基調講演的な位置づけで発表頂きました。 テーマはゲーム開発者のキャリアについて。 実はお話頂いた内容についてもオープンな場で議論されてまして、まさにミートアップの「オープンに学び交流する」という趣旨にふさわしいセッションだったかと思います。 Cocos2d-xを用いた "LINE タワーライジング" の開発事例 西田

    GREE GameDevelopers' Meetup 01 ご来場ありがとうございました | GREE Engineering
  • シンプルなBehaviour Treeを実装してみる | GREE Engineering

    みなさまこんばんは。ちょびえです。 今日はちょっと趣向を変えてゲームAIの勉強、なかでもBehaviour Treeについてすこし勉強してみましょう。 ゲームの世界のAIってなんだっけ? ゲームの世界のAIといえばよくある経路探索や、特定状況下におけるNPC等のふるまいをよしなにやってくれるようなものです。AIっていわれてしまうとなんだか難しいように感じてしまいますが、ゲームという枠組みの中では時間経過や環境の変化を自立して判断したり・判断してるようにみせかけて楽しめるような仕組みとなっていれば良いと思います。 Behaviour Treeにチャレンジしてみる 細かい説明はググっていただくと色々と記載あるのでなんとなくビヘイビアツリーってわかるような、うーん・・・文章で書かれてもよくわからないですね!ということでお決まりの通りコードで書いてみましょう。 いきなりコード書いてもまったくわか

    シンプルなBehaviour Treeを実装してみる | GREE Engineering
  • オンラインゲーム開発のいにしえの技術 | GREE Engineering

    開発部の堀口です。昨年は git による分散作業パターン を書き、つい先月は 札幌での講演 を行い、当文章ではゲーム開発の設計に関するネタです。 昔話交じりのポエムですが20日目としてよろしくお願いします。 オンラインゲームとは 20 年ちかく前に Quake というゲームがリリースされ、一見すると単なる一人称視点のシューティングゲームにしか見えないが、プレイヤー自身の Quake の世界を公開し、来場者と遊ぶことができた。当時でいえば、自分のホームページに CGI 掲示板を設置するのと似ていたと思う。 Quake は、ゲーム世界のふるまいと世界の変化を伝える入出力が非常に良く分離されており、参加するプレイヤーはその世界の中に現れた自分の分身となるアバターの行動のみを制御し、アバターの目の代わりに世界の変化を、わずかな情報にしてプレイヤーに伝えた。プレイヤーの目の前にある端末では、その情

    オンラインゲーム開発のいにしえの技術 | GREE Engineering
  • よくわかるLinux帯域制限 | GREE Engineering

    矢口です。 みなさんはLinuxのtcという機能をご存知でしょうか。送信するパケットの帯域制御を行うことができる大変強力な機能で、グリーでもいくつかの用途で使用されています。 具体的な事例の一つはRedisです。Redisではreplicationを新規に開始する際やfailoverが発生しmasterが切り替わった際(特に2.6系)にストアされている全データが転送されます。しかし帯域制限をかける機能がないため、ネットワーク帯域を圧迫してしまう危険性があります。また通常のクライアントとの通信でも大量のクエリにより予想以上の帯域を使用してしまう可能性があります。このような場合にtcを用いることでRedisの使用する帯域をコントロールできます。 このように有用なtcですが残念なことに日語/英語ともにわかりやすい解説や詳細な情報は多くありません。 私も社内において使われていたtcの設定に問題が

    よくわかるLinux帯域制限 | GREE Engineering
    se-mi
    se-mi 2014/10/08
  • Behavior TreeによるUnity上でのUIフローコントロール | GREE Engineering

    Wright Flyer Studiosでゲーム開発を行っている久富木隆一(@ryukbk)といいます。 記事では、 - 代表的なUnityアセットPlayMaker - 2014年初頭にリリースされたUnityアセットBehavior Designer の紹介と、利用例を通じ、Unityと、Unityアセット利用のメリットについてまとめてゆきます。 Unityをまだ使っていない方、あるいは使い始めたもののどんな作法に則って使うべきか探っている方にお勧めの内容です。 Unityって 最早普及しすぎて説明不要とも思われるUnityですが、始めに、私から見てUnityとは何か、という視点をお伝えします。Unityそのものは利用者によって全く異なる用途に使われうるミドルウェアであり媒体であるからです。 私にとってのUnityとは、まずもって、スマートフォン上での代表的RAD(Rapid App

    Behavior TreeによるUnity上でのUIフローコントロール | GREE Engineering
    se-mi
    se-mi 2014/06/24
  • SNSチームでのドメイン駆動設計の実践 | GREE Engineering

    こんにちは!グリープラットフォームでSNSの開発をしています、うきょーです! GREE Advent Calendar 2013 6日目です、よろしくお願いします! 今回は僕が所属するチームでの、ドメイン駆動設計を実践してきた過程をお話したいと思います。ドメイン駆動設計とは何か、については簡単に要所要所で説明していきますが、詳しくはで!また、ドメイン駆動設計そのものについての話ではなく、実践の一例となります。 スマートUIパターンからのスタート 今回僕のチームが扱っていたものはJavaScript製のクライアントアプリケーションで、APIから取得した情報を表示し、ユーザーの操作によってAPIを呼び出す、というごく一般的なものです。 ドメイン駆動設計にはアンチパターンとして、スマートUIパターンと呼ばれるものが存在します。簡単に言えば「見た目都合から設計やモデルを考えてしまった」という状況

    SNSチームでのドメイン駆動設計の実践 | GREE Engineering
    se-mi
    se-mi 2013/12/06
  • Varnishでテストコードを書こう! | GREE Engineering

    はじめまして、サーバ基盤チームの田中祥平(@xcir)です。 最近入社しまして、チームではいわなちゃんと呼ばれています。よろしくお願いします。 入社してからGREEの配信システムをVarnish Cache(以下Varnish)に置き換える仕事をしていたのですが、少し前に問題なく山を超えました。 そこで今回利用したVarnishの特にテスト機能について紹介しようと思います。 なお、今回の説明に利用するVersionは3.0.3です。 Varnishとは VCLというドメイン固有言語をもち、キャッシュもできる高速リバースプロキシです。 if文が書けるので柔軟に記述しやすいという特徴があります。 たとえば/admin/以下に許可したIP以外からのアクセスは弾くと言ったことは以下のように記述できます。

    Varnishでテストコードを書こう! | GREE Engineering
  • あなたの知らないもうひとつのHTML5フレームワーク『LWF』 | GREE Engineering

    からこんにちは。エンジニアの坂 一樹(@splhack)です。 皆様いかがお過ごしでしょうか。HTML5とともに過ごしてらっしゃいますでしょうか。 てなことで、インターネッツに非常に興味深い検証がありました! ■HTML5フレームワークにおける表示オブジェクトのパフォーマンス検証 - TogetterHTML5開発者必見、最速のJavaScriptライブラリはどれだ!? パフォーマンスの徹底検証 HTML5フレームワーク同士のガチパフォーマンス勝負ですね。 HTML5のフレームワークは、たくさんありますが、やはりパフォーマンスがいいものを選択したいところですね。さらに言えば、アニメーションのオーサリングなんかも、いい感じのツールでさくっと付けられるといいんですが。 おや? 何かがなかまになりたがってますね! ということで、LWFも、勝手になかまにいれてしまいましょう! あ、LWF

    あなたの知らないもうひとつのHTML5フレームワーク『LWF』 | GREE Engineering
  • Lightweight SWF | GREE Engineering

    エンジニアの坂 一樹(@splhack)です。今日はみんなに新しいソリューションを紹介するね★ LWFっていうんだよっ♪ グリー、UnityおよびHTML5に対応したスマートフォンアプリの開発支援ソリューション「LWF」をオープンソースソフトウェアとして公開 「LWF」は、独自ファイルフォーマットに基づくアニメーションエンジンで、Flashコンテンツから変換したアニメーションデータを、UnityHTML5で再生できます。 「Animal Days」での「LWF」使用例 (弊社プレスリリースより抜粋) ねっ、いいでしょ♥ ... すみません。書いてて辛くなってきたんで、もうちょっと堅くさせていただきます。 “新次元ゲーム開発セミナー”が開催! グリーの気鋭が語る、次世代のモバイルゲーム開発で求められるものとは? 坂氏が講演で、「“Lightweight SWF”を“github”でオー

    Lightweight SWF | GREE Engineering
    se-mi
    se-mi 2012/10/19
  • GREEにおけるJenkins, その1 | GREE Engineering

    はじめまして。エンジニアの岡崎(@watermint)です。今回はGREEにおけるJenkinsの利用について紹介します。 Jenkinsは継続的インテグレーションの代表的なツールです。JenkinsがどういうものかはJenkinsコミュニティーの説明をみると良く分かります。 一言で言えば、Jenkinsは、容易ないわゆる「継続インテグレーションシステム」を提供し、開発者が変更をプロジェクトに統合でき、ユーザーがより新しいビルドを容易に取得できるようにします。自動化された継続的なビルドは、生産性を向上させます。 Meet Jenkinsより 継続的インテグレーションという言葉について耳慣れないというかたは、JenkinsならびにJenkinsの前身であるHudson開発者である川口さんによる解説をご覧ください。 Hudsonを使ったアジャイルな開発入門 GREEにおけるJenkinsの導入

    GREEにおけるJenkins, その1 | GREE Engineering
  • Git で日々の共同作業やリリース作業をサポートする git-daily を作りました | GREE Engineering

    こんにちは。インフラの sotarok です。 先日から Git 関連の話をしている通りですが、社内で Git を使い始めています。 今日は、Git を使った日々の開発〜リリースまでのフローや、そうしたものの運用と、それをサポートするために作ったツール git-daily の紹介をしたいと思います。 ソフトウェア開発とウェブ開発の違い いやウェブ開発も広義のソフトウェア開発なのですが、ここでいうソフトウェア開発とは、クライアントアプリケーションやライブラリのようなものを指すと思ってください。 実際、ウェブ開発をしている方は感じていることだとは思いますが、両者の開発フローはかなり異なるものです。もちろん社風や開発の方針等によって色々あるとは思いますが、主に次のような特徴が挙げられると思います: ソフトウェア開発 アプリケーションはクライアントで動作する リリース間隔は比較的長く、次のバージョ

    Git で日々の共同作業やリリース作業をサポートする git-daily を作りました | GREE Engineering
    se-mi
    se-mi 2011/05/12
  • SWFバイナリ編集のススメ第五回 (PNG) | GREE Engineering

    こんにちは。メディア開発のよやです。 今回は、PNG 画像入れ替えについてお話します。 PNG の情報を格納できるタグ DefineBitsLossless, DefineBitsLossless2 が利用出来ます。(*1) DefineBitsLossless に透明度情報を加えたのが、DefineBitsLossless2 です。 PNG の特徴 (基礎知識) 可逆圧縮のフォーマットです。(JPEGと違って画像の細部が潰れません) パレット形式とトゥルーカラー形式(24bit(*2)フルカラー)の両方に対応します。 色毎、ピクセル毎に透明度(半透明も可)が指定できます。 (GIFは半透明を扱えません) パレット形式 前回の GIF 編の説明と似ていますが、(GIFと異なり)半透明も扱う為、格納方式が異なります。 以下のは輪郭の外が透明で、黄色を少しだけ半透明した例です。 PLTE ch

    SWFバイナリ編集のススメ第五回 (PNG) | GREE Engineering
    se-mi
    se-mi 2011/01/10
  • SWFバイナリ編集のススメ第四回 (GIF) | GREE Engineering

    こんにちは。メディア開発のよやです。 今回は、GIF 画像入れ替えについてお話します。(PNG 画像入れ替えは次の機会に) GIF の情報を格納できるタグ DefineBitsLossless, DefineBitsLossless2 が利用出来ます。(*1) DefineBitsLossless は、ビットマップ画像をシンプルに表現して Zlib 圧縮する形式です。 この DefineBitsLossless に透明度情報を加えたのが、DefineBitsLossless2 です。 GIF の特徴 (基礎知識) 可逆圧縮のフォーマットです。(JPEGと違って画像の細部が潰れません) 色テーブル(カラーマップ)を持ちます。いわゆるパレット(インデックスカラー)形式です。 最大256色まで扱えます。透明色(半透明はダメ)も扱えます。 (蛇足ですが) 複数の画像を格納してアニメーション出来ます

    SWFバイナリ編集のススメ第四回 (GIF) | GREE Engineering
  • リアルタイム・ランキングを考える | GREE Engineering

    はじめに こんにちは。プラットフォーム開発部のsp1rytusと申します。 先日、私もついに30歳のおっさんになってしまいました。加齢臭が出ないようにがんばります! ランキングって? ランキングは誰でもわかる、何らかの得点をソートして順位位置を決定する凄く簡単でシンプルなものです。しかし、ゲームを扱うコンテンツ・サービスにおいては、得点を通算/日別に順位付けされたものが直ぐに目に入るように、他人と自分を比較する非常に重要な役割を果たしています。そこで、この記事では次の3つ要件を満たすようなランキング・システムの難しさと、それを解決するための一例を簡単に説明させて頂きます。 順位付けはリアルタイムに行い、集計時間を必要としない。 100万件以上の得点データが扱える。 すべてのデータが正しい順位付けで取得できる(線形補完などで順位を概算しない)。 リアルタイムによる正確な順位付けは、データ件数

    リアルタイム・ランキングを考える | GREE Engineering
    se-mi
    se-mi 2010/07/21
  • Gree Fast Processor: PHPを3倍(くらい)速く | GREE Engineering

    ごあいさつエントリだけというのもなんなので、引き続きfujimotoです。実質上1つめのような気がするこのエントリでは、PHPが3倍くらい(少なくとも2倍くらいは...)速くなるGree Fast Processorというのを先月作ってみたのでご紹介です。 すぐわかるまとめ Gree Fast Processorというのを使ってみると、シンプルなsymfonyのプロジェクト(xav.ccで試しました)でも2倍弱、結構複雑なアプリケーションだと7倍くらい速くなったりします。いくつかの制約がありますが、パフォーマンスに飢えているかたはお試しください。 こちらはなんかすごい速くなっている感じのグラフ(一番上が速くなった版のRequests per Second、赤が通常版のRequests per Second): これはさすがにbest caseすぎる気がしますが、普通にやっても2倍弱くらいは

    Gree Fast Processor: PHPを3倍(くらい)速く | GREE Engineering
    se-mi
    se-mi 2010/05/20
    すげw
  • GREE Engineering

    404 お探しのページは見つかりません GREE Engineering トップへ戻る

    GREE Engineering
    se-mi
    se-mi 2008/09/18
    いつか使うかもしれない
  • 第15回 オープンソーステクノロジー勉強会 - GREE Labs

    404 お探しのページは見つかりません GREE Engineering トップへ戻る

    第15回 オープンソーステクノロジー勉強会 - GREE Labs
    se-mi
    se-mi 2008/08/21
    さくらのデータセンタの話。興味ある
  • GREE Engineering

    404 お探しのページは見つかりません GREE Engineering トップへ戻る

    GREE Engineering
    se-mi
    se-mi 2008/07/22
    お、GREEはSennaからTDに乗り換えるのか?
  • Flared ドキュメント - GREE Labs

    404 お探しのページは見つかりません GREE Engineering トップへ戻る

    Flared ドキュメント - GREE Labs
    se-mi
    se-mi 2007/12/12
    Flaredのドキュメント