Track: High School STEM Competition
Serious games offer an interactive platform for teaching and evaluating processes. It incorporates educational elements (such as programming language and healthcare) into the game environment to support teaching and learning. It also helps to assess the student’s knowledge and performance. Serious games are a fun and effective tool for students that increases the engagement and motivation of students by being interactive and engaging. Data from serious games can be used to assess student’s learning. However, gathering the data from the game is not that straight forward. Different factors in the game environment need to be considered, such as whether the game is an online or offline game and whether the data need to be captured in a shared data storage (i.e. shared database).
In this project, we focus on investigating techniques to retrieve game setting data from the database and to save game data to the database. These techniques are applied in an online serious game developed by Temasek Polytechnic for a specific programming subject. The questions for a specific topic are saved in a shared database as the game setting data which will be displayed in the game to the students. The students would then interact with the content within the game to answer these questions and the game data (i.e. answers that students provide, time taken to answer the question, and score) will then be passed into the shared database for analysis to be able to give feedback to the learner using statistics derived from the data collected.
We investigated two techniques to retrieve and save data from/to the shared database. The two techniques are real time processing and batch processing. Real time processing requires the game to retrieve the game setting data when it is needed and send the game data once it is being collected. While batch processing retrieves all the game setting data in advance (i.e. when loading the game for the first time) and accumulates all the game data before sending to the shared database. We implemented both techniques in one online serious game and compared the results.
When comparing both methods, we found that real time processing is a resource intensive process through multiple web requests and that the data that is being sent to the database might be incomplete when player ends the game prematurely. In our application, it's important to optimize the retrieval and sending of data. This is due to the game being a web game and the need to cater for an expandable number of users. Having complete data is also important as we want the analysis to be accurate when displayed graphically to relevant stakeholder. Hence, we went with batch processing as our method to retrieve and send data to the database.