Ako naprogramovať 2D motor?

Keď sa motor naštartuje
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

  1. 1
    Ovlá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.
  2. 2
    Vyberte 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.
  3. 3
    Nauč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ý.
  4. 4
    Pripravte 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äť
Zamerajte sa na motor
Vyhoďte rýchlejšie a pomalšie časti a zamerajte sa na motor.

Časť 2 zo 4: príprava návrhu

  1. 1
    Rozmyslite 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.
  2. 2
    Zhromaždite svoju grafiku. Nakreslite požadovanú grafiku, napríklad obrazovku, prehrávače atď.
  3. 3
    Rozdeľ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!)
  4. 4
    Vytvorte 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.
Ale pre váš motor je to prehnané
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

  1. 1
    Kó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.
  2. 2
    Kódujte fyziku. Budete musieť porozumieť dynamike svojho prostredia a zabezpečiť jej dynamiku.
  3. 3
    Pridajte osvetlenie. Presne povedané, osvetlenie nie je v 2D motoroch povinné, ale môžete ho pridať, ak chcete.
  4. 4
    Zvládnuť tiene. Na tiene môžete použiť techniku tieňového objemu. Nie je to však potrebné, pretože nepotrebujete osvetlenie.
  5. 5
    Kó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ší
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

  1. 1
    Použ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ší.
  2. 2
    Zváž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ť“.
  3. 3
    Použ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.
  4. 4
    Použí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.
  5. 5
    Uistite 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é.
  6. 6
    Zaistite, 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é.
FacebookTwitterInstagramPinterestLinkedInGoogle+YoutubeRedditDribbbleBehanceGithubCodePenWhatsappEmail