Proiect „Crearea unui joc pe calculator folosind Game Maker”. Cum se fac jocurile pe calculator? Programe pentru jocuri pe computer

Dezvoltarea jocului este pe linia de plutire, este promițătoare și câștigă popularitate. Am pregătit o infografică detaliată despre calea dezvoltării jocului de învățare.

Există multe domenii asociate cu dezvoltarea jocului și fiecare etapă de învățare se bazează pe etapa anterioară. De exemplu, nu ar trebui să sari imediat la motoarele de joc. Începeți cu dezvoltarea de software, studiați matematica cu o ascuțire pentru programarea jocurilor și abia apoi treceți la dezvoltarea jocului. Fiecare dintre pașii prezentați este un ghid pas cu pas care include cărți și alte materiale.

0. Dezvoltarea de jocuri pentru copii

Multe cărți se concentrează pe mediul legendar și intuitiv de dezvoltare Scratch pentru copii, inclusiv ScratchJr. După bază, vin informații despre Python Pygame. Există o carte pentru copiii de cinci ani, dar cea mai mare parte a materialului este potrivit pentru copiii cu vârsta de peste 8 ani.

1. Informatica

Forjarea teoretică este o componentă obligatorie, fără de care studiile suplimentare sunt lipsite de sens. Această selecție de literatură educațională include elementele de bază, informații despre algoritmi și matematică în contextul studierii informaticii.

2. Limbaje de programare

A vorbi limbajul calculatorului nu este ușor, dar este posibil. Și există o mulțime de astfel de moduri. De exemplu, limbajul C a influențat semnificativ industria software, împărtășindu-și sintaxa cu popularele C#, C++ și Java. C++, la rândul său, este un limbaj puternic pentru crearea de programe și pachete software eficiente. Mulți scriu jocuri și în C#: limbajul este inteligent, convenabil și vă permite să începeți dezvoltarea mai rapid.

Dar Lua a adoptat ceva din C++. Un limbaj de scripting este bun pentru logica jocului. Va facilita inițializarea unui nivel, legarea sarcinilor la obiecte, schimbarea comportamentului NPC-ului în mod interactiv, fără a fi nevoie să recompilați proiectul și multe altele.

3. Creați aplicații

Și dacă informatica este o bază teoretică, atunci există mai multă practică aici. Dezvoltarea jocurilor este un drum accidentat, iar aplicațiile sunt cel mai bun loc pentru a începe. Cărțile cu sarcini practice, precum și informații despre modele și UML vă vor ajuta să vă dați seama ce este.

4. Matematică pentru dezvoltarea jocului

Nu, nu va exista un curs școlar de algebră și geometrie. Selecția este împărțită în bazele matematicii în domeniul dezvoltării jocului și un nivel mai avansat.

5. Programarea jocurilor

Platforme hardware, sisteme de operare, seturi API, algoritmi, cross-platform și alte aspecte importante care vor sta la baza jocului în curs de dezvoltare. Cărțile sunt completate de o serie de articole gamedev care conțin informații utile despre programare.

6. Dezvoltarea motorului de joc

Motorul este inima jocului, care „încarcă” funcționalitatea și instrumentele necesare. Primele cărți vă vor introduce în arhitectură și design. Mai mult, „motoarele de joc” sunt împărțite în instrumente, optimizare, scripturi și materiale suplimentare sub formă de articole. În timpul cunoașterii, sunt afectate modelele, trucurile algoritmice, optimizarea în Unity și alte nuanțe.

7. Grafică pe computer

Da, conținutul este important, dar grafica computerizată este analogă cu interfața aplicației pe care o vor vedea utilizatorii. Prin urmare, ar trebui să i se acorde o atenție deosebită.

Nu e de mirare că această secțiune este cea mai mare. Aceasta include elementele de bază ale programării cu Real-Time 3D, DirectX și OpenGL. Totul este completat cu informații despre randare și tehnologii. Direct3D și OpenGL au primit o atenție deosebită în selecție.



8. Audio joc

Dezvoltarea jocului este și despre audio: acestea sunt sunete făcute de NPC-uri, personajul principal, fenomene sau obiecte, precum și muzică. Programarea audio costă doar două cărți, dar oferă informațiile necesare într-un mod accesibil.

9. Fizica jocului și animație

Una dintre cele mai dificile etape. Pe lângă baza de software și imagini, trebuie să existe legi prin care toate acestea interacționează. Fizica jocurilor și programarea animației sunt acoperite în 17 cărți. Afectat separat de imitarea lichidului.

10. Joc inteligenta artificiala

Există o mulțime de personaje controlate de computer: pot fi mafioți, questgivers și chiar șah obișnuit. Abundența de cărți vă va permite să înțelegeți principiile AI. Mai jos este o listă de articole tematice utile.

11. Programare joc multiplayer

Dezvoltarea jocului cu un singur jucător este foarte diferită de opțiunile multiplayer. Aici trebuie să luați în considerare conexiunea, munca firelor și alte nuanțe. Selecția a fost împărțită în articole și cărți despre programarea serverelor, programarea rețelei și protocolul de rețea.

La fel ca multe alte moduri de a implementa idei globale, dezvoltarea jocurilor pe calculator este un eveniment bine planificat și bine uns. Crearea jocurilor are loc strict în etape, în plus, nu este recomandat să săriți peste nicio etapă de dezvoltare a jocului. Acest lucru se explică prin faptul că dezvoltarea proiectului necesită mult timp, iar în perioada dintre desenarea modelelor 3D și finalizarea fizicii jocului, ideile se pot schimba de mai multe ori.

Dezvoltatorii de jocuri nu reușesc adesea să finalizeze un joc într-o perioadă rezonabilă de timp. Acest lucru se datorează faptului că, după dezvoltarea unui joc pe computer și înainte de a fi lansat, se efectuează testarea beta, unde sunt identificate erori, apoi dezvoltatorii fac ajustări la joc. Dacă procesul de creare a unui joc nu este luat în serios, ciclul (lansare beta -> testare beta -> corecție -> lansare beta) va trece de foarte multe ori și dezvoltatorii nu vor respecta termenele care le-au fost alocate.
O idee clar declarată va împiedica dezvoltatorii să renunțe la crearea jocului atunci când jumătate din muncă a fost deja făcută. La urma urmei, dacă te ții de plan, succesul este garantat, desigur, dacă planul este bun și termenele sunt realiste.

Etapele dezvoltării unui joc pe calculator.


Etapa pregătitoare (preproducție)- Aceasta este prima și foarte semnificativă etapă de lucru asupra jocului. În această etapă se dezvoltă și se documentează conceptul jocului, designul personajelor și se determină alegerea mijloacelor de implementare a proiectului. Este de remarcat faptul că în această etapă, o echipă cu artiști, designeri de jocuri, director tehnic, superiori sau chiar întreaga echipă își formează un plan pentru a crea un joc, denumit în continuare .
Echipele începători neglijează adesea acest pas pentru că ei Este nevoie de foarte mult timp pentru a scrie un document de proiectare, dar aceasta este marea lor greșeală. La urma urmei, își creează jocul fără un plan clar bine gândit; în cel mai bun caz, absența unui document de design întârzie foarte mult termenul limită. Dezvoltatorii nu știu ce trebuie să facă și vin cu sarcini din mers, la început iese bine, iar apoi acest cadou dispare împreună cu entuziasm și inspirație. O echipă care are un document de proiectare poate trece rapid la termene limită, fără a pierde timpul să-și vină cu munca, are o sarcină atentă. Scena, un fel de șine, dezvoltatorii văd scopul în fața lor, știu ce să facă în acest moment și ce să folosească pentru a-și duce sarcina. Acest lucru amortizează timpul petrecut cu gândirea și proiectarea documentului.
Când toate problemele administrative sunt rezolvate, jocul intră în faza de producție.

Productie- Aceasta este etapa cheie și cea mai lungă în crearea jocului. Probabil ghiciți după nume că are loc implementarea planului creat anterior de dezvoltator.
Pe măsură ce dezvoltarea jocului progresează, nu este neobișnuit să se facă ajustări la un plan scris anterior, determinând echipa să revizuiască intermediar rezultatele actuale de dezvoltare. La un anumit nivel de dezvoltare a jocului, fie că este un demo, nivelul unu, doi sau penultimul nivel, jocul este revizuit pentru modificări neplanificate. Poate că designerii au venit cu o idee genială, iar sincronizarea le permite să facă ajustări. Apropo, despre calendar - dezvoltatorii ar trebui să calculeze termenele limită cu o marjă de timp pentru ajustări.

Eliberare– și în sfârșit, vine momentul când jocul este lansat. Sute de mii de exemplare sunt trimise la rafturile magazinelor. Această etapă este marcată ca sfârșitul presiunii din partea editorului, deoarece dezvoltatorul a pregătit deja jocul pentru lansare, acum editorul acționează. Este treaba lui să distribuie și să vândă cât mai multe copii posibil și să reducă numărul de copii ale jocului piratat pe Internet. Scopul principal al editurii este profitul, deoarece încasările din vânzarea de copii justifică finanțarea dezvoltării unui joc de calitate.

A sustine Nu este un secret pentru nimeni că jocurile pentru PC apar adesea cu erori - dezvoltatorii de jocuri pentru PC nu au întotdeauna timp să lanseze un proiect până când testerii lor beta detectează toate erorile care trebuie remediate. Dar din fericire se poate repara. Pe jocurile pentru PC, puteți instala patch-uri care conțin remedieri. Fiecare patch următor include remedierea erorilor care au rămas în urmă cu patch-ul precedent. Dar nu este de dorit să abuzeze de acest lucru, cine dorește să cumpere un joc de la un dezvoltator care are experiență în lansarea versiunilor brute ale jocului. Merită să ai grijă de reputația ta.
Jocurile lansate pentru console sunt de obicei fără erori, deoarece dezvoltatorii de jocuri pentru consolă iau acest lucru mai în serios, mai degrabă ar amâna lansarea mai târziu decât lansarea unui joc cu erori. Acest lucru se explică cu ușurință prin faptul că instalarea de patch-uri pe versiunile de consolă ale jocului este aproape imposibilă.

Aproape că există o persoană care să nu fi jucat cel puțin un joc pe computer cel puțin o dată în viață, indiferent de pe un laptop sau dispozitiv mobil. Ei bine, care dintre voi, dragă cititoare a blogului nostru, nu a visat să vă creați propriul joc și, dacă nu să deveniți milionar datorită proiectului dumneavoastră, atunci să deveniți celebru măcar printre prietenii tăi?

Dar cum să creezi un joc Android de la zero, fără cunoștințe speciale și fără să cunoști măcar elementele de bază ale programării? Se dovedește că să te încerci ca dezvoltator de jocuri nu este o sarcină atât de dificilă. Acesta va fi subiectul materialului nostru de astăzi.

  1. idee sau scenariu.
  2. Dorinta si rabdare.
  3. Constructor de jocuri.

Și dacă primele două componente ale succesului sunt mai mult sau mai puțin clare, atunci a treia componentă trebuie discutată mai detaliat.

Ce este Game Builder

Vorbim despre un program care simplifică foarte mult dezvoltarea jocurilor, făcându-l accesibil persoanelor care nu au abilități de programare. Game Builder combină un IDE, un motor de joc și un editor de nivel care funcționează ca un editor vizual ( WYSIWYG- Engleză. abrevierea „ceea ce vezi este ceea ce primești”).

Unii constructori pot fi limitați de gen (de exemplu, RPG, arcade, misiuni). Alții, deși oferă posibilitatea de a proiecta jocuri de diferite genuri, limitează în același timp imaginația unui dezvoltator începător la jocuri 2D.

Chiar și după ce a citit doar ceea ce a fost deja scris, devine clar că pentru un dezvoltator începător care decide să scrie un joc pentru orice sistem de operare, inclusiv OS Android, alegerea unui constructor potrivit este sarcina principală, deoarece soarta viitorului proiect depinde privind funcționalitatea și capacitățile acestui instrument.

Cum să alegi designerul potrivit

Trebuie să începeți prin a vă evalua propriul nivel de cunoștințe în domeniul programării. Dacă tinde spre zero sau este absent cu totul, atunci este mai bine să încercați cele mai simple opțiuni. Și chiar dacă nu aveți cunoștințele necesare de engleză, atunci în acest caz puteți găsi un program care vi se potrivește.

Iar al doilea punct important atunci când alegeți un designer este funcționalitatea. Aici trebuie să analizezi foarte precis scenariul proiectului tău, deoarece cu cât jocul este mai dificil, cu atât vor fi necesare mai multe instrumente diverse pentru a-l crea, respectiv, designerul va avea nevoie de unul mai puternic.

Pentru a ajuta la alegere, mai jos îți vom prezenta atenției cele mai bune programe-constructori, ceea ce, în general, nu exclude faptul că tu, după ce ai răscolit temeinic forumurile sau site-urile de specialitate, vei alege altceva pentru tine, deoarece sortimentul acestei game de programe destul de larg.

Top 5 cei mai buni creatori de jocuri

Construcția 2

Această aplicație ocupă în mod constant primele rânduri în evaluările designerilor de jocuri. Cu Construct 2, puteți crea jocuri 2D de aproape orice gen pentru diverse platforme, inclusiv Android, precum și jocuri de animație destinate browserelor care acceptă HTML5.

Având în vedere numărul mare de instrumente auxiliare, chiar și utilizatorii începători vor putea stăpâni programul.

Pentru a stăpâni lucrul cu Construct 2, nu este nevoie să cumpărați o licență, versiunea gratuită gratuită oferă instrumente ample și posibilitatea de a exporta proiectul finalizat pe unele platforme. Cu toate acestea, codificarea produsului finit pe platformele mobile și accesul la întreaga gamă de funcționalități va oferi o licență personală de 129 USD. Dacă abilitățile tale de a crea jocuri a atins punctul culminant și ai început deja să primești peste 5.000 de dolari în venituri din proiectul tău, va trebui să iei opțiunea Business, care va costa 429 de dolari.

Și acum, urmăriți câteva tutoriale video practice despre crearea de aplicații de joc cu Construct 2:

Clickteam Fusion

Clickteam Fusion este un alt exemplu de mare constructor de jocuri cu drepturi depline, care ajută chiar și un începător să creeze un joc cu drepturi depline. Programul oferă posibilitatea de a exporta gratuit aplicațiile create în format HTML5, ceea ce înseamnă că va fi posibil să publicați jocuri de browser și, în plus, să le convertiți pentru publicare pe diverse piețe mobile, precum Google play.

Printre principalele caracteristici, se remarcă simplitatea interfeței, suportul pentru efectele shader și accelerarea hardware, prezența unui editor de evenimente cu drepturi depline, salvarea proiectelor în formate compatibile cu diverse platforme, inclusiv Android.

Versiunea de dezvoltator plătită a programului nu este disponibilă rezidenților Federației Ruse, dar discul său licențiat poate fi comandat de la același Amazon, ușurând bugetul personal cu o medie de 100 USD. Este posibilă rusificarea meniului printr-un rusificator terță parte.

Cum să lucrați cu aplicația, vizionați un curs video special:

Stencyl

Stencyl este un alt instrument grozav care vă permite să dezvoltați jocuri simple 2D pe computer fără cunoștințe speciale de coduri, precum și limbaje de programare pentru toate platformele populare. Aici trebuie să lucrați cu scripturi și diagrame, care sunt prezentate sub formă de blocuri, și puteți trage obiecte sau caracteristici cu mouse-ul, ceea ce este foarte convenabil.

Dezvoltatorul de programe oferă și posibilitatea de a scrie propriul cod în blocuri, dar acest lucru, desigur, necesită cunoștințe în domeniul programării.

Prezența unui editor grafic excelent Scene Designer permite utilizatorului să-și folosească imaginația pentru a desena lumi de joc.

Setul optim de funcții va ajuta la crearea de jocuri de înaltă calitate de diferite genuri, dar grafica Stencyl cu mai multe plăci (tiled) va fi relevantă pentru jocuri de împușcături sau rpg.

Programul este distribuit gratuit, dar exportul în formate desktop necesită un abonament, care va costa 99 USD pe an, iar o licență pentru jocurile mobile costă 199 USD pe an.

Urmăriți un curs intensiv despre lucrul cu Stencyl:

creator de jocuri

Programul există în versiuni plătite și gratuite. Opțiunea de buget vă permite să creați jocuri solide bidimensionale pentru desktop. În timp ce versiunea plătită face posibilă scrierea unor jucării 3D destul de „fanteziste” pentru Windows, iOS și Android. Suntem în continuare interesați de o oportunitate gratuită de a învăța cum să te realizezi în industria jocurilor de noroc, iar Game Maker este însăși opțiunea care îți va permite să creezi jocuri cu propriul scenariu fără restricții în alegerea unui gen.

Programul oferă o selecție de șabloane de locații gata făcute, obiecte, precum și personaje, sunete și fundaluri. Deci, toată munca creativă se reduce la tragerea elementelor selectate în zona de lucru și alegerea condițiilor - locația și interacțiunea cu alte obiecte. Deși nu este necesară cunoașterea unui limbaj de programare, dar utilizatorii care sunt „în cunoștință” vor putea folosi GML, ceva similar cu JS și C++.

Game Maker este distribuit în limba engleză, așa că cei care nu îl cunosc suficient de bine vor trebui să descarce fișierul crack.

Pentru cei care sunt interesați de acest program, vă sugerăm să vizionați videoclipul de instruire:

Unitate 3D

Unity 3D este poate cel mai bun lucru de oferit pentru crearea unui proiect 3D de calitate. În program sunt integrate modele complet finisate, precum și texturi și scripturi. În plus, este posibil să adăugați propriul conținut - sunet, imagini și videoclipuri.

Jocurile create cu Unity sunt compatibile cu toate platformele populare de la dispozitivele mobile iOS sau Android până la receptoarele SMART TV.

Programul se caracterizează prin viteză mare de compilare, interfață ușor de utilizat, editor flexibil și multifuncțional.

Toate acțiunile de joc și comportamentul personajelor se bazează pe nucleul fizic sunet al PhysX. Fiecare obiect creat în acest constructor de joc este o anumită combinație de evenimente și scripturi controlate de însuși dezvoltatorul.

Este important de înțeles că, deși programul este poziționat ca un designer de jocuri conceput pentru începători, este încă necesar un anumit nivel de cunoștințe pentru a lucra cu această aplicație. Ei bine, lucrul cu grafica 3D necesită un computer destul de modern echipat cu o placă video hardware.

O serie de lecții despre crearea de jocuri cu Unity 3D:

Deci, ați decis să vă îndepliniți visul de a vă crea propriul joc unic. Am încercat să oferim informații care ar putea ajuta în acest sens. Atenție, dacă ați citit cu atenție materialul prezentat și ați urmărit cel puțin pe scurt tutorialele video pentru fiecare program, atunci probabil ați observat că lucrul cu fiecare designer de jocuri se bazează pe același principiu. Prin urmare, este foarte posibil să puteți ridica ceva care este mai potrivit nevoilor dumneavoastră. Sperăm cel puțin că în această etapă întrebarea cum să faci un joc pe Android să fie închisă. Noroc!

Ce ar trebui să ia în considerare viitorii dezvoltatori de jocuri? Ce limbă să începi să înveți? Pentru ce să te străduiești? La cine să te uiți? Și ce trebuie făcut mai întâi?

Majoritatea iubitorilor de muzică rock ridică o chitară mai devreme sau mai târziu. Fanii sportului visează cu pasiune să intre pe terenul de fotbal, terenul de baschet sau terenul de tenis. Ei bine, cei care au comis sute de deturnări în GTA, au petrecut zeci de ore în cluburi de computere jucând Counter-Strike sau au obținut un succes considerabil în MMORPG-uri, probabil că se gândesc la o carieră ca dezvoltator de jocuri.

Problema este că această direcție este predată în câteva instituții de învățământ. Prin urmare, majoritatea dezvoltatorilor de jocuri sunt autodidacți, care odată au compilat ei înșiși programa. Dar ce nuanțe au ținut cont? De unde ai început și pentru ce te-ai străduit? Ce limba ai invatat prima? Am încercat să răspundem la aceste întrebări și la alte întrebări relevante.

Pentru ce să te străduiești?

Înainte de a merge la magazin, îți faci o listă de cumpărături (cel puțin în cap). Înainte de a călători în celălalt capăt al orașului - trasați o rută. Ei bine, înainte de a învăța cum să dezvolți jocuri, este indicat să te întrebi: ce anume vrei să faci? Creați aplicații mobile sau jocuri de browser? Lucrezi pentru o companie mare sau pentru una mica? Vrei să dezvolți jocuri profesional sau să-ți dedici timpul liber pentru asta? Și dacă primul, ce te interesează mai mult: crearea unei interfețe, lustruirea gameplay-ului sau scrierea de scenarii?

Stabilirea corectă a obiectivelor vă poate economisi mult timp și efort. În plus, vă va permite să ajungeți la destinația finală în cel mai scurt drum. Fără riscul de a ieși de pe drum sau de a intra într-o mlaștină.

Ce limbă să înveți?

În plus, răspunsul la întrebarea arzătoare depinde de obiectiv: cu ce limbaj de programare ar trebui să încep?

Deci, viitorii dezvoltatori de jocuri precum Minecraft și aplicații mobile Android ar trebui să acorde o atenție deosebită Java. Pentru început, vă sfătuim să mergeți la intensiv, mai ales că este gratuit. Pentru cei care privesc spre iOS - pe Objective-C. Pentru jocurile cu browser, cunoștințele despre Ruby-On-Rails sunt uneori suficiente. Pentru momente foarte mici și simple, HTML este suficient. Producția de jocuri flash folosește ActionScript și, pentru a scrie scripturi de orice complexitate, aveți nevoie de JavaScript sau poate de Lua, mai puțin obișnuit. Pentru a crea jocuri de consolă mici, sunt necesare cunoștințe de C#.

În ceea ce privește jocurile cu cel mai mare buget (așa-numita clasă AAA), majoritatea sunt echipate cu „motor” propriu sau împrumutat de la colegi. Adesea, însă, întregul „motor” sau cea mai mare parte este scris în C++. Acest limbaj a fost folosit pentru a crea multe „jucării” faimoase - de la Doom 3 și Call Of Duty la FIFA și The Sims. În timp ce clasice precum Quake au fost scrise în C.

Cu toate acestea, există o captură în stăpânirea C++ - complexitate excesivă. Nu e de mirare că ei spun că a lua C++ fără a cunoaște alte limbi este același lucru cu a începe studiul matematicii cu ecuații liniare.

Este suficientă o singură limbă?

Una dintre frumusețile programării este posibilitatea de auto-dezvoltare constantă. În dezvoltarea jocurilor (în special a celor mari), auto-îmbunătățirea, inclusiv studiul cât mai multor limbi posibil, nu este un capriciu, ci o necesitate vitală. Deci, dezvoltatorii experimentați care lucrează în beneficiul giganților industriei jocurilor de noroc se confruntă adesea cu nevoia de a scrie alternativ în 7-8 limbi. În același timp, pe lângă limbajele de mai sus, trebuie să învețe, de exemplu, Python sau chiar SQL (după cum înțelegeți, pentru a crea baze de date).

Prin urmare, dacă decideți să vă legați soarta de producția de jocuri mari, fiți pregătiți să deveniți un „poliglot”. În plus, cu cât stăpânești mai multe limbi, cu atât te vei confrunta cu sarcini mai interesante și mai variate. Și, desigur, șansele de a obține un job de vis vor crește semnificativ.

UNDE SA ÎNCEP?

Înainte de a face o călătorie în jurul lumii, trebuie să înveți să mergi. Ei bine, înainte de un proiect serios de joc, trebuie să-ți încerci ceva mai puțin semnificativ.

Aproape toți dezvoltatorii experimentați, indiferent de regalie și talent, au început cu aplicații mici: jocuri de societate, variații ale celebrelor „jucării”, simple „unități flash”. Apoi nu s-au gândit la expoziții majore precum E3, ci au acumulat experiență neprețuită. De ce să nu le urmezi exemplul? În acest caz, nu este necesar să scrieți cod complex. Pentru un debut, este suficient să folosiți programe speciale pentru crearea de jocuri (de exemplu, Game Maker). La urma urmei, chiar și cu un set de instrumente simplu, îți vei facilita foarte mult viața. În primul rând, veți înțelege în miniatură logica și structura aproape oricărei aplicații de joc. În al doilea rând, vei umple denivelările care se vor vindeca în timpul tranziției către proiecte serioase. În cele din urmă, în al treilea rând, îmbogățiți-vă portofoliul. La urma urmei, chiar și o simplă „jucărie” necesită mult timp, răbdare și creativitate pentru a veni cu un concept, a scrie cod și a remedia erorile. În plus, arată că sunteți familiarizat cu producția de jocuri nu numai în teoria uscată.

Ce să iei drept ghid?

Oricine visează să devină scriitor va citi sute de cărți înainte de a scrie un singur cuvânt. Maeștrii de pian cunosc pe de rost cele mai bune lucrări ale lui Strauss, Chopin și Beethoven. Artiști cunoscuți au memorat istoria artei înaintea unor mari expoziții.

Același principiu se aplică dezvoltării jocurilor. Nu te poți dezvolta în vid. Așadar, joacă-te, inspiră-te de maeștri și, ca un burete, absorbi tot ce e mai bun. În același timp, încercați să priviți aplicațiile nu prin ochii unui „gamer”, ci prin ochii unui dezvoltator. Cu alte cuvinte: transpune jocul. Gândiți-vă de ce în acest moment „bot” a alergat spre stânga și nu înapoi? Ce factori modifică puterea și precizia unei lovituri într-un simulator sportiv? Cum se creează un „efect de oboseală” atunci când un personaj rulează mult timp? Cum să faci astfel încât în ​​timpul ploii jucătorul să audă sunetul picăturilor și nu un țipăit de porc? Practic, treci la subiect. Încercați să recreați în capul vostru algoritmii pe care îi întâlniți în timpul jocului. Crede-mă, o astfel de abordare constructivă te va ajuta în viitorul tău dificil, dar al naibii de interesant, ca dezvoltator de jocuri.

Cum să dezvolți un joc RPG într-o săptămână de la zero și fără buget. Partea I

RPG într-o săptămână? De la zero? Este chiar posibil?
Am riscat și am făcut-o.

Internetul este plin de resurse de informații disponibile pentru dezvoltatorii de jocuri mici, independenți (indi). Într-un astfel de forum public, în timpul unei certuri, am avut imprudența să spun că, dacă mi s-ar acorda o săptămână de timp, un computer cu o nouă instalare de Windows și o conexiune bună la internet, aș putea crea un joc decent fără a cheltui. un ban pe el. Nu, cu siguranță nu va putea concura cu Halo 2 sau ceva de același nivel (dacă aș putea face un astfel de joc într-o săptămână, mi-aș fi părăsit slujba de mult), dar va fi destul de interesant și de jucat .

Tom Bampton, autorul publicației lunare Game of the Day Game Reviews (www.gameinaday.com), a spus: „Du-te! Apoi a adăugat o condiție suplimentară - trebuie să fac asta fără a folosi motoarele de joc existente. Am voie să folosesc doar biblioteci de bază/API-uri.

La început am renunțat la această idee. Nu am avut prea mult timp să îmi iau o săptămână liberă de la dezvoltarea actualului proiect de joc la locul de muncă. Dar apoi m-am gândit: la naiba, pentru că ce este o săptămână? Într-o companie tipică, cum ar fi EA, săptămâna de lucru este de 40 de ore. Deci de ce să nu faci un joc nu într-o săptămână calendaristică, ci în 40 de ore curate? Este deja mai real - dar nu am vrut să creez un alt Tetris sau Arkanoid. Și cum rămâne cu jocul de rol - unul dintre cele mai dificile genuri de joc? Este posibil?

Știam că va fi extrem de greu. Dar am acceptat provocarea.

În plus, am notat în detaliu ce și cum fac, am descris progresul dezvoltării. M-am gândit că ar putea fi interesant pentru dezvoltatorii de jocuri - sau cel puțin să obțin înregistrări distractive despre cum am căzut cu fața în noroi, dacă nu reușesc brusc. Tot ce am venit a fost o înregistrare lungă și divagată a activității mele pe oră. Am încercat să o schimb în așa fel încât lectura să nu provoace plictiseală. Cum sa întâmplat, judecă singur.

Așa că iată cum am creat un joc într-o săptămână de la zero și fără buget. Dacă ți-e prea lene să citești și vrei să sari rapid la sfârșitul poveștii pentru a vedea cum arată produsul final și a vedea toate erorile sale, poți descărca versiunea Windows a jocului de aici: http://www. .rampantgames.com/hackenslash.html

PLANIFICARE
Ţintă
Creați un RPG de școală veche în stilul jocurilor vechi de la începutul anilor 80, cu o vedere de sus în jos, cum ar fi Templul lui Apshai, Ultima III și Telengard. Jucătorul se va deplasa prin camere dintr-o temniță tipică, luptând cu diverși monștri cu „sabie și magie”. Treptat, își va îmbunătăți abilitățile dobândind experiență, trecând la nivel, dobândind echipament magic.

Cu toate acestea, jocul va consta în mai mult decât doar lupta în sine. Jucătorul va avea, de asemenea, opțiunea de a se strecura pe lângă monștri sau de a negocia cu ei. Vor fi uși și cufere încuiate și caracteristici unice ale temniței care au efecte neașteptate. Jocul nu va avea descrieri sau dialoguri lungi - va fi în mare parte un hack & slash tipic. Vei urma calea până când vei fi suficient de puternic pentru a înfrunta șeful final, a finaliza misiunea și a te întoarce acasă (camera ta de început) în siguranță.

Reguli de dezvoltare

Regula #1: Timpul de dezvoltare este limitat la o săptămână (inclusiv 40 de ore)
Un total de nu mai mult de 40 de ore ar trebui cheltuite pentru dezvoltarea jocului. Acestea vor include timpul petrecut lucrând efectiv la joc și gândindu-se la el. Pauzele de dezvoltare mai mari de zece minute nu vor fi luate în considerare. Aceasta ar fi o săptămână de lucru „perfectă” de 40 de ore de înaltă performanță.

O versiune alfa complet funcțională va fi realizată în 40 de ore. Finisări ulterioare, cum ar fi depanarea finală a jocului, crearea unui program de instalare pentru distribuție în timpul total nu vor fi luate în considerare, nicio funcționalitate nouă nu va fi adăugată în această etapă. Nici documentarea procesului de dezvoltare nu este luată în considerare.

Regula #2: Folosiți numai instrumente gratuite
Cu excepția software-ului care vine odată cu instalarea Windows, se utilizează numai software gratuit, dacă este posibil open source. Scopul acestui lucru este de a arăta că nu aveți nevoie de instrumente scumpe (sau chiar ieftine) pentru a dezvolta un joc. Echipamente precum scanerul, microfonul și camera digitală nu sunt afectate de această regulă - dacă nu le aveți, vom presupune că pot fi împrumutate de la cineva.

Regula #3: Fără motoare, doar biblioteci/API-uri standard
Jocul trebuie creat „de la zero” fără a utiliza motoarele de joc existente. Fără înșelăciune și crearea unui joc sau a oricărei părți a acestuia folosind designeri de jocuri sau folosind software similar.

Instrumente
Codul:

Python 2.3 (http://www.python.org/)
Python Win
PyGame (http://www.pygame.org/)
Py2exe - pentru a compila ceea ce se întâmplă într-un fișier executabil pentru distribuire. (http://starship.python.net/crew/theller/py2exe/)

Gimp 2.0 (http://gimp-win.sourceforge.net/)
MS Paint (cel care vine cu Windows) - pentru a lipi capturi de ecran capturate cu cheia PrintScreen (GIMP din anumite motive a refuzat să facă acest lucru)
Texturile gratuite au fost preluate de la (http://www.textureartist.net/textures/index.htm) și (http://www.mayang.com/textures/)

Audacity (http://audacity.sourceforge.net/) plus microfonul meu sau cele gratuite.

Programul (Planul) lucrărilor
Programele sunt făcute pentru a fi rupte mai târziu, dar sunt încă necesare pentru a controla progresul și liniile și pentru a face ajustări după cum este necesar.

Ora 1-10: Arhitectură de bază
Proiectarea motorului și componentele principale. Obțineți afișarea lumii pe ecran. Trebuie să implementez abilitatea de a muta jucătorul de testare în întreaga lume și de a privi lucrurile și apoi de a transforma ceea ce se întâmplă într-un editor de jocuri.

Ora 11-20: Opțiuni pentru jucător
Implementarea tuturor caracteristicilor principale pentru jucător - mutarea, atacul, deschiderea ușilor, moartea, ridicarea lucrurilor și utilizarea inventarului. Creați o reprezentare wireframe a tuturor obiectelor din mediu pentru a testa capacitatea jucătorului de a interacționa cu lumea.

Ora 21-30: Revitalizarea lumii
Adaugă inteligență artificială, evenimente de joc, capcane, efecte speciale. Până la sfârșitul acestei perioade, ar trebui să am un demo tehnic destul de complet, care să includă toate caracteristicile principale ale jocului.

Ora 31-40: Adăugarea de conținut și reguli
Obțineți un joc cu drepturi depline dintr-un demo techno. Adăugați tot conținutul suplimentar. Pentru a obține completitatea și echilibrul mecanicii de joc. Lustruiți tot ceea ce aveți timp suficient, adăugați efecte speciale, animație etc.

După 40 de ore: testarea și lansarea jocului
Testează și remediază erorile găsite (fără a adăuga funcții noi!) Adună totul și pune-l pe Internet. Documentatie completa.

Hackenslash Dev Diary: Jocul săptămânii

Ora 1 - Design sălbatic și cursuri de bază
Această oră a fost petrecută creând niște clase de bază pentru joc - și utilizându-le în design ulterioar. Lumea va fi prezentată ca o secvență de camere conectate printr-un portal. Totul în lume se bazează pe camere, la fel cum era în vechile jocuri de aventură sau MUD-uri. Majoritatea obiectelor din joc sunt reprezentate ca un „GameObject” care are o poziție și conținut (pot conține și alte obiecte - o hartă poate conține camere, o cameră poate conține un cufăr, un cufăr poate conține o sabie... . și cred că o sabie poate conține mai multe camere, dar nu vom face asta.)

Creez obiecte creatură (creatura) și jucător (Jucător)
Generez un set de atribute pentru creaturi și le injectez într-o clasă. Se pare că sunt un tocilar care joacă prea multe jocuri RPG. Încă nu știu exact cum va arăta și cum va funcționa mecanica jocului.
Fac un obiect de cameră care moștenește de la GameObject. O cameră are o lățime, o înălțime și pereți - și nimic altceva în acest moment.

Treptat, încep să înțeleg cum va funcționa totul și să fac corecțiile necesare. Nici măcar nu încerc să folosesc PyGame în această etapă și programul nu arată altceva decât consola. Dar simt că tot ceea ce s-a făcut este un mare progres!

Ora 2 - PyGame 101
Scopul acestei ore este să inițializați PyGame și să începeți să desenați măcar ceva pe ecran. De fapt, îmi petrec cea mai mare parte a timpului citind documentația PyGame, încercând să-mi dau seama ce este acolo și cum, deoarece am puțină sau deloc experiență cu PyGame sau SDL.

Această oră se încheie cu un program care afișează un ecran gol umplut cu negru. Nu este impresionant. De fapt, în spatele acestei ferestre sunt multe. Există o buclă de joc, comutare de cadre, apeluri de mai multe clase și o mulțime de stub-uri inactive. Dar asta nu face ca ecranul negru să fie mai impresionant.

Ora 3 - Dacă pereții ar avea urechi, le-aș certa cu putere.
Scopul acestei ore este de a defini contururile camerei cu pereți și de a le afișa pe un ecran negru. Pentru a face asta am nevoie de spațiu și am nevoie de grafică. Trebuie să petreci mult timp la GIMP, editând texturi descărcate de pe Internet, astfel încât acestea să se transforme în plăci potrivite. Creez o clasă de manager de texturi. Și completez structura camerei de mostre. De asemenea, am petrecut puțin mai mult timp căutând documentația PyGame pentru a găsi orice altceva pe care l-aș putea folosi pentru a ușura munca.

A trecut ceasul. Inca am acelasi ecran negru. Nu erau ziduri și nu.

Ora 4 - Hotelul are o cameră liberă
După ce m-am luptat cu unele erori de sintaxă, am reușit în sfârșit să fac ca pereții să apară pe ecran. Adevărat, sunt afișate incorect, nu sunt în locul indicat și chiar și cu sloturi între segmente. E oribil. Dar cu un pic de ajustări și editare, am obținut ceea ce părea o cameră pe ecran, 10 pe 10 pătrate.

Fără un plan detaliat al proiectului, este destul de ușor să fii confuz când ai făcut o anumită treabă și te întrebi „Ce urmează?” Am decis că dacă desenul unei camere este bine, atunci desenul a două este de două ori mai bun.

Pentru a stoca camerele create, am creat un fișier „minidungeon”.
Voi începe să adaug logica pentru „portale” - deschideri în pereți pentru a merge în alte camere (și oferind toate informațiile de compensare necesare pentru a afișa corect camerele alăturate).

Ora 5 - Hackenslash primește mai multe camere

Am schimbat titlul ferestrei în „Hackenslash!”. Doar pentru că e mișto.
Am creat o hartă a obiectelor pentru a depozita camere și o clasă MapMaster care conține mai multe hărți.
Am adăugat o a doua cameră și am conectat la prima prin portal.
Camerele adiacente sunt conectate la cea actuală prin portaluri, iar acum sunt afișate pe ecran.
Am remediat unele erori de tăiere, astfel încât pereții care se extind parțial dincolo de fereastră să fie afișați corect.

Ora 6 - timp în care ne îmbunătățim abilitățile de desen

S-a adăugat o clasă de uși și, de asemenea, am configurat hărți pentru plasarea ușilor (usa trebuie să fie comună pentru două camere). (Edit: Păcat că nu l-am folosit niciodată!)
Am creat încă 3 plăci, le-am combinat într-o singură imagine.
Aspectul grafic al pereților variază în funcție de tip.
Fac un grafic simplu pentru o vedere de sus în jos.

Orele 7-8 - Rotiri și exclamații!

Mi-am dat seama cum să rotesc bitmapurile în PyGame.
Am realizat o rotire lină a playerului de testare. Sunt necesare multe ajustări pentru a corecta unghiul de rotație.
Am învățat cum să folosesc fonturile în PyGame și creez câteva clase pentru afișarea și animarea textului.
S-a adăugat o clasă pentru procesarea automată a textului, deoarece această funcționalitate va fi folosită frecvent în viitor.

Orele 9-11 - Elemente - brrr!

Și aici din nou, trebuie să rezolv întrebarea „Ce urmează?”.

Camerele au nevoie de elemente mai interesante, așa că trebuie să faceți o listă cu ele. Nu stiu sa le sistematizez asa ca am decis sa incep cu cele generale. Am introdus trei elemente statice care pot fi găsite într-o cameră tipică de temniță: un covor, o coloană (un bloc cu aceeași funcționalitate ca și pereții) și o scară (vă permite să vă mutați într-o nouă locație)

Am decis că elementele pot ocupa mai mult de o țiglă și pot fi rotite cu orice grad. (Edit: Privind retrospectiv, o soluție foarte stupidă - am petrecut prea mult timp implementând-o, dar s-a dovedit a fi aproape inutilă.)

Una peste alta, am petrecut aproximativ trei ore lucrând la elemente, rupt între crearea de grafică și scrierea codului.

Orele 12 - 13 - Avem nevoie de pradă!

Eu creez grafică și cod pentru lucruri. Este uimitor cât de mult poate dura desenul. Este deosebit de enervant când imaginea pare că puiul desenează cu laba, indiferent de cât de mult efort a fost depus în ea.

Am adăugat o mulțime de statistici articolelor, inclusiv costul, dimensiunea, sloturile pentru echipamente și multe altele. Încă nu se poate interacționa cu ei, dar cel puțin apar în locurile potrivite din cameră.

Ora 14 - Covoare

Sunt cu mult întârziere, ce ar trebui să fac?
Fondul negru mi se pare prea urât, așa că am pavat podelele din interiorul camerei cu covoare - gresie separată.

După aceea, sa dovedit brusc că am uitat să adaug un fundal transparent sprite-urilor jucătorului și lucrurilor. A trebuit să petrec mult timp corectând această omisiune.

Dar nivelul acum arată cool. Ei bine, cel puțin mai rece decât negrul.

Orele 15-16 - Click! Clic!

M-am ocupat cu controlul mouse-ului și gestionarea evenimentelor.
S-a adăugat controlul mouse-ului. În timp ce mișcarea este sacadată, nu există o defilare lină a nivelului.
Jucătorul se poate muta din cameră, nu există nicio verificare a coliziunii.
Am remediat câteva erori.
A torturat GIMP și a creat scări frumoase.
.
Au trecut deja aproape 17 ore de dezvoltare, așa că încep să devin puțin nervos. Am parcurs 2/5 din drum pentru a crea jocul - a doua „zi lucrătoare” de dezvoltare s-a încheiat. Ceea ce am făcut deja este impresionant, dar înțeleg că mai sunt mult de făcut. Mai am patru ore pentru a finaliza funcțiile de bază ale playerului și pentru a ajunge la program. Va fi greu... dar tot nu regret că am petrecut timpul suplimentar desenând grafice!

Ora 17 - Mișcă-te încet până ne lovim fruntea de perete

Majoritatea timpului este petrecut cu reglarea fină a graficii și remedierea erorilor.
S-a adăugat detectarea coliziunilor și derularea lină atunci când jucătorul se mișcă.
Jucătorul poate acum să facă mai mulți pași (ture) ca răspuns la o acțiune a mouse-ului.

Ora 18 - Trecerea pragurilor

Jucătorul poate trece acum prin portaluri către alte camere.
Acest lucru provoacă un bug cosmetic cu pereți și podele suprapuse între camerele alăturate.
S-au remediat o mulțime de erori legate de rotație, care făceau portalurile impracticabile.

Ora 19 - Stairway to Heaven, Hell's Menu

Fratele meu s-a oferit voluntar să facă muzică pentru joc. A făcut muzica pentru Void War și a mers destul de bine. Acest lucru mi-a reamintit să fac redarea sunetului (și a muzicii). Se pare că este destul de ușor să faci asta în PyGame, așa că nu ar trebui să dureze prea mult. (Edit: nu am găsit niciodată timp pentru asta, din păcate nu veți auzi un singur sunet în Hackenslash.)

Următorul meu obiectiv este să mă ocup de interacțiunile cu creaturi și obiecte. Îmi place foarte mult modul în care se face în The Sims și Neverwinter Nights, când vrei să interacționezi cu un obiect de joc, apare un meniu contextual. Plănuiesc să implementez ceva asemănător.

Predarea scărilor pentru a muta jucătorul într-o cameră nouă.
Am căutat puțin pe internet și în documentația PyGame, căutând să văd dacă există un meniu open source pentru un meniu similar în PyGame. Și nu am găsit nimic.
Am început să-mi fac propriul meniu.

Orele 20 - 21 - Ce este cu meniul?

Continui să lucrez la meniu. Meniul poate fi conectat cu ușurință la un obiect, mai precis, obiectul generează un meniu, ceea ce a făcut ușoară implementarea feedback-ului pentru procesarea alegerii jucătorului.
Am început să lucrez la meniul de articole. Apare deja în locul potrivit și vă permite să selectați un articol, dar când este apăsat, nu face nimic încă, funcționează doar butonul de închidere a meniului.

Ora 22 - Adormi în curs

Continui să lucrez la lucruri - încercând să le implementez funcționalitatea și să-i învăț să răspundă la comenzile din meniu, inclusiv capacitatea de a adăuga informații contextuale. Acum are puține funcționalități, dar încă funcționează, afișând informații despre comanda de rulare
Am îmbunătățit calculul mișcării la efectuarea diferitelor acțiuni, obținând mai multă mobilitate.

Observ că este deja târziu și că am depășit cu mult ora alocată acestei lucrări. Dacă nu aș acorda atenție timpului total de dezvoltare, probabil că aș sta afară până dimineața. Dar, din moment ce sunt limitat la timp, o oră aproape pierdută este o veste cu adevărat proastă. Este interesant cum se schimbă prioritățile atunci când nu este suficient timp. În general, mă duc la culcare.

Ora 23 - Parametrii de luptă!

Modific (ei bine, de fapt tocmai la început) unele dintre atributele clasei create în prima oră.
În colțul din dreapta sus, creez un panou care va afișa opțiunile jucătorului.
Am optimizat această fereastră transformând-o într-o imagine care desenează mai repede decât fonturile. Această imagine se actualizează numai când se modifică parametrii caracterului asociați.

Ora 24 - Meniul jucătorului

Am finalizat optimizările pentru fereastra de opțiuni.
A creat un meniu pop-up care apare atunci când jucătorul face clic pe un personaj.
Am creat un meniu rapid pentru folosirea poțiunilor, a vrăji etc.
Am remediat unele erori din meniu.

Ora 25 - Înainte (o dată) de tăiat podele și pereți

În această dimineață am avut o idee în creier (oare chiar am un creier atât de mare încât să încapă atâtea idei?) cum să rezolv problema suprapunerii pereților în încăperile alăturate (vezi descrierea orei al XVIII-lea). Dacă pictez doar jumătate din pereți? În acest fel, nu va exista deloc suprapunere și nu trebuie adăugată nicio logică complexă pentru a detecta și a remedia suprapunerile.

Încep să lucrez la implementarea acestei idei. Din păcate, de fapt, simplificarea inventată face și mai dificilă desenarea camerei (în special a podelelor), și poate să nu fie implementată atât de repede pe cât am sperat. A durat aproximativ o oră pentru a crea și a depana acest sistem. Dar a meritat.

În timpul depanării codului, am mai găsit câteva erori legate de tranziția între camere.

PAUZĂ - Criză!

Tocmai mi-am dat seama că mai mult de 3/5 din timpul de dezvoltare a trecut și că mai sunt mai puțin de cincisprezece ore pentru a termina jocul. După ce m-am uitat la programul caracteristicilor necesare ale jocului și am estimat că va dura în medie o oră pentru a implementa fiecare, mi-am dat seama că îmi va dura aproximativ douăzeci și cinci de ore pentru a implementa totul. Zece ore înainte. Proiectul este oficial în pericol.

Nu pot depăși timpul limită. De asemenea, este imposibil să atragi un asistent sau să cumperi cod/resurse, deoarece se prevede că voi realiza singur jocul în 40 de ore. Trebuie să-mi dau seama cum să lucrez și mai eficient - dar lucrez deja la productivitate maximă. Se pare că nu am altă opțiune, va trebui să regândesc funcționalitatea și să decid ce caracteristici să renunț din joc.

Uși: Tăiați! Îmi doresc foarte mult să fac uși în joc. Este păcat să mă despart de această funcție – mai ales că lucrez la ea de ceva vreme. Dar există încă prea multă muncă, cum ar fi inteligența artificială. Și probabil că va dura 2-3 ore să-i pun la treabă, ceea ce eu nu am.
Inventar: simplificați! Uitați de inventarul suplimentar și de capacitatea de a schimba armele după bunul plac. Tot ceea ce este ridicat și nu devine echipamentul actual va fi imediat convertit în bani.
Capcane: simplificați! Mi-ar plăcea să am multe capcane cu consecințe interesante și variate pentru activarea lor. Nu e sortit. Capcanele vor avea un efect vizual simplu, vor provoca daune și vor crește temporar șansa de a întâlni un monstru aleatoriu
Arcuri (arme mici): Tăiați! Jocul va avea doar arme corp la corp, la distanță poți ataca cu vrăji.
Salvați/Încărcați jocul: simplificați! Doar personajul poate fi salvat, nu starea lumii. (EDIT: nici eu nu am făcut asta!)
Sistem de particule: Amână! Crearea sistemului de particule a fost mutată în partea de jos a listei de priorități. Mă îndoiesc că vor trebui făcute. Ar fi frumos să ai imagini impresionante cu particule de vrăji... dar probabil că nu va fi niciodată.
Vrăji: simplificați! Aveam un concept serios despre vrăji: puteau fi găsite sub formă de suluri, iar numărul este mai mult de o duzină. Este trist, dar vor exista doar câteva vrăji: Vindecare, Daune, Slăbire, Împuternicire și Restaurare. Prin creșterea nivelului, puteți permite jucătorului să îmbunătățească vrăji prin creșterea numărului de puncte magice.
Animație de monștri și jucători: Cut! Sunt un sărac artist ca să o fac destul de repede.

Când decid ce nu voi face (sau ce voi amâna pentru mai târziu), este la fel de important să decid ce trebuie făcut mai întâi.

Sunt o mulțime de lucruri care sunt planificate în joc pe care le consider foarte importante - găsirea de capcane, uși secrete (ei bine, pasaje secrete acum) și deschiderea cufere. Dar totuși baza jocului este lupta. Așa că am decis să mă concentrez asupra ei, să-i fac o prioritate de top. Mi-am propus un obiectiv, într-o oră și jumătate, monștrii mei vor prinde viață pentru a putea fi uciși.

Super, ne-am dat seama de priorități, continuăm să ne dezvoltăm.

Ora 26 - Să aruncăm zarurile

Lucrez la mecanica „zarurilor”, un mecanism prin care un element de aleatorie va fi introdus în joc. Deoarece nu avem o constrângere reală de zaruri, putem obține un număr aleatoriu în orice interval dorit. De exemplu, de la 1 la 33, sau de la 6 la 17. Așa că pot arunca zarurile, pot compara ce a căzut cu atacul meu și apărarea inamicului. Dacă numărul aruncat este mai mare decât apărarea, atacul are succes.

De exemplu, să presupunem că am o valoare totală de atac de 15. Atac un monstru care are 10 apărare. Sansele mele sunt 15 din 25 (25 =15 +10), sau 3 din 5. Deci jocul va genera un numar aleator intre 1 si 25, iar daca este mai mare de zece, voi castiga.

Daunele cauzate sunt calculate într-un mod ușor diferit. Am adăugat „armură” apărătorului și „daune” atacatorului. Generez un număr aleator de la 1 la suma lor și apoi scad armura. Dacă rezultatul este mai mic de unu, nu se provoacă daune. În caz contrar, este egal cu rezultatul. Astfel, dacă un monstru cu 10 daune atacă un jucător cu 5 puncte de armură, jocul va genera un număr de la 1 la 15, din care va scădea 5, ceea ce se întâmplă este dauna provocată.

Această explicație și descriere a durat mai mult decât implementarea ei.

La sfârșitul orei, am redus dimensiunea zonei de afișare a temniței, acum partea ferestrei din dreapta este complet dedicată interfeței cu utilizatorul, această modificare a dat o ușoară creștere a performanței. De asemenea, m-am asigurat că mișcarea jucătorului nu depinde de frame rate.