タグ

ゲームと設計に関するAkinekoのブックマーク (6)

  • データ指向設計

    こんにちは、Cygames Research の多胡です。これまで10年以上コンソールゲーム開発を行ってきていて、最近ではハイエンドゲームエンジンを制作しておりました。Cygames でもハイエンドゲームエンジンの開発に携わることになりました。 ゲームエンジン開発を行う上で重要な考え方にデータ指向設計 (Data Oriented Design) というものがあります。今回はこのデータ指向設計を例を交えながら紹介させていただきます。 背景 データ指向設計の考え方は 2009年頃から有名になりました。 この 30年で CPU の性能は1万倍以上になりましたが、メモリの転送速度は10倍にもなっていません。そのため、プログラムのボトルネックはメモリ帯域となることが多くなりました。ゲームにおいても CPU はほとんどの時間がメモリからのデータの転送待ちになっています。CPU の性能を引き出すために

    データ指向設計
  • ゲーム開発に所謂なアプリケーション設計パターンを適用するのは難しい - hadashiA

    ゲーム開発ひいてはクライアントサイドの開発において「クリーン」かどうかは正直けっこうどうでもよく、設計すべき一番のポイントは「制御フロー」にあります。 じゃあ具体的にどういう設計がいいのか、ていうのは、やはりjs界隈みたいにフレームワークになっていないとなかなか伝わらないようです。そういうのもそのうちつくってみたいなあと最近思ってます。 以下、以前ブログに書いたものの転載。 -- Unityで長らくゲーム開発をやっているけれど、Web界隈などで色々と発達しているアプリケーション設計パターンをおいそれと持ち込めば良いわけではないと感じているので、それについて考えてみようと思う。 ここでいう設計パターンていうのは、たとえばUIとかをつくるフレームワークの競争で発達してきた MVC派生 や ReactとかのElmアーキテクチャに影響を受けたものたち、はたまた、Webサーバ(HTTPサーバ) を書

    ゲーム開発に所謂なアプリケーション設計パターンを適用するのは難しい - hadashiA
  • ゲームサーバーの「割り当て」設計

    オンラインゲームのサーバーに関する設計の情報はWebアプリに比べるとまだまだ少ない印象です。そこで、Zennの記事執筆の練習も兼ねてゲームサーバーの管理、特に今回は新しいGame Serverを割り当てるという部分に絞ってまとめてみようと思います。 API ServerとGame Server オンラインゲームのサーバーを作るにあたって API Server と Game Server [1]を分けて設計することがよくあります。 API Serverは主にログイン処理やホーム画面と言った共通的な処理を担当し、 Game Serverはゲームのメイン部分(たとえばFPSゲームであれば戦闘部分)を担当するといった組み合わせです。 API Serverは前述の通りゲームのメイン部分ではなくリアルタイム性も少ないので 実装が容易でスケールしやすいHTTP Serverで組むことが多いです。 一方で

    ゲームサーバーの「割り当て」設計
  • ゲーム開発 に所謂なアプリケーション設計パターンをおいそれと適用するのは難しい - @hadashiA

    アドベントカレンダーでもなんでもない記事 0日目です。 Unityで長らくゲーム開発をやっているけれど、Web界隈などで色々と発達しているアプリケーション設計パターンをおいそれと持ち込めば良いわけではないと感じているので、それについて考えてみようと思う。 ここでいう設計パターンていうのは、たとえばUIとかをつくるフレームワークの競争で発達してきた MVC派生 や ReactとかのElmアーキテクチャに影響を受けたものたち、はたまた、Webサーバ(HTTPサーバ) を書くときに 「良し」とされている 、DDD的な考え方の上での、抽象レイヤと実装レイヤの分け方を教条化するクリーンアーキテキクチャとかなんかそういうの。 追記: ゲームでも「ドメインロジックとプレゼンテーションの分離」はした方が良いと思っている。全体としては狭義でのMVPとかは自分もやってる。 こういった者達は、先人のアイデアや言

    ゲーム開発 に所謂なアプリケーション設計パターンをおいそれと適用するのは難しい - @hadashiA
  • グローバルゲームジャムでクラス設計をやった話2020 - Qiita

    はじめに 毎年恒例のグローバルゲームジャム。今回も参加してきたのでそのまとめを書きます。 2016 -> グローバルゲームジャムでクラス設計をやったらスムーズに開発が進んだ話 2017 -> グローバルゲームジャムでクラス設計をやった話2017 2019 -> グローバルゲームジャムでクラス設計をやった話2019 グローバルゲームジャムとは GGJとは全世界同時に行われるゲームジャムのことです。ようするに、世界規模のゲーム開発ハッカソンです。 プログラマ、デザイナ、プランナ、グラフィッカなどさまざまな役職の人をごちゃまぜに、3~8人程度のチームを組み、48時間でゲームを作ろうというイベントです。(前回のコピペ)(前回のコピペ)(前回のコピペ) 今回も「ヒューマンアカデミー秋葉原会場」に参加しました。 ゲームの概要 今年のテーマ 今年のテーマは「REPAIR」でした。シンプルにわかりやすいテ

    グローバルゲームジャムでクラス設計をやった話2020 - Qiita
  • バトルプログラムの設計で失敗しないために

    こんにちは! サーバーエンジニアの吉田です。 私は今まで、いろんなゲームのバトルシステムに携わってきました。そして、たくさんの失敗も経験しました。 今回はその失敗した話と、その反省からこうした方が良いよ、という話をしてみたいと思います。 ここでは、言語としてはC++を想定して書いていますが、オブジェクト指向で書けるプログラミング言語なら、同じ考え方を適用できるはずです。 こんなバトルをつくりたい まず、題に入る前に、今回の記事で想定するバトルシステムについて、前提条件を書いておきます。 複数のキャラが同時に、リアルタイムで行動する 時間とともに、キャラの状態が変化する(例えば毒ダメージなど) あるキャラの行動が、他のキャラの状態を変化させる(攻撃、回復など) 敵キャラのHPが0になり倒されると、スコアが加算される よくある、リアルタイムバトルですね。 このようなバトルをプログラミングする

    バトルプログラムの設計で失敗しないために
  • 1