Tässä ovat vaiheet:
- Vaihe 1: Opi lineaarialgebra
- Vaihe 2: Opettele C++ (tai mikä tahansa kieli haluat)
- Vaihe 3: Kehitä matematiikkamoottori
- Vaihe 4: Opi tietokonegrafiikkaa
- Vaihe 5: Opettele OpenGL ja tee paljon projekteja
- Vaihe 6: Opi suunnittelumalleja
- Vaihe 7: Kehitä renderöintimoottori
- Vaihe 8: Käy läpi Newtonin liikkeen lait
- Vaihe 9: Opi laskennallisen geometrian algoritmit
- Vaihe 10: Kehitä fysiikkamoottori
- Vaihe 11: Kehitä peli, Testaa & Toista
- Kirjoja alkuun
Vaihe 1: Opi lineaarialgebra
Opi ensin lineaarialgebra. Ei, en tarkoita yläasteella opetettua algebraa. Tarkoitan lineaarialgebran käsitteitä, kuten vektoreita ja matriiseja. Keskity vektorien ja matriisien operaatioiden oppimiseen, erityisesti pistetuotto, ristituotto ja avaruusmuunnokset.
Vaihe 2: Opettele C++ (tai mikä tahansa kieli haluat)
Seuraavaksi opettele ohjelmoimaan. Suosittelen C++:n opiskelua. Tässä vaiheessa sinun ei tarvitse olla koodauksen asiantuntija. Tutustu kuitenkin luokkiin, metodeihin, periytymiseen, polymorfismiin ja kapselointiin.
Vaihe 3: Kehitä matematiikkamoottori
Käytä sitten tietämystäsi vektoreista, matriiseista ja koodauksesta kehittääksesi matematiikkamoottorin. Operaatioita, kuten pistetuotosta, ristituloa ja avaruusmuunnosta, käytetään laajasti pelimoottorin kehityksessä.
Vaihe 4: Opi tietokonegrafiikkaa
Nyt tulee hauska osa. Tutustu tietokonegrafiikan käsitteisiin, erityisesti renderöintiputkeen ja varjostimiin. Vältä toistaiseksi koodaamista ja OpenGL API:n käyttöä. OpenGL API on hämmentävä ymmärtää, jos sinulla on vain vähän tietoa tietokonegrafiikan käsitteistä.
Vaihe 5: Opettele OpenGL ja tee paljon projekteja
Kun tunnet olosi mukavaksi tietokonegrafiikan käsitteiden kanssa, tutustu OpenGL API:han ja OpenGL Shadereihin. Tee mahdollisimman paljon projekteja. Opi, miten hahmoja renderöidään, miten hahmoja pyöritetään ja käännetään. Opettele, miten teksturointi ja valaistus toimivat OpenGL:llä. Tämäkin on hauska osuus, ja suosittelen tekemään mahdollisimman paljon projekteja.
Vaihe 6: Opi suunnittelumalleja
Seuraava askel pelimoottorin kehittäjäksi on API-arkkitehtuurin oppiminen. Pelimoottori on yksinkertaisesti API, kehys, joka huolehtii kaikista renderöinnistä, fysiikasta ja matemaattisista operaatioista. On ensiarvoisen tärkeää, että kehität API:n, joka on modulaarinen, joustava, ylläpidettävä ja mukautettava.
Kehittääksesi API:n sinun on opittava suunnittelumalleja. Yleisimpiä suunnittelumalleja ovat muun muassa Singleton, Observer, Strategy, Composite ja Factory.
Vaihe 7: Kehitä renderöintimoottori
Tässä vaiheessa olet valmis yhdistämään tietosi lineaarialgebrasta, tietokonegrafiikasta, OpenGL:stä ja suunnittelumalleista kehittäessäsi renderöintimoottoria.
Vaihe 8: Käy läpi Newtonin liikkeen lait
Kun olet saanut renderöintimoottorin valmiiksi, on aika työstää moottorin vaikeinta osaa, ts, fysiikkamoottoria.
Hyvä uutinen on se, että sinun ei tarvitse olla fyysikko kehittääksesi fysiikkamoottoria, mutta sinun on tunnettava Newtonin liikkeen lait ja se, miten ne toteutetaan algoritmeilla, kuten Runge-Kutta-algoritmilla.
Vaihe 9: Opi laskennallisen geometrian algoritmit
Pelimoottori ei ole pelimoottori ilman törmäystunnistusta. Kehittääksesi törmäystunnistusjärjestelmän sinun täytyy oppia laskennallisen geometrian algoritmeja, kuten GJK, BVH ja Sutherland-Hodgman. Näitä algoritmeja käytetään havaitsemaan, onko törmäys tapahtunut, missä se tapahtui ja mitkä objektit todennäköisimmin törmäävät.
Vaihe 10: Kehitä fysiikkamoottori
Kun olet tutustunut edellä mainittuihin algoritmeihin, sinun pitäisi pystyä kehittämään fysiikkamoottori, jossa on törmäystunnistusjärjestelmä.
Vaihe 11: Kehitä peli, Testaa & Toista
Onnittelut, sinulla on nyt pelimoottori. Kehitä mahdollisimman monta peliä ja testaa pelimoottoria mahdollisimman paljon. Korjaa virheitä, toteuta uusia ominaisuuksia, kehitä pelejä ja toista. Usko minua; tämä on kaikista paras osa.
Kirjoja alkuun
Tässä on luettelo kirjoista, jotka auttavat sinua pääsemään alkuun:
3D-matematiikka
- 3D-matematiikan alkeisopas grafiikkaa ja pelikehitystä varten
Renderöintimoottori