2017幎にゲヌムボヌむ甚のゲヌムを䜜成するのはどうですか

画像






誰もが子䟛時代の倢を芋おいた。 個人的には、最初のコン゜ヌルであるNintendo Game Boy甚のゲヌムを䜜成するこずを倢芋おいたした。 今日、私の倢が実珟したした- ゲヌムボヌむ甚の最初のゲヌムを本物のカヌトリッゞでリリヌスしたした  Sheep It Up



この蚘事では、䜿甚したツヌルず、プロゞェクトを䜜成するために初心者が克服しなければならなかった障害に぀いお説明したす。 この蚘事は非垞に長いため、2぀の郚分に分かれおいたす。





ゲヌム



「Sheep It Up」 -これは、矊が登っおベルクロの留め具にしがみ぀くアヌケヌドゲヌムです。 コンセプトはシンプルですが、ゲヌム自䜓は急速に耇雑になり぀぀ありたす。萜䞋するこずなくどれだけ高く登れるのでしょうか



ゲヌムプレむシヌプ・むット・アップ






私は自分でコレクタヌなので、プロゞェクトを叀いゲヌムボヌむのゲヌムの粟神で䜜成したかったのです。 したがっお、プリント基板、ROM、シェル、保護ケヌス、さらにはステッカヌたで、すべおがこのゲヌム専甚に蚭蚈されおいたす たた、誰もがゲヌムを楜しめるように合理的な䟡栌を維持しようずしたした $ 15+配送料 。 Super Game Boyを含む、最初からGBA SPたでのGame Boyモデルで動䜜したす。











ゲヌムボヌむをただお持ちの堎合は、出版瀟のりェブサむトでカヌトリッゞを賌入できたす。



https://catskullgames.com/sheep-it-up



ツヌル2017幎、ありがずう



90幎代には、8ビットコン゜ヌル甚のゲヌムを䜜成するこずは倧きな課題であり、経隓豊富な専門家のチヌム党䜓が必芁でした。 圓時のデザむナヌ、アヌティスト、デベロッパヌは真のヒヌロヌだず考えおいたす。圌らはツヌルを䜿っおこのような玠晎らしいゲヌムを䜜成するこずができたした。その胜力は珟代のものよりもはるかに劣っおいたす。



2017幎には、8ビットコン゜ヌル甚のゲヌムを䜜成するために䞀生懞呜働く必芁がありたす。 しかし、愛奜家の玠晎らしいコミュニティのおかげで、私たちは生掻を楜にする倚くのツヌルを持っおいたす それらがなければ、私のような新人はゲヌムボヌむだけのためにゲヌムを䜜成するこずはできたせん。 それでは、これらのツヌルは䜕ですか



最初に、プログラミング蚀語に぀いおお話したす。 圓時、すべおの特殊なゲヌム機噚はアセンブラヌでプログラムされおいたした。 ただ可胜ですさらには掚奚されたす。 しかし、8ビットおよび16ビットコン゜ヌル甚の倚くの開発キットはC蚀語に基づいおいるため、これが唯䞀のオプションではありたせん。



さらに、グラフィックスずレベルデザむンを䜜成するために、グラフ甚玙ずハンドスキャナヌは䞍芁になりたした。 幞いなこずに、次の2぀の補完ツヌルを䜿甚できたす。











最埌になりたしたが、ゲヌムをテストする方法が必芁です。 そしおここでも、最新のツヌルが重芁です。 90幎代には、開発者は高䟡なICEキットを䜿甚する必芁がありたしたが、今日ではどのコンピュヌタヌでも実行できる匷力な゜フトりェア゚ミュレヌタヌがありたす。 独自のゲヌムをテストするには 、 BGBが最適です。 これは、匷力なデバッガヌを備えた非垞に正確なGame Boy゚ミュレヌタヌです。動䜜するゲヌムを䜜成するための必須ツヌルです。









ゲヌム自䜓は右䞊隅にあり、他のすべおの恐ろしいりィンドりは異なるデバッグツヌルです



ただし、ゲヌムのパフォヌマンスを確保するには、実際の機噚でテストする必芁があるずいう事実に備えおください。 90幎代、人々は自分のプログラムをEPROMチップに蚘録し、特別なカヌトリッゞを䜿甚しおこのチップを実際のゲヌムボヌむに挿入したした。 このプロセスは効果的ですが、かなり時間がかかり高䟡です。 今日、いわゆる「フラッシュカヌト」がありたす。これは、ゲヌムボヌむで実行されるROMむメヌゞのSDカヌドを挿入できるカヌトリッゞです。 考え方は䌌おいたすが、新しいツヌルはより䟿利で䜿いやすいです。 Game BoyにはさたざたなFlashcartsがありたすが、私の意芋ではKrikzz Everdrive Game Boyが最高のものを䜜成したす。 今幎の倏、より新しく改良されたモデルがリリヌスされたしたが、以前賌入した叀いバヌゞョンを䜿甚したした。

















90幎代および2010幎代のFlashcart



2017幎にはこれらのすばらしいツヌルがすべお存圚しおいたしたが、1989幎のゲヌムコン゜ヌル甚のゲヌムを䜜成するこずは䟝然ずしお課題です。 特に、Unity、Unreal Engine、Godotなどの「最新のツヌル」の䜿甚に慣れおいる人向けです。 Sheep It Upの開発で遭遇した䞻な困難に぀いおお話したす。 、ゲヌムボヌむがどのように機胜したかに驚いたこずなど。



技術的な問題



サむズ制限



明癜なこずから始めたしょう Sheep It Up -これは非垞にシンプルなゲヌムです。 これは、1぀の理由によるものです。ゲヌム党䜓の重さがわずか32KBです。 ぀たり、すべおのコヌド、画像、さらにはサりンドが小さな32KBのスペヌスに収たりたす。 比范のために、32KBは非垞に小さな解像床でのWikipediaロゎのサむズであるず蚀えたす。









フルゲヌム32KB









160x146ピクセルPNG-2432KB



もちろん、ゲヌムボヌむのすべおのゲヌムが32KBに収たるわけではありたせん。 私にずっお、これは実際のカヌトリッゞでゲヌムをリリヌスするための技術的な制限でしたこれに぀いおは第2郚で詳しく説明したす 。 Game Boyの最高で最も有名なゲヌムは、実際にはもっず倚くの重さがありたす。





実際には、ゲヌムボヌむのゲヌムはわずか32 KBしか䜿甚しおいたせん。 それらは、䞻にコン゜ヌルラむフの初期段階で䜜成されたした。 たずえば、 Alleyway 日本でGame Boyず共にリリヌスされたゲヌムの1぀ずTetris 米囜およびペヌロッパでコン゜ヌルずずもにリリヌスされた の䞡方が32KBに収たりたす。 これらのゲヌムはどちらも玠晎らしいですが、カヌトリッゞのサむズが小さいため、スケヌルが非垞に「制限」されおいたす。1぀の画面のみ、少量のグラフィックおよびサりンドリ゜ヌスなどです。















AlleywayずTetrisは32Kゲヌムで、Sheep It Up



プロセッサヌポヌタブル電源でプレむ



ゲヌムボヌむには、コン゜ヌル甚に特別に蚭蚈された4MHzプロセッサが搭茉されおいたすこれはZilog Z80ずIntel 8080プロセッサの組み合わせです 。 党䜓的に、Gameboyの蚈算胜力はNESに匹敵し、画面サむズが小さく色数が倚いため、わずかに高くなっおいたすこれに぀いおは埌ほど説明したす 。 4 MHzの䜎速にもかかわらず、Game Boyのすべおのゲヌムは安定した60 fpsを提䟛したした 。 PS4 ProずXbox One Xを孊びたしょう



しかし、倧孊を卒業したばかりのプログラマヌにずっお、最倧の制限は8ビットプロセッサでした。 おそらくご存知のように、すべおのコンピュヌタヌ内でれロず1を䜿甚しおデヌタを凊理したす。 0たたは1の倀を持぀こずができる1桁は、「ビット」ず呌ばれたす2桁の倀しか持おないため、「2進数字」、「2進倀」の略 。 1぀の操䜜で8ビットのデヌタを凊理できる堎合、プロセッサは「8ビット」ず呌ばれたす。



これはビデオゲヌムの䜜成にどのように圱響したすか



プロセッサが凊理できるビットが少ないほど、ゲヌムプレむ倉数が制限されたす。 たずえば、ゲヌムでは、゚ネルギヌ、速床、ポむントなど、さたざたな倀を衚す倚数の敎数が䜿甚されたす。



8デヌタビットでは、敎数は16ビット倉数よりも䜎い倀を栌玍できたす。





それでも理解できない堎合は、 Sheet It Upから具䜓䟋を芋おみたしょう。









図からわかるように、points倉数には5桁が含たれおおり、0から99999たで倉化する可胜性がありたす。残念ながら、これは8ビット敎数に栌玍できるものをはるかに超えおいたす。 実際、16ビット倉数であっおも、このような「倧きな」アカりントを保存するには䞍十分です。



したがっお、Sheep It Upのポむント数を远跡​​するために 1぀ではなく、5぀の異なる8ビット敎数倉数を䜿甚する必芁がありたした。 特に、蚘録結果を保存する機胜を远加したこずを考えるず、これらすべおの倉数を凊理するこずが「楜しい」こずを想像しおください。 5぀の異なる倉数に栌玍された2぀の倀を比范する必芁がありたした。 8ビットシステムでプログラミングを行うず、垞にこのような耇雑な゜リュヌションを探すこずができたすが、珟代のシステムでは32ビットたたは64ビットの倉数を䜿甚するだけで、プログラマにこのような問題を匕き起こすこずはありたせん。



経隓豊富なゲヌム開発者向けのメモint8党䜓ずしお0から9の倀を持぀単䞀ビットを保存するよりも効率的なアプロヌチを芋぀けるこずが可胜であるこずを知っおいたす。しかし、実際には、0から255なぜなら、私はビットカテゎリ自䜓を保存するのではなく、この番号を画面に衚瀺するために䜿甚されるタむル識別子を保存するからです。



グラフィックスの課題



1぀の䞖界、2぀の飛行機



ゲヌムボヌむのすべおの画像は、背景レむダヌBKGずスプラむトOBJず呌ばれるいく぀かの移動オブゞェクトの2぀の芁玠で構成されおいたす。 画面䞊に存圚できるスプラむトは40個たでです。 さらに、別の制限がありたす。ゲヌムボヌむは1行に10個を超えるスプラむトを衚瀺できたせん。



バックグラりンドBKGずスプラむトOBJ






実際、背景ずは独立しおスクロヌルできる「りィンドり」のレむダヌが远加されおいるため、すべおが少し耇雑になりたす。 通垞、ナヌザヌむンタヌフェむスメガネなどに䜿甚されたす。 ただし、このレむダヌは䞍透明です。その背埌にある背景レむダヌのすべおのグラフィックデヌタを非衚瀺にしたす。 したがっお、簡単にするために、ゲヌムボヌむには「背景」レむダヌが1぀あるず想定できたすが、必芁に応じお、その䞀郚を独立しおスクロヌルできたす。



ゲヌムボヌむは4色を芋おいたす



最埌に、最も明癜なものに慣れおみたしょう。元のゲヌムボヌむモデルは4色しか衚瀺できたせんでした。









ラむトグレヌラむトグレヌずダヌクグレヌダヌクグレヌは実際にはラむトグリヌンラむトグリヌンずダヌクグリヌンダヌクグリヌンの可胜性が高いず䞻匵する人もいるかもしれたせんが、それは問題ではありたせん。グラフィック、いずれの堎合でも、䜿甚できるのは4色のみです。 少なくずもこれは背景に関連しおいたす。なぜなら、スプラむトの堎合、状況は異なるからです









そしお実際、写真に芋られるように、矊は3色だけで塗られおいたす。 なぜそうですか 実際、私はスプラむトを4色で塗りたした。 しかし、ゲヌムボヌむは「透明な色」ずしお䜿甚されるため、4番目の色ここでは黒は衚瀺されたせん。 このため、すべおのスプラむトが正方圢の画像になるわけではなく、それらの背埌にある背景を芋るこずができるさたざたな圢状を持぀こずができたす。









これは、スプラむトの描画に黒を䜿甚できないこずを意味したすか



もちろんそうではありたせんが、以䞋に芋られるように、ベルクロスプラむトを䟋にしおいたす。 このスプラむトには、3 + 1色の別のパレットを䜿甚したした。「癜」は透明色ずしお䜿甚され、「黒」はスプラむト䞊に衚瀺されたす。









パレットで楜しい



ゲヌムボヌむは4色に制限されおいたすが、実際には3぀の異なるパレットを䜿甚しお画像を衚瀺したす。









ご芧のずおり、背景レむダヌ甚に4色のパレットが1぀ず、スプラむトで䜿甚できる3色+透明色の2぀のパレットがありたす各スプラむトは1぀たたは他のパレットを䜿甚できたす 。 玠晎らしいこずは、パレットのどのスロットにも任意の色を自由に割り圓おるこずができるこずです。 これにより、たずえば、倚くのゲヌムで䜿甚されおいる画面の明るさの段階的な枛少や増加など、非垞に興味深い効果を䜜成できたす。









Game Boyにスクリヌンシャドりを実装するには、3぀のパレットの色を倉曎するだけです。 最初の段階では、パレットのすべおのスロットが癜で塗り぀ぶされおいたす。 次に、第2段階で、最も暗い色のスロット黒が明るい灰色で塗り぀ぶされ、埐々に画像が珟像されたす。 第3段階では、4぀の色がすべお各パレットに衚瀺されるたで、明るい灰色が暗い灰色になりたす。



同様の方法を䜿甚しお、各フレヌムのパレットの色を倉曎するこずで、文字を「ちら぀き」させるこずができたす。 たずえば、この方法は、スヌパヌマリオランドのマリオがアスタリスクをキャッチし、無敵になったずきに䜿甚されたす。



タむルから䞖界を䜜りたしょう



Game Boyが画像を衚瀺する方法には、もう1぀の最埌の奇劙な点がありたす。特に、珟圚の䞖代の゚ンゞンを䜿甚するゲヌム開発者にずっおは珍しいこずです。 コン゜ヌルには「フレヌムバッファ」がないため、画面䞊の各ピクセルの色を個別に蚭定する必芁がありたす。 すべおの画面むメヌゞは、倚くの「タむル」から収集されたす。 8x8ピクセル。 これは背景ずスプラむトの䞡方に適甚されたす









グラフィックの衚瀺に必芁なビデオメモリの量を枛らすように蚭蚈されたこの手法は、ゲヌムボヌむ画面に任意の線を描画できないこずを意味したす。 しかし、これはゲヌムボヌむが4 MHzず8 KBのビデオメモリメガバむトやギガバむトではなくキロバむトのプロセッサでこのような矎しいゲヌムを衚瀺できるようにする秘密の1぀でもありたす。

ただし、このようなタむルディスプレむの欠点の1぀は、矊ずベルクロのスプラむトが耇数のスプラむトで構成されおいるこずです。 ヒツゞのサむズは16x16ピクセルです。したがっお、理論的には、衚瀺するには4぀の8x8スプラむトが必芁です。 幞いなこずに、Game Boyには8x16スプラむト衚瀺モヌドもありたす。぀たり、Sheep It Upのすべおのオブゞェクトを意味したす。 4぀ではなく、2぀のスプラむトのみで構成されたす。









画面ごずに最倧40のスプラむトに制限されおいるこずを芚えおいたすか さらに、ゲヌムボヌむは1行に10個を超えるスプラむトを衚瀺できたせん 。



私たちの堎合、これは、最初に考えたように、1列に5぀たでの矊を配眮できるこずを意味したすハヌドりェアの芳点から、矊は2぀のスプラむトで構成されおいるため 。



党画面タむル



これに぀いおはこれたで蚀及しおいたせんが、ゲヌムボヌむの画面解像床は160x144ピクセルです。 ぀たり、画面党䜓を閉じるには、20x18 = 360タむルが必芁です。









残念ながら、ゲヌムボヌむのビデオメモリは制限されおおり8KB 、合蚈256の異なるスプラむトを保存できたす。 これは、゜フトりェアのトリックがなければ、党画面画像を衚瀺するこずが䞍可胜であるこずを意味したす。









秘密はタむルを再利甚するこずです。ご芧のずおり、タむルむメヌゞには倚くの「空のスペヌス」がありたす。぀たり、RAMからの1぀の「癜いタむル」がむメヌゞ䞊に数回配眮されたす。 スクリヌンセヌバヌでは178皮類のタむルのみが䜿甚されおいたす。぀たり、必芁に応じお詳现を远加できたす。









90幎代に䜿甚されたタむルの再利甚方法はわかりたせんが、今日ではGame Boy Tile Data Generatorず呌ばれる非垞に䟿利なツヌルがありたす。 圌にPNG画像4色を枡すず、実際のゲヌムボヌむに衚瀺する必芁があるタむルずタむルマップが自動的に生成されたす。 明らかに、同じタむルを自動的に認識しお再利甚し、できるだけ倚くのコン゜ヌルビデオメモリを節玄したす









参考80幎代ず90幎代のほずんどのコン゜ヌルは同様に機胜し、8x8タむルに基づく画面を備えおいたした Nes、Master System、PC-Engine、Super Nintendo、Genesis、Game Boy、Game Gear ...フレヌムバッファヌはPlayStationずSaturnであり、このテクノロゞヌを備えた最初のポヌタブルコン゜ヌルはGame Boy Advance でしたAtari Lynxはシングルピクセルコントロヌルを備えた最初のポヌタブルコン゜ヌルでした 。 ぀たり、ゲヌムボヌむの「タむルの操䜜」をマスタヌしたので、将来、他のレトロコン゜ヌルでスキルを䜿甚できたす。



プロのヒント4色のスプラむトを䜜成したす



最埌に、才胜ある任倩堂の開発者からのちょっずしたアドバむスで締めくくりたしょう。 Wario Landのスクリヌンショットをご芧ください。









コむンスプラむトが実際に4色で塗られおいるのがわかりたすか Game Boyがスプラむトごずに3色しか衚瀺できないず蚀った堎合、どうやっおこれを行うこずができたしたか



GIF






答えは簡単です。各コむンは2぀のスプラむトで構成され、各スプラむトは独自のパレットを䜿甚したす。 ご芧のずおり、コむンを2぀に分割するず、実際には2぀の8x16スプラむトから䜜成されたす。 い぀ものように、任倩堂は现郚に非垞に泚意を払っおいたす。2぀の接続された「スプラむトの半分」のように芋えるだけでなく、開発者はそれらをわずかにずらし、1ピクセルず぀互いにオヌバヌラップしたす。



おわりに



これで私のゲヌムの事埌分析の最初の郚分は終わりです。 読んでくれおありがずう 第2郚では、サりンドの問題倚くの奇劙なこずもありたすず、Game Boyの既存のゲヌムを砎壊せずにカヌトリッゞを䜜成するこずに぀いお説明したす。 たた 、 Sheep It Upプレむダヌから受け取ったフィヌドバックを確認したす。









蚘事を楜しんでください Game Boyコン゜ヌルをただお持ちの堎合は、Catskullゲヌムからたった15ドルで完璧なSheep It Upカヌトリッゞを賌入できるこずを忘れないでください。 出荷前に、各カヌトリッゞは手動で組み立おられたす



All Articles