Map Polishing - UQdeco2800/2022-studio-1 GitHub Wiki

Summary

During sprint 3 it was found that user's desired extra features involving the map. These features, whilst for the most case being fairly specific interactions, add much to the feeling of overall polish of the game, and as such it was a high priority of the team to finalise the development of the following features.

Fixes

Destruction of buildings upon water level receding

  • This feature is a revolves around the interaction between the game's water level when it surpasses buildings which have already been constructed
  • Through user testing it was decided that should water levels overtake a building, the building would be damaged and would be unable to be repaired until the player expanded the island again

This was implemented in Terrain Component: image

This implementation ensures that only structure entities are damaged by the receeding waterline.

Island Borders

  • The current implementation of island borders have created the ability for the player to walk on water (an unintended bug), as such it is a high priority of the team to fix the player to the island through integration with the UGS (Unified Grid System)

This was implemented as a secondary feature of the Isometric Player Movement.

UGS Integration

  • The UGS stores information relevant to the state of the world, however currently when the island changes size, the UGS is not updated to reflect this
  • As such it is a high priority of the team to make changes the map's integration with the UGS to ensure this bug does not affect the player (i.e. the player is unable to walk on pieces of land that had previously been water)
  • Finally, additional user tests were conducted and jUnit tests written to further improve the map feature

this was implemented as a function, that is called every time the map changes in size. The implementation is as follows: image

Code Testing

Code testing can be found here.

Future Expansion

In the future, to further expand upon these features should another developement team take over, further user testing should be conducted to ideate what further polishing should occur.