Modni stil. Ljepota i zdravlje. Kuća. On i ti

Kako napraviti 2d igre. Faze izrade računalne igre

Ako ste došli na ovu stranicu, znači da volite računalne igre. Danas postoje tisuće igara u različitim kategorijama, od jednostavnih pucačina i pasijansa do složenih online strateških igara za više igrača. I mnoge tvrtke nastavljaju stvarati druge, oduševljavajući obožavatelje uzbudljivim novim proizvodima. Na svakoj igrici, pa i onoj najmanjoj, radi tim profesionalaca, od programera do dizajnera. Teško je ući u takve timove, čak i ako imate odgovarajuće zanimanje. Ali pozvani ste i dobili ste priliku da sami kreirate igru.

Kako igrati?

Nije vam potrebno znanje programskih jezika. Morat ćete raditi s gotovim predlošcima. Nalaze se na vrhu ekrana. Klikom miša možete odabrati objekte i njihovu buduću lokaciju. Igra ima samo dva lika, nekoliko vrsta bonusa, platforme i još mnogo toga. Akcije bi se trebale odvijati u pozadini planina. Kada ste odabrali sve što ste željeli vidjeti u igrici i pronašli mjesto za svaki predmet, kliknite na strelicu “dalje”. Sada se na ekranu pojavljuje gotova igra koju prvo možete isprobati. Dogodilo se? Ako vidite greške, možete se vratiti.

Industrija računalnih igara jedan je od najdinamičnijih segmenata IT sektora u razvoju. Koliko je teško naučiti kreirati igre ili barem njihove pojedine elemente? Može li se korisnik sam nositi s takvim zadacima? Kako profesionalci stvaraju računalne igre?

Što vam je potrebno za početak stvaranja igara?

Prije svega, morate biti uključeni u industriju kao igrač. Bez poznavanja načina na koji igre funkcioniraju iznutra i psihologije igrača, promatranja kako računalna grafika funkcionira u stvarnoj upotrebi, a ne u teoriji, vrlo je teško postići uspjeh u izdavanju vlastitih igara. Ako je igra kreirana s ciljem komercijalne prodaje (ili barem s ciljem promicanja osobnog brenda svog programera), tada mora biti konkurentna i odražavati trenutne zahtjeve gaming zajednice. Pustiti proizvod bez praćenja “trenda” je gubitak vremena. Stoga je važno ne biti samo amaterski igrač, već i proučavati tržište, moći instalirati nove igre na svoje računalo i testirati ih. A to znači da će programer također trebati vrlo. I ovdje prelazimo na drugi glavni uvjet za uspjeh u industriji igara. Riječ je o o hardverskim komponentama – hardver.

Poznato je da (od računala, naravno, ne govorimo o industrijskim računalima) - gaming. Uključuju hardverske komponente (procesor, video kartica, memorija, čipset) koje su mnogo naprednije od osobnih računala za uredske i kućne potrebe. Izvana se, naravno, računala različitih klasa gotovo ne razlikuju, ali sa stajališta elektroničkog "punjenja" razlika je značajna. PC za igranje može koštati 5-10 puta više od uredskog ili kućnog računala. Moguće je da čak i neka pojedinačna komponenta (primjerice, isti procesor) ima višu cijenu od cijelog gotovog računala za ured. Usput, snažan hardver bit će potreban ne samo za testiranje proizvoda za igre. Komponente visokih performansi zahtijevaju i specijalizirani programi za računalne igre. Oni uz pomoć kojih će se stvarati remek-djela industrije.

Treća komponenta uspjeha u izdavanju izvrsnih igara je, kako kažu stručnjaci u “gaming workshopu”, poseban način razmišljanja. Mora kombinirati dva naizgled potpuno različita principa: logiku i kreativnost. Prvi je nužan kako bi se dobro razumjela konstrukcija skripti, scenarija i raznih vrsta ovisnosti ugrađenih u koncept proizvoda, kako bi se odlučilo kako napisati igru ​​u strukturi koju će budući korisnici razumjeti i prihvatiti. Drugi je dati vašem proizvodu jedinstvene značajke koje ga razlikuju od sličnih ili konkurentskih rješenja.

Metode stvaranja igre

Kako nastaju igre za računalo? Stručnjaci identificiraju tri glavna načina za razvoj proizvoda za igre: korištenje građevinskih kompleta, korištenje pokretača igara i pisanje od nule. Prvi je najjednostavniji, treći je najteži. Stoga, ako smo novi u području stvaranja igara, onda ima smisla obratiti pozornost na mogućnost korištenja građevinskih setova. Međutim, bit će korisno razmotriti značajke svakog od alata.

Konstruktori igara

Konstruktor je skup predložaka koji imaju programirani model ponašanja. Najbliža analogija koja se može dati da bi se objasnilo kako napraviti igru ​​pomoću takvog rješenja su “Lego” dijelovi. Baš kao što djeca čitajući priručnik ili improvizirajući grade kuće, automobile i druga zanimljiva remek djela od plastike.

Korisnik ima relativno veliku slobodu u upravljanju predlošcima i postavljanju scenarija za njihov rad. Malo je vjerojatno, naravno, da će uz pomoć dizajnera čak i iskusan programer igrica moći proizvesti proizvod koji će izazvati senzaciju na svjetskom tržištu. Takvi su programi prije svega edukativne prirode, omogućujući entuzijastima početnicima u industriji igara da razumiju kako se igre stvaraju na računalu. No, čak i ovakva zadaća koja se dodjeljuje dizajnerima važna je sa stajališta razvoja industrije.

Motori za igre

Izrada igara pomoću motora je proces u kojem korisnik ima na raspolaganju nesrazmjerno veći izbor alata nego u slučaju dizajnera. Sasvim je realno reći da je kroz sučelja koja isporučuju proizvođači ovakvih rješenja moguće kreirati rješenja konkurentna i na globalnoj razini - arkade, 3D akcijske igre, simulacijske igre. Motori se mogu bez problema instalirati na računalo i gotovo uvijek ih prati prikladno sučelje za njihovo korištenje. U pravilu i visokokvalitetni sustavi pomoći i obuke.

Što je motor? Ovo je zapravo samo skup naredbi (iako vrlo složen, koji se sastoji od stotina tisuća algoritama) koji vam omogućuju pokretanje pojedinačnih procesa igre. Broj predložaka, sličnih onima koji se nalaze u konstruktorima, obično je sveden na minimum. A one koji postoje vrlo je lako modificirati ili zamijeniti onima koje je sam korisnik razvio. Korištenje motora zahtijeva, naravno, više kvalifikacija od rada s dizajnerima. Ako govorimo o stvaranju ozbiljne igre, tada će korisnik najvjerojatnije morati uključiti još nekoga da pomogne (u nastavku ćemo pogledati strukturu tipičnog razvojnog tima). Ali nakon što osoba ovlada sučeljima motora, kasnije će moći prilagoditi svoje postojeće znanje i vještine za stvaranje gotovo bilo kojeg proizvoda za igre.

Igra od nule

Ako je korisnik prerastao mogućnosti pokretača igara, a da ne govorimo o dizajnerima, naučio je nekoliko programskih jezika i detaljno proučio principe stvaranja 3D grafike, onda je vrijeme da ovlada najsloženijim alatom za izradu igara - pisanjem gaming remek djelo od nule. Faze izdavanja novog proizvoda najvjerojatnije će uključivati ​​razvoj vlastitog motora - rijetko koja igra može bez njega, pogotovo ona koja tvrdi da je prepoznata u zajednici.

Vrijedno je, međutim, napomenuti da je vrlo teško nositi se s izdavanjem proizvoda samo od nule (iako povijest industrije igara poznaje takve presedane). Ali sasvim je moguće da jedan korisnik prođe kroz neke faze razvoja igre (kao što je, na primjer, stvaranje likova, crtanje grafičkih elemenata) da bi zatim uključio druge ljude okupljajući tim.

Profesionalni programeri

Ako govorimo o razvoju igara kao zasebnom segmentu tržišta, onda glavnu ulogu ovdje igraju profesionalni studiji koji imaju financijske i ljudske resurse za izdavanje komercijalno konkurentnih proizvoda.

Stvaranje vrhunskih igrica stoji stotine tisuća, pa čak i milijune dolara, au njihovo izdavanje uključeni su deseci stručnjaka iz raznih područja. Postoje, naravno, mala i srednja razvojna poduzeća čiji proračuni za izdavanje gaming proizvoda mogu stati u iznos od 8-10 tisuća "zelenih", ali to je vrlo specifičan segment.

Struktura profesionalnog studija za igre

Nastavljajući razgovor o profesionalnom razvoju, bit će korisno proučiti strukturu prosječne razvojne tvrtke. Tko bi trebao raditi za tvrtku koja tvrdi da stvara globalni bestseler igara? Kako ljudi koji se time bave na profesionalnoj osnovi stvaraju igre na računalu?

Razvojni tim mora uključivati ​​dizajnere i umjetnike. Bez njihovog talenta računalna grafika neće impresionirati korisnike. Grafika je, prema mnogim stručnjacima, ključni čimbenik uspjeha igre. U nekim slučajevima, položaji ove vrste podijeljeni su prema funkciji. Na primjer, tim kreatora igre može imati zasebne 2-D i 3D dizajnere, kao i takozvane konceptualne umjetnike koji svojim kolegama i upravi tvrtke nude skice budućih grafičkih elemenata na odobrenje.

Sljedeća skupina stručnjaka su "modelari". U skladu s nazivom svoje pozicije, oni stvaraju prototipove likova iz igre, kao i artefakte, opremu i zgrade koje ih okružuju, te "modeliraju" budući virtualni svijet. U nekim slučajevima stručnjacima u ovoj kategoriji pomažu animatori (u slučajevima kada je potrebno modelirati posebno složene pokrete likova).

U većini slučajeva sami programeri sudjeluju u stvaranju igara. To se najčešće događa kada razvojna tvrtka koristi vlastiti motor, ali je potrebno povremeno uskladiti skripte napisane u njemu sa značajkama animacije igre koje su postavili umjetnici. Ako motor isporučuje programer treće strane, tada, u pravilu, nisu potrebne izmjene programskog koda.

Ozbiljan gaming proizvod ne može se napraviti bez umjetničkog direktora. Ova osoba je pozvana da objedini napore umjetnika i dizajnera unutar jednog koncepta. Također će biti odgovoran za učinkovitost rada, organiziranje procesa kako bi igra bila puštena na vrijeme.

Igre stvaramo sami: pregled programa

Kako stvoriti igru ​​samo s općim znanjem o tome kako rade programi za razvoj gaming proizvoda? Postoje mnogi alati koji čak i amateru omogućuju stvaranje vlastite igre. Navedimo primjere tipova rješenja o kojima smo gore govorili.

Izrađivač igara

Ovaj program omogućuje stvaranje igre čak i za one korisnike koji ne govore programske jezike. Ovdje se, međutim, ne radi o razvoju trodimenzionalnih remek-djela. Program vam omogućuje stvaranje samo 2D igara, ali u širokom rasponu žanrova. Možete napraviti vrlo jednostavne akcijske igre. Izbornik dostupan korisniku sadrži velik broj gotovih predložaka. Sve što u biti preostaje učiniti jest osmisliti vlastiti scenarij igre.

Program sadrži prilično detaljne upute i kvalitetan sustav pomoći. Nakon što je savladao mogućnosti Game Maker-a na osnovnoj razini, korisnik može prijeći na učenje ugrađenog jezika ovog programa - Game Maker Language. Koristeći njegove mogućnosti, možete ići dalje od predložaka ugrađenih u softver i stvarati igre gotovo od nule.

Konstruiraj-2

Proizvod Construct-2 stručnjaci prepoznaju kao jedno od najfunkcionalnijih rješenja u svojoj klasi za kreiranje igara od strane korisnika koji ne govore programske jezike. Velika prednost ovog rješenja je što se njime mogu proizvoditi igrice za većinu platformi koje se danas koriste - Windows, iOS, Android, kreirati ih u HTML5 i aplikacije za Facebook (nakon što ste shvatili kako napraviti programe za pokretanje na ovoj društvenoj mreži, korisnik će naučiti kako stvoriti igru ​​na VK i pokazati je prijateljima). Korisnici Construct-2 primjećuju jednostavnost i jasnoću njegovog sučelja. Možete raditi uglavnom prema predlošcima, ali ima ih puno, pa stoga postoji gotovo svatko tko će se uklopiti u scenarij koji je izmislio korisnik. Dobra stvar je što je Conustruct-2 besplatan.

Jedinstvo 3D

Dva gore navedena programa dizajnirana su za stvaranje igara u 2D načinu rada. Unity vam omogućuje rad koristeći mogućnosti 3D grafike. Mogućnosti koje program pruža su ogromne. Baš kao iu slučaju Construct 2, postoji multiplatforma (postoji čak i podrška za konzole - Xbox, PlayStation, Wii).

Program uključuje jedan od najboljih motora za igre na svijetu, prema stručnjacima (također se zove Unity). Stoga nam ovo rješenje, bez ikakvog pretjerivanja, omogućuje stvaranje vrhunskih gaming remek-djela (ako, naravno, uspijemo okupiti tim koji se kadrovski može usporediti s barem prosječnim razvojnim studijem). Bit će moguće objaviti vrlo ozbiljne igre na računalu. Pucačke igre - svakako, strategije - također prilično realne, utrke, simulatori - lagani.

Razvoj igara je u pokretu, obećava i dobiva na popularnosti. Pripremili smo detaljnu infografiku o putu učenja razvoja igrica.

Postoje mnoga područja povezana s razvojem igre, a svaka faza obuke nadograđuje se na prethodnu. Na primjer, ne biste trebali odmah skočiti na motore igara. Počnite s razvojem softvera, proučavanjem matematike s fokusom na programiranje igara, a tek onda prijeđite na razvoj igara. Svaka od predstavljenih faza je vodič korak po korak, uključujući knjige i druge materijale.

0. Razvoj igara za djecu

Mnoge knjige fokusirane su na rad s legendarnim i intuitivnim razvojnim okruženjem za djecu Scratch, uključujući ScratchJr. Nakon osnove dolaze informacije o Python Pygame. Postoji knjiga za 5-godišnjake, ali većina materijala je prikladna za djecu od 8 godina i stariju.

1. Informatika

Teorijsko znanje je obavezna komponenta bez koje je daljnje studiranje besmisleno. Ovaj izbor obrazovne literature uključuje osnove, informacije o algoritmima i matematici u kontekstu studija informatike.

2. Programski jezici

Govoriti jezikom računala nije lako, ali je moguće. A takvih načina ima jako puno. Na primjer, jezik C značajno je utjecao na softversku industriju dijeleći svoju sintaksu s popularnim C#, C++ i Javom. C++ je pak moćan jezik za stvaranje učinkovitih programa i softverskih sustava. Mnogi također pišu igre u C#: jezik je brz, praktičan i omogućuje vam brži početak razvoja.

Ali Lua je usvojio nešto iz C++. Skriptni jezik je dobar za logiku igre. Olakšat će inicijalizaciju razine, vezanje zadataka na objekte, interaktivnu promjenu ponašanja NPC-a bez potrebe za ponovnim kompajliranjem projekta i još mnogo toga.

3. Izrada aplikacija

A ako je informatika teorijska osnova, onda je tu više prakse. Razvoj igara je neravan put, a najbolje je početi s aplikacijama. Knjige s praktičnim zadacima, kao i informacije o uzorcima i UML-u pomoći će vam da shvatite što je što.

4. Matematika za razvoj igrica

Ne, neće biti školskog tečaja algebre i geometrije. Izbor je podijeljen na osnove matematike u području razvoja igrica i napredniju razinu.

5. Programiranje igrica

Hardverske platforme, operativni sustavi, API setovi, algoritmi, više platformi i drugi važni aspekti koji će činiti osnovu igre koja se razvija. Knjige su dopunjene nizom članaka o razvoju igara koji sadrže korisne informacije o programiranju.

6. Razvoj game engine-a

Motor je srce igre, koji "skida" funkcionalnost i potrebne alate. U prvim knjigama upoznat ćete se s arhitekturom i dizajnom. Nadalje, "game engines" se dijele na alate, optimizaciju, skripte i dodatne materijale u obliku članaka. Tijekom uvoda se dotiču obrasci, algoritamski trikovi, optimizacija u Unityju i druge nijanse.

7. Računalna grafika

Da, sadržaj je važan, ali računalna grafika analogna je sučelju aplikacije koju će korisnici vidjeti. Stoga mu treba posvetiti posebnu pozornost.

Nije ni čudo što je ovaj dio najveći. To uključuje osnove programiranja s 3D u stvarnom vremenu, DirectX i OpenGL. Sve je dopunjeno informacijama o renderiranju i tehnologijama. Direct3D i OpenGL dobili su posebnu pozornost u izboru.



8. Audio igre

Razvoj igre također se odnosi na zvuk: to su zvukovi koje proizvode NPC, glavni lik, pojave ili objekti, kao i glazba. U audio program uključene su samo dvije knjige, ali one na pristupačan način daju potrebne informacije.

9. Fizika igre i animacija

Jedna od najtežih faza. Osim softverske osnove i slika, moraju postojati i zakoni po kojima sve to međusobno djeluje. Fizika igre i programiranje animacije obrađeni su u 17 knjiga. Imitacija tekućine je zasebno pogođena.

Dizajneri igara

Dizajneri igara su ti koji smišljaju sve što vidite u igri. Ako razvoj usporedimo sa stablom, onda su dizajneri igara korijen ovog stabla. Mehanika, ravnoteža, likovi, zadaci i sposobnosti - sve je to pažljivo osmišljeno od strane odjela za dizajn igara. U isto vrijeme, izrazi poput "Vasya je uzeo sjekiru i otišao uništiti" očito neće biti dovoljni za stvaranje cjelokupne slike. Čak i za ovu frazu potrebno je detaljno opisati tko je Vasya i kako izgleda, zašto uopće treba nešto uništiti, zašto sjekira i kojom će snagom zamahnuti tom sjekirom. Također morate opisati karakteristike ovog Vasye, njegove sposobnosti i vještine, kao i zvukove koje će ispuštati.

Čak i naizgled identične informacije u nekim slučajevima moraju biti drugačije opisane. Umjetnike više zanimaju sitni detalji i cjelokupan likovni stil, kao i okoliš, ali za maketare treba voditi računa i o tehničkom dijelu i animaciji.

Općenito, čak se i dizajneri igara mogu podijeliti u specijalitete, gdje svaki radi različite stvari. Jedna osoba može raditi nekoliko stvari odjednom, ali da bi bili produktivniji, svaki član tima obično ima svoj zadatak.

Neki od dizajnera igara također su uključeni u druga područja projekta, mogu crtati umjetnost ili programirati neke dijelove igre. Takve vještine su vrlo korisne, jer je glavna zadaća game dizajnera, u bilo kojem području, prenijeti vlastitu viziju projekta ostatku tima što detaljnije i točnije, kako bi je mogli implementirati kao jedinstvena cjelina. Zbog toga mora razumjeti kako se rad odvija u drugim odjelima tvrtke, au nekim slučajevima čak i kontrolirati taj rad.

Zasebno bih želio istaknuti tako važan element kao što je stvaranje sučelja igre. Prije upotrebe konačne verzije, dizajneri igara prolaze kroz desetke opcija. Dobro sučelje mora biti intuitivno, imati sve funkcije potrebne za određenu igru ​​(kao što je karta ili indikator streljiva), ali ne smije ometati samu igru. Unatoč naizgled jednostavnosti, ovaj dio posla je vrlo važan, jer tijekom igre korisnik je u stalnoj interakciji sa sučeljem, a njegove dobre ili loše strane mogu utjecati na cjelokupno mišljenje o igri.

U odjel za dizajn igara uključeni su i scenaristi koji su odgovorni za osmišljavanje cijelog svijeta igre. Ovdje se najviše traže vještine lijepog opisivanja jednostavnih događaja. Scenarist ne piše samo opći zaplet igre, već i sve dijaloge, pokrete i emocije likova. On obično određuje i karakter i izgled.

Dobar dizajner igre, čime god se bavio, mora stalno imati na umu cjelokupnu sliku igre, nadopunjavajući je novim detaljima i detaljima. Smisliti prekrasan zaplet ili čak svemir prilično je jednostavno, ali razraditi ga, oživjeti i u isto vrijeme prenijeti ga u potrebnom obliku ostatku tima nije lak zadatak.

Grafički sadržaj

To uključuje sve koji su uključeni u vizualnu stranu igre. A ako dizajner igre razmišlja o likovima pomoću tekstualnih opisa, obraćajući više pozornosti na njihov karakter, tada umjetnici daju likovima puni izgled. Međutim, neće svaki umjetnik biti prikladan za ovu ulogu. Ne radi se čak ni o iskustvu i vještini, već o stilu koji se koristi. Nije svaki umjetnik prikladan za određenu tvrtku.

Drugi problem za umjetnike može biti to što se ista stvar (ili lik) mora precrtavati mnogo puta, mijenjajući jedan ili dva detalja, dok se ne postigne željena slika. Iako su upotrebom grafičkih tableta ova “precrtavanja” postala mnogo brža i lakša.

Osim toga, ti isti umjetnici crtaju razne ikone vještina i sposobnosti. Crtanje naizgled jednostavne slike nije tako jednostavno, jer mora vrlo dobro vizualno prenijeti učinak koji one (sposobnosti) daju.

Animiranje objekata također je u nadležnosti odjela koji se bavi grafičkom komponentom. Jednostavno animiranje lika nije dovoljno, morate uzeti u obzir opremu i predmete s kojima će on komunicirati. Također, ne zaboravite da su heroji ljudi (ili barem živa bića), što znači da neće stajati kao stup i čekati naredbu. Jednostavni koraci. poput provjere oružja ili igranja s džepnim upaljačem ni na koji način ne utječu na gameplay, ali vrlo dobro pokazuju "život" likova. To također treba uključiti okolinu, koja ne stoji mirno i stalno se kreće, bilo da je to šuštanje trave od vjetra ili vjeverica koja skuplja orahe na drvetu. Animatori su ti koji oživljavaju svijet igre, udahnjujući mu život.

Također bih želio posebno istaknuti modelare koji, koristeći opis dizajnera igre i umjetnost umjetnika, izrađuju radni model likova ili predmeta igre. Mnogi od njih, osim izrade samog modela, stvaraju efekte za njega ili animaciju. Iako, mnogo češće, druga osoba radi aminovanje. S druge strane, sada se vrlo često za animiranje ljudi koristi tehnika Motion Capture, koja uključuje snimanje pokreta. Odavno je svladan u filmovima, ali se sve češće koristi iu gaming industriji.

Zvuk je vrlo važan za svaku igru. Samo isključite glazbu u svojoj igrici i ona će izgledati potpuno drugačije. Glazbenicima je puno teže u gaming industriji nego u slobodnom stvaralaštvu. Ovdje treba pisati glazbu određenog stila i za određene situacije, a ako je igra dovoljno velika, treba ih sve uzeti u obzir i ugoditi u svim situacijama.

Osim glazbe, ne zaboravite na obične zvukove. Čak i običan zvuk koraka vrlo je teško snimiti, a mnogi od njih snimaju se profesionalnom zvučnom opremom "uživo". Može izgledati prilično smiješno - glumac hoda po drvenom podu, a oko njega se kreće ogroman broj mikrofona za snimanje. No, u nekim slučajevima inženjeri zvuka se očito petljaju, koristeći iste zvukove u različitim projektima. Većinu njih ste osobno čuli, na primjer, zavijanje vuka.

Drugi važan dio je glasovna gluma likova igre. Glasovi bi trebali prenijeti karakter likova, njihove emocije i reakcije na razne događaje. Ako to nisu ljudi, onda su u razvoj uključeni majstori zvučnih efekata koji dodaju note režanja za orke ili daju "paklenu boju" glasu nekog demona. Vrlo je važno uzeti u obzir prirodu likova kada lokalizirate igre na druge jezike. U ovom slučaju, morate uzeti u obzir da neke riječi imaju različita značenja, a cijelim frazama može biti potrebno različito vrijeme izgovora. Lokalizatori se suočavaju sa zadatkom da ne izgube značenje onoga što je rečeno, a da istovremeno osiguraju da se glasovi likova čuju prirodno.

Programeri

Možda jedno od najtraženijih zanimanja u gaming industriji.

Oni su ti koji prikupljaju sav gotov materijal i prevode ga u nevidljivi kod. Ovaj posao je prilično težak, jer ako pogriješite čak iu jednom simbolu, u igri će se pojaviti vrlo neugodne greške, od kojih neke mogu potpuno promijeniti jednostavne radnje, sve do potpune nemogućnosti nastavka sljedeće igre.

Kada rade u timu, programeri moraju vrlo pažljivo pratiti radnje svojih kolega, jer u slučaju pogreške, sav kasniji rad može biti izveden netočno. Zato programeri radije rade sami, međusobno raspodjeljujući područja djelovanja.

Osim toga, neki od programera ne rade sa samim kodom, već s grafičkim motorom, koristeći različite efekte, a također su odgovorni za to kako će točno igrač vidjeti svijet igre. No, takav rad ipak zahtijeva poznavanje programskih jezika, jer ne može sve funkcionalnosti osigurati motor. Mnoge tvrtke koriste gotove motore za igre, pa su se neki programeri specijalizirali za jedan od njih.

Još jedno područje rada programera može biti stvaranje alata. U velikim projektima nemoguće je riječima ili papirom izraziti sve aspekte stvaranja igre, pa su ovi programeri zaokupljeni izradom posebnih programa i alata za ostatak tima, čime im olakšavaju rad i cjelokupnu interakciju. Dobri alati mogu znatno smanjiti razvoj igre.

Testiranje

Prije izlaska proizvoda na tržište, on se dosta dugo testira, pokušavajući na najbezobrazniji način razbiti igru. Postoje ljudi koji rade testiranje pomoću posebnih programa, njihov zadatak je identificirati pogreške na tehničkoj razini. U ovom slučaju, takav ispitivač mora biti vrlo tehnički potkovan, au isto vrijeme biti prilično pažljiv i pedantan.

Osim njega, tu je i cijeli tim stalnih testera. Najčešće su to obični igrači ili ljudi koji se tek planiraju baviti gaming industrijom, a kroz testiranje se upoznaju s tim područjem. Ne zahtijevaju nikakve posebne vještine, ali ne izgleda kao normalna igra. Najčešće se njihovi postupci svode na jednu jedinu radnju, koju moraju ponoviti stotine puta kako bi shvatili u kojoj točno situaciji dolazi do pogreške.

Nedavno se prilično često provodi beta testiranje, koje se sastoji u tome da programeri učine igru ​​dostupnom svima besplatno na kratko vrijeme. Time se ekipa testera povećava na milijune, ali s druge strane većina njih samo igra. Ali ipak, određeni postotak pronalazi pogreške i šalje ih programerima, zahvaljujući čemu oni dovode završni dio igre do savršenstva i izdaju ga u dobroj formi. Osim toga, ova praksa uvelike povećava prodaju igre, omogućujući igračima da utvrde žele li stvarno kupiti ovu igru.

Razvojni proces

Gotovo svaki element igre mora proći kroz sve odjele tima dok ne dobije svoj konačni oblik i uključi se u igru. No, neće biti moguće da svi zajedno rade na tome, stoga je vrlo važno proces rada organizirati na način da svaki od programera bude uključen u nešto, a ne sjedi besposlen.

Preskočimo trenutak kada se ekipa okuplja, raspravlja se o općoj ideji igre i dodjeljuju uloge. Izravno, sam rad počinje pisanjem konceptualnog dokumenta, koji sastavlja dizajner igre. Sadrži opći opis igre i priču, kao i značajke igre i neke tehničke parametre (na primjer, na kojim će platformama igra biti objavljena). U ovom dokumentu nema nikakvih posebnosti, njegova je svrha pružiti svima priliku da se upoznaju s općim izgledom igre, kao i brzo “ažurirati” nove članove tima koji će se pridružiti (ako je potrebno) u radu. tijekom procesa razvoja.

Dalje, isti dizajneri igara izrađuju tehničke specifikacije (tehničke specifikacije) za svaki od odjela kako ne bi sjedili besposleni. Upravo iz tog razloga lvl dizajneri mogu sastaviti lokaciju bez modela iz igre, samo za opći izgled, dok maketari rade te iste modele. Ako je potrebno, programeri su uključeni u isti posao; oni također mogu stvoriti bilo kakve efekte igre (na primjer, pomoću magije). Vrlo često tijekom razvoja postoje trenuci kada neki kvadrati bljuju plamen samo zato što još nema modela heroja.

U svemu tome pisci pišu scenarij, jer njihov rad nema utjecaja na razvoj ostalih dijelova. Najteže je glazbenicima, jer je njihov zadatak napisati glazbu koja će se savršeno uklopiti u igru ​​i dodati joj atmosferu. Ali prilično je teško to učiniti ako sama igra još ne postoji. Stoga je pisanje glazbe odgođeno za kasnije faze razvoja. Ali oni još uvijek ne sjede besposleni - zvukovi okoline, predmeti i likovi - sve to treba snimiti prije nego što igra počne poprimati radni oblik. To se odnosi i na modele likova, kao i njihovu opremu.

Kako igra postaje sve detaljnija, dizajneri igre stvaraju GDD (Game Designer Document), koji uključuje potpuni opis svih elemenata napravljenih za igru, podijeljen u dijelove. Način izvršenja uvelike ovisi o tome tko je uključen u ovaj dokument, ali se ipak mogu podijeliti u dvije skupine - oni koji dodaju sve podatke u dokument ili oni koji dodaju samo kratak opis (primjerice zadatka iz igre). ), ali ostavite poveznicu na detaljniji dokument. U prvom slučaju, sav materijal se prikuplja na jednom mjestu, ali zauzima ogromnu količinu informacija (tisuće stranica), u drugom - praktičnije pretraživanje dokumenata i brzo čitanje dokumenta za dobivanje „kratkih informacija ”.

Postupno, kako se stvaraju različiti objekti i elementi, svi se oni kombiniraju uz pomoć programera. Za početak se stvaraju jedna ili dvije lokacije za igru, nekoliko vrsta opreme i sposobnosti. Ovo je učinjeno kako bi se testirale ove mehanike i kako će raditi u samoj igri. Nakon što je sve uspješno, rad na igri se nastavlja, a sama igra se postupno širi, dobivajući nove detalje i značajke. Svi oni idu svojim putem od dizajnera igara do programera, a svaki član tima im pridonosi.

U igrama koje nude otvoreni svijet, poseban zadatak programera je ograničiti svijet igre, ali bez da sami igrači to shvaćaju. Stoga, ako vas na neke lokacije ne pušta jaka vatra ili ulaz čuva posebno zlo čudovište, to znači da programeri jednostavno nisu htjeli da tamo stignete prije vremena. Možda ćete uz pomoć trikova i nevjerojatnih napora uspjeti doći tamo, ali tamo (u ovom trenutku) nećete pronaći ništa zanimljivo.

Nakon što je većina igre gotova, vrijeme je za izmjene. Sve što je već spremno obrađuje se i po potrebi mijenja, dodaju se novi dijelovi ili, obrnuto, nešto se potpuno uklanja. U ovoj fazi najvažnije je svaki dio dovesti u savršeno stanje, jer je to oblik u kojem će biti pušten.

Nakon finalne izrade igre, dolazi vrijeme za potpuno testiranje. Tim testera detaljno proučava svaki dio igre, svaki element i svaku akciju, pokušavajući pronaći pogreške ili netočnosti. Kada se pronađu, takve se pogreške brzo ispravljaju. U pravilu, dio igre koji je već “ispiljan” uključen je u otvoreni pristup (otvoreno testiranje), ali ipak neke od grešaka su još uvijek prisutne.

Ali čak i nakon izlaska igre, rad na njoj ne prestaje. Programeri ispravljaju manje netočnosti ili dodaju elemente koji igru ​​čine praktičnijom. I naravno, rade na izdavanju dodataka. Mnogi ljudi misle da se dodaci izrađuju tijekom glavne razvojne faze i onda jednostavno puštaju u dijelove, ali to nije točno. Rad na dodacima može započeti ili u završnoj fazi razvoja igre ili odmah nakon njezina izdavanja. Upravo u dodacima programeri pokušavaju implementirati one ideje koje nisu mogli dodati tijekom izdavanja glavne igre.

Ali PR tvrtka počinje puno prije nego što igra ima radni izgled. Vrlo često se slike i video zapisi objavljuju na internetu čim se odobri izgled vanjskog junaka. No, nakon toga programeri više ne mogu mijenjati njegov izgled i mogućnosti (ako su prikazane u videu). jer će onda morati promijeniti i sam video. Iako, postoje iznimke. Na primjer, samim igračima se stvarno nije svidio izgled glavnog lika u igri The Witcher 2: Assassin of Kings, zbog čega su ga programeri promijenili nakon objave videa.

Neki elementi tijekom razvoja mogu se činiti sitni i beznačajni, ali samo pažljivim pristupom svim detaljima, kao i zajedničkim naporima cijelog tima, igra može ispasti dobra. Kako biste stvorili zanimljiv svemir, morate ga u cijelosti promisliti, njegovu povijest, pa čak i one elemente koje igrač nikada neće vidjeti. Samo u ovom slučaju ljudi će se sjećati igre i željeti nastavak, koji će programerima omogućiti da ponovno sjednu za svoja računala i ožive svoje fantazije.

RPG za tjedan dana? Od nule? Je li uopće moguće?
Riskirao sam i uspio.

Internet je pun izvora informacija dostupnih malim, neovisnim (indie) programerima igara. Na jednom takvom javnom forumu, tijekom svađe, imao sam drskosti izlanuti kako bih, kad bih dobio tjedan dana vremena, računalo sa svježe instaliranim Windowsima i dobru internetsku vezu, mogao napraviti pristojnu igru ​​bez trošenja novčića na tome. Ne, sigurno se neće moći natjecati s Halo 2 ili bilo čime iste razine (da sam mogao napraviti takvu igru ​​u tjedan dana, davno bih dao otkaz na poslu), ali bit će vrlo zanimljivo i igriv.

Tom Bampton, mjesečni recenzent igara za Game of the Day (www.gameinaday.com), rekao je, "Samo naprijed!" Zatim je dodao dodatni uvjet - moram to učiniti bez korištenja postojećih motora za igre. Mogu koristiti samo osnovne biblioteke/API-je.

Isprva sam odbio ovu ideju. Nisam imao dodatnog vremena za tjedan dana odmora od razvoja trenutnog projekta igre na poslu. Ali onda sam pomislio: dovraga, što je tjedan dana? U tipičnoj tvrtki, kao što je E.A., radni tjedan traje 40 sati. Pa zašto ne napraviti igru ​​ne u jednom kalendarskom tjednu, već u 40 čistih sati? Ovo je već stvarnije, ali nisam želio stvoriti još jedan Tetris ili Arkanoid. Što je s igranjem uloga - jednim od najzahtjevnijih žanrova igranja? Je li to moguće?

Znao sam da će biti izuzetno teško. Ali prihvatio sam izazov.

Osim toga, detaljno sam zapisao što sam i kako radio te opisao napredak razvoja. Mislio sam da bi to moglo biti zanimljivo za programere igara - ili bi barem bio zabavan zapis o tome kako sam pao na lice ako nisam uspio. Sve što sam dobio bila je dugačka, lutajuća evidencija mojih aktivnosti po satu. Pokušao sam to promijeniti kako čitanje ne bi bilo dosadno. Kako je ispalo, procijenite sami.

Dakle, ovako sam napravio igru ​​u jednom tjednu od nule, i to bez budžeta. Ako ste previše lijeni za čitanje i želite brzo baciti pogled na kraj priče kako biste saznali kako izgleda konačni proizvod i vidjeli sve njegove greške, verziju igre za Windows možete preuzeti ovdje: http://www. rampantgames.com/hackenslash.html

PLANIRANJE
Cilj
Napravite RPG stare škole u stilu starih igara iz ranih 80-ih, s pogledom odozgo prema dolje, kao što su The Temple of Apshai, Ultima III i Telengard. Igrač će se kretati kroz sobe u tipičnoj tamnici, boreći se s raznim čudovištima koristeći "mač i čarobnjaštvo". Postupno će poboljšati svoje sposobnosti stjecanjem iskustva, podizanjem razine i nabavom čarobne opreme.

Međutim, igra se neće sastojati samo od stvarne borbe. Igrač će također imati priliku prošuljati se pokraj čudovišta ili ući u pregovore s njima. Bit će zaključana vrata i škrinje, te jedinstvene značajke tamnice koje imaju neočekivane učinke. Igra neće imati duge opise ili dijaloge - uglavnom će biti tipičan hack & slash. Napredovat ćete stazom sve dok ne postanete dovoljno jaki da se suočite s konačnim šefom, dovršite zadatak i sigurno se vratite kući (u svoju početnu sobu).

Pravila razvoja

Pravilo #1: Vrijeme razvoja ograničeno je na tjedan dana (od 40 sati)
Ukupno ne bi trebalo potrošiti više od 40 sati na razvoj igre. To će uključivati ​​vrijeme provedeno u stvarnom radu na igri i razmišljanju o njoj. Pauze u razvoju dulje od deset minuta neće se uzimati u obzir. Ovo bi bio "idealan" radni tjedan od 40 visoko produktivnih sati.

Potpuno funkcionalna alfa verzija bit će napravljena za 40 sati. Daljnja dorada, kao što je konačno otklanjanje pogrešaka igre, izrada instalacijskog programa za distribuciju neće se uzeti u obzir u ukupnom vremenu, u ovoj fazi neće se dodavati nove funkcije. Dokumentiranje procesa razvoja također se ne uzima u obzir.

Pravilo #2: Koristite samo besplatne alate
Uz izuzetak softvera koji dolazi s instalacijom sustava Windows, koristi se samo besplatni softver, gdje je to moguće otvorenog koda. Poanta ovoga je pokazati da vam nisu potrebni skupi (ili čak jeftini) alati za razvoj igre. Ovo pravilo ne vrijedi za opremu poput skenera, mikrofona i digitalne kamere – ako ih nemate, pretpostavit ćemo da ih možete od nekoga posuditi.

Pravilo #3: Bez motora, samo standardne biblioteke/API-ji
Igra mora biti kreirana od nule bez korištenja postojećih pokretača igre. Bez varanja ili stvaranja igre ili bilo kojeg njezinog dijela pomoću dizajnera igara ili pomoću sličnog softvera.

Alati
Kodirati:

Python 2.3 (http://www.python.org/)
PythonWin
PyGame (http://www.pygame.org/)
Py2exe - za kompajliranje onoga što se događa u izvršnu datoteku za distribuciju. (http://starship.python.net/crew/theller/py2exe/)

Gimp 2.0 (http://gimp-win.sourceforge.net/)
MS Paint (onaj koji dolazi uz Windows) - za umetanje snimki zaslona snimljenih tipkom PrintScreen (GIMP je to iz nekog razloga odbio učiniti)
Besplatne teksture preuzete su s (http://www.textureartist.net/textures/index.htm) i (http://www.mayang.com/textures/)

Audacity (http://audacity.sourceforge.net/) plus moj mikrofon ili besplatni.

Raspored (Plan) rada
Rasporedi su napravljeni da se krše, ali su i dalje potrebni za praćenje napretka i redova te po potrebi unošenje prilagodbi.

Sat 1-10: Osnovna arhitektura
Dizajn motora i glavnih komponenti. Neka svijet bude prikazan na ekranu. Moram implementirati mogućnost premještanja testnog igrača po svijetu i gledanja stvari, a zatim to pretvoriti u uređivač igre.

Sat 11-20: Mogućnosti igrača
Implementacija svih glavnih mogućnosti za igrača - kretanje, napad, otvaranje vrata, umiranje, skupljanje stvari i korištenje inventara. Napravite prikaz kostura svih objekata u okruženju kako biste testirali igračeve sposobnosti u interakciji sa svijetom.

Sat 21-30: Oživjeti svijet
Dodajte umjetnu inteligenciju, događaje u igri, zamke, specijalne efekte. Do kraja ovog razdoblja trebao bih imati prilično kompletan tehnički demo, uključujući sve glavne značajke igre.

Sat 31-40: Dodavanje sadržaja i pravila
Preuzmite cijelu igru ​​iz tehničke demonstracije. Dodajte sav dodatni sadržaj. Postignite cjelovitost i ravnotežu mehanike igre. Ispolirajte sve za što imate vremena, dodajte specijalne efekte, animaciju itd.

Nakon 40 sati: testiranje i puštanje igre
Testirajte i uklonite pronađene pogreške (bez dodavanja novih značajki!) Sakupite sve na hrpu i postavite na Internet. Kompletna dokumentacija.

Hackenslash Developer Diary: Igra tjedna

1. sat – Divlji dizajn i osnovni tečajevi
Ovaj sat je potrošeno na stvaranje nekih osnovnih klasa za igru ​​- i njihovo korištenje u daljnjem dizajnu. Svijet će biti predstavljen kao niz prostorija povezanih portalom. Sve na svijetu temelji se na sobama, slično kao u starim avanturističkim igrama ili MUD-ovima. Većina objekata u igri predstavljena je kao "GameObject", koji ima položaj i sadržaj (i može sadržavati druge objekte - karta može sadržavati sobe, soba može sadržavati škrinju, škrinja može sadržavati mač... i Mislim da mač može sadržavati nekoliko soba, ali nećemo to učiniti.)

Stvaram objekte stvorenja i igrača
Generiram skup atributa za stvorenja i implementiram ih u klasu. Očigledno sam štreber koji igra previše RPG igara. Još ne znam točno kako će izgledati i raditi mehanika igre.
Izrađujem objekt sobe koji nasljeđuje GameObject. Soba ima širinu, visinu i zidove - i trenutno ništa drugo.

Polako počinjem shvaćati kako će sve funkcionirati i unositi potrebne ispravke. U ovom trenutku niti ne pokušavam koristiti PyGame i program ne prikazuje ništa osim konzole. Ali smatram da je sve što je učinjeno veliki napredak!

Sat 2 - PyGame 101
Cilj ovog sata je inicijalizirati PyGame i početi crtati barem nešto na ekranu. Zapravo, većinu svog vremena provodim čitajući PyGame dokumentaciju, pokušavajući shvatiti što se tamo nalazi i kako to učiniti, budući da nemam gotovo nikakvog iskustva s korištenjem PyGamea ili SDL-a.

Sat završava programom koji prikazuje prazan zaslon ispunjen crnom bojom. Nije impresivno. Zapravo, iza ovog prozora krije se mnogo toga. Postoji petlja igre, prebacivanje okvira, pozivanje više klasa i puno neaktivnih stvari. Ali to ne čini crni ekran još impresivnijim.

3. sat - Kad bi zidovi imali uši, ja bih ih žestoko izgrdio.
Svrha ovog sata je definirati obrise prostorije zidovima i prikazati ih na još uvijek crnom ekranu. Da bih to učinio, trebam sobu i trebam grafiku. Moram puno sjediti u GIMP-u, uređujući teksture preuzete s interneta tako da se pretvore u odgovarajuće pločice. Stvaram klasu upravitelja teksture. I popunjavam strukturu sobe za uzorke. Također sam proveo malo više vremena pregledavajući PyGame dokumentaciju kako bih pronašao bilo što drugo što bih mogao upotrijebiti da olakšam posao.

Prošao je jedan sat. Ali još uvijek imam isti crni ekran. Još uvijek nije bilo zidova.

4 sata – U hotelu ima slobodnih soba
Nakon što sam se borio s nekim pogreškama u sintaksi, napokon sam uspio postići da se zidovi pojave na ekranu. Istina, prikazani su pogrešno, nisu na naznačenom mjestu, pa čak i s razmacima između segmenata. Užasno je. Ali uz malo dotjerivanja i uređivanja, dobio sam nešto što je na ekranu izgledalo kao soba veličine 10 puta 10 kvadrata.

Bez detaljnog plana projekta, zapravo je prilično lako zbuniti se kada ste završili neki posao i pitati se: "Što je sljedeće?" Odlučio sam da ako je crtanje jedne sobe dobro, onda bi crtanje dvije bilo dvostruko bolje.

Za pohranjivanje kreiranih soba napravio sam datoteku "minidungeon".
Počet ću dodavati logiku za "portale" - rupe u zidovima koje vode u druge prostorije (i pružaju sve informacije o pomaku potrebne za ispravan prikaz susjednih soba).

Sat 5 - Hackenslash dobiva više soba

Promijenio sam naslov prozora u "Hackenslash!". Samo zato što je cool.
Napravio sam mapu značajki za pohranu soba i klasu MapMaster koja sadrži nekoliko mapa.
Dodao sam drugu sobu i povezao je s prvom kroz portal.
Susjedne sobe su portalima povezane s trenutnom i sada se prikazuju na ekranu.
Ispravio sam neke pogreške pri isjecanju tako da se zidovi koji se djelomično protežu izvan prozora ispravno prikazuju.

6. sat - tijekom kojeg usavršavamo svoje vještine crtanja

Dodana je klasa vrata i također konfigurirane karte za postavljanje vrata (vrata moraju biti zajednička za dvije sobe). (Edit: Volio bih da ovo nikad nisam koristio!)
Napravio sam još 3 zidne pločice i spojio ih u jednu sliku.
Grafički izgled zidova varira ovisno o vrsti.
Radim jednostavnu grafiku za pogled odozgo prema dolje.

Sati 7-8 – vrtnje i uzvici!

Shvatio sam kako rotirati bitmape u PyGameu.
Natjerao sam testni player da se vrti glatko. Za ispravljanje kuta rotacije potrebna su mnoga podešavanja.
Naučio sam kako koristiti fontove u PyGameu i stvaram neke klase za prikaz i animiranje teksta.
Dodana klasa za automatsku obradu teksta, budući da će se ova funkcionalnost često koristiti u budućnosti.

Sati 9-11 – Elementi - brrrr!

I ovdje opet trebam riješiti pitanje "Što je sljedeće?"

Sobe trebaju više zanimljivih elemenata, pa morate napraviti njihov popis. Ne znam kako bih ih sistematizirao, pa sam odlučio krenuti od onih općih. Uveo sam tri statična elementa koja se mogu naći u tipičnoj prostoriji tamnice: tepih, stup (blok s istom funkcionalnošću kao i zidovi) i ljestve (omogućuju vam da ih premjestite na novu lokaciju)

Odlučio sam da elementi mogu zauzeti više od jedne pločice i mogu se rotirati u bilo kojem stupnju. (Edit: retrospektivno, vrlo glupo rješenje - proveo sam previše vremena implementirajući ga, ali se pokazalo gotovo beskorisnim.)

Ukupno sam proveo oko tri sata radeći na elementima, razapet između kreiranja grafike i pisanja koda.

Sati 12 - 13 - Treba nam plijen!

Stvaram grafiku i kod za stvari. Nevjerojatno je koliko vremena crtanje može potrajati. Posebno je neugodno kada slika izgleda kao da ju je šapom nacrtala kokoš, ma koliko truda uložili u to.

Stavkama sam dodao puno karakteristika, uključujući njihovu cijenu, veličinu, utore za opremu i još mnogo toga. S njima se još ne može komunicirati, ali barem se pojavljuju na pravim mjestima u sobi.

14. sat - Tepisi

Kasnim za rasporedom, što da radim?
Crna pozadina djeluje previše ružno, pa sam podove unutar sobe obložio tepisima - zasebnim pločicama.

Nakon toga se odjednom pokazalo da sam zaboravio dodati prozirnu pozadinu spriteovima igrača i stvarima. Morao sam potrošiti dosta vremena ispravljajući ovaj propust.

Ali razina sada izgleda super. Pa barem hladniji od crnog.

Sati 15-16 - Klik! Klik!

Preuzeo sam kontrolu miša i obradu događaja.
Dodana kontrola znakova pomoću miša. Kretanje je i dalje trzavo, nema glatkog pomicanja razine.
Igrač može hodati izvan sobe, nema provjere sudara.
Ispravio sam nekoliko grešaka.
Mučio sam GIMP i stvorio prekrasne stepenice.
.
Već sam potrošio skoro 17 sati na razvoj, pa sam počeo biti malo nervozan. Prošao sam 2/5 puta kroz kreiranje igre - završio je drugi "radni dan" razvoja. Ono što sam već napravio je impresivno, ali razumijem da je ostalo još puno toga za učiniti. Imam još četiri sata da završim osnovne značajke igrača i uklopim se u raspored. Bit će teško... ali svejedno mi nije žao što sam potrošio dodatno vrijeme na crtanje grafika!

17. sat – Krećemo se glatko dok ne udarimo čelom o zid

Najviše vremena potrošeno je na fino podešavanje grafike i ispravljanje grešaka.
Dodano otkrivanje sudara i glatko pomicanje kada se igrač pomiče.
Igrač sada može napraviti nekoliko koraka (okreta) kao odgovor na akciju miša.

18. sat - Obilaženje pragova

Igrač sada može ići kroz portale u druge sobe.
To uzrokuje kozmetičku grešku s preklapanjem zidova i podova između susjednih prostorija.
Ispravljene su mnoge greške povezane s rotacijom, zbog kojih su portali bili neprohodni.

Sat 19 - Stepenice do neba, Pakleni meni

Moj brat se dobrovoljno javio da napravi glazbu za igru. Radio je glazbu za Void War i ispalo je prilično dobro. Ovo me podsjetilo da moram malo reproducirati zvuk (i glazbu). Čini se da je ovo prilično lako učiniti u PyGameu, pa ne bi trebalo predugo trajati. (Edit: nikad nisam našao vremena za ovo, nažalost nećete čuti niti jedan zvuk u Hackenslashu.)

Moj sljedeći cilj je rukovanje interakcijom sa stvorenjima i predmetima. Jako mi se sviđa način na koji to rade The Sims i Neverwinter Nights, kada želite komunicirati s objektom igre, pojavljuje se kontekstni izbornik. Planiram implementirati nešto slično.

Učim stepenice za premještanje igrača u novu sobu.
Malo sam pretražio Internet i PyGame dokumentaciju da vidim postoji li neki otvoreni kod za sličan PyGame izbornik. I nisam ništa našao.
Počeo sam sastavljati svoj jelovnik.

Sati 20 - 21 - Što je s jelovnikom?

Još uvijek radim na jelovniku. Izbornik se lako može povezati s objektom, odnosno čini se da objekt generira izbornik, što je olakšalo implementaciju povratne informacije za obradu odabira igrača.
Počeo sam raditi na izborniku stvari. Već se pojavljuje na pravom mjestu i omogućuje vam odabir stavke, ali kada se pritisne još ništa ne radi, radi samo gumb za zatvaranje izbornika.

Sat 22 – Zaspite u procesu

Nastavljam raditi na stvarima - pokušavam implementirati njihovu funkcionalnost i naučiti ih da odgovaraju na naredbe izbornika, uključujući mogućnost dodavanja kontekstualnih informacija. Sada ima malo funkcionalnosti, ali i dalje radi, prikazujući informacije o pokrenutoj naredbi
Unaprijedio sam računanje kretanja pri izvođenju raznih radnji, čime sam dobio veću pokretljivost.

Primjećujem da je kasno, i da sam daleko prekoračio predviđeni sat za ovaj posao. Da nisam obratio pozornost na ukupno vrijeme razvoja, vjerojatno bih sjedio tamo do jutra. Ali budući da sam ograničen s vremenom, sat vremena koji sam praktički izgubljen stvarno je loša vijest. Zanimljivo je kako se prioriteti mijenjaju u stisci s vremenom. Uglavnom, idem u krevet.

Sat 23 - Borbeni parametri!

Mijenjam (pa, zapravo tek počinjem) neke atribute klase stvorene u prvom satu.
U gornjem desnom kutu kreiram panel koji će prikazati opcije igrača.
Optimizirao sam ovaj prozor tako što sam ga pretvorio u sliku koja se crta brže od fontova. Ova se slika ažurira samo kada se promijene parametri znakova povezani s njom.

Sat 24 - izbornik igrača

Dovršio sam optimizacije za prozor opcija.
Stvoren je skočni izbornik koji se pojavljuje kada igrač klikne na lik.
Napravio sam brzi izbornik za korištenje napitaka, bacanje čarolija itd.
Popravio sam neke greške u izborniku.

Sat 25 – Prije (ponovnog) piljenja podova i zidova

Jutros mi se u mozgu pojavila ideja (je li moj mozak stvarno toliko velik da stane toliko ideja?) kako riješiti problem preklapanja zidova u susjednim sobama (vidi opis osamnaestog sata). Što ako obojim samo pola zidova? Na taj način uopće neće biti preklapanja i nema potrebe dodavati složenu logiku za otkrivanje i ispravljanje preklapanja.

Počinjem raditi na realizaciji ove ideje. Nažalost, zapravo, izmišljeno pojednostavljenje još više komplicira renderiranje prostorije (osobito podova) i ne može se implementirati tako brzo kako sam se nadao. Bilo je potrebno oko sat vremena za izradu i otklanjanje pogrešaka u ovom sustavu. Ali vrijedilo je.

Tijekom debugiranja koda, otkrio sam još nekoliko grešaka vezanih uz prijelaz između soba.

BREAK - Kriza!

Upravo sam shvatio da je prošlo više od 3/5 dodijeljenog vremena razvoja i da je preostalo manje od petnaest sati da se igra završi. Pogledavši raspored potrebnih funkcija igrice, te procijenivši da je za implementaciju svake u prosjeku potrebno sat vremena, shvatio sam da mi za implementaciju svega treba oko dvadeset i pet sati. Deset sati više nego što jest. Projekt je službeno u opasnosti.

Ne mogu prekoračiti vremensko ograničenje. Također je nemoguće privući pomoćnika ili kupiti kod/resurse, jer je propisano da ću igru ​​napraviti sam za 40 sati. Moram smisliti kako raditi još učinkovitije - ali već naporno radim na maksimalnoj produktivnosti. Čini se da nemam drugog izbora, morat ću ponovno razmotriti funkcionalnost i odlučiti koje značajke izbaciti iz igre.

Vrata: Rez! Stvarno želim napraviti vrata u igri. Šteta je odvajati se od ove funkcije - pogotovo jer sam na njoj radio neko vrijeme. No, ostalo je još previše posla, poput umjetne inteligencije. I vjerojatno bi trebalo 2-3 sata da ih natjeram na posao, a ja ih nemam.
Inventar: Pojednostavite! Zaboravite na dodatni inventar i mogućnost mijenjanja oružja po želji. Sve što je pokupljeno, a nije postalo trenutna oprema, odmah će se pretvoriti u novac.
Zamke: Pojednostavite! Želio bih imati razne zamke sa zanimljivim i raznolikim posljedicama za njihovo aktiviranje. Nije suđeno da bude. Zamke će imati jednostavan vizualni učinak, nanijeti štetu i privremeno povećati šansu da naletite na slučajno čudovište
Lukovi (malo oružje): Rez! Igra će imati samo oružje za blizinu; možete napadati iz daljine čarolijama.
Spremanje/učitavanje igre: Pojednostavite! Možete spasiti samo svoj karakter, a ne stanje svijeta. (EDIT: nisam ni to napravio!)
Sustav čestica: Ostavite sa strane! Stvaranje sustava čestica pomaknuto je na dno liste prioriteta. Sumnjam da ću ih morati raditi. Volio bih napraviti neke impresivne vizualne efekte koristeći čestice za čarolije... ali to se vjerojatno nikad neće dogoditi.
Čarolije: Pojednostavite! Imao sam ozbiljan koncept o čarolijama: mogle su se naći u obliku svitaka, a bilo ih je više od desetak. Tužno je, ali bit će samo nekoliko čarolija: Iscjeljenje, Oštećenje, Oslabljenje, Ojačanje i Obnova. Prilikom prelaska na razinu moguće je dopustiti igraču da ojača čarolije povećanjem broja magičnih bodova.
Animacije čudovišta i igrača: rez! Nisam dobar umjetnik da to radim dovoljno brzo.

Kada odlučujem što neću učiniti (ili što ću odgoditi za kasnije), jednako je važno odlučiti što prvo treba učiniti.

Puno je stvari planirano u igri za koje mislim da su vrlo važne - pronalaženje zamki, tajnih vrata (dobro sada tajnih prolaza) i razbijanje škrinja. Ali srž igre je borba. Pa sam se odlučio usredotočiti na to, učiniti to mojim glavnim prioritetom. Postavio sam si cilj: za sat i pol moja će čudovišta toliko oživjeti da ih se može ubiti.

Super, posložili smo prioritete, idemo dalje s razvojem.

26. sat – Bacimo kockice

Radim na "dice" mehanici, mehanizmu kojim će se u igru ​​unijeti element slučajnosti. Budući da nemamo ograničenja pravih kockica, možemo dobiti nasumični broj u bilo kojem rasponu koji želimo. Na primjer od 1 do 33, ili od 6 do 17. Tako mogu baciti kockice, usporediti što je ispalo s mojim napadom i obranom neprijatelja. Ako je bačeni broj veći od obrane, napad je uspješan.

Na primjer, recimo da imam ukupnu vrijednost napada 15. Napadam čudovište koje ima 10 obrana. Moje šanse su 15 od 25 (25 =15 +10) ili 3 od 5. Dakle, igra će generirati nasumični broj između 1 i 25, a ako je veći od deset, ja pobjeđujem.

Malo drugačija metoda koristi se za izračun nastale štete. Branitelju sam dodao parametar "armor", a napadaču "damage". Generiram nasumični broj od 1 do njihovog zbroja i zatim oduzimam oklop. Ako je rezultat manji od jedan, šteta se ne nanosi. U suprotnom, jednak je dobivenom rezultatu. Dakle, ako čudovište s 10 oštećenja napadne igrača s 5 oklopa, igra će generirati broj od 1 do 15, od kojeg će oduzeti 5, što je i nanesena šteta.

Ovo objašnjenje i opis trajali su dulje nego njihova implementacija.

Na kraju sata smanjio sam veličinu područja prikaza tamnice, sada je dio prozora s desne strane potpuno posvećen korisničkom sučelju, ova je promjena donijela neznatno povećanje performansi. Također sam se pobrinuo da kretanje igrača ne utječe na broj sličica u sekundi.

Svidio vam se članak? Podijelite sa svojim prijateljima!
Je li ovaj članak bio koristan?
Da
Ne
Hvala na odgovoru!
Nešto nije u redu i vaš glas nije uračunat.
Hvala vam. Vaša poruka je poslana
Pronašli ste grešku u tekstu?
Odaberite ga, kliknite Ctrl + Enter i sve ćemo popraviti!