This week has seen the development of some player feedback to enhance the experience. The first thing to do was to get loading screen tips integrated into the game so that I can give some helpful hints to new players. Thats simple enough, but I ended up having to choose a route that I suspect isnt the correct way of doing it.
Your typical loading screen is there to prevent players dying of boredom staring at a blank screen while your engine loads in a ton of assets, but my game is relatively tiny as there is no level as such to load. That meant that the first loading screen I programmed (the correct way, loading the next level in the background) didnt work, as it loaded so quick you barely noticed the loading screen!
So, because I want to be able to give tips to the players inbetween levels, I had to first generate a fake time delay to give the player ample time to read the tip, then load the level in the background. Its not elegant, but hey, it works 😉
The next job was to integrate some form of player feedback into the tower stacking game. The game basically tries to calculate which block is currently the highest (on the Y axis) that isn’t moving, and that determines the height of the tower. The camera and canvases will then move to match that height, so the higher you go, the higher the viewpoint. The problem was that in my early builds there was a game breaking exploit where the player could rest one block on top of another, then pick up the block underneath it and lift it up to the desired height to win. This is becuase when manipulating a block, I am doing via direct translates, which doesnt use the games physics engine. The block resting on top of that block also isnt being driven by physics and ends up constantly being at rest.
So, the only way I could see to resolve this, was to only calculate the height of blocks whose Rigidbody is sleeping and only while the player isnt moving an object. I then put in a small routine to let the player know that the game is calculating the blocks resting positions through an on screen prompt. Problem was that the height immediately becomes “1” when checking heights and the camera plummets down the screen to the bottom, and immediately shoots back up when done and this is horrible in VR! So, I wrote a function to move the camera up if height is increasing as per normal, but if the height decreases, to wait until the blocks have settled before moving the camera, problem solved.
Each small iterative update that adds a little more feedback into the game is making a huge difference to the feel of the game, so I am definately pleased with that. For now, I think the alpha preview is complete and its time to start work on the actual main game levels now, starting with the challenge levels.
Keep in touch for more updates as we go on 🙂