Posted May 02, 2024 by Vermutet Games
#devlog #postmortem #català #Blender #Godot Engine #online multiplayer #game jam
! (English auto-translated version here).
!! (Article original publicat en enriqueam.xyz).
Hola! En aquest devlog compartiré el procés de creació de Brunyols per a la Sant Jordi Jam. Aquest article està basat en la presentació que vam fer en l'esdeveniment presencial, però prou més detallada i en format relativament accessible. Si voleu mirar les diapositives que vam ficar allí, amb imatges extra que no hi haurà a l'article, cliqueu ací. Dit això, anem enllà!
Després de desenvolupar algunes idees amb un equip més extens que no van arribar a fer-se, vaig parlar amb Ely per trobar quin tipus de joc ens interessava fer. Ella i jo fa ja molt de temps que fem jocs, però normalment sempre fem jocs d'estil arcade, ja que la forma de planificar el game loop funciona molt bé per jams; enfocant-se a fer una sola mecànica que funcione bé acompanya bé amb les limitacions de temps de les jams.
Els vilatans de Brunyolet van estar a punt de tindre una feina un poc més complicada.
Pel fet que el tema de la jam era "LLEGENDA & DIADA", a més obert a interpretació, vam pensar que estaria molt bé crear algun tipus d'experiència on la gent tingués la possibilitat de celebrar la diada de Sant Jordi en companyia; en resum, fer algun tipus de joc multijugador. Vam optar per l'online en aquest cas, ja que ens interessava veure com funcionava amb Godot i amb Itch.
La nostra principal inspiració va ser The Annual Ghost Town Pumpkin Festival, de l'Adam Gryu. Si no heu provat aquest joc, apunteu la data en el calendari, perquè quan siga la Castanyada o Halloween és obligatori entrar a provar-lo. Cada any obrin el servidor en aquelles dates i pots entrar a gaudir de la celebració configurant el teu personatge, interactuant amb els altres fantasmes i exposant les teues pròpies creacions amb carabasses, entre altres coses.
Visita obligatòria anual a l'octubre.
Ja que fer un joc multijugador online ens suposava una dificultat extra, per compatibilitats, infraestructura, noves funcionalitats i patrons que aprendre, vam decidir limitar la nostra idea a les interaccions més bàsiques: agafar i llençar objectes, moure's per la pantalla, controlar la càmera. També convenia tindre feta la part de personalització del personatge. Fet el tauler kanban amb els tiquets necessaris, vam començar a treballar!
Brunyols és un videojoc multijugador social online. Té alguns components que el fan beure un poc del gènere sandbox, com els personatges amb físiques i objectes llençables, però en general es podria catalogar més com a un videojoc social, ja que el propòsit i jugabilitat principal no té cap objectiu més que el de relacionar-se amb la gent que està connectada al moment.
En aquest joc ets un vilatà, que apareix amb un nom i cognom aleatori, a més d'una vestimenta aleatòria. Una vegada entres a Brunyolet, pots passejar pel poble, agafar els distints llibres i roses i llençar-los, a terra o a altra gent.
També pots interactuar amb la gent mitjançant distints emotes. Va ser una decisió totalment conscient no ficar xat de text, encara que fos possible, per evitar la necessitat de moderació.
Entre altres coses, es pot girar la càmera amb el ratolí i mantindre les tecles Alt o Clic Central per girar-la al voltant del personatge. Es pot prémer el botó Espai per botar i Escape per visualitzar el menú principal.
Com sempre, hem fet usar Godot Engine 4.2.2 per desenvolupar el videojoc. Ha sigut molt ràpid prototipar el videojoc i fer-lo online, però no ha sigut tan senzill fer altre tipus d'interaccions, com mostrar un llibre a les mans del jugador que l'ha agafat, per exemple: s'ha de notificar des de servidor que X jugador ha agafat Y objecte i mostrar-lo sols en aquest node en compte d'en el node de jugador que està fent servir cada jugador. Encara hi ha codi online que no funciona correctament i no sabem com solucionar-ho, però ara podrem anar comprovant-ho amb més temps.
Ens vam bloquejar un poc intentant que l'export web de Itch es connectés a aquest VPS. Finalment, va ser tan simple com substituir ENetMultiplayerPeer
WebSocketMultiplayerPeer
. Una vegada canviat, s'han de substituir els mètodes per crear servidor i client, a més d'alguna signal. Però molt resumidament, sols fent això i configurant Nginx en el VPS per redirigir les peticions de WebSocket al port correcte ja ho va fer funcionar. Tindre a més en compte que Itch no deixa fer connexions insegures a altres webs, però no hauria de ser massa problemàtic si ja tens un certificat generat amb certbot
, per exemple.
Per la part d'Ely, es va encarregar de tota la direcció d'art per ajudar a transmetre la sensació de celebrar un Sant Jordi virtual. El poble està ple de detalls per observar, el que acompanya perfectament a la naturalesa sense objectius del joc.
Quants llibres podeu reconéixer?
Foto feta per Laia, qui va coorganitzar la Sant Jordi Jam i ens va visitar a Brunyolet!
Crec que a partir de poder provar-lo amb gent, vam poder fer playtesting amb les nostres amistats, i encara que va ser de forma remota, vam obtindre moltíssim feedback per continuar fent la feina bé i prioritzar el que creiem convenient.
És impossible mantindre el terra d'aquest poble en ordre.
Crec que primera i principal: ens hem divertit molt. Ha estat genial fer un joc multijugador online per primera vegada. El fet de fer un videojoc on es pogués compartir l'experiència amb més gent, més en una temàtica tan oberta com un sandbox, sense cap mena d'objectiu concret, ha creat una quantitat gran de situacions divertides i inesperades amb la gent que ha jugat.
Aquest moment exacte va ser quan diguérem que hem de tornar a fer més jocs online.
Crec que ha sigut molt encertat invertir el temps a compatibilitzar el servidor amb Itch, ja que per experiència d'altres jams, com més fàcil és jugar al joc, més gent el provarà.
El fet que el joc tingués físiques bàsiques i per defecte donava lloc a alguns errors amb col·lisions i altres situacions que en jocs seriosos o competitius podrien ser frustrants, però ací han donat lloc a moltes rialles i situacions inesperades, com per exemple:
Aquest error em va voler fer crear una sala secreta en el cel.
Donar un espai obert amb físiques, on es pot interactuar amb l'entorn i socialitzar, va crear una sèrie de situacions noves en les quals Ely i jo ni havíem pensat; situacions que tan sols serien possibles en jocs d'un jugador. Així que tenim clar que més avant farem més jocs multijugador online, per descomptat.
Tot poble que celebre Sant Jordi necessita mínim un llibreter.
Sortir de la zona de confort fent un gènere de joc que no havíem intentat mai crec que també ens ha ajudat a trobar millor el nostre estil i fixar-nos en coses noves.
Crec que vam desaprofitar molt la possibilitat de conéixer a la comunitat que va formar Sant Jordi Jam i als organitzadors de l'esdeveniment. No vam llegir les normes de la jam completament fins al moment de l'entrega (mala idea). Per sort, no vam incomplir les normes, però sí que vam passar per alt que el joc tenia una comunitat de Discord.
Personalment, cada vegada estic més a favor de fer comunitats de qualsevol mena, per mínim que siga l'objectiu. Les jams no competitives ens agraden perquè fomenten fer país, al contrari de l'individualisme que en la meua opinió promouen les competitives. Crear espais, unir a gent amb objectius comuns pot crear resultats molt més interessants que no podrien haver aparegut de forma individual o no diversa. Qui aspire a formar part de qualsevol projecte més gran i no aspire a ser una simple estrela de rock, pot trobar en les jams no competitives una forma d'actuar i aprendre a col·laborar en societat.
A causa de l'error, vam buscar una forma de remeiar-ho, potser no fantàstica, però és el millor que vam poder improvisar amb les poques hores de son que teníem damunt: vam organitzar una quedada popular en Brunyolet. Ely es va currar un cartell fantàstic per convidar la gent a vindre allí el capde:
Hem de repetir!
En assistir a l'esdeveniment, vaig presentar el joc a la resta de gent d'allí. Em vaig ficar dels nervis perquè se'm feia molt estrany escoltar-me TAN fort, no sé usar un micro, havia dormit molt poc i a més se'm va fer complicat resumir tot el que volia dir en tres minuts. Siga com siga, vaig aprendre molt fent-ho. Estic acostumat a fer presentacions online, però no en persona. Per l'altra part, vam poder estar parlant amb la gent que va assistir, tant del nostre joc com dels seus jocs. Tant de bo trobàrem els perfils online de tota la gent amb la qual vam coincidir! En fi, que molt bé i la següent encara millor!
A la dreta del tot, Ely i jo. Si teniu fotos nostres, envieu-nos-la i si és millor substituiré aquesta!
En les últimes diapositives, vam convidar la gent a vindre a l'esdeveniment i vam tindre alguns assistents aquell dissabte! En la meua opinió, va haver-hi més gent de la que esperàvem per a la publicitat i comunitat que vam intentar fer de primeres. Estem molt contents de com es va desenvolupar l'esdeveniment, però a la pròxima crec que estarem més atents a unir-nos i veure com desenvolupen els seus projectes els altres grups, parlar i relacionar-se, ja que és una part important en aquest tipus de comunitats.
A mesura que s'apropava la data d'entrega, vam haver de tallar idees i contingut per poder arribar a temps. El desenvolupament en general ha anat bé. Vam començar a treballar en el joc el 17 d'abril, aproximadament una setmana abans que tanqués la jam. És destacable que no vam aprofitar les dues primeres setmanes i podríem haver treballat més tranquils (i dormir molt més). Molt important cuidar-nos més i millor a la pròxima.
Una de les coses que ha destacat com a lliçó apresa és que el dimoni està en els detalls. Ens hem encallat en molts moments per voler intentar perfeccionar el joc i sempre ens ha desbloquejat dir "és igual, millor deixar-ho i continuar amb la llista de prioritats". A vegades és un procés d'acceptació que costa decidir al moment. Una forma de pensar-ho, seria: "Si aquesta última part que no funciona al 100% ho escrivim en un tiquet a part, seria aquest tiquet el que començaria si no estigués fent res?"; si la resposta és no, doncs a un altre tema.
Tota la resta de coses són detalls específics que hem aprés del motor Godot, de Blender i altres formes d'optimitzar el nostre pipeline intern. És increïble com fer jams i tindre un temps d'entrega curt aguditza l'enginy i genera tantes situacions per a aprendre coses. No aplicable a treballar en empresa perquè en compte d'autoexplotació seria explotació a seques. Respecte a aquest punt, igual que amb el primer: cal saber quan parar. Cuidar-se és important.
Hem deixat coses pendents per falta de temps. Hi ha moltes idees que van quedar fora també per aquest motiu. Volem centrar l'esforç en coses simples que tinguen sentit dins del joc que actualment és ara Brunyols, i més avant decidir (abans de la Diada de Catalunya, potser) per quina direcció seguir.
Les millores bàsiques pensades serien aquestes, que no significa que totes acaben en el joc:
Això seria tot, adéu-siau! Un plaer haver fet aquest joc, haver-nos presentat i haver intentat estar tant com hem pogut. Tenim que donar les gràcies a:
Escrit per Quique (ho fique perquè ho tingueu en compte quan llegiu les opinions personals).
Firmat: Ely i Quique.