Peliohjelmoija on henkilö, joka vie suunnittelijan vision ja saa sen toimimaan pelimoottorissa, jota käytämme. Työskentelen mobiilipelien ohjelmointitiimissä Kwaleella, joten käytämme pääasiassa Unityä. Esimerkiksi, jos suunnittelija haluaa nopan pyörivän tietyllä tavalla, kirjoitan skriptin logiikan käsittelemiseksi. Teemme myös yhteistyötä pelitaiteilijoiden kanssa varmistaaksemme, että pelimme näyttävät upeilta ja suorituskyky on laitteilla hyvä.
Tässä blogissa hyödynnän viiden vuoden työkokemustani Kwaleelta jakaakseni keskeisiä näkemyksiä ja neuvoja peliohjelmoijana olemisesta. Kerron käyttämistämme kielistä, työkaluista ja periaatteista, uraneuvoistani sekä aloittelijan että edistyneen tason vinkkejä.
Mitä Peliohjelmoija Tekee?
Kirjoitamme koodin ja autamme peliä toteutumaan. Pelisuunnittelijat luovat konsepteja ja pelitaiteilijat luovat resursseja, kun taas ohjelmoija luo toiminnallisen, pelattavan kokemuksen. Kehitämme ja optimoimme pelin suorituskykyä ja korjaamme havaittuja ongelmia.
Varmistamme, että peli tuntuu hyvältä ja toimii korkealla suorituskyvyllä. Tämän saavuttamiseksi meidän on varmistettava, että itse koodi on puhdasta ja laajennettavaa, mikä on haastavampaa kuin uskoisi. Käytämme koodausstandardeja ylläpitääksemme johdonmukaista laatua kaikissa tiimeissämme - asiakirja, joka voi sisältää nimeämisstandardeja, muotoilua jne. Kuitenkin joskus asiat eivät ole aina niin yksinkertaisia, ja välillä pitää ajatella laatikon ulkopuolelta saadaksemme asiat valmiiksi ajoissa.
Vastuumme sisältää myös sen varmistamisen, että peli toimii hyvin loppukäyttäjän laitteistolla. Esimerkiksi mobiilipeleissämme meidän on vältettävä vanhojen laitteiden kuumenemista liikaa, joten teemme yhteistyötä taiteilijoiden kanssa, optimoidaksemme piirtokomentojen määrän. Piirtokäsky on käsky, jota keskussuoritin (CPU) lähettää grafiikkasuorittimelle (GPU) piirtämään kohteen näytölle - se kertoo GPU:lle graafisten elementtien, kuten tekstuurien, mallien tai varjostimien, piirtämisestä. Meidän on vähennettävä näiden piirtokomentojen määrää pelissämme, koska liian monet voivat aiheuttaa ongelmia, kuten kuvanopeuden laskua tai nykimistä. Tämän ratkaisemiseksi on monia tapoja, mutta esimerkiksi yhdistämällä useita objekteja yhdeksi piirtokäskyksi tai vähentämällä ainutlaatuisten tekstuurien ja materiaalien määrää voi auttaa. Tämä on erityisen tärkeää mobiililaitteille, koska markkinoilla on niin paljon erilaisia laitteita, joilla on vaihtelevat tekniset ominaisuudet.
Mitkä Ovat Tärkeimmät Peliohjelmointikielet?
Suurin osa päivästä peliohjelmoijana kuluu skriptaamiseen jollakin ohjelmointikielellä - olemme kuitenkin ohjelmistokehittäjiä omalla tavallamme. Kielivalikoimaa on todella paljon. Jotkut tuntuvat helpommilta kuin toiset, mutta kun olet oppinut ja hallitset yhden, voit ehdottomasti oppia myös muita - suurin haaste on päästä alkuun.
Tässä on esittelyitä suosituimmista peliohjelmointikielistä:
- C# - monipuolinen ja suosittu ohjelmointikieli, jota käytetään laajalti pelikehityksessä. Se on yksi helpoimmista aloittelijoille. Sen parhaita ominaisuuksia on automaattinen roskankeruu - se siis hallitsee muistinhallintaa puolestasi - erittäin hyödyllistä kiireisille kehittäjille kuten me.
- C++ - päinvastoin, tämä on hallitsematon kieli, joten sinun on manuaalisesti varattava ja vapautettava muisti, mikä tekee siitä monimutkaisemman ja vaikeamman. Kuitenkin se antaa enemmän nopeutta, hallintaa ja suorituskykyä.
- Java - kuten C#, Java hallitsee omaa muistinhallintaansa ja roskienkeruuta, mikä helpottaa kehittäjien muistinhallintaa ilman liiallista yksityiskohtien syventymistä. Sitä käytetään laajalti verkkokehityksessä ja yrityssovelluksissa, ja vaikka se ei (väittelymahdollisuus) ole pelikehityksen ykkösvalinta, se on silti vankka vaihtoehto luoda skaalautuvia ja tehokkaita sovelluksia.
- Swift - tämä on Applen oma kieli iOS- ja macOS-sovellusten ja -pelien kehittämiseen. Tämä tarkoittaa kuitenkin, että se on vähemmän hyödyllinen laitesidonnaiseen kehittämiseen - koska pyrimme aina julkaisemaan mobiilipelimme sekä Androidille että iOS:lle.
Kuinka Tulla Peliohjelmoijaksi?
On monia tapoja tulla peliohjelmoijaksi. Oma reittini on melko tavanomainen - opiskelin Pelisuunnittelua ja -ohjelmointia Staffordshiren yliopistossa. Alun perin ajattelin siirtyä pelitaiteen alalle - olin aina erittäin innostunut taiteesta lapsena, ja myös nautin yliopiston taidemoduuleista, mutta siellä huomasin todella nauttivani pelimekaniikoiden luomisesta. Yksittäisen korkean poly-mallin luominen vei minulta useita päiviä, mutta pystyin saamaan ankka lentämään ja räjähtämään puolessa ajassa. Prototyypit antavat tuloksen nopeasti eteen itsessään.
Peliohjelmoinnin kauneus on kuitenkin siinä, että se on saavutettavissa useimmille ihmisille, vaikka et kulkisikaan perinteistä reittiä. Minulla oli ystäviä yliopistossa, jotka olivat yli 50-vuotiaita - ei ole koskaan liian myöhäistä kokee jotain uutta. Kwaleella olemme jopa palkanneet jonkun, joka oppi pääosin YouTube-videoista ja teki pelin huvin vuoksi. Tänä päivänä on niin paljon mahdollisuuksia uusille ja innokkaille talenteille. Kun katselemme uudempien opiskelijoiden portfolioita, heillä on niin paljon osaamista. Näemme upeita kykyjä tulevan alalle ja tämä on jännittävää aikaa.
Kysymys, jota luultavasti haluat kysyä - vaikuttaako tekoäly ohjelmointiin ammattina? Se voi olla erittäin hyödyllistä, ja se paranee jatkuvasti. Täydellinen, jos tarvitset jotain selitettyä tai olet jumissa ongelmassa. Voit käyttää sitä vianetsintään tai refaktoroimaan (eli 'siivoamaan') koodiasi liittämällä sen uusimpaan ChatGPT:en. Kuitenkin, kun katsomme portfolioita, haluamme nähdä tekemäsi työn, josta olet ylpeä, AI on hyvinkin käytössä, mutta älä käytä sitä taitojesi korvikkeena.
Millainen On Tyypillinen Päivä Peliohjelmoijana?
Annan esimerkin omasta elämästäni. Olen pääohjelmoija (kutsun sitä unelmatyökseni), joten se on loistava sekoitus käytännön työtä ja muiden ohjelmoijien johtamista!
Tyypillinen päiväni alkaa sillä, että saavun töihin, otan laten, ja sitten tarkistan, onko QA-tiimillä ongelmia tai esteitä. Tarkistan tiimin kanssa, tarvitseeko joku minua tekemään jotain, jotta heidän työnsä sujuu esteettömästi. Sitten musiikki soimaan ja tehtävälista esiin. Jaamme edistymisvideoita Slackin kautta saadaksemme nopeaa palautetta, samalla kun hypimme 2-3 projektin välillä tukemaan tiimini jäseniä. Käytämme myös paljon aikaa yhteisten järjestelmien parantamiseen, jotta ohjelmointimme olisi tehokkaampaa - ne kaikki pitää ylläpitää, päivittää ja korjata säännöllisesti, jotta asiat toimivat sujuvasti.
Aloittelijan Peliohjelmointivinkkejä
Jos olet aloittelija ja tavoittelet kokeneen ohjelmoijan uraa, tässä ovat minun aloittelijavinkkini!
- Verkossa on niin paljon opittavaa, YouTubessa ja on niin monia esimerkkipelejä, että sinulla ei ole tekosyytä olla oppimatta! Suositut moottorit ovat ilmaisia ja niitä on hauskaa käyttää!
- Täysin vastakkaisessa päässä on Design Patterns: Elements of Reusable Object-Oriented Software -kirja, joka on vaikuttanut suuriin määrin peliohjelmoinnin perusmalleihin, jota käytämme joka päivä ohjelmoinnissa.
- Sinulla voi olla omia ideoitasi, mutta varmista, että aloitat yksinkertaisesti, jotta saat perustaidot haltuun.
- Kun et ole sidottu kaupalliseen projektiin, voit kirjoittaa niin paljon koodia kuin haluat, joten pidä hauskaa luomalla hulluja asioita.
- Portfolion rakentaminen on todella avainasemassa (ja niin minä sain työni). Mutta ole erittäin varovainen, ettet lähetä vain samaa vanhaa yliopistotyötä, koska näemme monia hakemuksia näillä. Jo yhden päivän ylimääräinen reskinnaus ja ominaisuuksien lisääminen auttaa sinua erottumaan.
- Oman oikean maailman pelin luominen on myös älykäs idea - pelin julkaiseminen Google Playhin on erittäin halpaa, joten saat jotain julkaistua, mitä voit näyttää rekrytoijille/julkaisijoille/perheelle/lemmikille puhelimellasi. Saatat jopa ansaita muutamia tuhansia dollareita vuodessa, kunnes olet saanut eksklusiivisen kokopäivätyön, mikä on bonusta! Tai se saattaa houkutella sinua tekemään oman täysimittaisen pelin ja yhteistyö julkaisemassa julkaisijan kanssa.
- Älä vain opi ohjelmointia - opi myös taidetta, suunnittelua, laadunvarmistusta ja muita aloja, joiden kanssa teet yhteistyötä. Esimerkiksi, kannattaa ymmärtää laadunvarmistuksen menetelmiä, koska voit helposti olettaa jotain toimivan, mutta sinun on pelattava sitä käyttäjänä, etkä koodin kirjoittajana ja jolla on selkeä näkemys siitä, miten sen 'pitäisi toimia'. Ole tuhoisa, kokeile satunnaisia asioita, jotka ihmiset saattavat tehdä, paina satunnaisia painikkeita ja muita outoja käyttäytymisiä.
Edistyneen Tason Ohjelmoijavinkkejä
Tässä ovat vinkkejä, jotka auttoivat minua etenemään ohjelmoijasta vanhemmaksi ohjelmoijaksi ja lopulta tiimin vetäjäksi.
- Jatkuva oppiminen hyödyttää aina, ja muistakaa, että ilman virheitä emme voi oppia!
- Jos olet todella intohimoinen johonkin - voit erikoistua enemmän. Esimerkiksi, jos rakastat shaderien ja renderöintiputkien kanssa leikkimistä, opi lisää grafiikkashadereiden käyttämisestä kykyäsi laajentaaksesi kompleksisten visuaalisten efektien hallintaa ja renderöintiputkien käyttämistä optimoidaksesi suorituskykyä tai tehdäksesi upeita efektejä.
- Voit kehittää jotain todella hienoa, kuten monimutkaista järjestelmää, ladata se assettiin kauppaan esitelläkset jos sopimus sallii ja esittää edistynyttä työtäsi. Voit kehittää markkinaraon tietyntyyppisenä ohjelmoijana, esimerkiksi peliohjelmoijana, serveriohjelmoijana, grafiikkaohjelmoijana tai moninpeli-ohjelmoijana.
- Vaihtoehtoisesti voit poiketa johto-reitille kuten minä, ja mentorina olla. Taktiikkani urani edistämiseen on ollut uusien vastuiden vastaanottaminen. Ensin aloitin parantamalla pieniä asioita, esimerkiksi pieniä työnkulun muutoksia. Sitten tein prosesseista helpompia käyttämällä malleja ajan säästämiseksi, kun luodaan uutta projektia. Sitten sain maun mentoroinnista ja johtamisesta, mikä auttoi minua saamaan lisää itseluottamusta ja osallistumaan vertaisarviointeihin, kooditarkastuksiin, työpajojen isännöintiin ja tiimiprojektien johtamiseen.
Työsitpä sitten osana tiimiä tai johtajana, on tärkeää antaa kehuja yhtä paljon kuin rakentavaa kritiikkiä. Kun tarkistat koodia, on hyvä innostaa ihmisiä!
Mitkä Ovat Keskeiset Peliohjelmoinnin Periaatteet?
On olemassa muutamia keskeisiä aiheita, jotka yksinkertaisesti on sisällytettävä peliohjelmointia käsittelevään blogiin. Tässä ovat tärkeimmät asiat, jotka otamme huomioon.
Lähdekoodin hallinta/Versiohallinta
Aivan kuten peleissä on tallennuspisteitä, projektin kehittämisessä on tallennuspisteitä. Ne toimivat projektin yleisenä varastona ja tarkoittavat, että kolme tai neljä ohjelmoijaa voi työskennellä järjestelmän parissa samanaikaisesti, tehdä muutoksia ja lähettää ne palvelimelle. Se antaa meille mahdollisuuden seurata näitä muutoksia ja helposti palata takaisin, jos jokin rikkoutuu. Jos kaksi kehittäjää työskentelee samassa tiedostossa, siitä tiedostosta tulee osa yhdistämistä, jos on ristiriitoja, voimme sitten manuaalisesti ratkaista ne tai valita yksilön muutokset käyttöön. Tämä tapahtuu paljon käytettäessä Prefabeja tai Scenejä Unityssä.
Nämä termit voivat joskus mennä päällekkäin, mutta yleensä, lähdekoodinhallinta keskittyy koodiin ja versiohallinta sisältää kaikki projektitiedostot, resurssit ja dokumentaation.
Kun aloitat Lähdekoodin hallinnan käytön, se voi aluksi tuntua pelottavalta, se voi vaikuttaa todella ylitsevuotavalta ja ristiriitojen kohdalla saatat olla epävarma siitä, mitä tehdä. Mutta versiohallinnan luonne auttaa sinua tallentamaan hetkiä ajan säilyttämiseksi, jotta jos teet usein päivityksiä ja käytät yksityiskohtaisia sitoutumisviestejä, se on uskomattoman hyödyllinen ja turvallinen. Voit palata useampiin kohtiin, on monia haaroja jne. Ajattele sitä devaajan turvaverkkona, joten voimme välttää Pixar's Toy Story 2:n version - vahingossa poistettu ja sitten palautettu teknisen johtajan kotona olevalta kiintolevyltä, sen sijaan kaikki on turvallisesti palvelimella.
Oliopohjainen ohjelmointi
Tämä on se ohjelmointityyppi, jota käytämme ensisijaisesti Kwaleella. Se käyttää objekteja edustamaan todellisia asioita tai abstrakteja konsepteja ja pyrkii järjestämään koodipohjaa periaatteilla, jotka heijastavat sitä, miten näemme ja vuorovaikutuksessa olemme asioiden kanssa todellisessa maailmassa. Se auttaa ylläpitämään monimutkaisia järjestelmiä järjestämällä koodin erillisiin luokkiin, joita voi käyttää uudelleen, laajentaa ja ylläpitää helpommin.
Tietysti on keskusteltu siitä, onko se hyvä vai ei. Vaikka se ei ole korkein suorittaja, se toimii hyvin. Kuten kieletkin, jokaisella on omat plussat ja miinukset ja sinun pitäisi oppia yksi aloittaaksesi ja saadaksesi otetta siitä, miten kielet ja kääntäjät (inhimillisen koodin kääntäjät koneluettavaksi koodiksi) toimivat. Voit myös harkita muita tyyppejä, kuten funktionaalista ohjelmointia, joka käsittelee sitä enemmän kuin matematiikkaa, loogista ohjelmointia, joka käyttää faktoja ja sääntöjä tai proseduraalista ohjelmointia, joka käyttää askel askeleelta tarjottuja tietoja.
Ohjelmointimallit
Nämä ovat upean hyödyllisiä asioita - uudelleenkäytettäviä ratkaisuja, jotka voivat auttaa tavallisia ongelmia ohjelmistosuunnittelussa. Ne antavat sinulle kaavan ongelman ratkaisemiseen, joten sinun ei tarvitse keksiä pyörää uudelleen joka kerta, vaan voit noudattaa todettuihin ratkaisuihin.
Esimerkiksi Singleton-suunnittelumalli auttaa varmistamaan, että luokasta, kuten peliasetusten hallinta, on vain yksi esiintymä koko pelin aikana, ja antaa sinulle globaalin pääsykohdan siihen. Tämän mallin koodi tarkoittaa, että vain yksi SettingsManager-luokan esiintymä on käytössä, joten sinun ei tarvitse luoda tai monistaa sitä joka kerta kun tarvitset sitä.
On myös Factory Pattern, joka voi auttaa sinua luomaan objekteja organisoidusti ja joustavasti. Voit määritellä menetille määrätynlaisia objekteja, kuten hahmoja tai esineitä, syöttöparametrien perusteella, mikä mahdollistaa sen, että voit helposti luoda lisää samantyyppisiä objekteja ilman, että joudut aloittamaan alusta joka kerta.
Toivon, että tämä blogi on antanut sinulle maistiaisen peliohjelmoinnista, olitpa sitten alalla uusi tai jo kokenut ohjelmoija! Jos olet kova työskentelemään mutta haluat pitää hauskaa, sopisit tiimiimme, joten tutustu lisää Kwalee careers. Vaihtoehtoisesti voit oppia lisää mobiilipeleistämme tai julkaisutoiminnastamme ja saada lisätietoja siitä, mitä julkaisemme kehittäjänä ja julkaisijana.








