Hi, Welcome to VR Me Up Developer Log Number 14
It’s been a while since my last update but I have been working hard behind the scenes adding some important features to the VR Me Up server.
VR Me Up is made up of 2 major components. The VR client browser application is coded in typescript and three.js while the server application is coded in C# dot net. The server handles all the user connections, 3d assets, sounds, and maintains user state, performs interactions between users and the world and tracks what you can see and what needs to be updated.
My aim is to one day allow people to create their own VR worlds using their own 3d models, images, sounds and Avatars. Unfortunately, the worlds were currently created using a predefined collection of components that I created such as walls, furniture, avatars, etc. These Individual components are then used to create more complex structures and environments in the worlds.
The biggest limitation on the old server was that all these components where built into the application package and were distributed with the server application. In order to add any assets, like a new skybox or a new model package, I had to add it to the application, build it and update the entire server…. not good!
I’ve been working on a content management system that is now used to upload assets to the server and store them in the database along with all the other world information. For example, to change the sky box the background images can be uploaded to the servers content management system and with a few simple world configuration changes the new environment takes effect.
A content management system may not sound too difficult, but there was actually a lot of work behind the scenes.
-
I had to update the admin interface to provide a way to upload and manage the assets on the server and in the database.
-
I also had to implement a caching system so that every request for an asset would not hit the database. When the asset is first requested, it’s read from the database and then written into a disk cache. The next time the asset is requested it can be served from the disk instead of the database.
-
An advanced feature is the ability to upload a ZIP archive and serve each of the files in the archive individually, without unpacking the archive. This is great for things like skyboxes and terrains which are made up of multiple files.
Although I have been working hard on the server side, I still managed to give the client application a “bit of love”. I’ve added a couple of new features that I hope make VR Me Up worlds easier and more fun to use.
-
The “return to home” feature on the menu can be used if the avatar gets stuck or lost in the world, and returns the user to a home location.
-
I’ve also added a fun “share location” feature that allows you to send a link to other people and have them join you at your location in the world. This is great if you want to meet up with friends and go exploring together. These links are only meant to be temporary as they may become invalid if the world changes, however, in the short term they can also be used as bookmarks to your favourite spots.
I hope you enjoy the new features and please stay tuned for more changes and worlds in VR Me Up, and one day the ability to create your own worlds.
See you in the Metaverse…
VR Me Up!