top of page

Node Idea: Honours Project

ROLES

Sole Programmer

DESCRIPTION

This VR game was developed as my research-based honours project as part of my final year in University. The project aimed to measure the effectiveness of a VR game in regards to teaching core programming concepts as opposed to traditional learning methods such as lectures and worksheets. As part of this project, I will be gathering data from volunteer students who will test the game and report their experiences. A dissertation will be produced displaying my findings and development progress. 

YEAR

2023

Team Size

Solo Project

PLATFORM

VR/Windows

Overview

This VR game was developed as part of my final year of university for my Honours Project. For this project, I was required to propose and deliver a project that would fulfill a research purpose. An accompanying dissertation was also required to be produced in addition to the project. I have successfully proposed the project and proven its feasibility via a short gameplay demo. The body of research this project is aiming to advance is the effectiveness of game-based learning. More specifically, I was looking to measure - through the gathering of both quantitative and qualitative data - how effective an educational VR game is at teaching someone core programming concepts when compared to traditional methods such as lectures and worksheets.

 

I  conducted playtests where volunteers with no prior programming knowledge played the game and gave their genuine thoughts on how engaging it was, how much they feel they learned with them doing the same for the lectures and worksheets. The hope was that the VR game would prove to be more engaging and effective than regular teaching content although it was expected that some people would prefer the traditional methods as everyone learns differently.

 

The game is set within a potion brewing shop with the user combining visual programming nodes to create potions (programs). I have developed functional variable nodes that the user can create and assign a data type, arithmetic operators (+,-,/,*, %) that the player can use to manipulate their variables and assignment nodes that can be used to set a variable equal to something. Crucially, I have developed a pseudo-compiler that will inform the player of any compile or syntax errors without the risk of any crashing. For example, the pesudo-compiler will identify any potential divide-by-zero errors within modulus or division calculations without actually running the code meaning that the player can be taught the dangers of such division errors without any risk of the actual VR game crashing. Other errrors detected include undeclared variables, mismatched data type assignments and running an arithmetic operation without assigning it to anything. Other finctionality created within node form include while loops, for loops, if statements, relational operator nodes and logical operator nodes. 

Players will be regularly guided through both the game and programming topics by an NPC supervisor called Alderick. Through this NPC, they will be educated on data type and variables, conditionals, for loops and while loops. They will be able to apply thier newfound knowledge via quiz questions. Once they feel prepared on that topic, customers will enter with requests based on it.  From here, they can prepare the appropriate nodes, combine them with the hammer, drop them in the cauldron and stir. It can then be handed to the customer

It was found that - amongst the participants - the VR game was more engaging and enjoyable with all of them saying that they would prefer to learn programming through the VR game. This supported both the hypothesis and the findings of previous studies within the research area of game-based learning. 

Overall, I'm happy with the knowledge I gained by undertaking this VR project and hope to expand on it in the future as I see great potential with it as an educational tool. 

          My
Contributions

- Proposed a feasible project grounded in research within the realm of game-based learning

- Researched previous studies in similar subject areas and formed a project that fills a gap in available data

- Planned an entire development cycle using a gantt chart that accounts for potential delays

- Coded variable nodes that can be assigned a data type and used in operations

- Implemented functional arithmetic programming nodes (+, -, / , * and %) that can be applied to variables

- Added assignment nodes that can be used to assign values to variable nodes

Created Nodes That Represent For Loops, While Loops, Relational Operators, Logical Operators  and If Statements.

Developed a Tutorial System that guides players through programming fundamentals. 

- Developed a system that allows the nodes to be snapped together and placed in a program

- Created a pseudo-compiler that identifies compile and syntactical errors and notifes the player of their mistake much like an actual compiler would

bottom of page