Concentration on the game continues for the next few days before I return to the thesis. I had a meeting with a subject matter expert (education and physical education), which was really useful – got some good directions to go in terms of theory, etc. and she also gave me the confidence that I am on the right track.
In terms of game development, I continue to concentrate on what is probably the key game mechanic: the gathering of clues and making deductions, which is really a game dynamic because it dictates most of the gameplay and further builds the aesthetics of challenge and discovery. I have now completed the basic mechanics of the deductions user interface – gathered clues and red herrings relevant to each question are displayed and these can be dragged into deduction slots; when a clue is dragged into a deduction slot it disappears from its clue slot; if when all the deduction slots for a question are filled the deduction has not been solved, the player can drag the clue out of the deduction slot, release the mouse button, and the clue will be placed back in a clue slot. The image below shows the player in the middle of solving a question:
The tutorials on drag and drop from Unreal / Epic Games were very useful as a starting point, but there needed to be customization and refactoring, and a lot of additional development. The refactoring has really cut down the amount of code and I can see there are ways to really slim it down further. One major change from the tutorials was to create an interface to apply to all objects containing clue information. All the objects are gathered as they are and later, when they need to be interrogated, the interface is used to ask for the clue data (currently just an image and the clue description). This means that any object in the game can become a clue – I cast the generic object to a clue as required; I store in the underlying data structures as the generic object.
The next step is to give feedback on when a deduction has been made, i.e. the correct clues have been dropped into all of the deduction slots. I also want to have a cascading mechanic whereby only the questions that need to be answered now are enabled and / or visible; some questions will be locked until a prerequisite question has been answered. In addition, it may not have been possible to discover clues for a question yet (it may be in a future room) and so questions should be locked until all the clues are available.