I suppose you could say that I have been completely preoccupied with the concept of constructing an entire city that encapsulates the idea of what the Phettaverse is. This is similar to the hub worlds in games like The Legend of Zelda and Mario's Peach's Castle, which you probably remember from your youth. Not just a city in and of itself, but a city that is efficient enough to fit inside of a single GLB file, and in this case, a portable city that can be ported to worlds such as VRChat, any kind of game that I make, Webaverse, and Hyperfy, just to name a few examples off the top of my head for the sake of clarity.
A Hub world can contain many things, quests to learn more about the world you are inside, stores, and characters actively living in it. How does a one-man show create such a thing from what he has been building for a year? Very carefully, and with MANY different attempts. I think this idea came to me when playing Jet Set Radio and doing a bit of inspiration searching; the idea of creating an active and lively city is so fascinating to me. I think it cause, how do you do that in a portable way that could, for example, fit in a single GLB file that you can bring across platforms? I could say, for instance, focus on building out a big game, but I find that not many people will take the time to download that game nowadays; people are actively on their phones and computers and wanna be able to enter an experience quickly. What better way to do that than inside your browser? No downloading is needed; just click, load, and explore. I've found a few different experiences that provide that, and the city has also been part of those journeys.
When it comes to building a city from scratch as an individual, this is often a job for a group of individuals, right? Although I cannot say for sure, I have the impression that a significant amount of mental effort is being exerted on my part. I think I have experienced three distinct iterations of this metropolis. The first variant has around one million tris, which is not very useful if I want to carry it around to various locations. During this time, I think my brain said, hell, I don't know how the hell to optimize a scene! I sculpt all my models in VR, meaning they don't have the most excellent tris count, and some may say, why don't you just retopo it? Oh, I do! My models are lovely in that even if you don't need them; they seem to have double layers. However, this was near the beginning of my exploration of fitting a vast scene into a game/virtual experience. So you know, I got overwhelmed and focused on others things; I made a few different pieces of art within the city and slowly started expanding on the buildings within it.
One thing you can notice with the top screenshot is that this bitch is empty! This was near the beginning when I was just laying out the buildings soon to come. Since the beginning of the idea of creating an entire city, I, of course, wanted a structure for each character that enhabits the Phettaverse; now, the way that I make characters and use them can widely vary, a running inside joke amongst my friends is that the characters that appear then don't get used are just characters that are lost within the Phettaverse forest, maybe one day they will come back, but for now, there is just the distant memory of them for the true fans of the universe. Of course, some of the first buildings I made were towering filler buildings to give it a bit more claustrophobic city vibe. After making some bare essentials, I moved on to create structures for characters; Star Club Dance Club and 7Rabbits were some of the first.
My love of music inspired me to start Star Club; I've always wanted to DJ a set but never had the time to learn how, so maybe one day, I'll perform a virtual one! In addition, I am responsible for the majority of the musical compositions found inside the Phettaverse. Composing music was a significant part of my creative journey even before I started working on Phetta. 7Rabbits encapsulates the concept of me never leaving the house, except for trips to the smoke store to satisfy my smoking requirements. A genuine reflection of the creator.
The Phettaverse is heavily centered around music. Therefore I knew I had to include a structure called the Jazz Ants room as one of the very first additions to the City. This was something that I worked on when I first started experimenting with sculpting in 3D and virtual reality. I had to redesign the structure and character to fit the aesthetic of the new city, but I couldn't forget about the past.
One of my first attempts at bringing the city to the web was through Janus...
What is JanusWeb exactly?
Easily connect to the metaverse from within a normal 2D browser. Whether on a desktop computer, phone, or tablet, JanusWeb runs on most modern web browsers and lets you explore, chat and play across devices. Think of it as a way to completely rethink how we surf the web and consume media. Typically, I share my art via video or image on Twitter or my website. However, with Janus, I’ll be able to recreate those scenes of 3D work and allow users to chat, walk around, and view these imaginative worlds. You can find more about Janus here.
This seemed to work well. However, my experience with optimizing worlds and 3D models was almost zero, so I was loading this on the shear power of the computer I was using; most people mentioned it would crash your browser; hell, it would even crash mine sometimes. I enjoyed working with Janus. However, the Avatar system I seemed to have trouble with, and one major thing I need when bringing a world together in your browser is, of course, an avatar system.
Would you visit The Phettaverse City? pic.twitter.com/UgpjVkeepA
— null (SR GENESIS OUT NOW) (@em0tionull) April 29, 2022
Webaverse was my next stop, and it was there that I had tremendous success porting my world over to the browser format; nevertheless, it was still very poorly optimized. I quickly became hooked on Webaverse because of its layout, which seemed to tolerate large poly counts better than Janus. Mainly, the concept of being able to drag and drop my models and arrange them anywhere I choose; I feel this is something I need with my workflow; I am a very erratic, itchy-brain artist, so I need to be able to work quickly and smoothly.
Learning about the NPCs' artificial intelligence (AI) system further grabbed me; it reminded me of a popular Google chat bot from the past, and I had a strong sense of nostalgia at the prospect of having a simple conversation with a character in a virtual environment.
So, here we are in the present! I've settled on a productive routine that allows me to expand the scope and mobility of the Hub universe I've been developing. In recent times, I've been expanding the world and replacing many generic structures with ones with artistic or narrative significance. The more time I spent fleshing out the concept in Hyperfy/Webaverse, the more complete it seemed.
So what does the city look like now? Jeez it took you forever to ask! I'd love to show you.
Here we have a picture of present-day Hub World; you can even visit the world here to ensure it's still up to date! I hope to add some NPC dialogues and quests to this world; big shout out to Hyperfy! I have a lot to thank for them and for being so lovely to help with any questions. I believe my exploration with Hyperfy helped the city layout click for me, and I have been slowly adding to it. Currently, the city sits at about 500k tris, which is way too much, but we have been slowly getting it lower and lower to a point where loading isn't too bad. The single glb file containing the entire city is about 150mb right now, and my best guess would be the image sizes used worldwide. I was recently introduced to a new plugin called Simplygon by Jin, aka DankVR! This plugin has been a lifesaver as my models are genuinely not the greatest for the web.
My next step will be optimizing the world a bit more and compressing the images/textures used within the world, as well as hopefully getting the world set up in VRchat. DankVR mentioned the UniVRM plugin for Unity allows you to import a glb so I am interested to see if I could take a couple of steps to import the city to vrchat.