Cum se invata policodul

Polycode este o licență gratuită, open-source (licențiată sub licența MIT) și un "cadru pentru codificare creativă" pe mai multe platforme. Acest termen este rar întâlnit în comunitatea de dezvoltare a jocului, dar ceea ce înseamnă în realitate este simplu: Polycode vă oferă instrumente pentru a vă exprima creativitatea prin cod și, deși este pe deplin calificată să suporte "joc de motor"Moniker, preferă să nu. Motivul este simplu: Policodul poate fi (și adesea este) folosit pentru proiecte care cuprind mai mult decât jocuri interactive, cum ar fi vizualizările folosite pentru divertisment sau în scopuri științifice.

Am folosit Polycode pentru jocuri de cea mai mare parte de mici dimensiuni, dar și pentru o interfață de utilizare a zoom-ului obișnuit și a avut un succes egal și mare în dezvoltarea tuturor proiectelor. Să aruncăm o privire la ceea ce vă poate oferi Polycode și, sperăm, vă va interesa să învățați să lucrați cu acest cadru minunat.


Ce oferă Polycode?

Deoarece aceasta nu este o piesă promoțională pentru cadrul, voi încerca să subliniez caracteristicile cheie care ar putea fi de interes pentru dezvoltatorii de jocuri fără a intra în exces.

  • Grafica 2D și 3D: Cadrul Polycode vă oferă sisteme simple, proiectate eficient pentru desenarea graficelor 2D și 3D. Nu face acest lucru în detrimentul vitezei și nu sacrifică trăsături pe care utilizatorii avansați le cer - o performanță pe care multe dintre motoarele populare de randare de astăzi nu reușesc să le scoată. La început, bănuiam că Polycode mi-ar da doar capabilități grafice 3D grafice, dar m-am răzgândit când am văzut cum a fost proiectată conducta; este la fel de personalizabil pe cât se întâmplă și permite implementarea unor metode cum ar fi o pre-trecere ușoară sau un umbrire amânată fără a schimba niciodată codul cadru.
  • Intrare manipulare: Polycode vă permite să manipulați mouse-ul, tastatura, joystick-ul și intrarea touch prin intermediul sistemului său uniform de manipulare a evenimentelor. Această caracteristică este evident esențială pentru orice lucru care vine aproape de a se numi un motor de joc.
  • Suport pentru rețele: API-ul de rețea nu pare prea complicat și nici nu sacrifică caracteristici. Nu am folosit-o prea personal, dar până acum nu mi-a prezentat nicio problemă și știu că este folosit pe scară largă de cele mai apreciate proiecte dezvoltate folosind platforma.
  • Audio: Cu Polycode, puteți reda un sunet de poziție 2D și 3D, complet cu funcții precum streaming (pentru fișiere audio lungi, cum ar fi melodii). Caracteristica stabilită aici nu este spectaculoasă, dar ar trebui să fie suficientă pentru nevoile celor mai mulți dezvoltatori de jocuri indie.
  • 2D și fizica 3D: Realizate prin plugin-uri la baza de bază și utilizând Box2D și Bullet-ambele biblioteci de conducere în zonele lor respective - API-ul fizicii Polycode este competent, bine gândit și robust. A fost, de asemenea, o plăcere să o folosesc, mult mai mult decât să folosesc bibliotecile de bază: în timp ce nu aveam Probleme folosind Bullet, am constatat că, pentru utilizatorii care intră în domeniul fizicii 3D, există material prea mult și prea puțin documentat acolo. Cu Polycode, API-ul de fizică este simplu și aproape că îți poți folosi simțul bun în timp ce te ocupi de el, ceea ce este foarte încurajator pentru începători care ar putea avea probleme în a lua lucrurile la început.
  • Dual Lua și C ++ API: Acesta este unul unic - Polycode vă oferă API-ul său atât din limbile de programare C ++ și Lua. Acest lucru vă permite să vă oferim publicarea cu un singur clic dacă scrieți utilizând Lua, precum și posibilitatea de a utiliza script-uri în jocurile dvs. și, de exemplu, să oferiți designerului dvs. un mod mai ușor de a codifica logica jocului în interiorul nivelurilor.

Acestea sunt doar caracteristicile cheie; Am renunțat la multe altele, inclusiv animația scheletului, randarea fontului TrueType pregătită de Unicode și IDE-ul Polycode. O listă mai completă (dar nu exhaustivă) poate fi găsită pe site-ul oficial.


De ce Polycode?

De ce alt cadru? De ce ar trebui să vă gândiți chiar la Polycode, să nu mai vorbim de a începe să lucrăm cu ea? Nu te pot convinge; Nu pot decât să îmi dau propriile opinii și experiențe și să vă las să fiți judecător. Iată câteva avantaje cheie ale Polycode pe care le-am găsit în timpul meu cu asta.

  • Policodul este robust. Cu un API minim, elegant, modul său concis de expunere a elementelor și un editor solid, Polycode mă face să mă simt confortabil și în control - și eu sunt genul de persoană care îi place să aibă tot ce este posibil la îndemână, gata să fie personalizate și adaptate nevoilor mele, așa că spune ceva.
  • Policodul este puternic. Gama largă de caracteristici relevante atât pentru platforme mici 2D cât și jocuri 3D sofisticate cu o experiență vizuală bogată mi-au ajutat să realizez ceea ce am vrut și să-l polonez la perfecțiune, fără să fiu nevoit să îmi fac griji dacă jocul meu ar deveni prea complex pentru motorul capabilități.
  • Policodul este ușor. Are o documentație excelentă, iar ușurința de utilizare inerentă nu mi-a lăsat niciodată pierdut. Deși este tânăr și nu există o mulțime de resurse pe Internet, am reușit adesea să folosesc doar intuiția mea și bunul simț pentru a afla cum funcționează ceva, ceea ce am învățat este mult mai important decât pare.

Proiecte notabile

Deși Polycode este foarte tânăr, are destul de puține proiecte să se mândrească. Cele mai multe dintre acestea nu sunt chiar jocuri, ci mai degrabă utilizări inovatoare ale tehnologiilor noastre familiare de redare, tactilă, audio și fizică de simulare. Aici sunt câteva:

Video de muzică pentru "Heaven" de Depeche Mode

În videoclipul pentru piesa "Heaven" de la Depeche Mode, regizat de Tim Saccenti, Polycode a fost folosit pentru a face proiecții decorative pe peretele din spatele trupei:


Polycode a fost folosit pentru proiecții pe perete în videoclipul muzical.

S.U.A. Open IBM Data Wall

Cinci ecrane HD, gestionate de cinci computere, care lucrează în sincronizare, toate alimentate de Polycode. Acest perete de date vizualizează datele din programul US Open din 2012 și oferă simularea fizică 3D, feedback-ul tactil, acoperirea graficelor 3D și crearea de rețele pentru a menține computerele care afișează datele în sincronizare. Dezvoltat de HUSH. Mai multe informații pot fi găsite pe pagina proiectului.


Policodul a fost folosit pentru a face animații, suprapuneri 3D, pentru a simula fizica 3D și a lucra cu interacțiunea cu utilizatorul. Imaginea este oferită de HUSH, utilizată în condițiile unei utilizări corecte.

Space Cruiser

Construit de Ivan Safrin, același creator în spatele proiectului Polycode în sine, Space Cruiser este un joc minunat conceput special pentru proiecții din interiorul unui cupole planetariu și joc colaborativ. A fost lansat în Planetariul Hayden de la Muzeul American de Istorie Naturală. Policodul se ocupă pe deplin de acest joc interactiv, oferind o gamă grafică 3D dinamică mare din șase computere diferite, toate sincronizate utilizând capabilitățile de rețea ale rețelei. Puteți citi despre acest joc extraordinar, suprarealist pe pagina sa de proiect.


Polycode redă aceste grafice minunate, toate în HDR, folosind șase computere diferite. Imaginea este oferită de Ivan Safrin, utilizată în condițiile corecte.

Ce cunoștințe anterioare am nevoie?

Puteți folosi Policode atât din C ++, de la Lua, fie din ambele în același timp, decuplați mecanismele de bază ale jocului dvs. (C ++ intensiv de performanță) și logica sa (versiunea Lua scripted, hot-swappable). Dacă utilizați doar Lua, nu aveți nevoie de cunoașterea limbajului destul de complex C + +, și puteți începe să faceți prototipuri imediat în IDE-ul Polycode, un editor integrat care vine cu framework-ul.

Odată ce vă decideți că doriți mai mult control asupra lucrărilor interioare, veți avea nevoie de C ++. Alegerea este a ta; Vă sugerez să nu învățați C ++ dacă nu știți deja (mai ales dacă nu aveți cunoștințe de programare anterioare) imediat. Lua este mult mai ușor, mai prietenos și mai ușor de învățat, așa că ar fi cel mai bun pariu. Pe de alta parte, daca esti un dezvoltator de jocuri experimentat care cauta sa foloseasca Polycode pentru jocuri complexe, gandite, folosirea lui C ++ si Lua in tandem este calea de a merge.

Pentru tutorialele C ++, vă puteți referi la cplusplus.com, locul unde am învățat aproape tot ce știu despre limbă. În ceea ce privește Lua, vă puteți referi la lista exhaustivă de tutoriale din directorul tutorialul luausers.org sau, dacă preferați, puteți cumpăra cartea Programarea în Lua, care vă va oferi o bază solidă și va acoperi aproape tot ce ai nevoie.

Având câteva cunoștințe despre modul în care se recomandă jocurile, dar care nu sunt necesare: puteți să vă dați seama de dvs. dacă urmați marile tutoriale de pe Polycode.org, menționate mai jos.


Cum reușesc să mă ocup și să rulez pe mașina mea?

Policodul este un software tânăr; de fapt, de la scris, încă nu a ajuns la versiunea 1.0.0. Cele mai multe proiecte din această stare nu vă dau binare precompilate și nici nu face Polycode; cu toate acestea, site-ul oficial vă oferă tot ceea ce este necesar pentru a obține cu succes Polycode pe mașina dvs..

Consultați pagina din wiki-ul Polycode, alegeți platforma dvs. (programul Polycode funcționează pe Windows, Linux și OS X, planificat în viitor pentru asistență Android și iOS, deci stați la dispoziție) și puteți merge! Procesul de construire este simplu; de fapt, pe sistemul meu Arch Linux am reușit să construiesc cadrul utilizând CMake fără să citesc nici măcar instrucțiunile.

Nota editorului: LanceJZ a adăugat câteva sfaturi pentru a primi Polycode pentru a lucra cu Visual Studio în comentarii. Mulțumesc, Lance!


Cum încep să învăț să lucrez cu ea?

Am eliminat avantajele, caracteristicile, proiectele notabile, procesul de construire și acum putem să ne murdărim și să începem să facem ceva în ea. Echipa Polycode a făcut o treabă magnifică în a acoperi multe dintre punctele cheie pe care trebuie să le aibă un utilizator final pentru a crea jocuri, vizualizări și altele asemănătoare. Tutorialele de tip Polycode pot fi găsite pe pagina tutorial de pe site-ul oficial.

Dacă rămâneți blocat și aveți nevoie de o documentație detaliată, puteți să consultați întotdeauna documentația oficială, pe care o puteți accesa din pagina "aflați" pe site. Dacă sunteți încă blocat (ă), puteți oricând să cereți ajutor pe forum sau să vă înscrieți în chatul IRC #polycode la irc.freenode.net. Comunitatea este prietenoasă și utilă, iar dezvoltatorul plumb răspunde deseori întrebărilor altora, alături de alți membri ai echipei. (Am stat de vorbă cu Ivan de câteva ori online și el pare un tip grozav.)


Concluzie

În acest articol, v-am prezentat un cadru foarte tânăr numit Polycode. Am văzut cum poate fi folosit Polycode ca motor de joc, precum și pentru o gamă largă de tipuri de proiecte; Am descris câteva dintre trăsăturile cheie, avantajele sale unice și proiectele reci care o utilizează și am făcut tot ce-am putut pentru a vă ajuta să intrați în procesul de învățare al acestui cadru. Happy Polycoding!