Pamācības

Spēļu dziņi

Elviss Strazdiņš, 10.12.2008

Kā jau forumā tika runāts, tad, lai gamedev.lv attīstītos, arvien biežāk šeit parādīsies raksti saistīti gan ar ārzemju, gan latviešu spēļizstrādi.

Šodien gribētu nedaudz pastāstīt par spēļu dziņiem, par to vēsturi, uzbūvi, pielietojumu un par savu pieredzi to izmantošanā.

Kas ir spēles dzinis

Pēc definīcijas spēles dzinis ir sistēma, ar kuras palīdzību var veidot spēli. Parasti spēles dzinī iebūvē sekojošas lietas: grafikas sistēma (rendering system), scēnas menedžeris , fizikas dzinis, skriptu atbalsts, skaņas atbalsts, mākslīgais intelekts, tīkla atbalsts, un atmiņas menedžēšana. Lielākā atšķirība starp spēļu dziņiem un 3D (vai grafikas) dziņiem ir tā, ka 3D dziņi no augstakminētajām lietām piedāvā tikai grafikas sistēmu un bieži vien arī scēnas menedžeri (piemēram, Ogre3D vai Irrlicht). Spēles dziņa piemēri varētu būt visiem zināmais Unreal Engine, vai arī Vortex of Hostility izmantotais C4 Engine.

Spēles dziņiem bieži vien tiek pievienoti arī dažādi izstrādes rīki, kā, piemēram, līmeņu redaktors, objektu un animāciju redaktors, skriptu un mākslīgā intelekta redaktors, skaņu redaktors, scenāriju redaktors utt.

Īsa vēsture

Pirmās datorspēles tika rakstītas kā viengabalaina programma, jo spēles bija maziņas un tajās tika ieviestas tikai atbilstošās spēles vajadzības. Spēles bija tik specifiskas, ka tās tika rakstītas no nulles, jo kodu no citas spēles izmantot nebija iespējams.

Termins “spēles dzinis” parādījās 90to gadu vidū līdz ar pirmo 3D šaušanas spēļu parādīšanos (ID software – Doom un Quake). Šīs spēles piedāvāja izstrādātājiem nopirkt spēles licenci, izveidot pašiem savus grafikas objektus (tēlus, ieročus, līmeņus) un pārdot šo spēli ar savu saturu, noteikumiem utt. 1998. gadā Unreal engine nāca klajā ar ideju, ka spēles dzinis tiek pārdots kā atsevišķa komponente, kuru ar saturu kopā liek paši spēļu izstrādātāji.

Tā kā spēļu dziņi tiek izmantoti aizvien biežāk, tad to saraksts aug ļoti strauji. Sākotnēji spēļu dziņus veidoja 3D šaušanas spēlēm, bet tā kā tiešsaistes daudzspēlētāju spēles (MMOG) kļūst aizvien populārākas, tad ir kompānijas, kas izstrādā dziņus arī priekš tām. Viens piemērs no šādiem dziņiem ir Project Darkstar, kas ir atvērta koda (Open Source).

Priekšrocības un trūkumi

Vieslielākā dziņu priekšrocība protams ir spēļu izstrādes ātrums un naudas ietaupīšana uz izstradātājiem. Daudzas kompānijas bieži vien labāk izvēlas ieguldīt lielu naudu dziņa licencē nevis programmētāju algošanā. Ja spēļu izstrāde ir kā hobijs, tad bieži vien dziņa izmantošana ir vienīgā iespēja, kā pabeigt savu spēli.

Otra priekšrocība ir kvalitāte. Ja izstradātājs tomēr izlemj veidot spēli pats, tad rezultāts parasti ir ne tik baudāms (neoptimizēts, bez dažādiem grafiskiem skaistumiem), kā izmantojot kādu no dziņiem. Ja izstradātajs izvēlas veidot savu spēli/dzini, tad tādi dziņi, kā Ogre3D šim izstrādātājam jau ir pāris gadus priekšā.

Viens no trūkumiem spēļu dziņiem ir tāds, ka tie bieži vien ierobežo izstrādātāju spēles žanrā (FPS, RTS), izstrādē (liek izmantot tikai savus vai arī noteiktas firmas veidotus izstrādes rīkus), un dažādās citās jomās (dažādu grafisko fīču neatbalstīšana, neprecīza fizika, ierobežots platformu atbalsts utt.).

Otrs trūkums ir laiks, kas tiek tērēts, lai apgūtu attiecīgo dzini. Tādiem dziņiem, kā Unreal engine, kam sarežģītības pakāpe ir ļoti augsta, šis laiks var būtu pat ļoti ilgs. Atvērtā koda dziņiem lielākā problēma, kas saistīta ar šo mācīšanos ir dokumentācijas trūkums un lēnais kopienas atbalsts (forumos). Piekrītu bubu, ka šo tomēr īsti nevar saukt par trūkumu, ja grib panākt ekvivalentu rezultātu (lasiet komentāros).

Kopsavilkums

Kopumā gribu teikt, ka pamēģināt pašam veidot dzini ir ļoti ieteicams, jo tikai tā var saprast, kā tas īsti strādā, taču nopietnākām spēlēm noteikti iesaku izmantot jau gatavu dzini. Lai arī spēļu dziņu izmantošanai ir savi trūkumi, tomēr viens cilvēks nevar izveidot to, ko jau gatavie dziņi ir izveidojuši pie tā strādajot vairākus gadus. Un galu galā, kā mēdz teikt: “kāpēc vēlreiz igudrot riteni?”

Šis raksts 80% ir manas domas, un ja jūsējās ar tām nesakrīt, droši rakstiet to komentāros.

Pārējie 20% tika ņemti no šejienes:

http://www.devmaster.net/engines/

http://en.wikipedia.org/wiki/Game_engine

http://www.gamedev.net/community/forums/topic.asp?topic_id=391301

Līdzīgi raksti:

Autorizācija

Lietotājs

Parole


Reģistrēties Aizmirsu paroli