Hur programmerar jag en 2d-motor?

Dela den i din motor med hjälp av programmering
När motorn startar, ta upp en användbar mängd RAM och dela den i din motor med hjälp av programmering.

Även om det finns många motorer på nätet. Men genom att skapa en kommer du att inse den verkliga kraften i programmering. Detta är en bra start för att flytta upp till 3D-grafik.

Del 1 av 4: samla dina verktyg

  1. 1
    Behärska ett språk. Detta är det mest grundläggande steget i vad du väljer. Du kan använda C / C ++ tillsammans med vissa funktioner som skrivs om med montering. Detta kommer att göra din motor snabbare och avslöja de innersta av de bibliotek du använder.
    • C är ett bra och snabbt val.
    • C ++ är mycket bättre i design, men lider lite av prestanda.
    • Java kan vara bra. Det är operativsystemoberoende, snabb och strukturerat.
    • Montering är svårt, men att kontrollera det är det bästa alternativet.
  2. 2
    Välj ett API (valfritt). Du kan börja med ett API som OpenGL eller DirectX, men det beror på ditt äventyr. Om du vill ha en pålitlig motor och inte vill spendera tid, använd ett API. Men om du har gott om tid och vill lära dig motorns innersta, är rekommendationen enkel: gå ensam.
  3. 3
    Lär dig de grundläggande definitionerna. Du måste söka på nätet efter tillförlitligt innehåll om saker som rastergrafik, vektorgrafik, blixtar och skuggor, kollisioner, fysik (för en kampsimulering, naturligtvis) och mycket mycket mer.
    • Wikipedia är din bästa vän. Sök i dess portaler så hittar du fantastisk kunskap om alla aspekter.
    • Att köpa böcker om programmeringsspel kan komma till nytta.
  4. 4
    Förbered ditt sinne. Du kommer att bli frustrerad av svårigheten med jobbet, men vänd dig inte tillbaka. Var alltid motiverad. Lära sig. Skapa. Titta inte tillbaka.
Kasta bort de snabbare
Kasta bort de snabbare och långsammare delarna och fokusera på motorn.

Del 2 av 4: förbereda designen

  1. 1
    Tänk vad du vill göra. Förbered en uppfattning om vad du kommer att göra och vad du inte kommer att göra. Att rensa ditt sinne i det här steget hjälper på lång sikt.
  2. 2
    Samla din grafik. Rita önskad grafik, som skärmen, spelare etc.
  3. 3
    Dela upp hela motorn i olika parallella delar. Som du kanske vet är parallell programmering snabbare. Så dela upp det. Några delar inkluderar: -
    • Rendering pipeline
    • Allvar
    • AI
    • Nästa skärm
    • Kontroll av ovanstående element (det viktigaste!)
  4. 4
    Skapa enstegsalgoritmer för elementen. Tänk bara vad som kommer att hända, hur och varför och vem som får det att hända. Det kommer att hjälpa till med kodning.
    • Donald Knuth sa att föroptimeringar är roten till det onda. Kasta bort de snabbare och långsammare delarna och fokusera på motorn. Men kom ihåg att reda ut dem när motorn är klar.
Men är en överdriven för din motor
För långsam för att tävla med GTX 8800, men är en överdriven för din motor.

Del 3 av 4: kodning av de grundläggande artiklarna

  1. 1
    Kod rastering. Rastering är visningen av varje pixel på skärmen.
    • Använd "ignorera färg" -formatet för att radera föregående bild. I BitBlt i Windows har detta rasterkod BLACKNESS och WHITENESS. Observera att du måste rita bakgrunden på skärmen om du har den.
    • Använd formatet "OCH" för att rita bildens sprite. I BitBlt i Windows är detta rasterkoden: SRCAND.
    • Använd ovanstående format för att rita textur på sprite.
  2. 2
    Kod fysik. Du måste förstå och tillhandahålla dynamiken i din miljö.
  3. 3
    Lägg till belysning. Strängt taget krävs inte belysning i 2D-motorer, men du kan lägga till det om du vill.
  4. 4
    Hantera skuggor. Du kan använda skuggvolymstekniken för skuggor. Det behövs dock inte eftersom du inte behöver belysning.
  5. 5
    Kod AI. Beroende på typ av motor och spel kan du tänka på dig själv att "Vad skulle jag göra i den här situationen" och skapa dess algoritm. Till exempel, i en stridssimulering, om AI är på 4: e våningen, och det finns 2 motståndare på första våningen och en raketkastare gett upp på 3: e våningen, istället för att gå direkt till första våningen, bör AI gå till 3: e våningen. Om du använder OOP kommer detta att vara en avgörande funktion i din AI-klass.
Detta kommer att göra din motor snabbare
Detta kommer att göra din motor snabbare och avslöja de innersta av de bibliotek du använder.

Del 4 av 4: optimering

  1. 1
    Använd buffring med dubbla skärmar. Det handlar om att dra allt till en bitmapp i minnet och sedan rita bitmappen till skärmen. Detta blir lite långsamt och ineffektivt i minnet, men det tar bort flimmer och gör motorn smidigare.
  2. 2
    Tänk på sekvensen av steg i algoritmer. Till exempel, i en enkel animering, anger en enkel algoritm att "radera: besluta: rita". Men om beslutet är mer komplext kommer det att finnas en signifikant skillnad i radera och rita, vilket ger flimmer. Du måste använda "besluta: radera: rita".
  3. 3
    Använd anpassade fördelare. När motorn startar, ta upp en användbar mängd RAM och dela den i din motor med hjälp av programmering. Operativsystemet är upptaget och visar latens för att uppfylla ditt krav, så ha RAM i förväg.
  4. 4
    Använd ditt cache klokt. Använd ofta några av de viktigaste elementen så att de lagras i L1-cache. Att göra detta skulle påskynda saker. Cache of L2 använder 7ns, medan det tar 250 oss att läsa 1MB från RAM.
  5. 5
    Se till att du använder parallell bearbetning. Använd SIMD-specialinstruktioner för att arbeta parallellt. Dessutom, dra full nytta av så många processorkärnor genom att skapa parallella enheter. Funktionen CreateThread i Windows och Fork i Linux är fördelaktiga.
  6. 6
    Se till att din parallella värld också kommer till GPU. De senaste integrerade GPU: erna har 10 exekveringskärnor med 1200 MHz. För långsam för att tävla med GTX 8800, men är en överdriven för din motor.
Relaterade artiklar
  1. Hur infogar jag grafik i Microsoft Excel?
  2. Hur använder jag det flytande verktyget i Photoshop?
  3. Hur använder jag marionett i Photoshop?
  4. Hur lägger jag till läppglans med Photoshop?
  5. Hur byter jag ögonfärg i Photoshop?
  6. Hur man sätter ihop två bilder?
FacebookTwitterInstagramPinterestLinkedInGoogle+YoutubeRedditDribbbleBehanceGithubCodePenWhatsappEmail