0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ゲームプログラマのための設計:目次

Last updated at Posted at 2024-10-21

本シリーズについて

 これまでの10年弱のC++ゲームプログラミング業務で設計について学習・実践を通して得た知見について、ある程度体系的にまとめてみようと思い筆を執りました。

 特定のゲームエンジンに依存した内容は基本含まれません。「ゲームプログラマのための設計」と銘打ってはいますが、ほとんどの内容は一般的なソフトウェア実装にも当てはまるでしょう。ただ、筆者のバックグラウンドの都合ゲームプログラミング特有の事情(後述)が想定されていることがあります。

 対象読者としては、「言われた通りの仕様は実装できるようになったけど、これからさらにプログラムをきれいにしていくにはどうしたらよいのだろう?」と考え始めたような方をイメージして書いていきます。

 特に断りがない場合、バージョンはC++20を想定します。

ゲームプログラミング特有の事情とは? 

  • パフォーマンスが重視されることが多い
  • 動的なメモリ確保に制限があることが多い
  • プログラム内の状態が非常に多いうえ、常に更新され続ける
  • 制作中の仕様の変更の回数・規模ともに大きい
  • テストプレイのためリリース前にも継続して安定して動作する状態をキープする必要がある
  • リリース後も、数年間継続的なアップデートが求められることがある
  • 続編やリメイクの制作で、終了したプロジェクトのコードが閲覧・再利用されることがある

などがあげられそうです。

参考文献

本シリーズの記事はいろいろな書籍やネット上の情報の集積ですが、中でも下記の書籍は何度も読み返しており色濃く影響を受けているので紹介します。

お品書き(予定)

重要ではあるがすでに広く知られており、筆者にも特に追加で言いたいことがないものについては 前提知識 としてマークしておきます。

原理・原則編

対象とする構造の大小を問わず活用可能なテーマ

前提知識:

  • SOLID原則
  • 循環的複雑度
  • リーダブルコードに載っている命名やコメントに関する事項

アーキテクチャ編

プログラム内で一番大きい構造にかかわる話題

  • クリーンアーキテクチャとゲーム
  • コンポーネント指向
  • データドリブン・データとの境界は共通化しよう
  • エンティティと値オブジェクト

デザインパターン編

いわゆるGoFのデザインパターン自体の話題や、その他それが対象としている領域に関するもの

前提知識:

  • Gofのデザインパターンの概要ざっくり

実装詳細編

C++言語機能や標準ライブラリなど、C++固有の話題

前提知識:

  • C++14以前の言語機能・ライブラリの多く(スマートポインタ、ラムダ式など)
  • RAII
0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?