Bandžiau sukurti tą patį 2D žaidimų prototipą „React“, „Unity“, „Godot“, „Construct“, „Game Maker“ ir „Phaser“. Štai ką radau.

Esu stalo žaidimų kūrėjas. Kurdamas naują kortų žaidimą nusprendžiau sukurti skaitmeninį prototipą, kuris padėtų man vykdyti modeliavimą ir lengvai pasidalinti koncepcijos įrodymu su bendradarbiais.

Aš turiu tam tikrą „JavaScript“ ir „C #“ foną, ir aš išdėstiau tai, ką daro daugelis: praleisdamas be galo daug laiko „gairėse, kurias turėčiau naudoti“ ir skaitydamas dokumentus iš tikrųjų nieko nedarydamas.

Blykstelėkite į priekį daugelį mėnesių, o dabar aš praleidau daugiau laiko dirbdamas (ir kovodamas su jais) „React“, „Unity“, „Godot“, „Construct 3“, „Game Maker Studio 2“ ir „Phaser 3“, bandydamas suprasti, kas priverčia juos pažymėti.

Tiesa, manau, kad kiekviename iš jų praleidau daug daugiau laiko nei reikia savo mažam žaidimui sukurti, ir tikriausiai būčiau galėjęs tiesiog laikytis pirmojo ir suklaidžioti prototipą. Tikiuosi, kad žemiau pateikta informacija bus naudinga visiems, kurie apsiperka dėl variklio ar pagrindo.

Daugybė įspėjimų: Aš nebandau parduoti vieno variklio ar pagrindo kitiems, taip pat nesiūlau, kad vienas ar kuris nors iš šių sistemų jūsų žaidimui tiks geriau nei kitas. Taip pat nelyginu kainodaros, galinės funkcijos ar platformos diegimo. Taigi, atsižvelgiant į jūsų reikalavimus, žemiau pateikta informacija jums gali būti skirtinga.

Be to, ši patirtis pagrįsta 2D kortų žaidimo kūrimu, todėl neaptarinėsiu 3D variklių, fizikos ir kt.

Taip pat galite pereiti prie TL; DR.

Prototipas

Mano žaidimas „ Entromancy: Hacker Battles“ yra konkurencingas internetinių kortų žaidimas su „TCG-light“ mechanika. Šiame vaizdo įraše galite daugiau sužinoti apie mūsų svetainę arba pažiūrėti, kaip tai grojama. Tačiau pakanka pasakyti, kad tam, kad būtų kortų žaidimas, reikalinga potenciali skaitmeninė sistema, kad būtų palaikomi pagrindiniai dalykai, tokie kaip valstybės valdymas, vartotojo sąsaja, „drag-and-drop UX“ ir „back end“ kabliai, kad būtų galima įgyvendinti daugelio žaidėjų žaidimus.

Atsižvelgdamas į šiuos reikalavimus, aš ištyriau šias sistemas ir variklius, kad išsiaiškinčiau, kuris iš jų būtų tinkamiausias mano žaidimui kurti ... užuot iš tikrųjų sukūręs žaidimą (džiaugiuosi galėdamas pasakyti, kad dabar, kai jau apsistojau ties sistema, Aš darau daug daugiau pažangos).

Čia galite pasiekti grojamą versiją, ir nors žaidimas yra tolimesnis, nei pasiūlytų gyvas prototipas, ši versija yra gana stabili (bent jau „Chrome“).

Reaguoti

„React“ jau sukūręs personažų generatoriaus prototipą mano sukurtam stalo RPG, pamaniau, kad natūralus žingsnis bus suteikti kortų žaidimui pagrindą. Radau valstybės valdymą, kad būtų vėjas (tai, ką reaguoti daro , juk), o įgyvendinti paprastą "drag-and-drop funkcionalumą kortelės pasirodė košmaras.

Yra keletas bibliotekų, kurios gali padėti atlikti „vilkimą ir nuleidimą“ (pvz., „React DnD“), tačiau pastebėjau, kad žaidžiant kortas man reikėjo elegantiškesnio „dropzones“ sprendimo, nes „Hacker Battles“ labai tiksliai apibūdina, kurias korteles galima būti žaidžiamas kur ir kada.

Ši patirtis paskatino mane patikrinti „boardgame.io“, kuris gali veikti kartu su „React“. Bet tai galiausiai pareikalavo manęs išmokti dar vieną pagrindą be esamos sistemos, kuri buvo mažiau nei ideali mano tikslams.

Vienybė

Dėl bendro susidomėjimo praleidau daug laiko „Unity“, darydamas pamokas ir mokydamasis naudotis redaktoriumi, prieš bandydamas su juo perdaryti kortų žaidimo prototipą. Turto parduotuvė yra puikus šaltinis, o oficialių ir neoficialių dokumentų yra tiek daug, kad buvau tikras, kad galiu rasti atsakymą į bet kokią problemą, su kuria galėčiau susidurti.

Mano patirtis su „Unity“ iki šiol buvo mišri. Man labai patinka dirbti C #, ir viskas, kas susiję su kodu, buvo gana neskausminga. Tačiau „Unity“ yra labai konkretus dėl jo įgyvendinimo ir kartais gali jaustis intuityviai.

Kita vertus, redaktorius yra lokys, su kuriuo reikia dirbti. Norėdami išnaudoti visą „Unity“ potencialą, turite ilgai praleisti, kol imsitės su vartotojo sąsaja, kad suprastumėte, kur viskas yra ir kaip tai panaudoti. Taip pat beviltiškai atsilieka nuo 2D žaidimų kūrimo, akivaizdžiai bandydamas sulyginti 3D variklį į 2D plokštumą ir gauti skirtingus rezultatus.

Teisybės dėlei reikia pasakyti, kad man labai patinka dirbti „Unity“ redaktoriuje. Bet jei ieškote 2D žaidimų variklio, jūsų gyvenimo kokybė bus kur kas aukštesnė kitur (žiūrėkite vaizdo įrašą apie „Unity“ animacijos sistemą arba pasiekite taškų tobulumą ir pamatysite, ką turiu omenyje).

Galiausiai „Unity“ 2D erdvės valdymas yra šiek tiek sudėtingesnis, nei man reikia mano prototipui, tačiau prie jo grįšiu dėl kitų tipų žaidimų.

Be to, šoninė juosta, kuri kai kuriems gali būti naudinga: iš pradžių buvau be galo susijaudinęs dėl turto parduotuvės, turėdamas mintį, kad galėčiau įsigyti kortų žaidimo šabloną, kuris kur kas palengvintų kūrimo procesą. Nepavyko. Dauguma jų buvo MTG / Hearthstone / kt. klonai, kuriems mano restruktūrizavimui mano kortų žaidimui pareikalauti tiek pat laiko, kiek reikėtų pradėti nuo nulio.

Godot

Pirmoji mintis susidūrus su Godotu buvo: „atvirojo kodo žaidimų variklis, palaikantis C #? Prisiregistruok!“ Tada aš jį atsisiunčiau, peržiūrėjau keletą pagrindinių pamokų ir paleidžiau. Hurmas.

Keletas „Google“ paieškų, pakartotinių diegimų ir vėliau ištrauktų plaukų, supratau, kad tai susiję su mano „VS Build“ versija (manau?), Kuri mane nuvedė atskiroje triušio skylėje. Iš savo patirties žinojau, kad kiti varikliai - tarp jų „Unity“ vadovas - gali sukelti žaidimus pažeidžiančių problemų, visiškai nepriklausančių nuo jūsų paties kodo, tačiau tai buvo erzina kliūtis, kuri tikriausiai nuspalvino likusią mano patirtį su „Godot“.

Kalbant apie redaktorių, man labai patiko „Godot“ mazgais pagrįstas diegimas, kurį iš tikrųjų radau priešiškai intuityvų iš „Unity“ prefabų, bet galiausiai sušildžiau. Aš iš tikrųjų norėčiau pasakyti, kad jo 2D funkcija yra geresnė nei „Unity“, tačiau trūksta bendruomenės, turto parduotuvės (žr. Aukščiau esančią šoninę juostą) ir ypač dokumentacijos, kurią turi „Unity“. Pavyzdžiui, jei ketinate dirbti C # su Godot, būkite pasirengę ieškoti atsakymų variklio pritaikytame GDScript ir tada juos išversti į C #.

Tačiau girdėjau, kad žmonės, naudodamiesi GDScript, patyrė didžiulę sėkmę su „Godot“, taigi, jei esate pasirengęs skirti laiko išmokti, galite mėgautis tuo, ką siūlo Godot.

Sukonstruoti 3

Pirmiau išvardytose išlygose paminėjau, kad neįtraukiu kainodaros kaip diskusijos taško. Vis dėlto jaučiu, kad man reikia jį išugdyti su „Construct 3“, nes mano patirtis pasirodė esanti paveiki.

Skirtingai nuo kitų čia išvardytų žaidimų variklių, kurie dažniausiai yra nemokami („Game Maker Studio 2“ yra nemokama 30 dienų bandomoji versija), didžioji „Construct“ funkcijų dalis yra už atlyginimo sienos, o abonentinis mokestis kad. Ugh.

Man labai labai patinka „Construct“ strėlės išpjova paprastiems 2D žaidimams. Redaktorius jaučiasi šiek tiek panašus į „MS Paint“ naujinį, tačiau jis labai gerai tvarko „sprite“ ir objektų valdymą ir yra tiesiog paprastas naudoti. Nemėgstu, kad jame naudojamas „vaizdinio scenarijaus“ stilius, tačiau jie neseniai pridėjo paprasto seno „JavaScript“ rašymo funkciją ir atrodo, kad jis daugiau ar mažiau veikia.

Prieš uždarydamas „Construct 3“ demonstracinę versiją (kuri veikia naršyklėje), aš sugebėjau per trumpą laiką sukurti labai elementarią prototipo architektūrą ... ir vėliau išbandyti viską dar kartą su nauja demonstracija. Jaučiu, kad bent jau dėl šio kortų žaidimo galėčiau daug nuveikti su „Construct 3“, tačiau aš tiesiog nesu pasirengęs mokėti už prototipą 99 USD per metus (ar daugiau, kaip verslas).

„Game Maker Studio 2“

„YoYo Games“ aiškiai padarė daug darbo, kad „Game Maker Studio 2“ būtų pasiekiama ir lengvai valdoma, ir tai rodo. Iš visų variklių, kuriuos naudojau šiam projektui, man labiausiai patinka GMS redaktorius. Mažo projekto atveju lengva orientuotis ir užsiimti savo verslu. Vis dėlto įtariu, kad didesnis projektas gali greitai išeiti iš rankų.

Tam įtakos gali turėti „Game Maker Studio“ patentuota kalba GML (nors „GMS 2“ palaiko vaizdinius scenarijus, kurių nenaudojau). Tai veikia, bet jei kalbate apie ją iš kitos OOP kalbos (arba, tiesą sakant, iš bet kurios kitos plačiai vartojamos kalbos), galite subraižyti galvą įgyvendindami arba sugalvodami, kaip atlikti kai kuriuos dalykus. Jei esate pradedantysis arba norite leisti laiką išsiaiškindamas, kaip GMS nori , kad jūs naudojatės GML, jums tikriausiai viskas bus gerai.

Patyriau šiek tiek keistumo dėl „Game Maker Studio“ tempimo ir nuleidimo funkcijos - būtent, pelės žymeklio aptikimas tempiant yra šiek tiek nerangus ir tam, kad tinkamai veiktų, reikia tam tikrų pastolių.

Manau - ir tai yra mano asmeninis pasirinkimas, ir mano tingumas - kad jei GMS pasiūlytų galimybę naudoti kitą, nepatentuotą programavimo kalbą, aš praleisčiau laiką, kad padaryčiau daugiau žalos. Viskas už tai, kad dirbdamas išlyginau kelis įgūdžius, o laiko praleisti norint tapti GMS redaktoriaus ir GML ekspertu, nesugebant lengvai pritaikyti tų žinių kitur, neatrodo verta.

Vis dėlto tai yra gana veikiantis 2D redaktorius ir, nors bendruomenės palaikymas gali neatitikti „Unity“, jis vis tiek yra gana geras. Be to, saugokitės, kad kai tik baigsite nemokamą bandomąją versiją, turėsite sumokėti, kad ir toliau naudotumėte „Game Maker Studio 2“.

„Phaser 3“

„Phaser“ yra lengvas, atviro kodo „JavaScript“ žaidimų pagrindas. Aplink yra keletas „Phaser“ IDE, tačiau jei esate toks, kuris pirmiausia nori dirbti kodu, galite čia užsidaryti naudodami „Atom“, „Sublime“ ar mėgstamą redaktorių.

„Phaser 2“ buvo ir yra plačiai naudojamas ir gerai dokumentuotas, naudojant daugybę vadovėlių. „Phaser 3“ yra priešingas. Jis turi palyginti aukštą pradedančiųjų mokymosi kreivę su daugybe pavyzdžių ir aplink juos nėra daug konteksto.

Daugelis ten esančių vadovėlių palaiko „Phaser 2“ ir nors mokymasis yra perkeliamas, kodas nėra. Be to, kūrėjai neseniai paskelbė, kad perkels palaikymą į „Phaser 4“ (ir „TypeScript“, o ne ES6), o tai nėra puiku, jei praleidote laiką dirbdami „Phaser 3“.

Jei nesate profesionalus programuotojas (aš nesu) ir atnaujinate ES6 klases bei „JavaScript“ geriausią praktiką (aš nebuvau), galite greitai nusivilti dėl to, kad „Phaser“ neturi laikymo rankose ir kad turite nustatyti savo savo IDE ir darbo eigą (aš buvau).

Tačiau supratau, kad tai galinga, lengva konstrukcija, daug ką atliekanti daug racionaliau nei kiti žaidimų varikliai. Kortų žaidimo „vilkite ir nuleiskite“ funkcionalumas buvo gana paprastas vėjas, o galimybė suskirstyti kortelių tipus į klases (panašiai kaip „Unity“ surenkamieji elementai) suskaidė dalį pažintinio krūvio, kurio reikia šiam žaidimui.

Jei esate „front end“ kūrėjas, jums gali patikti ar patikti griežtos visko kodavimo pikselių koordinatės, tačiau tai yra kruopštus darbas. Be to, jei nesate susipažinę su viskuo, kas yra „JavaScript“, greičiausiai ieškosite atsakymų ne „Phaser“ ratuose ir pritaikysite juos savo projektui, o tai, manau, turi ir savo pranašumų.

Dar viena pastaba, jei neaišku: „Phaser 3 turi nemažai oficialių dokumentų ir pavyzdžių, tačiau neturi bendruomenės ar „Stack Overflow“ atsakymų, kurie patinka daugeliui kitų žaidimų variklių. Jei susiduriate su problema arba negalite kažko išsiaiškinti, turėsite išsiaiškinti savo sprendimą arba paskelbti klausimą „Phaser Discord“ serveryje, kuris, mano patirtimi, buvo naudingas.

Išvada

Atsižvelgiant į tai, kas išdėstyta pirmiau, prototipas, kurį aš klijavau ir aš kartojuosi, yra tas, kurį sukūriau su „Phaser 3“. Suprantu, kad tai gali būti antiklimatinė, nes „Phaser“ iš esmės nėra „geresnis“ už kiti 2D žaidimų kūrimo pagrindai ir varikliai (išskyrus galbūt „React“, kuris nebando būti konkurentu skaitmeninėje žaidimų erdvėje).

Tačiau atrodo, kad „Phaser“ sklandžiau tvarko „ Hacker Battles“ tempimo ir žaidimo ciklo valdymą , o mano tikslams tai svarbu. Man taip pat patinka, kad naudojant „Phaser“ reikia daugiau investuoti į „JavaScript“ ekosistemą (-as) ir bendruomenes, bet vis tiek man įdomu tai padaryti, todėl tai jaučiasi kaip premija.

Jei esate labiau „ką aš galiu naudoti, kad galėčiau greitai ką nors sukurti ir jums nerūpi variklio padėtis“, YMMV.

TL; DR

Reaguoti: puikiai tinka plėtoti priekinę dalį. Nenaudotų žaidimams, ypač vilkdami ir upuść.

Vienybė: galite kurti bet kokio tipo 2D žaidimus, jei norite kovoti su redaktoriumi ir pagrindinėmis 3D savitumomis. Puikus bendruomenės palaikymas, o C # yra nuostabus. Turto parduotuvė egzistuoja, tačiau gali būti nenaudinga jūsų tikslams.

„Godot“: atvirasis šaltinis ir palaiko „GDScript“, C #, net „C ++“ ir „Python“, jei esate pasirengęs atlikti daug sunkiųjų kėlimų. Geros 2D reikšmės, bet ne tiek daug bendruomenės palaikymo, kiek kažkas panašaus į „Vienybę“. Be to, mano patirtis buvo klaidinga.

„Construct 3“: tikrai paprasta naudoti, didelė kliūtis patekti į rinką dėl prenumeratos mokamosios sienos. Vaizdinis scenarijus gali jums pakliūti į nervus, jei norite naudoti ar išmokti kodą, nors dabar yra tam tikras „JavaScript“ palaikymas.

„Game Maker Studio 2“: patogus naudoti redaktorius su geru bendruomenės palaikymu. GML ar vaizdiniai scenarijai gali būti ne jūsų arbatos puodelis, jei kilote iš kitos populiaresnės programavimo kalbos, bet, o Romoje. Be to, reikia sumokėti po 30 dienų nemokamo bandomojo laikotarpio.

„Phaser 3“: tikėkitės viską užkoduoti ir daug ieškokite, kad suprastumėte, kaip viskas veikia. Man tai tinka būtent šiam žaidimui ir prototipui, tačiau „Phaser 4“ yra kelyje, todėl yra ir to.

Tikiuosi, kad šis įrašas bus naudingas jūsų pačių paieškos ir įžvalgos procese. Labai norėčiau išgirsti ir apie jūsų pačių patirtį su bet kuria iš šių sistemų / variklių ar kitų!

Jei jums patiko šis straipsnis, apsvarstykite galimybę peržiūrėti mano žaidimus ir knygas, užsiprenumeruoti „YouTube“ kanalą ar prisijungti prie „ Entromancy Discord“.

MS Farzanas, daktaras parašė ir dirbo aukšto lygio vaizdo žaidimų kompanijose ir redakcijos svetainėse, tokiose kaip „Electronic Arts“, „Perfect World Entertainment“, „Modus Games“ ir „MMORPG.com“, ir dirbo bendruomenės valdytoju tokiems žaidimams kaip „ Dungeons & Dragons Neverwinter“ ir „ Mass Effect: Andromeda“ . Jis yra „ Entromancy: A Cyberpunk Fantasy RPG “ kūrybinis direktorius ir pagrindinis žaidimų dizaineris bei „ Naktinio kelio trilogijos“ autorius . Suraskite MS Farzan „Twitter“ @sominator.