サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
都知事選
tech.cygames.co.jp
みなさん、こんにちは! 突然ですが…皆さんには、ひいきにしている ゲームのキャラクターはいらっしゃいますでしょうか。 手ごわいボス敵や頼れるパートナー、愛嬌のある動きをするモンスター達は 一体どのような仕組みで動いているのでしょう? 今回の記事ではそんなゲームの中のキャラクター達を 魅力的に動かす仕組み、AIについて御紹介したいと思います。 改めまして本記事を担当させて頂きます、Cygamesエンジニアの佐藤です。 これまでコンシューマ機でのゲームAI開発に携わり、 ゲームならではのキャラクター表現の楽しさを追いかけてきました。 このブログを通じて、皆さんのゲームのキャラクターを より表情豊かに魅力的なものにする方法について、皆さんと一緒に考えていければ幸いです。 今回はゲームのAIをデザインするにあたって重要となる、 「知識表現を定義する」というステップと、 知識表現の一つである影響マッ
こんにちは、Cygames Research の多胡です。これまで10年以上コンソールゲーム開発を行ってきていて、最近ではハイエンドゲームエンジンを制作しておりました。Cygames でもハイエンドゲームエンジンの開発に携わることになりました。 ゲームエンジン開発を行う上で重要な考え方にデータ指向設計 (Data Oriented Design) というものがあります。今回はこのデータ指向設計を例を交えながら紹介させていただきます。 背景 データ指向設計の考え方は 2009年頃から有名になりました。 この 30年で CPU の性能は1万倍以上になりましたが、メモリの転送速度は10倍にもなっていません。そのため、プログラムのボトルネックはメモリ帯域となることが多くなりました。ゲームにおいても CPU はほとんどの時間がメモリからのデータの転送待ちになっています。CPU の性能を引き出すために
みなさま、こんにちは! Cygames Research 所属、エンジニアの和泉澤と申します。 ゲーム業界歴20数年。メガドライブの時代よりゲームプログラミング一筋です。 時折、幾つかの知見をご紹介させて頂けましたらと思います。 ゲーム制作における内部実装には、古今東西、様々な方法論が存在しています。 アクション、RPG、カードゲームやアドベンチャーゲーム等、そのジャンルにより採択される方法は多種多様でありますが、制作するゲームの持つ特徴を良く理解し、そのゲームに適した設計を行うことは、ある種、ゲームプログラミングにおける醍醐味とも言えましょう。 アクションならばこの実装方法、RPGならばこれ、等といったような一意の方法論は勿論在りません。しかしながら、ゲーム業界黎明期より無数に生み出されたゲーム制作の歴史の上に、効率的な方法論というものは、ある程度通例として積み上げられています。 極シン
みなさんこんにちは! 本日Cygamesエンジニアブログを開設しました! 弊社は昨年の夏CEDEC 2014にてPlayStation 4への参入を発表致しました。 ハイエンド据置きゲーム機にもこれまでと変わらず最高のコンテンツをお届けできるよう取り組んで参ります。 大阪の開発拠点 大阪Cygamesも設立され、準備が整えられています。 改めまして大阪Cygamesエンジニアの岩崎です。いままで歴代コンシューマ機を中心にグラフィックエンジンを制作してきました。日々最新のハイエンドグラフィックス技術を追いかけています。 今後グラフィック技術情報を中心にこのブログで定期的に情報をお届けしていきたいと思います。グラフィック分野に限らずその都度良いものがあればご紹介できればと思います 便利なツールや実際にゲーム開発に使えるオープンソースプロジェクトなども紹介していく予定です。 第一弾は…! 今世
こんにちは。サーバーサイドエンジニアの小松・大橋です。 2020年2月13日・14日に開催された「Developers Summit 2020(デブサミ2020)」において、『グランブルーファンタジーを支えるサーバーサイドの技術』と題した講演を行いました。ご参加いただいた皆様、当日は素晴らしい時を共有させていただき、ありがとうございました。 なお、この講演はWebメディア「CodeZine」でも取り上げていただきました。ご興味のある方はご参照いただければと思います。 講演資料はこちらになります。 本稿では、講演でお伝えし切れなかったことや、質問を多くいただいた事項をフォローアップしていきます。 中長期的な改善の意義について 講演では、中長期的な改善の意義についてお話ししました。 我々にとって最も大切なのは、お客様に快適にプレイしていただくことです。そして、トラブルを未然に防ぐことも目的の一
Cy#の河合です。昨年12月に、『MagicOnion』というライブラリのリリースを告知しました。今回、再びオープンソースライブラリとして、C#のためのCLI/Batchライブラリをリリースしました。 [GitHub – Cysharp/MicroBatchFramework] .NET CoreになってWindows/Mac/Linux問わずクロスプラットフォームなアプリケーション開発環境として機能するようになったC#ですが、そして機能的には十分揃っているのですが、ちょっと気の利いたフレームワークは意外と欠けているところがあります。バッチ・コマンドラインアプリ。というと地味なトピックスですが、ゆえに基本機能以上のサポートがなかったりします。しかし、「C#の可能性を切り開いていく」という理念を掲げるCy#としては、派手・地味を問わず、現状のC#に欠けているものを埋めていくことで、C#がアプ
Cy#の河合です。今回、文字列生成におけるメモリアロケーションをゼロにする「ZString」というライブラリを公開しました。そこで、この記事ではZStringの紹介の他に、あらためてC#の文字列についてを深く分解して解説し、Stringの複雑さと落とし穴、そしてZStringの必要性について解説します。 [GitHub – Cysharp/ZString] 以下の表は `”x:” + x + ” y:” + y + ” z:” + z` という単純な文字列連結においてのパフォーマンス計測です。 それぞれ “x:” + x + ” y:” + y + ” z:” + z ZString.Concat(“x:”, x, ” y:”, y, ” z:”, z) string.Format(“x:{0} y:{1} z:{2}”, x, y, z) ZString.Format(“x:{0} y:
Cy#の河合です。Cy#は今年の9月に設立されたばかりの会社で、その名の通りC#関連の開発を行っていきます。今回はCy#よりオープンソースライブラリとして、Unity向けのリアルタイム通信/API通信統合ライブラリをリリースしました。 GitHub – cysharp/MagicOnion もともと2年前に最初に公開し、実際にリリースされたモバイルゲームでも使用していたものですが、今回リアルタイム通信向け機能をよりブラッシュアップして、正式公開としました。そういう点では、”既に実績がある”とも言えます。今回より新しいスタートということで、バージョン2.0です。 基本的な機能は サーバークライアント間のストリーミングRPCを提供します。サーバー側をC#、クライアント側もC#で実装し、メッセージのフォーマットはLZ4圧縮されたMessagePack、通信はgRPCによるHTTP/2を用いていま
Cy#の河合です。去年、UniTask – Unityでasync/awaitを最高のパフォーマンスで実現するライブラリという形で紹介させていただきましたが、今回全てのコードを書き換えた新バージョンをリリースしました。 GitHub – Cysharp/UniTask UniTask v2では、コードの徹底的な書き換えにより、ほぼ全てがゼロアロケーション化しました(技術的詳細は後ほど述べます)。これによりパフォーマンスの大幅な向上を果たしているほか、新たに非同期シーケンスと、それに対応する非同期LINQが組み込まれました。その他、DOTweenやAddressableなどの外部アセットに対するawait標準対応も組み込まれ、より利便性が高まっています。 v2の前に、まず、async/await はC# 5.0から搭載されている機能で、従来コールバックの連鎖やコルーチンで処理していた非同期コ
みなさん、こんにちは! Cygames Research 所属、リサーチャーの佐藤です。 いよいよリリースされましたShadowverse、楽しんで頂けていますでしょうか? トレーディングカードゲーム(TCG)が初めての方でも本格的な戦術と対戦が楽しめる、 シンプルで奥深い内容となっていますので、 まだ、という方は是非是非、御手に取って遊んでみてくださいね。 Shadowverse公式サイトはこちらから ShadowverseではNPC戦…AIの挙動についても、 開発陣のありったけの愛とこだわりを詰め込みました。 上の動画はNPC戦の様子をキャプチャしたものです。 画面上のダンディなオジサマ(AI)が、 スペルカードや進化の能力を駆使して、プレイヤーと一進一退の攻防を繰り広げていますね。 このような動きをするTCGのAIは、一体どのように作っていけば良いのでしょうか? 今回の記事では、Sh
猛暑日が続きますがいかがお過ごしでしょうか。岩崎です。 今回は開発お役立ち情報としていくつかリンクまとめとして紹介します。 オープンソースプロジェクトから開発の現場でも使えるものをご紹介していこうと思います。 ライセンス形態ではGPLなどではなく、zlib,apache,NewBSD,MITライセンスなど商用利用でも導入しやすいものを対象にしていきます。 ”餅は餅屋”という諺がある通り、その道を研究して突き進む人が作ったものがもっとも信頼できるもので品質が高いと考えられます。 又、その瞬間の実装開発コスト削減だけでなく、仮想的に開発人員の増員と同じような効果が見込めます。これはそれぞれのオープンソースプロジェクトでバージョンアップやメンテナンスが継続されることによって分業並行開発をしているのと同じ効果が得られるためです。 公開されていることによって第三者が機能拡張や不具合の修正に参加するこ
こんにちは。技術本部所属コンシューマーエンジニアの伊藤です。 先日のCEDEC 2019での『スマホゲームリリース時に絶対サーバを落とさないための負荷試験』の講演に、朝早い時間にもかかわらず多数の方にご参加いただき、誠にありがとうございました。 本講演ではCygamesで行っているリリース前の負荷試験の取り組み方についてご紹介いたしました。 今回のフォローアップ記事では講演内容のポイントのおさらいおよび、いただくことが多かったご質問にお答えしたいと思います。 講演内容のポイント ・快適に遊べることが目標 いつでも安定して素早いレスポンスのサーバを提供することで、ゲームの面白さを損なうことなくユーザーに届けたいと思っています。それを実現する手段の一つが負荷試験です。すべては、Cygamesのビジョンにもある「最高のコンテンツ」につながると考えています。 ・必要十分な計測体制 やはりこの格言に
こんにちは、岩崎です。 今月SIGGRAPH2015でいろいろな技術情報が発表されましたね。今後このブログでも取り上げていきたいと思います。ゲームCGにも使える情報盛り沢山でしたのでこれから楽しみです。 そしてお知らせです。CEDEC2015にて弊社Cygamesも講演致します。 ハイエンドゲーム機での開発について昨年 Play Station®4 への参入発表からの情報のアップデートがされる予定です。 詳しくはこちらをご覧ください。 物理ベースレンダリング 連載2本目は輝度計算とモニターの出力結果についてのお話です。 フォトリアルで物理的に正しい輝度を計算して出力するには画面に映る明るさも正しく補正する必要があります。 具体的にどのような補正を行えばよいのか解説してみたいと思います。 さて、皆さんが目にするペイントソフトでは大抵0~255のグレースケールグラデーションは次のような見た目に
サーバーサイド/サーバータスク(PJ横断部署)の 宮脇・牧内です。 2024年3月8日に開催された TiDB GAME DAY 2024 にて「TiDBにおけるテーブル設計と最適化の事例」というタイトルで発表を行いました […] 続きを読む →
みなさん、こんにちは。Cygamesエンジニアの折田です。 いきなりで恐縮ですが・・・みなさんは、テストの自動化にどのように取り組んでいらっしゃいますか? テストの自動化 所属するプロジェクトによって、テストの自動化に対する運用方針も様々だと思います。 テストファーストで積極的に取り組んでいる方もいるでしょうし、開発ワークフローに組み込まれていて、仕方なく取り組んでいる方もいるでしょう。ちゃんとしたいのはやまやまだけど、そこまで手が回らないという方がほとんどかも知れません。「単体テスト」や「結合テスト」が自動化されているプロジェクトであっても、テストの最終工程にあたる「受け入れテスト」だけは自動化の対象から外されているケースは意外と多いのではないでしょうか? 膨大なコストを払ってまで「継続的インテーグレーション」や「継続的デリバリー」を実践しているのに、その最終工程の自動化は叶わず、人間の
みなさん、初めまして! Cygamesエンジニアの古閑です。 本記事は先月に開催された”Cygames Tech Fes”で発表させていただいた、 「Unity開発現場を支えるJenkins」のフォローアップ記事となります。 発表の際の資料はこちら 当日はアンケートにご協力頂きまして、貴重なご意見ありがとうございました! その中のいくつかのご質問を元にし、本記事でフォローさせていただければと思います。 いつ静的解析をかけるのか 現在の主なフックポイントは2点です。 I. ビルド時 意図は「全体的な品質の指標の確認」です。 ビルド時というスナップショットに解析をかける事で、 プロジェクト全体の品質を知ることができます。 II. Pull-request時 意図は「自分の書いたコードの品質の確認」です。 仮にビルド時まで静的解析の結果が確認できないと、 警告を修正したつもりが直っていない 新規
Cy#の河合です。以前に「MasterMemory – Unityと.NET Coreのための読み取り専用インメモリデータベース」という記事で、弊社で開発しOSSにて公開しているMasterMemoryというライブラリを紹介しました。 [GitHub – Cysharp/MasterMemory] 最初のバージョンでは、コンセプト実証と性能の追求が主軸でしたが、最初の公開から半年を経た今回はVersion 2として、実アプリケーションに適合するにあたっての便利な周辺機能の拡充を図りました。その一つがパラメーター検証のためのバリデーターです。 Cygamesでは以前、「ユーザを飽きさせない高頻度の更新を可能にする開発運用ノウハウ ~ハイスピードな開発、リリースを実現するために~」としてDSLによる検証システムを紹介しました。 DSLベースにすることで、スキーマ定義によるサーバ
次のページ
このページを最初にブックマークしてみませんか?
『Cygames Engineers' Blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く