Kuidas programmeerida videomängu

Telefonid, brauserid, arvutid, konsoolid: videomängud on populaarsemad ja laiemalt levinud kui kunagi varem. Siit leiate rohkem õpetusi, varakogusid, mängude loomise tarkvaratööriistu ja ekspertnõuandeid kui kunagi varem. Oma mängu programmeerimine nõuab endiselt oskusi ja kannatlikkust, kuid ressursse on igal tasemel kodeerija jaoks piisavalt.

1
Mõelge mängumootorile. Vähesed mänguarendajad leiutavad ratta uuesti ja kirjutavad nullist oma mängumootori, eriti oma esimese mängu jaoks. Kui soovite otse sukelduda, kuid teil on siiski palju võimalusi programmeerimiseks, on mängumootori kasutamine hea valik. Mootor sisaldab tavaliselt kõrgema taseme tööriistu 3D-mudelite, skriptimissündmuste ja muude levinud mängurakenduste muutmiseks, kuid pakub siiski palju praktilisi programmeerimisvõimalusi. Populaarsed programmeerimisega seotud näited hõlmavad Unity, UDK, Unreal Engine 4 ja CryENGINE .

2
Kasutage raamistikke ja muid tööriistu. Raamistik on aste allpool mängumootorit, kuid pakub siiski tööriistu ja API-sid (rakendusprogrammi liidesed), et säästa aega ja täiustada kodeerimisprojekte. Pidage seda minimaalseks tarkvaratasemeks, mida oma esimese mänguprojekti jaoks kasutada, ja isegi siis peaksite end programmeerijana tutvustades end mugavalt tundma või tunnete suurt huvi mängumootorite kaadritaguse töö vastu. Sõltuvalt teie kasutatavast täpsest raamistikust ja/või mängumootorist võiksite osa tööst teha täiendavates spetsiaalsetes API-des, nagu näiteks populaarne OpenGL 3D-graafika loomiseks. Polycode, Turbulenz ja MonoGame on näiteks loodud raamistikud. pidades silmas nii 2D kui ka 3D mänge.

3
Proovige IDE-d. Integreeritud arenduskeskkond on üldotstarbeline kompilaator ja lähtefailide kogu, mis muudab keerukate programmeerimisprojektide loomise lihtsamaks. IDE muudab mängu programmeerimise palju mugavamaks, eriti kui sellel on sisseehitatud viise graafika- ja helisüsteemidega suhtlemiseks. Kaks näidet on Visual Studio ja Eclipse, kuid on ka palju teisi. Otsige IDE-d, mis põhineb teile tuttaval keelel.

4
Õppige programmeerimiskeelt. Enamik ülaltoodud tööriistu põhinevad populaarsel programmeerimiskeelel, nii et kaasasolevate õpetuste järgimine annab teile suurepärase alguse. Kui mängu saab luua peaaegu igas piisavalt võimsas programmeerimiskeeles, siis levinumad keeled on kõikide seadmete jaoks C++ või C#, brauserite jaoks Flash ActionScript või HTML5 ning mobiilseadmete jaoks Java või Objective C. Need on head võimalused, kui soovite lõpuks olemasolevasse mängustuudiosse tööle saada, kuid Pythoni, Ruby või JavaScripti abil luuakse palju sõltumatuid mänge.

5
Looge mängu plaan. Enne alustamist täpsustage mängu kontseptsiooni nii palju kui võimalik, sealhulgas žanri, meeleolu ja mängutüübi kohta. Kui alustate programmeerimist enne, kui kontseptsioon on selge, peate tõenäoliselt suure osa tööst lahti rebima ja ümber kirjutama. Tõenäoliselt juhtub see igal juhul, kuid kindel plaan hoiab neid sündmusi minimaalsena. Kõikidel mängudel, välja arvatud kõige eksperimentaalsemad, on edenemiskaar, seega on see hea koht planeerimise alustamiseks. Edenemine toimub tavaliselt ühe või mitme järgmise kaudu: süžee ja tegelaste kohta rohkemate avastamine, süžeed mõjutavate otsuste tegemine, uute võimete või kõrgema statistika omandamine, uute valdkondade uurimine või raskemate ja raskemate mõistatuste lahendamine.

6
Koguge oma kunstivarad kokku. Koguge või looge kõik tekstuurid, spraidid, helid ja mudelid, mida oma mängu jaoks vajate. Tasuta mänguvarade kogusid on üsna palju, seega tehke otsingut. Kui teete 2D-mängu ja teil pole kunstnikku, kes aitaks, võite luua oma pikslipildi.

7
Skriptige oma mäng. Skript ütleb mootorile, mida ja millal teha. Kui kasutasite avatud lähtekoodiga mootorit, on tõenäoline, et sellel on juba skriptikeel ja tõenäoliselt ka õpetused, mis õpetavad seda kasutama. Kui loote oma mootori, peate looma oma skriptikeele. Mõlemal juhul vajate neid põhikomponente minimaalselt: pidevalt töötav mängutsükkel, mis kontrollib kasutaja sisendit, töötleb tulemust, töötleb muid sündmusi, arvutab välja, mida on vaja kuvada, ja saadab selle graafikakaardile. See peaks töötama vähemalt 30 korda sekundis.”Aktiivse kuulaja” skriptid, mis kontrollivad sündmusi ja vastavad nende ilmnemisel. Näiteks võib üks skript jälgida, kas mängija suhtleb uksega, seejärel käivitada “avatud” animatsioon ja muuta ukseava mitte põrgatavaks. Teine skript võib jälgida, kas relva tabamuskast puutub kokku uksega, ja käivitada selle asemel animatsiooni “lõhkuda”.

8
Looge individuaalseid tasemeid. Tasemekujundus, mis võib hõlmata sõna otseses mõttes “1. taset”, ala, mida mängija saab uurida, või võitlusmängu järgmine voor paneb proovile mõned programmeerimisega mitteseotud oskused. Alustage lihtsast tasemest, mis tutvustab tüüpilist mänguviisi, järgides seda põhijuhist žanrite jaoks, mis hõlmavad keskkonnas reisimist: Looge piirkonna põhijoonised. Otsustage põhitee, mida mängija kõige sagedamini piirkonnas läbib. Lisage sellele teele väljakutseid ja eeliseid (esemeid). Asetage need adrenaliini ja põnevuse jaoks üksteise lähedale või pingevabama õhkkonna jaoks üksteisest kaugemale. Alustage graafiliste elementide lisamist. Asetage valgusallikad põhitee äärde, et julgustada mängijaid seda järgima, ja hoidke kõrvalteed või vähem olulised alad hämarana. Sobitage mänguviis, stiil ja seade. Näiteks pingeline õudusmäng õitseb tühjal uurimistööl, mida rikuvad üllatusrünnakud. Lõputu vaenlaste tulv uputab mängija hoopis adrenaliiniga, samas kui hoolikat taktikalist planeerimist nõudev võitlus võib mängija tähelepanu emotsionaalsest õhkkonnast kõrvale juhtida.

9
Testige oma mängu. Nüüd näete, milleks teie raske töö on muutunud. Katsetage iga taset selle lihvimise ajal ja mitu korda pärast seda, kui see on “valmis”. Proovige teadlikult mängida mängu viisil, mida te ei kavatsenud, näiteks mängides esmalt läbi keerulisemad alad. Veelgi parem, leidke mängutestijad, et mängule värske pilguga tutvuda, ja küsige võimalikult palju tagasisidet. Vaadake, kuidas keegi mängib talle nõu andmata, välja arvatud juhul, kui tegemist on põhilise õpetuse teabega, mida pole veel mängule lisatud. Masendavad vead ja punktid, kus mängija “kinni jääb”, on märgid, et peate lisama rohkem juhiseid. Kui mäng (või vähemalt tase) on üsna lõpule jõudnud, proovige leida võõraid või tuttavaid, kes aitaksid mängutesti sooritada. Sõbrad kipuvad olema optimistlikumad, mis on suurepärane julgustamiseks, kuid mitte nii kasulik, et ennustada, kuidas mängijad reageerivad.

10
Tehke järgmine samm. Kui olete projekti lõpetanud, võite soovida selle tasuta välja anda või müüki panna, kuid lugege kindlasti läbi kasutatud mängumootorite või tarkvara tingimused. Olenemata sellest, kas lõpetate mängu nii, nagu ette kujutasite, võite soovida “kannibaliseerida” osa varasid ja ideid mõne teistsuguse või ambitsioonikama projekti jaoks või võtta õpitud õppetunnid ja alustada otsast peale!