Blockstars v0.4.5 (Coming to Life)
Today marks the start of a new chapter in our journey to a living, thriving 3D universe of Blockstars. We are releasing our first version of dynamically animated 3D Blockstars in the game! On the surface, this may seem like a small change to the game (and user interface), but the mechanics and foundational pieces we’ve put into place under the hood are tremendously helpful to the future development of our vision of a dynamic 3D Blockiverse.
See your Blockstars move
There are two places to see your 3D Blockstars animate in the game today. First, you can send your Blockstars to Practice or Busk. Once you send them off, you will see them come alive in their action dialogs. The second place where you can find your Blockstars move is on the XP and $ROL earned summary screen. That screen shows up after your Blockstars have completed their Practicing and Busking session.
One small sway for a Blockstar, one giant leap for Blockstars (technology)
The gentle movements you see on your screen took our lean team a bit of elbow grease and plenty of building, testing, and research. In future blog posts, we will have more in-depth detail to offer. As a high-level overview, the process included, amongst other things:
1. Finding the right solution for real-time 3D Blockstar rendering
We started this project by testing and validating various aspects of different potential in-browser real-time rendering solutions. Unlike the trailer, which could be rendered once in the cloud on powerful computers into a single video file for everyone to download and view together, this rendering solution would need to support interactive, dynamic responses to your unique Blockstar and your individual actions, in real-time, on your device — a significantly harder challenge.
The options we evaluated ranged from basic WebGL library wrappers to frameworks and libraries like Three.JS and Babylon.JS, all the way to complete game engines supporting JS / WebGL export like PlayCanvas and Unity3D.
Some of the criteria we were evaluating included reliability (cross-browser & cross-device compatibility, error handling & resilience), performance (loading times, framerate, memory overhead), and scalability (plugin & community support, flexible interfaces, non-engineering ease-of-use). At the end of this process, we concluded that Unity3D best fulfilled our goals and requirements, so what you see today is officially built on Unity!
2. Testing the current limitations of Blockstars
Once we settled on Unity as our real-time 3D solution of choice, it was time to find out what limitations existed when importing the existing Foundation Blockstar assets. Using both Maya and Unity, we programmatically rendered (and generated wireframes) of each combination of Blockstars and their parts to find weak points and identify potential problem areas. We found some issues with the Blockstar’s original skeleton and some collision issues with character positions relative to the instruments they were holding.
After going through these exercises, we realized that we needed to rebuild the Blockstar skeleton to make future Blockstars more robust for a variety of different animations, and we needed to reskin all the parts to be slightly more high-poly to support different movements. On top of all this, we realized the need for more nodes (i.e. attachment points for accessories and instruments) in the skeletal rig to allow for different parts to be more movable and flexible.
3. Creating the right first animation
All the hard work around fixing issues with the skeleton, rig, and skin for the Blockstars boils down to the need for everything to move naturally and seamlessly (just like real human bodies). With this MVP (minimum viable product), we set a goal to create one idle animation that works smoothly across all Blockstars and accounts for the shape and position of every accessory, instrument, and instrument placement relative to the Blockstar body. To accomplish this, we had to give birth to new creatures — the Blockstar Chimeras.
4. Lights, Camera, and Action
The fun does not end with animations. The next layer of complexity comes in the form of cameras and lighting. Just like building sets and lighting rigs in real life film or production studios, our environment needed to be set up with different types of lights and in different locations. Through many trials and errors, we found the right combinations of lights to create the natural effect we were looking for. And along the process, we learned through the challenges we faced — ranging from items being too glossy to complete misrepresentation of the colors and shadows — some best practices that will help make the process more efficient for future iterations.
5. Testing and more fixing
Throughout all this research and building, we depended on frequent testing to help us discover the issues and find weaknesses with our 3D art generation pipeline. As we release these bite sized pieces to the public, know that we will constantly be iterating and making improvements so that the experience is ever improving. Even as I am writing this, we are making a small tweak to the animation spine (for this release) so that the movements and posture look more natural. All that to say, this release is just scratching the surface of all the awesome 3D work our team will be producing.
What’s next
There are a few big challenges we want to tackle next in the 3D world. These include turning our current static background locations into full dynamic 3D environments, adding more complex Blockstar animations with musical instrument considerations, and finally allowing Blockstars to move in their environments and interact with each other and their world. As you can see, this is just the start of our adventure into the world of 3D. Join us in this journey as we build the vibrant and lively future of Blockstars!
Join Us!
This is just a teaser of what we are up to! If you are intrigued by Blockstars, be sure to read much, much more about the game design, tokenomics, and development roadmap in our whitepaper, come and chat with other community members in our Discord and follow us on Twitter. If you want to join the team, check out our job openings here. We will also be posting news about upcoming features, roadmap progress & important events regularly right here, on our blog.