Indie Cup Germany’22

ENC#YPTED: An Educational Game for Programming in the Unity Engine

Vincent Schiller

Main Idea

ENC#YPTED is a dystopian computer game with simulation-like approaches that teaches programming in the Unity Engine. After a virus encrypts all of the player's data, they must solve code-based tasks to use the virtual character to recover the data and unlock it on the system.

Main Description

Educational games exist for all common programming languages. However, no comprehensive educational game focusing on programming in the Unity Engine can be found on any of the common digital marketplaces. To change this phenomenon, a simulation game for learning Unity-specific programming paradigms called 'ENC#YPTED' was developed. This development followed a user-centered design approach. User-experience testing was used to explore how to design a digital game-based learning application with the learning objective to acquire programming skills in the Unity engine so that the experience is user-friendly, motivating, and extensible.

At the beginning of the educational game, the user enters a Windows-like operating system, whose functionalities they first get to know in an explorative way. By using the game's own web browser, they are led to download a virus. After this executes itself, a blue screen occurs, whereupon the operating system reboots itself with a gloomy aesthetic. From this point on, players can no longer access the previously unknown data on the virtual desktop, as it has been encrypted. Only through the code-based collection of files in the game world, the users can unlock and open the files on the desktop again. They have to discover the solutions to these tasks by themselves, whereby their possibilities to act are limited. When the users have successfully solved all levels and thus saved all their data, the virus leaves the operating system again.

Users will learn Unity-specific methods as they progress through the game. The three levels each deal with specific topics, such as input, physics, and animation, in combination with basic C# use cases, such as the use of vectors, loops and logic. The learning goal is to identify connections and learn how to seek external help for various problems. It is not the intention of the application that users have a comprehensive knowledge of the Unity Engine after playing the educational game. With its graphical user interface, Unity integrates many more facets than programming which have not been relevant to this project. However, users should be able to easily acquire the rest of the knowledge about the engine in various ways. In the future, the game will contain levels for all topics of programming in Unity.

The game primarily aims at an enhancement of the learning or teaching experience of students and teachers in the field of computer science and game design, especially Unity Development. The knowledge of English and basic programming skills (ideally in C#) are prerequisites to achieve the learning objectives. Since the developed application is a prototype with three levels, the chosen topic is not yet comprehensively covered. Should further levels be developed in the future, which give a complete insight into the Unity-specific paradigms based on a clearly defined, common thread, there is the potential to use the application in teaching after a one-semester basic lecture on object-oriented programming. In the case of the inclusion of object-oriented fundamentals with the programming language C# within the application, even the use for students without prior knowledge is conceivable.

The design concept is based on the simulation of a realistic-looking, abstract Windows operating system to enhance immersion. Application windows can be transformed arbitrarily, thus giving players the freedom to set a personalized screen layout. To manage the open windows and to make the simulation more realistic, a taskbar and a start menu were also implemented. A reduction to the most important graphical elements perfectly serves the goal of being able to control the attention of users during the game. The specially created code editor is aesthetically based on a standard Unity editor (Visual Studio) so that users will hardly have to change when switching from ENC#YPTED to the real Unity application due to the familiar design.

The features include an implemented runtime compiler, which makes it possible to execute the code written by the player within the runtime of the application and, thus, instantly influence the game world. This code is highlighted in different colors with syntax highlighting and compared with an allowlist before execution. Errors during execution are displayed in comprehensible console output. If at some point the player cannot find the solution without help, it is possible to use the 'Instant Help Forum' within the application to get immediate help on questions. When the player completes a level, he has the option to view the decrypted files and play a new level which appears in the Windows-like start menu.

Dresden Excellence Award 2020
Games Innovation Award Saxony 2021

About Developer

The development of ENC#YPTED began as part of Vincent Schiller's bachelor thesis. During the implementation it was analyzed how to make such a programming learning game as user-friendly, motivating and extensible as possible.

The reason for this topic was Vincent's passion for programming in Unity and the urge to improve the fact that there is no real learning game for it. Especially knowing the potential and impact that educational games can have on motivating people to learn new topics. Due to this potential and the scientific findings, the bachelor thesis was awarded with the highest endowed science prize in Saxony, the 'Dresden Excellence Award'. In addition, the resulting prototype of the game was awarded with the ' Games Innovation Award Saxony' as the best Serious Game 2021. Furthermore, the game and the associated scientific findings have already been presented at national and international conferences.

The connection between science and technology is ideal for advancing the project and for helping novice programmers overcome their fear of programming in the future so that others don't face such a difficult entry into the world of programming as Vincent did. After being very afraid of it himself and discovering his passion out of necessity, he now develops scientific and industrial interactive experiences, both as an employee in the New Work Design Lab at the Fachhochschule Dresden (FHD) and in his own business, which he has been running since he started his studies in 2017.
There, in addition to his own projects such as ENC#YPTED, he works together with various Dresden-based companies on the creation of innovative solutions and products to actively contribute to the development of Dresden as a business and science location. In addition to video production, software development and product design, he also supports Dresden's club culture with his unique light installations.