Kuidas videomängu kodeerida

Videomängu loomine on tohutu ettevõtmine, kuid lõpptulemus võib olla kõige põnevam kodeerimisprojekt, mille olete kunagi lõpetanud. Kõige rohkem õpite tööriistadest, mis sobivad teie programmeerimisalaste teadmiste tasemega, seega ärge arvake, et nullist alustamine on parim valik. Valige programmeerimiskeel, integreeritud arenduskeskkond ja/või mängude loomise tarkvara, mida saate 15 minuti jooksul pärast selle avamist või õpetuse lugemist välja mõelda.

1
Lisateavet mängumootorite kohta. Enamik videomänge tehakse spetsiaalse mootori abil, mis võimaldab teil “skriptida sündmusi, tegelasi ja nii edasi, ilma et peaksite neid nullist kodeerima. Täieliku mängumootori loomine nullist võib võtta aastaid, nii et enamik sõltumatuid arendajaid kasutab Peate järgima ainult ühte järgmistest sammudest selles jaotises, olenevalt sellest, kui mugav olete programmeerimisega ja kui palju aega soovite kulutada pisidetailidele.

2
Mõelge lihtsale mängude loomise tarkvarale. Need tööriistad nõuavad väga vähe programmeerimisalaseid teadmisi, nii et need ei pruugi teile sobida, kui olete huvitatud mängude loomise kodeerimise aspektidest. Teisest küljest võib lihtne sukeldumisviis teile oma mängu kohta palju õpetada ja võimaldada teil kõrgema taseme kontseptsiooni kohandada enne, kui asute suurema prototüübi juurde. Siin on mitu tasuta valikut: mobiilimängude jaoks proovige MIT App Inventorit või Game Saladit brauserimängude jaoks, proovige Scratchi või tõsisemat versiooni Snap! mõeldud sissejuhatava programmeerimistööriistana Seiklusmängude jaoks kasutage Visionaire’i. Kui soovite pukseerimisprogrammi koos võimalusega süveneda ka kodeerimisse, proovige GameMakeri tasuta versiooni

3
Proovige rohkem professionaalse arengu liideseid. See on suurepärane võimalus käte määrimiseks ja mängude kodeerimise kogemuse saamiseks ilma, et peaksite alustama täiesti nullist. Paljud professionaalsed sõltumatud mänguarendajad alustavad sellelt tasemelt. Kuigi saadaval on palju mootoreid ja integreeritud arenduskeskkondi (IDE), on järgmised tasuta ja suhteliselt hõlpsasti õpitavad: mobiilimängude jaoks: ProjectAnarchy 3D-mängude jaoks mis tahes platvormil: Unity täiustatud kodeerijatele: LWJGL (põhineb Javal), SFML (põhineb C++ keeles)

4
Valige oma mootori ehitamiseks tööriist. Kui teil on juba mõned programmeerimisalased teadmised ja olete oma mootori loomisega surnud, on siin mõned kohad, kust alustada. Kui see on teie esimene katse, vajate tõenäoliselt tutorialsActionScript, mis võimaldab teil luua Flash-põhise mootori. See on hea koht alustamiseks kesktaseme programmeerijatele. Java on suhteliselt lihtne õppida. Teil on vaja Java arenduskomplekti (JDK) ja Java jaoks Eclipse’i või mõnda muud integreeritud arenduskeskkonda (IDE). Kui te pole kindel, kuidas alustada. Kui teate juba mõnda programmeerimiskeelt (eriti C-keelt või Pythonit), otsige selle keele jaoks IDE. See peaks sisaldama kompilaatorit ja võimalust hõlpsalt töötada graafika, heli ja muu koodiga samas projektis.

5
Ehitage oma mootor. Kui vastate väljakutsele ja valisite eelmises etapis ühe täiustatud tööriistadest, peate tõenäoliselt leidma õpetuse, abifoorumi või kogenud mänguarendaja, et saada oma keelele vastavaid nõuandeid. Kui te pole kindel, kust alustada või mille kohta küsida, on siin mõned põhikomponendid, mida peate varakult üles ehitama: kliendipoolne server, mis tõlgendab kasutaja sisendit ja töötleb tulemust. Enne kui hakkate graafika ja mänguga tõsiselt tegelema, pange sisendsüsteem õigesti reageerima. (Kui olete ummikus, proovige uurida “tegevusekuulajaid”.) Teiste tegelaste tehisintellekt, et nad reageeriksid kasutaja tegevusele. Lihtsama projekti jaoks laske tegelastel lihtsalt liikuda ja tegutseda kindlaksmääratud teekonnal.Võimalus renderdada graafikat (kokku panna ja graafikakaardile juhiseid saata).Mängutsükkel, mis jookseb pidevalt mängu ajal. See peaks võtma kasutaja sisendi, seda töötlema, töötlema muud mänguloogikat (nagu vaenlase liikumine, taustaanimatsioon ja käivitatud sündmused), arvutama, mida tuleb joonistada (ekraanil kuvada) ja saatma teabe graafikakaardile. Käivitage seda vähemalt 30 korda sekundis (30 kaadrit sekundis), kui teie süsteem saab sellega hakkama.

6
Esitage kõigepealt oma kontseptsioon. Enne koodirea puudutamist kulutage palju aega oma mängu naelutamiseks. Mis žanr see on? Kas see on 2D või 3D? Kas mängija edeneb mängus mõistatusi lahendades, lugu jälgides/luues, vaenlastega võideldes ja/või uurides? Mida rohkematele küsimustele vastate ja mida üksikasjalikumalt oma ideid esitate, seda rohkem aega säästate pikemas perspektiivis. Kui otsustate teha olulise muudatuse pärast seda, kui olete juba kodeerimisega alustanud, võib muudatuse rakendamine võtta mitu korda kauem aega. Muutke see algsest ideest palju lihtsamaks. Väike prototüüp, mis uurib teie mängu toimimist ja annab mängimiseks paar taset, on suurepärane algus. Kui see on lõppenud, saate seda kasutada alusena, et laiendada mängu täisväärtuslikuks või lisada õpitu uude projekti.

7
Töötage allolevate sammudega mis tahes järjekorras. Sel hetkel ootavad teid ees nädalad või kuud rasket, kuid tasuvat tööd. Inimeste meeskond jagab tavaliselt allolevad ülesanded ja tegeleb nendega samaaegselt, kuid üksikisik peab igas etapis otsustama, millise ülesandega on kõige lihtsam alustada või milline on kõige olulisem. Lugege läbi kõik allolevad sammud ja alustage ülesandega, mis teile kõige rohkem meeldib.

8
Koguge või looge kunstivarasid. Kui te ei kasuta tekstipõhist mängu, vajate 2D-kujutisi ja võib-olla ka 3D-mudeleid ja tekstuure (mustrid, mida mudelitele rakendate). Muusikat ja heliefekte saate protsessiga veidi edasi lükata, kuid need on väga soovitatavad, kui plaanite oma mängu avaldada. Lihtsad ikoonid, kasutajaliides ja fondid on väikseima prioriteediga, kui teie mäng on noor, kuid väike pingutus võib mängija kogemust oluliselt parandada. Internetis on palju kohti, kust leida tasuta või odavaid kunstivarasid. Proovige seda loendit saidil makechool.com. Kunstniku palkamine muudab palju. Kui te ei saa seda endale lubada, koguge varad ise kokku ja näidake tulemust kunstisõpradele või postitage see nõu saamiseks mänguarendus- või kunstifoorumitesse.

9
Töötage loo või edukaare kujundamisega. Suur osa sellest kirjutatakse planeerimisdokumentidena väljaspool mängu koodi, kuigi loopõhine mäng võib vajada hargnevaid dialoogipuid. Isegi ilma traditsioonilise loota mängul peaks olema edenemise tunne, mida peate planeerima. Platvormimäng võib hõlmata mitmeid liikumis- ja relvauuendusi, samas kui puslemäng võib lisada rohkem funktsioone, kuna see suurendab mõistatuste keerukust ja raskusi.

10
Töötage tasemekujundusega. Alustage väikese, lihtsa taseme või alaga. Keskenduge sellele, et luua teekond, mille mängija läbib taseme, seejärel lisage külgteed (valikuline), üksikasjalikum graafika ja kohandage raskusi (nt platvormi kõrguse reguleerimine või vaenlaste liigutamine). mängija piirkonna järgmisele kohale. Kasutage varje, et heidutada mängijaid ummikutesse või ebamugavatesse teedesse sattumast, ja kasutage vaenlasi mõlemal eesmärgil (olenevalt sellest, kuidas mäng õpetab vaenlastest mööda minema). Hästi läbimõeldud ala tekitab mängijas tunde, et ta teeb ise otsuseid või uurib, kuid juhatab ta peente vihjete abil mööda kõige lihtsamat teed.

11
Kohandage ja optimeerige graafikat. See pole vajalik, kui kasutate lihtsat mängutarkvara. Kui olete valmis süvenema graafikasüsteemide sügavamasse otsa, võite alustada varjutajate ja osakeste efektide loomisest või graafikakoodi läbimisest ja mängu jaoks ebavajalike ülesannete eemaldamisest. Kuna graafika on peaaegu alati tõmbepunkt, mis määrab töötlemiskiiruse, tehakse isegi 2D-mängus tavaliselt olulisi optimeerimis- ja ümberkirjutusi, et vähendada graafikakaardi ja protsessori koormust.

12
Saate mängutestijate tagasisidet. Kui teil on mängu lihtne tase või prototüüp, laske oma sõpradel mängu mängida ja tagasisidet anda. Uurige, mida inimesed peavad lõbusaks ja mis neid frustreerib. Hiljem, kui mäng on lihvitud, võib võõrastelt või tuttavatelt saadud tagasiside olla suurepärane ausa nõu allikas, kuna nad ei panusta teie edusse või julgustavad teid. Mängijaid ei õpetata arendaja vaatenurgast tagasisidet andma. . Kui mängijatele mõni mängu aspekt ei meeldi, on selles tavaliselt midagi, mida saaks parandada… kuid mängijate konkreetsed soovitused pole sageli kasulikud. Küsige neilt väga konkreetseid küsimusi, et leida täpseid funktsioone, mis neid häirivad.