全世界で1,300万本を超える実売数を誇り、日本でも累計実売数100万本を突破(2023年5月時点)した大ヒットゲーム『Ghost of Tsushima(ゴースト・オブ・ツシマ)』をはじめ、『Ghost of Yōtei(ゴースト・オブ・ヨウテイ)』などで著名なゲーム制作スタジオ、Sucker Punch Productions(サッカーパンチプロダクションズ)の共同創設者であるChris Zimmermanによる、プログラミングのベストプラクティス集。
全部で21の「ルール」から成り立っており、すべてのプログラマーが知っておくべき本質的な知恵と、熟練したプログラマーにとって示唆に富む洞察を含んでいます。また、コードを書く際だけでなく、デバッグや最適化の際に有用な知識にも触れています。ゲーム領域に限らず、幅広いプログラマーを対象とした、必読のプログラミング哲学。
本書で触れられるコード例はC++で書かれていますが、C++の知識は必須ではなく、オブジェクト指向の基礎知識さえあれば問題なく読むことができます。また、付録に「Pythonプログラマー/JavaScriptプログラマーのためのC++コード読解法」を掲載しています。
●「本書への賛辞」より
『ルールズ・オブ・プログラミング』は、初心者向けの素晴らしい手引きを、その道の玄人すら啓発する絶妙な教訓と、統合している。加えてZimmermanは、本書を終始笑いの絶えないものとし、楽しいことと教育的であることは両立可能だとの証明を行ってみせるのだ。
――Mark Cerny、リードシステムアーキテクト、PlayStation 4 & PlayStation 5
『ルールズ・オブ・プログラミング』は、新人コーダーと熟練コーダー双方に向けて、素晴らしい見識を提供してくれる。Zimmermanの語り口のおかげで、本書の読書体験は痛快なものとなっている。そして21個のルールは、ビジネスと社会のあらゆる場面にテクノロジーが浸透した時代におけるソフトウェアの改善へ向けた、重要な貢献に他ならない。
――Paul Daugherty、テクノロジー担当グループチーフエグゼクティブ兼 最高技術責任者、Accenture
『ルールズ・オブ・プログラミング』には、どんなソフトウェアエンジニアでも自己のスキルを次のレベルへ引き上げるために使える、実用的経験則としてのルールが満載だ。簡潔で鋭い言い回しと、詳細かつ具体的な事例との配合が素晴らしい。例えば、「一般化には3つの例が必要」は、紹介されるルールを多数のコード例とともに実践へと落とし込む。自分のキャリアの初期にChrisから直々にこうした教えを受け、またそうしたルールを多種多様なソフトウェア分野全般へと適用するのに成功し、私は幸運だった。本書を手にしたあなたも、同じ道を歩む機会に恵まれている。
――Chris Bentzel、ソフトウェア担当ディレクター、Boston Dynamics
Chrisは一方で、議論を呼ぶ意見を指摘してみせることをそれなりに好む。そして読者にもたらされる的確な事例のおかげで、自分自身の考え方を疑ってかかることがずいぶん楽になっている。他方でChrisは、ぼくらが直感的にやってるようなことを、言語化してみせた。Chrisは新人教育をだいぶやりやすくしてくれたのだ。必読!
――Julien Merceron、CTO、Bandai Namco
●「日本語版への推薦文」より
『Ghost of Tsushima』(ゴースト・オブ・ツシマ、ソニー・インタラクティブエンタテインメント、2020)はグラフィックスもゲームシステムも、世界最高水準で作られた世界的大ヒットゲームである。ツシマの大地を駿馬で縦横無尽に走り回るオープンワールド型ゲームとして、また、その日本的世界観をつきつめたゲームデザインとビジュアルにより、世界をあっと驚かせた。このゲームの開発会社であるSucker Punch Productions(サッカーパンチプロダクションズ)は、サンフランシスコで毎年行われるゲーム開発者会議でもプログラミングの講演を多数行ってきた実績を持ち、果敢に高い技術的挑戦を達成し、常に新しい風をデジタルゲームに持ち込んできた。本書は、そのエンジニアであり共同創設者でもあるクリス・ジマーマン氏による技術書である。ゲームエンジニアはもちろん必読の書であるが、大規模なプログラムを作ろうとするソフトウェア設計者、プログラミングのエッセンスを知りたいプログラミング初学者も大きな恩恵を受けることは間違いない。
本書では、豊富な経験に裏打ちされ、精選された21個のプログラミングのためのルールが解説されている。コードの海を泳ぎ切るための教えが、惜しげもなく提供されている。これらのルールは理論的に正しいだけでなく、実際に著者が大規模なゲームを制作する何十万、何百万行のコードを踏破して得たルールである。そして、それを実践し、教え、磨きをかけ、こうして一冊の著書としてまとめあげた。本書を吸収することで、これからのプログラミングに新しいインスピレーションを得るだろう。
この本にはたくさんの規範となるコードが書かれている。しかし、本書はコーディングの詳細も書かれているが、それは導入であり本書の目的の半分である。残りの半分は、コーディングを通じて、プログラミングの次の一手、大きな発想について、確かな構想を得るための指針を示している。プログラミングの最中に誰もが道を見失うことがある。次の1行というよりも、自分のプログラムを支える次の大地をどこに求めればよいか、分からなくなってしまうことがある。そんな時、大きな指針を示してくれるのが本書である。
本書はプログラミングを始めたばかりの人には親切なガイドとして、ベテランには練りこまれた設計思想として読めるはずである。著者ほどの達人プログラマーであれば、プログラミングが必ずしも単純なルールで割り切れないことを知っている。しかし、あえて分かりやすいルールとして提示することで、圧倒的な経験値を形にして多くのプログラマーの一助とならんとしている。行き過ぎた原則を避け、さまざまなケースがあることを念頭にしつつ、尽くせぬ説明を尽くそうとする。本書はまさに、プロフェッショナルによって書かれたプログラミング指南書である。
なお本書のコードは著者がゲームプログラマーということもあって、C++で書かれている。しかし、C++の知識は必須ではない。C++を知っていれば読みやすいかもしれないが、本書はプログラミングの背景にあるソフトウェア設計の本である。オブジェクト指向の基礎知識さえあれば問題なく読める。著者は親切にも「Pythonプログラマー/ JavaScriptプログラマーのためのC++コード読解法」という付録も用意してくれている。本書はあらゆる言語の違いを超えて有用なものとなるだろう。
――三宅 陽一郎(ゲーム開発者)