Here you can view a small demo of the normal use of the Aquascape Platform Editor. A platform is being created, functionality added (platform made walkable, agent position transformation), and then tested in the 2D platform tester.
A way to make sure I’ve considered all aspects the system needs is by making an activity diagram of how the tool will be used. This helps in making sure that an interaction is not forgotten and that no possible user-induced error is overlooked. For this project I sat together with the designer and artist responsible for the platforms to make sure this custom editor did exactly what was required for them to do their job. Click to view the whole image.
Before programming the system I like to create an UML diagram of what I am going to create, for communication purposes and because it provides an overview of what elements I need to consider. Here you see the UML diagram, and below a short explanation of the important aspects. Click to view the whole image.
Below I have written an elaboration on the classes displayed in the UML about their role in the system.
This class is a support class I made to be able to have an interactive display in the custom editor. While the idea to make it came from this project, I decided to work on it separately as I saw usage for it in other context. You can read about it at the EasyEditorDisplay item in my portfolio.
This class contains the view part of this tool. It handles how the inspector for the PlacableObject instances is drawn and it handles the input provided by the user. A script snippet is shown below.
To keep everything as clean as possible, all functions concerned with the actual altering of data inside the PlacableObject instances have been separated to this class. They are called by the PlacableObject_Editor whenever necessary.
As stated before, I like to seperate functionality as much as possible as to optimise readability. In this snippet it's easy to see how I made it work for this project, where the mouse input handling is clear, with the actual data management handled elsewhere.