Ako naprogramovať 2D motor?
Keď sa motor naštartuje, zaberajte užitočné množstvo pamäte RAM a rozdeľte ho do svojho motora pomocou programovania.
Aj keď je na internete veľa motorov. Vytvorením jedného si však uvedomíte skutočnú silu programovania. Je to dobrý začiatok pre prechod na 3D grafiku.
Časť 1 zo 4: zbieranie nástrojov
- 1Ovládaj jazyk. Toto je najzákladnejší krok toho, čo vyberiete. Môžete použiť C/C ++ spolu s niektorými funkciami prepísanými s montážou. Vďaka tomu bude váš motor rýchlejší a odhalí najvnútornejšie knižnice, ktoré používate.
- C je dobrá a rýchla voľba.
- C ++ je v dizajne oveľa lepší, ale trochu trpí na výkon.
- Java môže byť dobrá. Je nezávislý na OS, rýchly a štruktúrovaný.
- Zostavenie je náročné, ale ovládať ho je najlepšie.
- 2Vyberte rozhranie API (voliteľné). Môžete začať s rozhraním API, ako je OpenGL alebo DirectX, ale závisí to od vášho dobrodružstva. Ak chcete spoľahlivý motor a nechcete tráviť čas, použite API. Ak však máte dostatok času a chcete sa naučiť najvnútornejšie jadro motora, potom je odporúčanie jednoduché: choďte sólo.
- 3Naučte sa základné definície. Musíte hľadať na internete spoľahlivý obsah o veciach, ako je rastrová grafika, vektorová grafika, blesky a tiene, kolízie, fyzika (pre simuláciu boja, samozrejme) a mnoho ďalších.
- Wikipedia je váš najlepší priateľ. Hľadaj na svojich portáloch a nájdeš úžasné znalosti o každom aspekte.
- Nákup kníh o programovaní hier môže byť užitočný.
- 4Pripravte si myseľ. Budete frustrovaní náročnosťou práce, ale neotáčajte sa. Buďte vždy motivovaní. Učte sa. Vytvoriť. Neobzeraj sa späť
Vyhoďte rýchlejšie a pomalšie časti a zamerajte sa na motor.
Časť 2 zo 4: príprava návrhu
- 1Rozmyslite si, čo chcete vyrobiť. Pripravte si predstavu, čo budete vyrábať a čo nie. Vyčistenie mysle v tomto kroku pomôže z dlhodobého hľadiska.
- 2Zhromaždite svoju grafiku. Nakreslite požadovanú grafiku, napríklad obrazovku, prehrávače atď.
- 3Rozdeľte celý svoj motor na rôzne paralelné časti. Ako možno viete, paralelné programovanie je rýchlejšie. Tak to rozdeľte. Niektoré porcie zahŕňajú:-
- Vykresľovacie potrubie
- Gravitácia
- AI
- Nasledujúca obrazovka
- Ovládanie vyššie uvedených prvkov (najdôležitejšie!)
- 4Vytvorte jednorazové algoritmy pre prvky. Zamyslite sa nad tým, čo sa stane, ako a prečo a kto to urobí. Pomôže to pri kódovaní.
- Donald Knuth povedal, že koreňmi zla sú predbežné optimalizácie. Vyhoďte rýchlejšie a pomalšie časti a zamerajte sa na motor. Nezabudnite ich však vyriešiť po dokončení motora.
Súťažiť s GTX 8800 je príliš pomalé, ale pre váš motor je to prehnané.
Časť 3 zo 4: kódovanie základných položiek
- 1Kódujte rastrovanie. Rastrovanie je zobrazenie každého pixelu na obrazovke.
- Na vymazanie predchádzajúceho obrázku použite formát „Ignorovať farbu“. V BitBlt Windows to má rastrový kód ČIERNA a BÍLOSŤ. Upozorňujeme, že ak máte, musíte nakresliť pozadie obrazovky.
- Na formát Sprite obrázku nakreslite formát „A“. V BitBlt systému Windows je to rastrový kód: SRCAND.
- Na nakreslenie textúry na sprite použite vyššie uvedený formát.
- 2Kódujte fyziku. Budete musieť porozumieť dynamike svojho prostredia a zabezpečiť jej dynamiku.
- 3Pridajte osvetlenie. Presne povedané, osvetlenie nie je v 2D motoroch povinné, ale môžete ho pridať, ak chcete.
- 4Zvládnuť tiene. Na tiene môžete použiť techniku tieňového objemu. Nie je to však potrebné, pretože nepotrebujete osvetlenie.
- 5Kódujte AI. V závislosti od typu motora a hry si môžete o sebe myslieť, že „Čo by som urobil v tejto situácii“ a vytvoriť jeho algoritmus. Napríklad v simulácii boja, ak je AI na 4. poschodí a v prvom poschodí sú 2 protivníci a na 3. poschodí sa objaví raketomet, potom by AI namiesto toho, aby išiel priamo do prvého poschodia, zamieril do 3. poschodie. Ak používate OOP, bude to vo vašej triede AI rozhodujúca funkcia.
Vďaka tomu bude váš motor rýchlejší a odhalí sa najvnútornejšia časť knižníc, ktoré používate.
Časť 4 zo 4: optimalizácia
- 1Použite vyrovnávaciu pamäť pre dve obrazovky. To zahŕňa nakreslenie všetkého na bitmapu v pamäti a potom nakreslenie bitmapy na obrazovku. Bude to trochu pomalé a pamäť neefektívna, ale odstráni blikanie a motor bude plynulejší.
- 2Zvážte postupnosť krokov v algoritmoch. Napríklad v jednoduchej animácii jednoduchý algoritmus uvedie, že „vymazať: rozhodnúť: kresliť“. Ak je však rozhodovanie zložitejšie, dôjde k značnému rozdielu v mazaní a kreslení, čo spôsobí blikanie. Musíte použiť „rozhodnúť: vymazať: kresliť“.
- 3Použite vlastné alokátory. Keď sa motor naštartuje, zaberajte užitočné množstvo pamäte RAM a rozdeľte ho do svojho motora pomocou programovania. Operačný systém je zaneprázdnený a pri plnení vašich požiadaviek bude vykazovať latenciu, preto majte RAM vopred.
- 4Používajte svoju vyrovnávaciu pamäť múdro. Často používajte niektoré z najdôležitejších prvkov, aby boli uložené v medzipamäte L1. Tým by sa veci urýchlili. Cache L2 používa 7ns, pričom čítanie 1 MB z RAM nám zaberie 250.
- 5Uistite sa, že používate paralelné spracovanie. Na paralelnú prácu použite špeciálne pokyny SIMD. Navyše využite všetky výhody toľkých jadier procesora vytvorením paralelných jednotiek. Funkcia CreateThread vo Windows a Fork v Linuxe sú prospešné.
- 6Zaistite, aby sa váš paralelný svet dostal aj do GPU. Medzi najnovšie integrované GPU majú 10 výkonná jadra s 1200 MHz. Súťažiť s GTX 8800 je príliš pomalé, ale pre váš motor je to prehnané.
Prečítajte si tiež: Ako pridať panely nástrojov do programu Microsoft Word?
Súvisiace články