Skip to main content

Adding the Models and Socket.io

This week involved touching on a few different systems to fine tune existing modules as well as create new modules.  Two components that had the most focus were replacing the primitive models with the GLTF models Max created (~8-10 hours), and separating the living-room and warehouse into two separate HTML files as well implementing Socket.io to allow player game-mode selection (~4-5 hours). The rest of my time was spent on smaller functionality like player speed tweaks and consolidating a-mixins for the for their data to be move to the object JSON file (~2 hours)
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWbOzK0jaA6visJrl1eMlWexGo9_sXEfVXRq-MJq7oFLQAN2uS9SUfqsDVkjYKxb9AZtGsbt3jkSSuAYtvV9GV1sF8TDyjrK0Wb_9a0XUagH5gU5Z2EGpI2CUJHQW62cFXxqBD3_N5s6k/s1600/Alpha_Example.png
Alpha Table
Beta Table

Replacing the primitive chair pieces with their models proved to be far more difficult than anticipated, as usual.  The process should have just involved replacing the 'geometry' with the 'gltf-model' component and then adjusting the aframe-physics 'shape' components to create bounding boxes that fit the models, but there were some unexpected side effects.  First, since the shape component relies on 'half-extents' to create the bounding box, we needed to find the dimensions of each model in Maya and them to dimensions in Aframe.  The second issue I faced involved strange behaviours that the models exhibited when interacting with the physics system.  All the table legs behaved like they had very low centres of gravity and they could not be knocked over, but the table top was totally fine.  I eventually narrowed the issue down to the fact that the table leg model was not properly zeroed, so Max exported a new version for me.  Another issue with the models was that they were much more difficult to pick up and they oscillated when picked up and moved quickly.  This seems to have been mostly fixed by increasing the scale of the models, though it still occurs if the user quickly rotates the view while holding an object, so is something I am still working on.

Since we have two different environments that offer different gameplay I needed to separate the warehouse and living-room into two HTML files and then create a nexus room that allows players to select and navigate to either room. This meant I also had to recreate an normal HTML navigation link as an Aframe component.  As it turned out, this was quite simple:

AFRAME.registerComponent('navigate',
{
    schema: {
        url: { default: '' }
    },

    init: function ()
    {
        var data = this.data;
        var el = this.el;

        el.addEventListener('click', function ()
        {
            window.location.href = data.url;
        });
    }
});        

The next few days will be spent implementing the game system that will co-ordinate the two players as they construct the furniture. 

Comments

Popular posts from this blog

Sprint 5 - Finishing the Furniture

This week, I completed modelling (4hrs) and texturing (7hrs) the furniture that will be used in the scene. It took longer than I expected because I had difficulty nailing down an art style while also working with new techniques in Substance Painter that I wasn't familiar with. A big challenge was finding a style that I really liked and understanding how to achieve that. My experience is more in realistic modelling and texturing where it's easy to see where things don't look right. However, with stylized pieces, it's up to my own interpretation. I'm also working with a very base, low-resolution mesh because I want to avoid creating too much detail through normal or height maps. The simpler, the better, but, the simpler, the less there is to work with. The grand solution in nailing down a flexible art style was through the use of ambient occlusion. By baking the same model over itself, I get an AO map, which already improves the look dramatically as it removes ...

[WEEK 3] Illustrations and Alpha Prototype

This week, we need to complete the user interaction specification document, which contains many graphical components that need to be created. This includes the storyboard/wireframes, design compositions, and the architectural flow of our game. Additionally, the Alpha prototype is due next Friday! This is a huge priority and at this point, we will be relying on Mitchell to work on coding majority of the functional elements. Primitive environments have been prepared by Maxime, but they need to be tested in a VR environment (i.e. for scale). Priscilla will be putting together all the parts of the proposal document and supporting both Mitchell and Maxime with their tasks.