A demó itt kaparintható meg, és természetesen örömmel fogadok mindennemű véleményt, visszajelzést:
https://store.steampowered.com/app/2156830/Words_of_Yendor/
A technikai háttér
Amikor a játék prototípusai után nekiláttam a teljes változat összerakásának, a Godot Engine-nel még csak a saját, külsőre a Pythonhoz hasonlító, de valójában C++ lelkületű nyelvén, GDScriptben lehetett dolgozni. Azóta már van némi C# lehetőség is, de erről ez a játék már lekésett.
Szerencsémre, mivel ez egy gondolkodós, fordulókra osztott játék, a GDScript sebessége nem volt komoly probléma, sőt, igazából semennyire sem volt gond ebből a szempontból.
Amiatt viszont rengeteget szenvedtem, hogy a GDScripthez gyakorlatilag semmiféle refactoring támogatás nincs (és a debugger is pocsék), így szent esküvéssel megfogadtam, hogy következő projektekhez csakis valami nagyon bevált, kiforrott rendszert és nyelvet használok, mert a játékfejlesztésnél még sokkal fontosabb a hatékony refaktorálás, mint egyéb applikációk esetében.
Windows, Linux, MacOS
A Godot többféle platformot támogat, de engem csak a desktop-vonal érdekelt, mert a mobil piac reménytelenül túlzsúfolt, ráadásul "egyfős csapatként" nincs energiám a rengetegféle kütyü különbségeit, rigolyáit kezelni, és mindenki tudja, hogy a kedvezőtlen visszajelzések hatványozottan befolyásolják a termék jóhírét.
Nem meglepő, hogy a Windowsos builddel (Godot terminológiával: exporttal) volt a legkevesebb gond: tipikus next-next-finish az egész.
Az viszont meglepett, hogy a Linuxos build szinte ugyanilyen egyszerű. Linux Minttel és Arch Linuxszal teszteltem, és elsőre minden működött. (Az Arch Linux installálási folyamata nevetséges, viszont az eredmény szembetűnő: szinte azonnal indul, míg a Mint majdnem annyit vakarózik, mint egy Win10 -- ugyanazon a vason, természetesen.)
Hanem a MacOS... Először is: ehhez muszáj Mac-en dolgozni. Elvileg lehet bérelni Macet neten keresztül, és van is rá tutorial, hogy miképpen kell GitLab CI-jal összedrótozni, de én addig kísérleteztem, míg sikerült összerakni egy shell scriptet Macen, ami megfelelően exportál mindhárom platformra, és elvégzi az Apple által megkövetelt bürokráciát: a codesign-t és a notarizálást. Egy másik shell script pedig feltölti az aktuális buildet Steamre, így egészen nehéz elrontanom bármit is.
A build/upload scriptekre azért volt szükség, mert a Steamen két különböző azonosítója van a teljes és a demó változatnak, és a Godot-val nincs könnyű megoldás az ilyen jellegű adatok csereberéjéhez. Igen, a script a különféle konfigokat módosítgatja, majd git restore-ral takarít saját maga után. Mivel nem vagyok shell-wizard, a ChatGPT felbecsülhetetlen segítséget nyújtott e téren, bár sokat dühöngtem amiatt, hogy néha szó szerint hazudik, hallucinál dolgokat, majd pofátlanul bocsánatot kér és megismétli kicsit másképp, miután közöltem vele, hogy nem működik egyik-másik javaslata. Az AI, bár hasznos, ma még nem veszi át a kódmajmok munkáját.
Steam oldal
A Steam UI szempontból évekkel van lemaradásban, így nem állítom, hogy kellemes élmény a Steam oldal létrehozása, tartalommal feltöltése. Főleg hogy a demóhoz gyakorlatilag még egyszer meg kell ismételni a folyamatot, mert nem mindenhol van "másold át a tartalmat a teljes játék oldaláról" lehetőség.
A support viszont gyors és hatékony, és még az oldal illetve az app review-ja is pár óra alatt kész lett (az ígért "max 5 munkanap"-pal ellentétben).
Hogyan tovább?
Bár a teljes játék készen van hónapok óta, és csak végleges grafikákra vártam, még nem érdemes publikálnom a teljes verziót.
Most a hírverésre kell koncentrálnom, amihez legalább 7000 érdeklődőt ("wishlist") kell a Steam oldalra toboroznom. Elképesztő mennyiségű játékot publikálnak a hozzám hasonló kalandorok, bár ezek 90%-a hitvány, lélektelen, hibás, félkész tákolmány, így a 7000 érdeklődő egyfajta limit, amit átlépve a Steam szélesebb körben is hajlandó lehet ajánlani a játékom.
Meg kellett várnom a demót ahhoz, hogy elkezdhessek házalni streamereknél, akiknek teljes játékot aktiváló kódot tudok adni, abban a reményben, hogy a szükséges hírverést összehozzák. Mert hát nagyon igaz, hogy a játékfejlesztésre fordított energia legalább fele a marketing, amit csak most tudok elkezdeni.
Meglátjuk, mi lesz. Nem szívesen mennék vissza a balettbe, ugrálni, 51 évesen. (Decemberben építettek le egy multinácitól, a szokásos szőnyegbombázás volt, de adtak annyi búcsúpénzt, hogy bele mertem vágni ebbe a játékfejlesztős kísérletbe. Érdekes lenne úgy dolgozni, hogy csak a saját szorgalmamtól függ a megélhetésem, nem valami ismeretlen külföldi akárki random döntésétől, függetlenül attól, hogy mennyi dicséretet kaptam hasonló külföldiektől addig. Nincs képmutatóbb és ostobább dolog annál, mint amikor egy cég úgy tesz, mintha számítana a munkavállaló.)
- Wabbitseason blogja
- A hozzászóláshoz be kell jelentkezni
- 502 megtekintés
Hozzászólások
+ 1 whislist
Küld el Stökiéknek (iddqd.blog.hu ), hogy csináljanak róla minit, ők szívesen reklámozzák a hazai fejlesztéseket.
Meg irhatnál még erről a Godot dologról, meg az egész folyamatról, ha lesz energiád.
- A hozzászóláshoz be kell jelentkezni
Köszönöm a tippet, meg fogom keresni őket!
Szívesen írok többet, de elég terebélyes a téma. Mi érdekelne?
- A hozzászóláshoz be kell jelentkezni
minden IS.
- Miért éppen Godot?
- Mi volt a jó, a rossz és a csúf ebben a fejlesztésben?
- Időben ?
+ ami eszedbe jut.
- A hozzászóláshoz be kell jelentkezni
Miért éppen Godot?
A Java alapú LibGDX frameworkkel már csináltam egy játékot 2017-ben. Ebből megtanultam, hogy hacsak nincs teljesen kiforrott elképzelésem, érdemes valami gyorsabb prototipizálást lehetővé tevő engine-t használni.
Ez után Unity és Godot között ugrálva kísérletezgettem, és a véletlen folytán épp a Godot volt soron, amikor az akkori prototípus annyira nekilendült, hogy gondoltam, ennél maradok.
A Godot előnye, hogy tényleg gyorsan lehet vele dolgozni, és minden kötözködés nélkül letölthető és elindítható.
Saját programozási nyelve van, a GDScript, ami szintaktikailag emlékeztet a Pythonra, de inkább C++ agy kell hozzá. Mostanában már fejlesztik a C# támogatást is, de annak idején ez még gyerekcipőben se járt sajnos.
Jó, rossz és csúf
Tényleg gyorsan lehetett haladni a Godot-val, de sokat szívtam az igencsak változó minőségű dokumentáció, valamint a szintén igencsak változó minőségű implementációk miatt.
A GDScriptről az a véleményem, hogy game jam-ekhez és kisebb méretű játékokhoz alkalmas, de hosszabb távú fejlesztésnél igen sok szenvedés és lemondás forrása, mivel a tooling gyakorlatilag nemlétező fogalom itt. Se egy normális debugger, se egy normális editor. Változók/függvények átnevezése csak search+replace-szel lehetséges, amit nem magyarázok, miért nem működik.
A Godot-ból nemrég érkezett meg a 4.x-es vonal, ami nem kompatibilis a 3.x-szel (amivel én dolgoztam), viszont mert open source engine-ről van szó, a fejlesztők inkább a menő dolgokkal foglalkoznak, és alapvető feature-ök hiányoznak vagy hibásak évek óta, illetve X dolgot olykor több, egymással konkuráló módon is meg lehet közelíteni, ami sok zűrzavar forrása lehet.
Ettől még nem kell leírni a Godot-t, de még érdemes várni rá (nomen est omen), és talán (hasraütéssel becsülve az eddigiek alapján) 3--4 év múlva, mondjuk az 5.2-es verzió környékén már talán alkalmasabb eszközzé nemesedik.
Idő
2016-ban kezdtem a játékötletemen dolgozni, és számtalan prototípust készítettem. A végső verziót 2020 novemberében kezdtem. Volt, ahol nagyon lassan haladtam, de ennek főleg az volt az oka, hogy a játékomban egy csomó minden van, és sokféle rendszer létezik egymás mellett, egymással együttműködve, így eddig tartott, mire mindent ki tudtam találni és egymáshoz igazítani.
A játékfejlesztés nagyon komplex és nagyon sokáig tart, főleg ha egyedül dolgozol valamin.
Most még nem tudom, megérte-e. Mint kaland, feltétlenül. Mint megélhetés, abszolút fogalmam sincs, hiszen még csak most tudom igazán elkezdeni a marketinget, mert külsős grafikussal dolgoztam, aki tulajdonképpen csak a tervezési folyamat végén tudott nekilátni a nem kevés feladatnak. Jó sokba is került az egész, de állítólag pénzbe kerül, hogy pénzt keressen az ember.
- A hozzászóláshoz be kell jelentkezni
hogy találtál grafikust, ismerősön vagy hirdetésen keresztül? magyar/külföldi? milyen az együttműködés? elküldöd az ötleteidet, vázlatol valamit és utána hangoljátok?
Utólag mit gondolsz, lehetett volna AI képgenerátorral?
- A hozzászóláshoz be kell jelentkezni
Facebookon találtam a "Magyar játékfejlesztő grafikusok" csoportban egy hirdetést, hogy épp munkát vállal az illető. Mivel már volt egy Steames játék, aminél a grafikák 99%-a tőle származott, láttam, hogy kiforrott a stílusa, így írtam egy emailt. Igyekeztem minél pontosabban leírni és referenciaképekkel illusztrálni, hogy mire gondolok. Tetszett neki az ötlet, így megegyeztünk, hogy készít néhány tanulmányt, ami alapján közösen kitaláltuk, hogy mit és hogyan érdemes, sok-sok iteráción át.
Két nagy csoportra lehet osztani, amivel megbíztam.
Az első csoport egy dinamikusan variálható karakterportré-rendszer volt. Itt többféle fej, szem, száj és más testrészformát készített, különféle frizurákat és öltözékeket, és addig tanakodtunk, kalapácsoltunk és ügyeskedtünk, amíg meglepően hatékony rendszert sikerült összehozni.
A másik csoport statikus képekről szólt, helyszínrajzokról, amiknél egyfajta sziluett-szerű ábrázolást kértem. Itt olyan restrikciókat adtam meg, hogy azonnal eszembe jutott a Kiberiádából ez a rész, hogy:
-- Írjon kiberotikus verset! -- ragyogott fel hirtelen. -- Legfeljebb öt sor legyen, de szóljon szerelemről, árulásról és halálról, a néger kérdésről és a nimfomániáról, legyen benne a bonyolult női lélek extrém konfliktushelyzetben történő meghasonlásának ábrázolása, a középkori feudális viszonyok és erkölcsök maró bírálata, rímeljen, és minden szó k betűvel kezdődjön!
-- És a végtelen automaták általános elmélete ne legyen benne? -- horkant fel a vérig sértett Trurl. -- Ilyen hülye feltételeket nem lehet szab...
De elakadt a szava, mert az egész csarnokot betöltő, bársonyos bariton máris megszólalt:
Kóbor kaffer kószál királylány kertjében.
Királylány kacéran kacsint kéjvágyó kedvében.
Kapj karodba, kaffer! Király kinéz, kiált:
Katonák! Kürtszó, kivégzés. Királylány kacag kuszán.
Kegyetlen kor! Kicsapongó, koronás kurtizán!
Némelyik helyszín elég absztrakt témájú (vagy túl sokféle al-esemény történhet), és nagyon sokat tanakodtunk közösen, hogyan is érdemes ábrázolni, de közös erőfeszítéssel végül ez is sikerült.
A teljes együttműködés majdnem egy évig tartott, egy--két hónap kihagyással a közepén.
A képgenerátor-technológia ma már talán kezd hasznossá válni, de még nagyon nagy lutri, hogy mi lesz belőle. Ha nem sikerül kitalálnod a helyes promptot, rengeteg időt pazarolhatsz eredménytelenül, és, hacsak nem egyedi, egymástól független illusztrációkra van szükséged, előfordulhat, hogy amíg konzisztensre pofozod a látványt, még több időt (és pénzt) költöttél, ráadásul közben nem is tudsz egyéb feladatokkal haladni -- feltéve, hogy megvan a szükséges grafikusi/art directori képességed, valamint a látásod is jó (nálam például kezdődő szürkehályog nehezíti a helyzetet). (Szintén az AI-témához tartozik, hogy nem tudok olyan szolgáltatásról, ahol vektoros képet kapnál, ami bizonyos stílusoknál szükséges lehet.)
A Steamhez szükséges képekhez MidJourneyvel gyártottam "festményt", és még így is rengeteget kellett rajta alakítanom, amíg a jelenlegi változatához értem.
- A hozzászóláshoz be kell jelentkezni
Köszi a részletes választ és hogy Lem-et idéztél, azért külön pirospont !
- A hozzászóláshoz be kell jelentkezni
+ 1 whislist
- A hozzászóláshoz be kell jelentkezni
+1 whislist
A Steam oldalt megnézegettem, igényesen kivitelezett darabnak tűnik! Gratulálok.
- A hozzászóláshoz be kell jelentkezni
Ez így tetszik.
"A fejlesztők és a Jóisten versenyben vannak. Az előbbiek egyre hülyebiztosabb szerkezeteket csinálnak, a Jóisten meg egyre hülyébb embereket. És hát a Jóisten áll nyerésre." By:nalaca001 valahol máshol
Sose fulld trollba a kretént.
- A hozzászóláshoz be kell jelentkezni