În descrierile posturilor, văd adesea poziții numite „Programator de jocuri”. Ce fac oamenii din această poziție?
Comentarii
- gamedev.stackexchange.com/questions / 5538 / …
Răspuns
Când companiile vorbesc despre angajarea unui programator de joc , despre ce vorbesc este un programator care va fi responsabil pentru codul care atinge direct despre experiența de joc. Adică, programatorul va fi responsabil pentru construirea de fapt a jocurilor, mai degrabă decât motorul sau sistemele de jocuri mai mari. Dar, dincolo de asta, lucrurile variază foarte mult:
Unele companii se așteaptă ca programatori de jocuri să implementeze interfața cu utilizatorul . Unele nu sunt. Unele companii se așteaptă să implementeze codul AI, altele nu. Unii se așteaptă ca aceștia să implementeze codul audio, alții nu. Pentru a fi sincer, „jocul” din programator de jocuri este un prescurtarea industriei pentru „tot ceea ce nu am angajat un specialist pentru a face”. Deci, acești programatori trebuie să fie foarte versatili și trebuie să poată învăța noi discipline rapid.
Am petrecut aproape cincisprezece ani fiind programator de jocuri în industria comercială, în cinci companii diferite.
Experiența mea a fost că, în unele companii, un programator de joc este considerat a fi o poziție junior sau entry-level; programatorii care lucrează doar la un joc individual, la urma urmei, nu trebuie să fie la fel de sofisticati ca cei care lucrează la sisteme care trebuie să suporte simultan o mulțime de jocuri diferite, așa cum trebuie programatorii de motoare. companie, dacă un programator de joc se descurcă foarte bine, ar putea fi promovat într-o zi în echipa de motoare, dacă își poate dovedi valoarea. Sau ar putea deveni specialist, dacă va arăta aptitudini pentru o anumită zonă.
În alte companii, un programator de joc este considerat a fi o poziție de nivel mediu; programatorii care lucrează la un joc individual trebuie să au o experiență utilă și fii de încredere. Programatorilor fără experiență li s-ar putea oferi slujbe nedorite pentru a-și tăia dinții (conducte de date, instrumente etc.) și, în cele din urmă, li se va permite să meargă într-un loc de muncă „programator de joc”. un programator de joc care continuă să se descurce destul de bine s-ar putea muta într-un proiect de lea rol de dership, sau în echipa de motoare.
În alte companii, un programator de joc este considerat a fi o funcție superioară și, de asemenea, o poziție pe jumătate proiectată; se așteaptă ca acești programatori să fie excelenți, dovediți, dar și să aibă sensibilități și calificări de proiectare puternice, deoarece „ating direct codul care afectează cel mai puternic experiența jucătorului cu jocul. În acest tip de sistem, un programator de joc foarte bun va rămâne probabil un programator de joc pentru totdeauna – acesta este considerat cel mai valoros post pe care îl poate ocupa.
Ca regulă generală, cu atât mai bine jocurile companiei, cu atât o poziție mai înaltă o consideră programator de jocuri (și, prin urmare, cu atât va fi mai dificilă fie pentru a obține de fapt un astfel de loc de muncă).
Răspuns
Întotdeauna consider că ajută să ilustrez prin exemplu.
-
Un programator de joc ar primi sarcini de genul: implementarea sistemului de luptă corp la corp, implementarea mecanicului de regenerare a sănătății sau implementarea comenzilor pentru saltul jucătorului.
-
Un programator de motoare (ceea ce ați numi pe cineva care nu era în mod specific un programator de joc) ar primi sarcini de-a lungul liniei: implementarea iluminării amânate, a unui sistem de animație sau a unui strat de rețea.
Distina cheie cțiunea este aceea a cine este „clientul”. Pentru programatorii de joc, este echipa de proiectare – sarcina lor este să transforme designul într-o realitate. Pentru programatorii de motoare, este în general alți programatori . Programatorii de motoare realizează tehnologii și sisteme, pe care programatorii de jocuri și creatorii de conținut le pot folosi apoi pentru a realiza designul.
Programatorii de motoare scriu cod care este în mare parte agnostic de joc – aceeași tehnologie poate fi adesea utilizată în mai multe jocuri. Programatorii de joc au tendința de a scrie cod care este foarte specific jocului în curs de realizare. Și întotdeauna se suprapun – uneori, pentru a implementa jocul, aveți nevoie de un cod motor nou.
Codificarea jocului nu este mai dificilă sau mai ușoară decât codarea motorului.Cu toate acestea, este cu siguranță un set de abilități ușor diferit; de multe ori trebuie să fii mai creativ și să poți evada soluțiile. Scopul tău nu este să creezi sistemul reutilizabil perfect (ideal pentru programatorii de motoare), ci să creezi cea mai bună implementare a jocului. Deci, ceea ce poate fi un avantaj în programarea motorului (atenție la detalii și structuri bine concepute) poate fi o piedică în programarea jocului (unde adaptabilitatea și timpul de iterație sunt mai importante). Un programator de joc bun știe când să o facă corect (când designul este solid și codul va fi folosit în multe locuri) și când să o facă rapid (când designul este încă elaborat, iar codul dvs. are șanse mari de a fi aruncat odată testat).
Mai presus de toate, programatorii de jocuri trebuie să poată colabora cu echipa de proiectare la un nivel pe care programatorii de motoare nu-l fac. În afară de abilitățile de comunicare evidente, asta înseamnă că trebuie să vă familiarizați cu alte modele de jocuri mult mai mult decât fac programatorii de motoare, astfel încât atunci când un designer spune „faceți-l să funcționeze ca Zelda”, să știți despre ce vorbește.
Pentru a învăța să fii programator de motoare, ar trebui să descurci o tehnologie și să afli cum funcționează și poate să îți implementezi propria versiune; jocul ar fi doar o arenă în care să arăți tehnologia.
Pentru a învăța să fii programator de joc, ai lua motorul altcuiva și l-ai folosi în cât mai multe moduri diferite . Cu alte cuvinte, dacă doriți să fiți programator de jocuri, creați jocuri, nu tehnologie .
Răspuns
Exact cum sună, un programator care implementează și menține mecanica jocului.
http://en.wikipedia.org/wiki/Game_programmer#Gameplay_programmer