Edit: oke lisäilyy tähä kuinka pihal olenkaan. Elikkä mitä engine oikeasti tekee? Ku sinäänsä tiiän, mut sinäänsä ei mitään hajua. Tai sehän on niinkuin kokopelin koodin alusta tai jotain semmosta. Mutta miksi esim kaikki samalla enginellä tehdyt pelit näyttää graaffisesti samalta, tai siis tietty toises voi olla enemmän polyja ja detailei jne., mutta siis tyyliltään ihan sama. Esim. doominpelimoottori: doom3, Quake 4, Prey. Unreal3: Ut07, gears of war, jne. jne..
Ja miten enginet voi erottuu toisistaan niin paljon että toinen on hidas ja toinen nopea? Ja jos peleissä on just hyvät ja huonot asetukset, esim low texturet ja high texturet niin pitääkö ne textuurit tehdä erikseen vai osaako pelin koodi vaan pakata sitä täyttä tekstuuria? Ja koska oon niin pihalla niin unohin samalla sen pääasian mitä mun piti kysyä. Noh ei voi mitään. Toisaalta mitä järkeä ees kysellä tommossia ku en tiedolla mitään tee kun en kumminkaan rupee tod näkösesti pelei väsäilee. Ainakaan sillein että pitäisi mitään tietää, kai sitä voi aina mallintaa ku tietää maksimi polymäärän ja mapin koon.
Nykyajan 3d-engine on 99,9% tapauksista rakennettu jonkun 3d-rajapinnan päälle (OpenGL, Direct3d jne). Näiden tehtävänä on toimia helpottavana välikappaleena ohjelmoijan ja 3d-raudan välillä. Eli näytönohjainvalmistajat tekevät ajurit, jotka tukevat jotain (tai kaikkia) näistä rajapinnoista, jolloin sovelluskehittäjä voi vain kutsua rajapinnan mukaisia kirjastokutsuja, jotka välitetään edelleen ajurille, joka välittää ne edelleen näytönohjaimelle sen ymmärtämässä muodossa. Näin mahdollistetaan se, että voidaan ohjelmoida vain yksi peli, joka toimii kuitenkin "kaikilla" näytönohjaimilla. Tämä on myöskin se syy, miksi ajureilla on niin suuri merkitys 3d-ohjelmien nopeudessa.
Itse engine on siis se osa ohjelmakoodia, jonka sovelluskehittäjä tekee hyödyntäen annettuja 3d-kirjastorajapintoja. Enginen vastuulla on kaikki se, mikä liittyy grafiikan piirtoon, transformaatioiden laskemiseen jne. Sellaiset asiat kuten törmäyslaskennat (eli ettei pelihahmo voi mennä seinän sisälle jne) kuuluvat enginen vastuualueeseen. Myöskin kaikki vähänkään polygonin piirtoa monimutkaisemmat asiat kuuluvat sellaisenaan enginen vastuulle. Itseasiassa suurin osa asioista on nimenomaan enginen vastuulla

Aikaisemmin tuossa sanoin, että polygonien piirto ei kuulu enginen vastuulle, mikä sinällään ei ole totta. OpenGL (jne...) tarjoaa helpottavat kirjastokutsut polygonien piirtämiseen, mutta on sovelluskehittäjän vastuulla päättää koska ne piirretään ja kuinka suurissa erissä kerrallaan. Todelliseksi taiteenlajiksi homma menee siinä vaiheessa, kun yritetään minimoida prosessorin ja näytönohjaimen välinen keskustelu, sillä tämä on poikkeuksetta se suurin pullonkaula nopeudessa (minkä takia väyläteknologia kehittyy koko ajan ja nyt käyttelemme PCI-E -pohjaisia näytönohjaimia). Nykyiset enginet ovat niin pitkälle optimoituja, että väylää ei tarvita niin paljoa, joten vanhemmatkin AGP-näytönohjaimet jaksavat vielä ihan hyvin.
3d-engineistä ja niiden hienouksista voisi kirjoittaa vaikka kuinka paljon, mutta ehkäpä tuo antoi jo vähän käsitystä (tai sitten vain sekoitti) siitä, mitä ne oikeastaan tekevät. Itse en ole mikään huippuluokan ammattilainen tällä saralla, sillä olen tehnyt kyseisen alan ohjelmointia suhteellisen vähän. Fiksummat voivat täydentää, jos siltä tuntuu.