sunnuntai 20. maaliskuuta 2022

Panda⁵ (Panfu HTML5-sivuprojekti)

(This is a quick walkthrough of a new HTML5 Panfu client in Finnish. Or more specifically, it's a remake or a tribute of Panfu, and not a client, since the implementation only works with its own server and requires the complete remake of all the wanted rooms and features.)

Mitä tapahtuu, kun "kiireinen" opiskelija prokrastinoi ja aloittaa uusia sivuprojekteja aikansa kuluksi ja iloksi? No, syntyy tietysti hulluja ideoita ja hankkeita kerta toisensa jälkeen!

Olen tässä blogissa aiemmin esitellyt kaiken maailman virtuaalimaailmahankkeita, jotka ovat sitten ennen pitkää kaatuneet joko motivaationpuutteeseen tai teknisen osaamisen heikkoon tasoon. Niiden virittelystä on kuitenkin jo vuosia, ja on tapahtunut huimaa kehitystä paitsi tekniikassa, myös allekirjoittaneen virittelytaidoissa.

Tutkailin tuossa eräänä iltana kansioihin kertyneitä tiedostosekasotkuja, ja löysin muun muassa kasan Panfuun liittyvää Flash-materiaalia. No, Flash on tekniikkana aikansa elänyt, eikä sitä tueta enää missään uudemmissa selaimissa (minkä takia esim. Panfu.us eli entinen Panfu.me on tehnyt oman erilliseen flash-lisäosaan ja Electroniin pohjautuvan erikoisselaimensa flash-version pelaamista varten), mutta kaikki vanha hieno materiaali on edelleen olemassa Flash-tiedostoissa, ja on niistä muunnettavissa kikkailemalla käyttökelpoisempaan muotoon!


Videoklipissä on lyhyt havainnollistava visiitti viimeisimmän sivuprojektini äärellä. Aikaa on tähän mennessä käytetty muutamia iltoja, ja tuloksena on (jossain määrin) toimiva pandapelimoottori moninpelituella palvelimineen kaikkineen.

Flashista eteenpäin siirtymistä ajatellen on tehty jos jonkinlaisia työkaluja, kuten Ruffle (Flash-emulaattori selaimessa) ja erinäisiä maksullisia työkaluja, joskaan mitään näistä ei ole tässä projektissa käytetty, vaan pelimoottori on rakennettu puhtaasti HTML5-tekniikoilla, frontendissä myös Reactia hyödyntäen.


Huonejärjestysten ja -animaatioiden ynnä muun hienon tavaran järjestelyn helpottamiseksi väänsin ensin melko alkeellisen huone-editorin, jonka alle alkoi siis rakentua tietysti myös PandaEngineksi kutsumani huonemoottori. Sen käyttöliittymä on kyhätty nopeasti kasaan Reactilla, ja se ulostaa mukavia zip-paketteja jotka toimivat suoraan huonemoottorissa myös pelin puolella, sisältäen kaiken huoneen animaatioista aina skriptattaviin erikoisominaisuuksiin asti.


Huoneiden nakertaminen kasaan on melko työlästä, ja jaksamisasteesta riippuen niistä tulee enemmän tai vähemmän pikselintarkkoja. Tosin, lähdin tähän sivuprojektiin puhtaasti sillä ajatuksella, että tarkoitus ei ole tehdä sataprosenttisen tarkkaa kopiota Flash-Panfusta, vaan ehkäpä luoda riittävä illuusio tietystä "Panfumaisuudesta" kuitenkin mahdollistaen uudenkin sisällön luomisen.

Käytännössä se tarkoittaa sitä, että alapalkin nappulat eivät ole pikselilleen oikeassa kohdassa, maauimalan suihku suihkuttaa toistaiseksi vain hiiren ollessa sen päällä, ja rannan simpukankuoret sun muut kilkkeet eivät varmastikaan ole vielä oikeilla paikoilla. Teoriassa se voisi tarkoittaa sitä, että vähällä vaivalla tämän pelimoottorin päälle voisi tulevaisuudessa ehkä väsätä uusia viikkotehtäviä, spesiaalihuoneita, uusia toimintoja...


Flash on erikoinen ja monella tavalla ristiriitainen formaatti, mikä näkyy osaltaan myös Panfun swf-tiedostoissa. Esimerkiksi panda-animaatioiden kokoaminen kasaan ei-flashmaiseen ja järkevään muotoon oli (ja on edelleen) yksi iso työmaa, mutta vielä sitäkin ärsyttävämpi työmaa on esimerkiksi kaikkien vaatteiden ja käsitavaroiden muuttaminen epäflashiksi. Muistan kirjoittaneeni sitä(kin) varten jo jonkinlaisen työkalun joitain vuosia sitten, pitää ehkä kaivaa se naftaliinista...

Tämä oli siis lyhyt katsaus siihen, että pandaprojektit elävät yhä! Kaikille Panfu-nostalgiaa kaipaaville voin suositella tämänhetkisistä privaattipanfuista ainakin Pandalandia (pandaland.eu, html5) ja Panfu.us:ää (flash).

Koska aika on enemmän ja vähemmän kortilla, en lupaa että tämä projekti etenisi koskaan lyhyttä hassuttelua vakavammaksi, mutta pyrin päivittämään panda-asioihin liittyvät uutiset tänne! (Tämä blogi taitaa muuten olla jo yli kymmenen vuotta vanha...jee!) 

Vilkutusanimaatiota en ole vielä tehnyt pelimoottoriin valmiiksi,
joten loppuvilkutukseksi saa kelvata pandahahmon
vilkutusanimaation kaikki framet ilman väritasoa.



Lisäedit 26.3.2022