Plugins subscribe to block events and have no way of communicating with each other.
Proposing
An event manager for each block. Block events are raised to this event manager, in which the plugins will subscribe for them. At the same time, plugins can raise their own events, in the event that they wish for other plugins to listen to them. This is useful in #45 where fragile may want to listen for a move event from moveable and not gravity.
Currently @jo-lyn has added highlighted textures for the different blocks. We need a way to set the highlighted texture in the inspector for the faces and pragmatically change the highlighting on hover/click
Although @teclu and I have discussed that we will have invisible walls to prevent the player from dying, the player may desire to return to a certain checkpoint where the puzzle has been untouched. This brings up the question on whether to only allow the player to respawn at the start or at selected points in the stage. Either way, I suggest we have this feature to allow for resetting the stage when resuming the game or on request.
Deliverables
Tech: A checkpoint that will gracefully bring the player back from her current location upon request.
Design: Method of returning should fit with story. Future stage designs should permit a planned entry to a location for checkpoint saving. Alternatively, we could have a checkpoint trigger.
Art: An animation that facilitates the graceful movement. It could range from a simple graphic that warps the player or something cooler like an animal swooping down to collect her back.
Current implementation of cube is using 6 quads and this results in high draw count.
Doing a comparison with 192 cubes.
Current block:
Cubes:
As shown there is a significant fps increase due to reduce in draw count, if we were to go with these cubes. We need to be able to change how block face hovering and clicking will work.
Due to changes in the design, we must now restrict which blocks can be moved based on the player's location. As title mentions, we could use a radius of sorts.
Currently if a block is moved twice in the same direction, it does not maintain the acceleration, resulting in blocks falling in constant velocity. Should implement a way to apply acceleration to a moving block when it it is moved again the frame after it has stopped moving.
Since we have particle effects for fragile blocks, we could consider letting gravel blocks take the texture of surrounding blocks so it blends well with the environment. The player will realise they are standing on a "gravel" block once they see the particles.
Originally we had the camera to had rotate between four preset angles, but upon playtesting the game during stage design, I realised it could be quite frustrating to leave the camera at the previous view once I had finished the block movements I wanted to make in that specific view. Also, the game did look quite strange at certain angles.
* Blue marks a block but it cannot be seen accurately in this view.
Suggestions
We can set a reset camera option to bring it back to the standard initialisation view.
We can bring back the camera rotate about the four preset angles; we can even use this to change lighting and effects based on these preset positions to make sure shadows don't look weird in certain views. In addition, we keep our current implementation of tilt and rotate but the camera will automatically snap back to the previous preset angle after releasing the RMB.
Its not an important feature so its not very urgent. Also, the latter sounds like a lot of additional work for a minor enhancement.
Currently the character is only able to walk at a constant speed. This would slightly limit the platforming element(s) where players have to make a far jump across. Also, players may get tired of the walking speed (and want to speed things up, pun intended). Perhaps give the player a way to activate (or toggle) running, like holding the "shift" key.
Model character to have an animation for the displacement move. Displacement animation should follow the act of pulling, pushing, raising and depressing something.
Some GDG members felt that the highlights for pull-able blocks were not obvious enough. Perhaps we could use particle effects to let players know that they can pull a block.
Debug.Log results in drop in frame rate. We should remove them when merging. Also need one PR to remove all current Debug statements, or at the very least comment them out.