SBクリエイティブ

刊行に寄せて – 三宅陽一郎(IGDA日本)『入門ゲームプログラミング』

2014.02.02
対象書籍
入門ゲームプログラミング
三宅 陽一郎
IGDA日本ゲームAI専門部会代表 / 日本デジタルゲーム学会研究委員
本書はDirectXとC++を用いて2Dゲームプログラミングを解説する書籍である。DirectXと言えば、殆どが3Dゲームプログラミングへの応用の情報が多く、2Dゲームプログラミングへの応用と言われると、不勉強な私のみならず、多くの開発者がごっそりと情報が抜けているところだと思われる。2013年のサンフランシスコで開催されたゲーム開発者会議(Game Developers Conference 2013)の書店で、新刊として並んでいた本書の原書を手に取った時に、そういえば、この領域はどうやって実装して行くのだろう、どんなAPIがあるのだろう、と不思議に思って読み進めて行った。なるほど、こういう感じの実装になるのかと新しい発見にひとしきり感心するところが色々とあり、個人的に購入して読み進めているうちに、そういえば、DirectXで2Dゲームプログラミングを解説する書籍は、自分の知る限り日本でこれまで稀少であったし、最近では本当にライブラリからビルドアップしてゲーム開発全体を解説する、かつ2Dゲームプログラミングの本となれば、ほとんどないことに気付き、SBクリエイティブの品田さんに翻訳出版を推薦した経緯である。
本書の特徴は、要点を得た簡潔な説明と、大量のサンプルコードの組み合わせの連続にある。DirectXや、C++によるゲームプログラミングを学ぼうとする入門にも、さらに、ある程度のゲーム開発の経験はあるが2Dゲームプログラミング技術の知識を補完したいベテランにも適している。ゲームを製作するのに最低限の知識が列挙されており、シンプルな説明とサンプルコードの完備は、本書をたいへん入門的かつ実用的な書籍としている。2Dゲームプログラミングは、20年前は、アセンブリ言語(かC言語)とスプライト処理の組み合わせであったが、本書ではC++とDirectXという強力な技術基盤に組み換えられて解説されている。新しい技術は、新しいゲームデザインの地平をもたらす。本書のフレームは、これからの2Dゲーム開発の可能性を大きく広げる一役を担うことになるだろう。
2Dゲームは1970年代以降、デジタルゲームの奔流の歴史を作りながら、その技術とゲームデザインのノウハウを蓄積して来た。3Dゲームは80年代に技術的に予感されながらも、漸く1990年以降、PCからコンシューマー機にかけて商業ベースとなり、その技術とゲームデザインのノウハウが蓄積されて来た。歴史的順序がそうであるにせよ、3D技術は2D技術を内包しているわけではなく、また、2D技術の延長に3D技術があるわけでもない。二つの技術はある程度独立であり、ある程度共通している。たとえば「衝突判定」のように同じテーマでも2Dと3Dでは複数の異なるアプローチがある場合がある。また「カメラ技術」のように2Dではスクロールのようにシンプルな場合が多いが 3Dでは演出を含めて圧倒的に大きな技術となる場合もある。さらに「アニメーション」のように2Dと3Dでは全く違う技術になってしまう場合もある。本書で2Dゲームプログラミング技術を学びながら、初学者はあらゆるゲーム開発に共通する基礎を最短で学ぶことができ、全体像を学ぶことができるだろう。既にある程度ゲーム開発の知識があるエンジニアは、3Dゲーム開発との明確な差異を学習することができるだろう。
現代はゲームエンジンの時代である。3Dゲームにせよ、2Dゲームにせよ、有償・無償で質の良いエンジンをダウンロードして開発環境として使用できる。しかし、ゲーム開発は、開発環境の上で可能なゲームデザインを選択するのではなく、選択したゲームデザインの上でそれを可能にする開発環境を創造・選択するべきである。理想的には、である。    しかし実際には、制限された開発環境を最大限活用し、ゲームデザインと技術が相互に化学反応しながら開発環境の改善・拡張を重ねて、ゲームを作って行かねばならない。だからこそ大切なことは、自分の足場となる開発環境について十分に知っておくことである。足場を知ることは、道具を使いながらも最大限の可能性と自由を得ることである。そして、ゲームエンジンについて知るには、ゲーム開発技術を深く知っておかなければならない。本書はその知識を提供する。特に2Dゲームプログラミング技術に関しては、本書は確かな基礎と稀に見る広範なノウハウの記述を含んでいるのである。
やや付け足しとなるが、既にゲーム開発の経験が豊富な読者の方には、本書を読みながら逆に、ゲームエンジンについて固定されている部分を、もう一度考え直してみることをお薦めしたい。背景、キャラクター、オブジェクト、エフェクト、ステージ、物理、オーディオ、ネットワーク、そういった分類の仕方は、果たして絶対的なものだろうか。背景とキャラクターが融合したゲームや、物理とオーディオが連動したゲーム、エフェクトがオブジェクトとして残るゲーム、そういった柔軟なフレームを再考する材料として本書を活用することを薦めたい。
デジタルゲームは既に2Dと3Dを分けて考える時代ではない。必要に応じて2D/3Dを自在に使いこなす時代である。一見2Dのような3Dゲーム、3Dゲームのような2Dゲーム、2Dと3Dがハイブリッドであるゲーム、デジタルゲームは2Dと3Dを越境しつつある。現代の2Dシューティングゲームのように描画は3Dであるがプレイ空間は2Dであるゲームもあり、またその逆に背景は2Dであるがプレイ空間は3Dのゲームもある。現代のデジタルゲームの開発では2D/3D 二つの技術を自在に使いこなす必要がある。
現在、2Dゲームは新しい時代に入りつつある。2Dゲームは古典的なデザインを踏襲しつつ、次々に新しいゲームデザインを拓いている。携帯ゲーム機の上で、携帯電話機の上で、さらにコンシューマー機もアーケード機においてさえ、2Dゲームは新しいゲームの局面を拓きつつある。第二の2Dゲームのルネッサンスと言える時期が来ようとしている。3Dゲームほど大量のオブジェクトに対する描画と物理計算で高い処理負荷に悩まされることなく、以前よりもスケールアップしたステージの中で、人工知能技術、流体シミュレーションを始めとする物理計算技術、自動生成技術(プロシージャル技術)をふんだんに用いて、ゲームデザインに密接に結びつけ、新しい境地を拓いている。それはかつて、1990年初頭に、最先端という看板を3Dゲームに奪われて以来20年、様々な変化を遂げながらも、2Dゲームは3Dゲームと対等に競い合う、新しく魅力的な分野に再生したのである。2Dゲームは技術的にも、ゲームデザイン的にも、再び新しい可能性を秘めた分野として、我々の目前に姿を現しつつあるのである。その鉱脈を探し当てるには、2Dゲームプログラミング技術に深く精通する必要がある。是非、本書を読みながら既存のゲームデザイン、新しいゲームデザインについてアイデアを貯められたい。それはデジタルゲームの本来の躍動する息吹を取り戻す旅となるだろう。
何よりまず動くゲームを作りたい、という初学者から、新しい2Dゲームデザインを技術から再考したい、という開発者まで、さらに既にゲーム開発の経験はあるが改めて2Dゲームデザインを学びたい3Dゲーム開発のベテランまで、本書は様々な角度から良質の内容を提供します。すべての方に良い出発点となることを願います。本書をきっかけとして、新しいデジタルゲームが世に出され、たくさんの方の心を潤すことを願います。
三宅 陽一郎
IGDA日本ゲームAI専門部会代表 / 日本デジタルゲーム学会研究委員
ゲーム開発者。1975年、兵庫県生まれ。京都大学で数学を専攻、大阪大学で物理学(物理学修
士)、東京大学工学系研究科博士課程(単位取得満期退学)。特集論文「ディジタルゲームにお
ける人工知能技術の応用」(人工知能学会誌Vol.23, No.1 2008)。DCS2008論文「エージェント・
アーキテクチャに基づくキャラクターAIの実装」(船井賞受賞)。「オンラインゲームにおける
人工知能・プロシージャル技術の応用」(日本知能情報ファジィ学会誌Vol.22, No.6 2010)。「は
じめてのゲームAI」(WEB+DB PRESS Vol.68、技術評論社、2012)。「デジタルゲームのための
人工知能の基礎理論」(日本バーチャルリアリティ学会誌第18巻3号、2013)。CEDEC Awards
2010 プログラミング・開発環境部門優秀賞。日本デジタルゲーム学会 2011年若手奨励賞。共著
『デジタルゲームの教科書』、インタビュー『デジタルゲームの技術』『考える人』(2013年夏号、
新潮社)、監修『ゲームプログラマのためのC++』『C++のためのAPIデザイン』等。
三宅 陽一郎
IGDA日本ゲームAI専門部会代表 / 日本デジタルゲーム学会研究委員
 
本書はDirectXとC++を用いて2Dゲームプログラミングを解説する書籍である。DirectXと言えば、殆どが3Dゲームプログラミングへの応用の情報が多く、2Dゲームプログラミングへの応用と言われると、不勉強な私のみならず、多くの開発者がごっそりと情報が抜けているところだと思われる。2013年のサンフランシスコで開催されたゲーム開発者会議(Game Developers Conference 2013)の書店で、新刊として並んでいた本書の原書を手に取った時に、そういえば、この領域はどうやって実装して行くのだろう、どんなAPIがあるのだろう、と不思議に思って読み進めて行った。なるほど、こういう感じの実装になるのかと新しい発見にひとしきり感心するところが色々とあり、個人的に購入して読み進めているうちに、そういえば、DirectXで2Dゲームプログラミングを解説する書籍は、自分の知る限り日本でこれまで稀少であったし、最近では本当にライブラリからビルドアップしてゲーム開発全体を解説する、かつ2Dゲームプログラミングの本となれば、ほとんどないことに気付き、SBクリエイティブの品田さんに翻訳出版を推薦した経緯である。
本書の特徴は、要点を得た簡潔な説明と、大量のサンプルコードの組み合わせの連続にある。DirectXや、C++によるゲームプログラミングを学ぼうとする入門にも、さらに、ある程度のゲーム開発の経験はあるが2Dゲームプログラミング技術の知識を補完したいベテランにも適している。ゲームを製作するのに最低限の知識が列挙されており、シンプルな説明とサンプルコードの完備は、本書をたいへん入門的かつ実用的な書籍としている。2Dゲームプログラミングは、20年前は、アセンブリ言語(かC言語)とスプライト処理の組み合わせであったが、本書ではC++とDirectXという強力な技術基盤に組み換えられて解説されている。新しい技術は、新しいゲームデザインの地平をもたらす。本書のフレームは、これからの2Dゲーム開発の可能性を大きく広げる一役を担うことになるだろう。
2Dゲームは1970年代以降、デジタルゲームの奔流の歴史を作りながら、その技術とゲームデザインのノウハウを蓄積して来た。3Dゲームは80年代に技術的に予感されながらも、漸く1990年以降、PCからコンシューマー機にかけて商業ベースとなり、その技術とゲームデザインのノウハウが蓄積されて来た。歴史的順序がそうであるにせよ、3D技術は2D技術を内包しているわけではなく、また、2D技術の延長に3D技術があるわけでもない。二つの技術はある程度独立であり、ある程度共通している。たとえば「衝突判定」のように同じテーマでも2Dと3Dでは複数の異なるアプローチがある場合がある。また「カメラ技術」のように2Dではスクロールのようにシンプルな場合が多いが 3Dでは演出を含めて圧倒的に大きな技術となる場合もある。さらに「アニメーション」のように2Dと3Dでは全く違う技術になってしまう場合もある。本書で2Dゲームプログラミング技術を学びながら、初学者はあらゆるゲーム開発に共通する基礎を最短で学ぶことができ、全体像を学ぶことができるだろう。既にある程度ゲーム開発の知識があるエンジニアは、3Dゲーム開発との明確な差異を学習することができるだろう。
現代はゲームエンジンの時代である。3Dゲームにせよ、2Dゲームにせよ、有償・無償で質の良いエンジンをダウンロードして開発環境として使用できる。しかし、ゲーム開発は、開発環境の上で可能なゲームデザインを選択するのではなく、選択したゲームデザインの上でそれを可能にする開発環境を創造・選択するべきである。理想的には、である。    しかし実際には、制限された開発環境を最大限活用し、ゲームデザインと技術が相互に化学反応しながら開発環境の改善・拡張を重ねて、ゲームを作って行かねばならない。だからこそ大切なことは、自分の足場となる開発環境について十分に知っておくことである。足場を知ることは、道具を使いながらも最大限の可能性と自由を得ることである。そして、ゲームエンジンについて知るには、ゲーム開発技術を深く知っておかなければならない。本書はその知識を提供する。特に2Dゲームプログラミング技術に関しては、本書は確かな基礎と稀に見る広範なノウハウの記述を含んでいるのである。
やや付け足しとなるが、既にゲーム開発の経験が豊富な読者の方には、本書を読みながら逆に、ゲームエンジンについて固定されている部分を、もう一度考え直してみることをお薦めしたい。背景、キャラクター、オブジェクト、エフェクト、ステージ、物理、オーディオ、ネットワーク、そういった分類の仕方は、果たして絶対的なものだろうか。背景とキャラクターが融合したゲームや、物理とオーディオが連動したゲーム、エフェクトがオブジェクトとして残るゲーム、そういった柔軟なフレームを再考する材料として本書を活用することを薦めたい。
デジタルゲームは既に2Dと3Dを分けて考える時代ではない。必要に応じて2D/3Dを自在に使いこなす時代である。一見2Dのような3Dゲーム、3Dゲームのような2Dゲーム、2Dと3Dがハイブリッドであるゲーム、デジタルゲームは2Dと3Dを越境しつつある。現代の2Dシューティングゲームのように描画は3Dであるがプレイ空間は2Dであるゲームもあり、またその逆に背景は2Dであるがプレイ空間は3Dのゲームもある。現代のデジタルゲームの開発では2D/3D 二つの技術を自在に使いこなす必要がある。
現在、2Dゲームは新しい時代に入りつつある。2Dゲームは古典的なデザインを踏襲しつつ、次々に新しいゲームデザインを拓いている。携帯ゲーム機の上で、携帯電話機の上で、さらにコンシューマー機もアーケード機においてさえ、2Dゲームは新しいゲームの局面を拓きつつある。第二の2Dゲームのルネッサンスと言える時期が来ようとしている。3Dゲームほど大量のオブジェクトに対する描画と物理計算で高い処理負荷に悩まされることなく、以前よりもスケールアップしたステージの中で、人工知能技術、流体シミュレーションを始めとする物理計算技術、自動生成技術(プロシージャル技術)をふんだんに用いて、ゲームデザインに密接に結びつけ、新しい境地を拓いている。それはかつて、1990年初頭に、最先端という看板を3Dゲームに奪われて以来20年、様々な変化を遂げながらも、2Dゲームは3Dゲームと対等に競い合う、新しく魅力的な分野に再生したのである。2Dゲームは技術的にも、ゲームデザイン的にも、再び新しい可能性を秘めた分野として、我々の目前に姿を現しつつあるのである。その鉱脈を探し当てるには、2Dゲームプログラミング技術に深く精通する必要がある。是非、本書を読みながら既存のゲームデザイン、新しいゲームデザインについてアイデアを貯められたい。それはデジタルゲームの本来の躍動する息吹を取り戻す旅となるだろう。
何よりまず動くゲームを作りたい、という初学者から、新しい2Dゲームデザインを技術から再考したい、という開発者まで、さらに既にゲーム開発の経験はあるが改めて2Dゲームデザインを学びたい3Dゲーム開発のベテランまで、本書は様々な角度から良質の内容を提供します。すべての方に良い出発点となることを願います。本書をきっかけとして、新しいデジタルゲームが世に出され、たくさんの方の心を潤すことを願います。


三宅 陽一郎
IGDA日本ゲームAI専門部会代表 / 日本デジタルゲーム学会研究委員
ゲーム開発者。1975年、兵庫県生まれ。京都大学で数学を専攻、大阪大学で物理学(物理学修士)、東京大学工学系研究科博士課程(単位取得満期退学)。特集論文「ディジタルゲームにおける人工知能技術の応用」(人工知能学会誌Vol.23, No.1 2008)。DCS2008論文「エージェント・アーキテクチャに基づくキャラクターAIの実装」(船井賞受賞)。「オンラインゲームにおける人工知能・プロシージャル技術の応用」(日本知能情報ファジィ学会誌Vol.22, No.6 2010)。「はじめてのゲームAI」(WEB+DB PRESS Vol.68、技術評論社、2012)。「デジタルゲームのための人工知能の基礎理論」(日本バーチャルリアリティ学会誌第18巻3号、2013)。CEDEC Awards2010 プログラミング・開発環境部門優秀賞。日本デジタルゲーム学会 2011年若手奨励賞。共著『デジタルゲームの教科書』、インタビュー『デジタルゲームの技術』『考える人』(2013年夏号、新潮社)、監修『ゲームプログラマのためのC++』『C++のためのAPIデザイン』等。
この記事をシェアする