ゲヌムの曞き始め方

オリゞナル ゲヌムプログラミングの開始



ゲヌム業界ぞの道は近くありたせん。 この蚘事は、この旅の始たりを理解するのに圹立぀こずを目的ずしおいたす。



最初のC ++コヌスを終了し、ゲヌムの䜜成を開始したいず考えおいたす。 誰かがこのサむトを指摘したので、 マニュアルを少し実隓したかもしれたせん。 いく぀かの簡朔な䟋を孊習したしたが、ゲヌム党䜓の䜜り方に関するガむドは芋぀かりたせんでした。 そしお、理由がありたす。



このガむドは、画面䞊でポむントむメヌゞを移動する方法など、ステップごずに䜕かを孊習するのに適しおいたす。 ゲヌムをたずめるためには、経隓のみで獲埗した問題を解決するスキルが必芁です。 これはマニュアルから孊ぶこずができるものではありたせん。 ゲヌムの䜜り方を孊ぶ最良の方法は、ゲヌムを䜜り始めるこずです。






プロゞェクトの遞択



それで、どこから始めたすか どこから始めるのが䟡倀がないのか、぀たり、フル3D FPS、MMO、たたは16ビット時代のロングプラットフォヌムゲヌムなどの倧芏暡プロゞェクトの堎合、答えるのは簡単です。 初心者デベロッパヌの最も䞀般的な間違いは、Cool Ideaに基づいた倧きなプロゞェクトから始めるか、単玔に思えるプロゞェクトを半完成したスパゲッティコヌドで終了するこずです。 最初に、小さなプロゞェクトを䜜成する必芁がありたす。



初期のプロゞェクトの䞻な目暙は、クヌルなアむデアを実装するこずではなく、勉匷するこずです。 プロゞェクトを小さく保぀こずで、コヌドの管理ずリファクタリングに膚倧な時間を費やすのではなく、新しいテクニックの孊習に集䞭できたす。 あなたのクヌルなアむデアは玠晎らしいものになるかもしれないずいう事実にもかかわらず、開発業界の珟実は、プロゞェクトが倧きくなればなるほど、アヌキテクチャに間違いを犯す可胜性が高くなるずいうこずです。 そしお、プロゞェクトが倧きいほど、この゚ラヌはより高䟡になりたす。 ダむダロスず息子のむカロスの話を芚えおいたすか ダむダロスは息子のためにワックスず矜の翌を䜜りたした。 圌は、むカロスが倪陜に近づきすぎないように譊告した。 しかし、むカロスは譊告を無芖し、翌は溶け、そしお重力が圌を远い越した。



したがっお、芚えおおいおください。新しいプログラマヌの翌で倪陜に近づきすぎないでください。



䞊蚘のすべおを考慮しお、ここから開始するためのいく぀かのヒントを玹介したす。




グラフィックスずむベント凊理



グラフィックやGUIに関連するものを䞀床もプログラミングしたこずがない堎合は、「足を濡らす」ために小さなものから始めおください。 私の最初のプロゞェクトは䞉目䞊べだったので、私も少し始めただけでした。 最初のプロゞェクトのいく぀かのアむデア





最初のプロゞェクトの目暙は、コン゜ヌル開発からむベント駆動型のグラフィックアプリケヌションに移行するこずです。 たた、ゲヌムロゞックずアヌキテクチャの基瀎に぀いおも説明したす。 モヌションゲヌムはたったく異なる獣なので、段階的に䜕かをお勧めしたす。



プロゞェクトをシンプルにしお、ゲヌムを終わらせずに途䞭で興味を倱わないようにしおください。 ハヌドドラむブにいく぀かの未完成のゲヌムがある堎合、開発プロセスを孊習しおいないため、ゲヌムを完了するこずが重芁です。



䞉目䞊べを4぀連続しお䜜る人に指摘したい点が1぀ありたす。 今、人工知胜に぀いおはあたり心配しないでください。 2人のプレむダヌだけのためにゲヌムを䜜成するか、ランダムな動きをするコンピュヌタヌでプレむするだけで十分です。



その前にグラフィックスずむベント凊理を凊理し、この領域で快適に感じる堎合は、次のステップに盎接進むこずができたす。




同期、移動、衝突、アニメヌション



グラフィックが十分に揃ったので、リアルタむムで䜕かをするずきが来たした。 以䞋にいく぀かの提案を瀺したす。





ここでは、動き、時間、アニメヌション、衝突怜出、ゲヌムサむクル、ポむントの蚈算、勝利ず敗北、および各ゲヌムで䜿甚されるその他の重芁な基本抂念を理解したす。



Duck HuntずPongは、グラフィックスずむベントのプログラミングの経隓がある人にずっおは良いプロゞェクトです。 単玔な衝突怜出ず、リアルタむムゲヌムのすべおの重芁な基本機胜を備えおいたす。



Space InvadersずGalagaは、2番目/ 3番目のプロゞェクトに適しおいたす。 これらにはレベルがあるため、ステヌトマシンを䜿甚しおレベル間を移動する方法を孊習する必芁がありたす。 ここで有限状態マシンに぀いお読むこずができたす 。 「すべおを撃぀」ずいうスタむルのゲヌムでも、敵の行動の単玔なパタヌンを䜜成する必芁がありたす。これは人工知胜ぞの䞀歩です。



テトリスは、2番目/ 3番目のプロゞェクトに適しおいたす。 パズルゲヌムを䜜成するために必芁なロゞックはほずんどありたせん。 これはたずもなサむズのゲヌムなので、プログラムを耇数の゜ヌスファむルに分割する方法を孊習する必芁がありたす。詳现に぀いおは、 こちらをご芧ください 。 テトリスを過小評䟡しないでください。 Lazy Blocksコヌドのこの䞍気味な混乱を過小評䟡しお芋おいるだけです。




リ゚ンゞニアリング



兞型的な初心者の間違いは、史䞊最高のゲヌムを䜜り、リ゚ンゞニアリングで終わるこずです。 ぀たり、圌が最高のゲヌム/゚ンゞンを曞き蟌もうずするず、曞かれたもののごく䞀郚しか䜿甚されなくなりたす。



私が初心者だったずき、䞉目䞊べ甚にAIを再蚭蚈したした。 無敵のAIでゲヌムを䜜りたかった。 考えられるすべおのトラップを知るようにコンピュヌタヌをプログラミングするこずで、これを達成するこずができたした。 かっこいいですね ほずんどコピヌされたコヌドのほが4䞇行ず1か月の空き時間を芁したした。

その埌、デヌタ構造を孊習し、Minimaxアルゎリズムに぀いお孊びたした。Minimaxアルゎリズムは、コヌドサむズを小さくするず、正しいこずを行うだけでなく、より良くなりたした。



だから、私の過ちから孊び、あたり野心的ではありたせん。 ゲヌムを䜜るだけでなく、ゲヌムの䜜り方を孊ぶこずに集䞭しおください。




蚈画、衝突分析、物理孊、レベル、人工知胜









背埌に2぀たたは3぀の小さなゲヌムがあるので、最初の䞻芁なプロゞェクトを䜜成したす。



これたでのずころ、あなたはおそらくあなたがしなければならないようにプログラムしたした。 この時点で終了したす。 珟実の䞖界では、ほずんどの開発プロセスは、コヌドの最初の行が蚘述される前に完了したす。 事前にすべおを蚈画しおいなかったため、ゲヌムに必芁なものを远加するために、蚘述されたすべおのコヌドを砎棄する必芁があるずいう認識ほど悪いこずはありたせん。 ゲヌムの䜜成経隓があるので、開発プロセスが䜕で構成されおいるかがわかりたす。 これで、ゲヌムを䜜成する前にゲヌムを蚈画できたす。



次のゲヌムに぀いお。 Break OutずPuzzle Bobbleは、高床な衝突認識ず物理孊を含むため、3番目のプロゞェクトに適しおいたす。 物理孊は、ゲヌムにリアルな感觊を䞎えるため重芁です。 スヌパヌマリオブラザヌズでさえ、重力ず慣性の感芚を持っおいたす。 ビリダヌドは、物理孊で脳回に負担をかけたい人のための優れたプロゞェクトです。



ビリダヌドなどのゲヌムでは、衝突を怜出するだけでなく、特定の順序で衝突を凊理する必芁がありたす。 衝突凊理は、怜出ずは倧きく異なりたす。 ビリダヌドや2Dプラットフォヌマヌの䜜成は簡単に芋えるかもしれたせんが、正しい順序での衝突解析は混乱を招くプロセスであり、過小評䟡すべきではありたせん。



Break outずPuzzle Bobbleにはレベルデザむンも含たれおおり、リ゜ヌスのロヌドずリリヌスが必芁です。 ゲヌムのレベル゚ディタヌを䜜成するのは良い経隓です。 ゚ディタヌを䜿甚するず、レベルを簡単に䜜成でき、アプリケヌションにはんだ付けする必芁がありたせん。 レベル゚ディタヌの䜜成に぀いおの蚘事英語がありたす。



たた、人工知胜AIの䜜成を緎習するこずもできたす。 1぀のオプションは、䞉目䞊べたたは4行に戻っお無敵のAIを蚘述するこずです。 これで、デヌタ構造を既に知っおおり、ツリヌの知識を䜿甚しおMinimaxアルゎリズムを䜿甚できるようになりたす。 このアルゎリズムを䜿甚するず、䞉目䞊べのすべおの可胜な結果を​​蚈算し、無敵のAIを䜜成できたす。 友達を怒らせるのは面癜いです。 たた、さたざたなレベルの難易床を行うこずもできたす。 勝おない堎合、ゲヌムは喜びをもたらさない。



パックマンは、AIの䜜成を緎習するのに最適な方法です。 幜霊が迷路を通過できるように、ツリヌ/グラフ構造およびA *などの怜玢アルゎリズムを知る必芁がありたす。 チヌムでゎヌストを機胜させるこずも必芁です。 これらはすべお、リアルタむム戊略などの耇雑なAIを䜿甚しおゲヌムを䜜成するずきに圹立ちたす。 ここでAIの基本に぀いお読むこずができたす 。




プラットフォヌマヌ、アクション/アドベンチャヌ、RPG、RTS、゚ンゞン









よく蚈画されたゲヌムを䜜成する経隓を積んだので、アクション/アドベンチャヌ/プラットフォヌムを䜜成する準備ができたした。 これは、グラフィックス、モヌション、アニメヌション、衝突分析/怜出、物理孊、AI、゜フトりェアアヌキテクチャ、およびこの時点で孊習する他のすべおの集倧成です。 より野心的な人には、リアルタむム戊略RTSたたはロヌルプレむングゲヌムRPGを䜜成するこずを提案できたす。 RPGずRTSは本圓に巚倧なプロゞェクトなので、泚意しおください。



RPGには耇雑なアヌキテクチャがあり、倚くの蚈画が必芁です。 各歊噚、鎧、アクセサリヌ、攻撃、アむテム、呪文、召喚、敵、カヌド、ボス、ダンゞョンなどを蚈画する必芁がありたす。 现郚たで。 これはすべお調和しお機胜するはずです。控えめに蚀っおも、これは簡単な䜜業ではありたせん。 そのため、デザむンプロゞェクトが台本や挫画のように芋える堎合は、さらに倚くの䜜業を行う必芁がありたす。



RTSもアヌキテクチャが耇雑であり、倚くのAIが必芁です。 ナニットのパスを怜玢し、ナニットからコマンドを受け取り、受け取ったコマンドに応じお異なる動䜜を行う必芁がありたす。 AIを䞀床も行ったこずがない堎合は、Pac Manクロヌンから始めお始めるのが最善です。



おそらく初めおゲヌムの゚ンゞンを䜜成する必芁がありたす。 避けるべきは、ナニバヌサル゚ンゞンの䜜成です。 ゚ンゞンを䜜成するずきは、ゲヌムに適したものにしようずしないでください。 ゲヌムでx、y、zが必芁な堎合は、x、y、zが可胜な゚ンゞンを䜜成したす。 ゚ンゞンは、特定のゲヌムに必芁なものに基づいお䜜成され、ゲヌムが朜圚的に必芁になる可胜性があるずいう事実に基づいお䜜成されたせん。



初心者によくあるもう1぀の間違いは、最初のプロゞェクトずしお゚ンゞンを䜜成しようずするこずです。 通垞、これはナニバヌサル゚ンゞンです。 PongたたはSpace Invaderを䜜成するのに玠晎らしいグラフィック゚ンゞンは必芁ありたせん。 プログラミング、詳现を掘り䞋げるのは簡単。 党䜓像に焊点を圓お、ゲヌムを完成させたす。




ネットワヌク



誰もが次の倧きなMMOをやりたいようです。 オンラむンゲヌムの䜜成は、すぐに理解できるものではありたせん。 tic-tac-toeの完了盎埌にオンラむンポヌカヌをやろうずしたずきに、これに気付きたした。



ネットワヌクを远加するず、ゲヌムが非垞に耇雑になりたす。 䞀人のプレむダヌが䜕かをしたずき、それに関する情報を他の党員に送信する必芁がありたす。 右手が巊手が䜕をしおいるのか分からないようなものです。 たた、サヌバヌをロヌドするか、サヌバヌが制埡できるかを遞択する必芁がありたす。 サヌバヌ郚分が倚いほど、クラむアントをだたす機䌚は少なくなりたすが、これはサヌバヌの負荷が倧きくなるこずも意味したす。 アクションや他のペヌスの速いゲヌムでは、ネットワヌクの遅延ずパケット損倱を心配する必芁がありたす。



ネットワヌクゲヌムを䜜成する前に、少なくずも1぀のよく蚈画されたゲヌムを完党に終了する必芁がありたす。 最初のネットワヌクプロゞェクトずしお、速床に重芁ではないこずを詊みおください。 たずえば、簡単なチャットサヌバヌ/クラむアントをお勧めしたす。 たた、䞉目䞊べ/ 4に戻っお、オンラむンでプレむする機胜を远加するこずもできたす。 たたは、ネットワヌクカヌドたたはボヌドゲヌムを䜜成しおみおください。



最初のネットワヌクプロゞェクトの準備ができたら、リアルタむムで䜕かを詊しおください。 最初のネットワヌクアプリケヌションでは、おそらくTCPを䜿甚しお、受信したデヌタが送信した順序で到着するようにしたした。 倚くのアクションがあるゲヌムの堎合、TCPによっお䜜成される遅延はおそらく倧きすぎるため、UDPを䜿甚する必芁がありたす。 UDPは、配信自䜓および配信自䜓を䞀般に保蚌したせん。 UDPは远加の敎合性チェックを行わないため、高速です。 UDPの速床ず匕き換えにTCPを䜿甚するこずの容易さず、ゲヌムの䜜成時にデヌタの敎合性を個別に怜蚌する必芁性を犠牲にする必芁がありたす。




3Dゲヌム



3Dゲヌムを䜜成する前に、よく蚈画されたゲヌムを少なくずも1぀䜜成し、3次元ベクトル数孊、線圢物理孊、ニュヌトン物理孊に぀いお十分に理解しおおく必芁がありたす。 ここでは、頂点、テクスチャ、照明、圱、3次元空間内のオブゞェクトずの盞互䜜甚の決定、モデルやその他の難しいサりンドの読み蟌みを凊理する必芁がありたす。



良いニュヌスは、すでに4぀たたは5぀のゲヌムを䜜成しおいる堎合、ゲヌムを䜜成するために必芁な基本を既に知っおいるこずです。 開発プロセスにすでに粟通しおおり、プログラマずしおの胜力を知っおいたす。 3次元のシュヌティングゲヌムでも2次元のシュヌティングゲヌムでも、圌はただシュヌティングゲヌムです。 2D RPGたたは3D RPGは䟝然ずしおRPGです。



これを2Dをスキップしお3Dに盎行する蚀い蚳ず芋なさないでください。 走るこずを孊ぶ前に、歩くこずを孊ぶ必芁がありたす。




簡単な方法



すぐに仕事に取り掛かり、3D MMOFPSRTSRPGを曞いお、必芁に応じお必芁なものを孊ぶず、より早く孊ぶこずができたすか さお、あなたを助けるためのいく぀かのヒントがありたす

  1. 地元の垂堎に行く
  2. 䞞ごず賌入したす。 ナマズも適しおいたすが、サヌモンやタラを摂るこずをお勧めしたす。 ずころで、マスも非垞に効果的です。
  3. 家に垰っおコンピュヌタヌの電源を入れたす
  4. お気に入りのIDEを起動したす
  5. 今、あなたが買った魚を取り、頭を打ちたす
  6. 簡単な方法が考えられなくなるたで、手順5を繰り返したす。


蚈算問題を解く代数を孊ぶこずはありたせん。 基本を孊び、それらに䟝存したす。 プログラミングでも同じです。 あなたが簡単な方法を探しおいるなら、私はそれがそこにないこずをあなたに䌝えるためにすぐそこにいたす。 急がないでください。 もう䞀床基本を孊び、それらの䞊に構築したす。 そうでなければ、倧倱敗があなたを埅っおいたす。




旅が始たる



さお、あなたが䜕をすべきかに぀いお共通の理解を埗るために、いよいよigrodelのプレむを始めたしょう。 このガむドを䞀蚀䞀句埓うこずを期埅しおいたせん。 誰もがさたざたな方法で、さたざたな速床で孊習したす。 この蚘事から䜕かを埗るには、3぀のこずがありたす。

  1. ペヌスを遞ぶ
  2. ゲヌムを最埌たで終了する
  3. 創造するだけでなく、孊習に集䞭する


ゲヌム開発のパスで頑匵っおください



All Articles