It is no secret that the Singapore government has been ramping up efforts to transform the country into a Smart Nation — one that is powered by innovation and digital literacy. One way that it is doing so is through Code For Fun (CFF). CFF was first launched in 2014 as an optional enrichment program for primary and secondary school students and has been made compulsory for all upper primary school pupils since 2020. The 10-hour coding program aims to introduce students to computational thinking concepts and basic coding at an early age.
Recognizing the importance of inculcating these skills in young learners, a group of four second-year DigiPen (Singapore) students came together and decided to create a game that could address this as part of their GAM200 and GAM250 project module. They are BS in Computer Science and Game Design students Jean Lim and Wee Ding Wei, and BS in Computer Science in Real-Time Interactive Simulation students Malcolm Lim and Ryan Ng.
Although existing visual-based programming resources and robotic kits like Micro:bit — which is used in CFF — are already available on the market, the team decided to create their own version, as they felt that these educational tools could be daunting to children who were coding for the first time. “We looked at existing educational games out there and found that most of them featured a lot of hand-holding by constantly bombarding players with information,” Jean says. “We felt that we could do better and set out to develop a game that would be more interactive for a younger audience.” With those considerations in mind, the team eventually created Programmer Life, a 2D puzzle game that teaches children the basics of coding. It is targeted at children ages 9 to 11.
Though the team was lean, they worked well together and had clearly defined roles. Jean took charge as producer and spearheaded the game’s direction. She also developed the game’s core scripting system to ensure it could successfully integrate gameplay elements. Ding Wei, as the design lead, was responsible for level designs and interactions between players and code nodes. Malcolm was the technical lead who built the engine architecture and made sure it ran smoothly, and Ryan assumed the role of the audio and tools programmer. He oversaw all in-game sound and music, as well as various miscellaneous tools that the engine needed.
In Programmer Life, players take control of a character who faces obstacles while traveling through space. In order to exit each level safely, players have to input a series of instructions called code nodes through a drag-and-drop system. These code nodes will control the character’s movements and direct it to an exit portal. As the game progresses, the levels get increasingly complicated and require players to input more nodes to complete them successfully. During an initial playtesting session with a group of 10-year-olds, the team noticed that some players had difficulty with the latter half of the levels and did not know what to do. They realized that the biggest challenge young learners faced when coding was in understanding and applying computational thinking. The logical foundations required to understand, analyze, and apply knowledge was different from just memorizing steps. Hence, the team included a hint system in the final version of the game that would give players a rundown of what each level was about. This guided the players’ thinking and helped to break down complex levels. “We learned a lot by putting ourselves in the shoes of younger learners and acknowledging what gets their attention and what works for them,” Jean says. “Understanding how children learn was crucial, and that helped us design more intuitive levels in Programmer Life.”
Despite developing a game that the team is proud of, the journey was not without its hiccups. Programmer Life was supposed to take 24 weeks to develop over the span of two trimesters. The team had to first build their game engine in GAM200, then subsequently use that engine to create their game in GAM250. However, by the end of GAM200, the team realized that the engine did not have the capabilities to manifest the game idea they wanted. They immediately recreated the game engine from scratch and started working on artwork in advance during the two-week trimester break before GAM250 started. “Since Programmer Life was created on a custom engine, we needed to know how we could utilize code to create visual code. This was much more challenging than we had expected, and it took us almost a month of research and design to come up with a system that supported our needs,” Ding Wei says.
Another problem that the team faced was over-scoping. They originally planned to have more levels and features but realized they were unable to do so with their workload and technical limitations. Instead of building a bigger game, the team decided to keep Programmer Life as simple as possible while still embodying the coding focus that they wanted. In the end, Programmer Life was created within just 12 weeks. The team hopes that Programmer Life will be a good complementary tool to the existing educational resources available and that the quirky artwork and interactive gameplay will help spark an interest in coding among young learners.