Korea Digital Contents Society
[ Article ]
Journal of Digital Contents Society - Vol. 24, No. 12, pp.3153-3166
ISSN: 1598-2009 (Print) 2287-738X (Online)
Print publication date 31 Dec 2023
Received 29 Oct 2023 Revised 27 Nov 2023 Accepted 04 Dec 2023
DOI: https://doi.org/10.9728/dcs.2023.24.12.3153

코딩 교육을 위한 기능성 게임 “COngDING” 개발

이수연1 ; 윤서영2 ; 정소윤2 ; 우탁3, *
1경희대학교 일반대학원 메타버스학과 석사과정
2경희대학교 소프트웨어융합대학 소프트웨어융합학과 학사과정 졸업
3경희대학교 예술디자인대학 디지털콘텐츠학과 교수
Advancements in Coding Education through the Serious Game "COngDING"
Su-Yeon Lee1 ; Seo-Young Yun2 ; So-Yun Jeong2 ; Tack Woo3, *
1Master’s Course, Department of Metaverse, Graduate School, Kyung Hee University, Yongin 17104, Korea
2Graduated Bachelor’s Course, Department of Software Convergence, College of Software Convergence, Kyung Hee University, Yongin 17104, Korea
3Professor, Department of Digital Contents, College of Arts & Design, Kyung Hee University, Yongin 17104, Korea

Correspondence to: *Tack Woo Tel: +82-31-201-3890 E-mail: twoo@khu.ac.kr

Copyright ⓒ 2023 The Digital Contents Society
This is an Open Access article distributed under the terms of the Creative Commons Attribution Non-CommercialLicense(http://creativecommons.org/licenses/by-nc/3.0/) which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided the original work is properly cited.

초록

4차 정보화 시대의 도래에 따라 최근 실감형 콘텐츠 및 인공지능 기술이 주목받고 있다. 이에 대비하기 위해 세계 각국에선 학생들에게 관련 지식을 함양시키기 위한 다양한 교육을 시도하고 있다. 이러한 상황에서 학생들에게 친숙한 게임 방식으로 학습시킬 수 있는 코딩 교육 기능성 게임은 좋은 교육 수단이 될 수 있다. 그러나 현재 시중의 코딩 교육 게임들은 대부분 일관된 퍼즐 게임 형식을 가지고 있다. 이에 본 논문에서는 기존의 퍼즐게임 형식에서 벗어난 ‘러닝 액션 게임’ 방식과 콘텐츠 설계 이론적으로는 ‘맥락 기반 학습', '학습용 에이전트', '학습 강화를 위한 보상 시스템' 과 '경쟁 시스템'이라는 교육 방법론을 적용하여 사용자가 재미있게 플레이할 수 있는 새로운 코딩 교육 게임을 기획·개발하였다.

Abstract

With the onset of the 4th information age, there is a notable focus on immersive content and artificial intelligence (AI) technology. To prepare for this paradigm shift, many countries are exploring diverse educational methods to impart knowledge to students. In this context, serious games for coding education, offering a familiar gaming approach for learning, emerge as valuable educational tools. However, the majority of coding education games available follow a consistent puzzle game format. This paper introduces a novel approach by incorporating the 'running action game' method and content design, which diverges from the prevalent puzzle game format. The theoretical foundation of this design draws upon educational methodologies such as 'context-based learning,' 'pedagogical agents,' 'reward systems for enhanced learning,' and a 'competition system.' The aim is to develop a new coding education game that not only imparts knowledge but also engages users in an enjoyable gaming experience.

Keywords:

Serious Games, Educational Games, Coding, Digital Storytelling, Running Action Game

키워드:

기능성 게임, 교육용 게임, 코딩, 디지털 스토리텔링, 러닝 액션 게임

Ⅰ. 서 론

4차 정보화 시대로의 빠른 전환에 따라, 전 연령대에 걸쳐 정보화 및 SW(Software) 관련 교육의 필요성이 대두되고 있다. 이미 세계 주요국들은 컴퓨팅 사고력(Computational Thinking)에 기반한 소프트웨어 교육의 중요함을 인식하고 교육과정 개정 및 교육 환경 개선 등을 통해 SW 인재 양성을 도모하고 있다. 이러한 흐름에 뒤처지지 않기 위해 우리나라도 학생들의 컴퓨팅 사고력과 SW·AI(Software·Artificial Intelligence) 관련 지식을 증대시키기 위해 관련 교과목들을 교육과정에 추가 및 재편성했다[1].

2015년 개정 교육과정에 의하면 초등학교에서는 실과의 ICT(Information & Communications Technology) 단원을 SW 기초에 관한 내용으로 변경하고 해당 단원에 배정된 시간을 추가했으며, 중학교에서는 선택 과목이었던 ‘정보’ 과목을 필수 과목으로 전환했다. 고등학교의 경우, ‘정보’ 과목을 일반 선택 과목으로 운영하도록 하고, 해당 과목을 선택했을 경우 3년간 총 68시간을 이수하도록 했다[2]. 초·중·고등학교뿐만 아니라 대학에서도 SW 중심대학을 중심으로 컴퓨팅 사고력 강좌가 필수교양으로 채택되어 전공자뿐만 아니라 비전공자 대상으로 SW 기초교육 및 여러 프로그래밍 언어(C, Python, etc.)를 사용한 프로그래밍 교육이 진행되고 있다[3]. 이렇듯 관련 교육의 필요성이 부상하면서 창의력과 문제해결력 증진을 위한 코딩 교구 시장도 활성화되고 있다[4].

그러나 현재, 코딩과 소프트웨어 분야의 교육 목표와 성취 기준 외의 구체적 학습 내용이나 교수 방법 등의 표준 교육 계획은 수립되어 있지 않고[5], 현장의 초·중·고등학교 교사들에 의하면 예산 및 교구 확보조차 되어있지 않은 상황이다[6]. 또한, 대학의 비전공자 대상의 프로그래밍 입문 교양 강좌의 수강생을 대상으로 한 연구에서는 학생들이 기존에 접해보지 못한 학습 주제 및 방식으로 어려움을 겪고 있음을 알 수 있다[7].

이러한 상황에서 별다른 교구나 큰 비용 필요 없이, 관련 기기만 있다면 학습자에게 익숙한 게임 방식으로 코딩(프로그래밍) 교육을 진행할 수 있는 기능성 게임(Serious Game)은 좋은 학습 수단이 될 수 있다. 기능성 게임은 현실에서 일어날 상황을 가상으로 체험하거나, 특정 문제를 해결하는 방안을 찾기 위해서와 같은 목적으로 설계된 게임을 뜻한다. 그 중에서도 교육용 기능성 게임의 특징은 상업용 게임처럼 재미만 추구하는 것이 아니며, 플레이어의 학습을 돕기 위한 교육목적과 게임의 재미를 결합한다는 것이다[8].

이러한 게임을 활용한 코딩 교육을 통해 실제로 초등학생, 중학생 학습자들의 교육 태도, 학습 몰입 및 교육의 만족도가 향상된 사례가 있으며[9], 그보다 낮은 연령층인 어린이집의 6~7세 반 유아를 대상으로 코딩 교육 게임을 활용하여 학습 능력의 향상을 보여준 연구도 존재한다[10].

이처럼 코딩을 쉽게 접하고, 효과적으로 학습할 수 있도록 해주는 게임 방식을 활용한 코딩 교육에 관한 연구가 다수 진행되고 있지만, 대다수의 경우 교육성에만 초점을 두어, 학생들의 흥미 유발 및 지속적인 활용 등을 위한 게임성의 적용은 미비한 편이다.

이에 본 논문에서는 다음과 같은 흐름으로 새로운 형태의 코딩 교육용 게임을 개발 및 제안하려 한다. 첫 번째, 기존의 여러 플랫폼에 존재하는 코딩 교육 서비스를 비교·분석하여 장·단점을 도출한다. 두 번째, 이를 바탕으로 단점인 퍼즐 방식이라는 획일화된 게임 형식에서 탈피하고 기존의 장점이었던 게임 메커니즘의 적용을 더욱 강화한 새로운 방식의 코딩 교육용 기능성 게임을 설계한다. 마지막으로, 러닝 액션(Running Action) 게임과 코딩 교육을 접목시키고, ‘맥락 기반 학습’, ‘학습용 에이전트’, ‘학습 강화를 위한 보상 시스템’ 과 ‘경쟁 시스템’이라는 교육 방법론을 적용하여 게임적 재미와 함께 학습성도 고려한 코딩 교육용 기능성 게임 ‘COngDING, 부제:콩딩이의 모험’을 개발하여, 교육성과 게임성을 동시에 부각시킨 새로운 코딩 교육 게임의 형태를 제시한다.


Ⅱ. 기존 사례 비교·분석 및 개발 방향성 설정

2-1 기존 코딩 교육 서비스 분석

본 논문에서는 편의를 위해 코딩 교육 서비스를 ‘코딩 교육 플랫폼’과 ‘코딩 교육 게임’으로 분류하여 지칭하고자 한다. 전자는 이용자가 GUI(Graphical User Interface) 혹은 텍스트를 통해 코딩하면서 관련 지식을 습득할 수 있는 환경을 제공하지만, 서비스 내에서 제공하는 자체 콘텐츠는 없는 경우를 칭한다. 반면 후자는 서비스 내에서 자체적으로 이용자가 즐길 수 있는 게임 콘텐츠를 제공하고, 이용자가 해당 게임 콘텐츠를 즐기는 과정에서 자연스럽게 코딩을 학습할 수 있는 경우를 지칭한다.

1) 코딩 교육 플랫폼

현재 ‘스크래치(SCRATCH)’,‘코드카데미(codecademy)’, ‘Hour Of Code’, ‘Khan Academy’, ‘The Code Player’, ‘생활코딩’, ‘엔트리(entry)’, ‘소프트웨어야 놀자’ 등 코딩 교육을 목적으로 운영되는 웹 사이트가 다수 존재한다[11]. 이 들 서비스는 크게 ‘Khan Academy’와 같이 관련 동영상 강의만을 제공하는 플랫폼과 ‘codecademy’와 ‘스크래치’ 그리고 ‘엔트리’와 같이 여러 프로그래밍 언어 및 자체 제작한 교육용 프로그래밍 언어로 플랫폼 내부에서 직접 코딩을 할 수 있도록 지원하는 서비스로 나눌 수 있다. ‘codecademy’는 그림 1과 같이 관련 설명을 읽으면서 실제 사용되는 프로그래밍 언어를 통해 코딩을 할 수 있는 환경을 제공한다. 그리고 ‘스크래치’와 ‘엔트리’는 각각 그림 2그림 3에서 볼 수 있듯이 자체 제작한 교육용 프로그래밍 언어로 코딩하면서 관련 지식을 습득할 수 있는 환경을 제공한다. 이 중 일부는 해외에서 개발된 서비스이지만 공식적으로 한국어를 지원한다. 아래의 표 1은 단순히 동영상 강의만 제공하는 것이 아니라, 플랫폼 내에서 자체적으로 코딩을 통해 콘텐츠를 제작할 수 있는 환경을 갖추고 있는 웹 기반의 코딩 교육 플랫폼을 정리한 것이다.

Fig. 1.

Text coding screen of Codecademy

Fig. 2.

Block coding screen of SCRATCH

Fig. 3.

Block coding screen of Entry

Major web-based coding education platforms[11]

주요 코딩 교육 플랫폼 대부분이 웹 기반으로 서비스를 제공하고 있지만 코딩 교육용 애플리케이션(Application)도 다수 존재한다. 블록 코딩 형식의 프로그래밍 언어를 제공하는 대표적인 교육 플랫폼인 스크래치의 경우, ‘ScratchJr’ 애플리케이션을 제공하여 모바일 환경에서도 코딩을 학습할 수 있도록 서비스를 제공하고 있다. 현재 서비스 중인 코딩 교육 애플리케이션에 대해서 알아보기 위해 가장 대표적인 모바일 애플리케이션 마켓플레이스(Marketplace)인 구글 플레이(Google Play)에 올라와 있는 코딩 교육 플랫폼에 대해서 조사를 진행했다. 검색 키워드를 '코딩(Coding)'으로 설정한 뒤, 다운로드 횟수 500만회 이상의 애플리케이션을 설치해 직접 실행해보았다. 체험해본 각 애플리케이션의 특징은 표 2에서 확인할 수 있다. 결과적으로 코딩 교육용 웹 사이트들의 경향과 비슷하게, 모바일 기기의 코딩 교육 애플리케이션도 대부분이 블록 코딩과 같은 GUI를 사용한 코딩 혹은 텍스트 코딩을 진행할 수 있는 환경을 제공한다는 것을 알 수 있다.

Coding education applications on service

2) 코딩 교육 게임

교육 게임의 장점 중 하나는 게임이라는 익숙한 도구를 통해 학습의 공포를 극복하고 게임을 플레이하면서 경험한 문제를 해결함으로써 학습 동기를 지속시킬 수 있다는 점이다[12]. 특히 코딩 교육 게임의 경우는 게임 자체가 프로그래밍, 즉 코딩을 통해 제작된 콘텐츠이기 때문에 사람들의 게임에 대한 흥미 및 관심을 쉽게 코딩 교육으로 끌고 올 수 있다는 점이 매우 큰 장점으로 작용한다.

코딩 교육 게임들을 분석한 결과는 표 3과 같으며, 크게 두 가지 양상으로 분류할 수 있었다. 첫 번째는 GUI를 사용한 코딩 혹은 텍스트 입력을 통한 코딩을 통해 게임 속의 캐릭터나 오브젝트 등을 조작하는 방식이다. 이용자는 이런 행위를 통해 문제를 해결하거나 게임 내 스토리를 진행할 수 있다. 두 번째는 게임 내에서 이용자가 코딩을 통해 ‘게임 내의 새로운 게임’을 제작할 수 있는 게임이다.

Major coding education games

첫 번째 유형의 게임 대부분은 여러 문제로 구성되어있으며, 컴퓨팅 사고력을 사용한 코딩 과정을 통해 일련의 문제를 해결하면 다음 문제로 넘어가는 퍼즐 형식을 띄고 있다. 이러한 게임 중에서도 독특한 형식을 가지고 있는 게임으로는 ‘Code Combat’과 ‘codeSpark’가 있다.

현재 웹 기반으로 서비스되고 있는 ‘CodeCombat’ 은 10~18세의 청소년을 타겟으로 만들어진 게임이다. RPG(Role-Playing Game) 요소와 코딩 교육을 결합한 메커니즘을 가지고 있으며, 실제 코드를 작성함으로써 캐릭터를 조종하는 방식으로 게임을 진행하게 된다. JavaScript, Python, HTML(Hyper Text Mark-up Language), CoffeeScript와 같이 실제로 사용되는 프로그래밍 언어를 사용하며 코딩뿐만 아니라 컴퓨터 공학의 기초를 배울 수 있게끔 구성되어있다. 다른 코딩 교육 게임들이 대부분 퍼즐 형식으로 구성되어있는 것에 비해 이 게임은 퍼즐 요소뿐만이 아니라 RPG 요소를 같이 게임에 녹여내어 기존의 형식을 타파했다는 장점이 있다. 하지만 그림 4에서 볼 수 있듯이, 실제 사용되는 프로그래밍 언어를 통한 텍스트 코딩을 해야하므로 코딩을 처음 접하는 이용자들에게는 부담으로 다가올 수 있다는 단점이 있다.

Fig. 4.

Text coding screen of CodeCombat

안드로이드와 iOS에서 앱 기반으로 서비스되고 있는 ‘codeSpark’는 5~10세의 아이들을 겨냥한 게임이다. 그림 5에서 볼 수 있듯이, 간단한 그림으로 구성된 여러 아이콘을 순서대로 배치하는 과정을 통해 코딩을 수행한다. 다양한 퍼즐로 구성된 미니게임을 해결하는 방식으로 게임이 진행되며, 앱 내에서 이용자가 코딩을 통해 자신만의 게임을 제작할 수 있는 기능도 제공하고 있다. 다른 게임들이 같은 형식의 문제를 난이도나 구성만 바꿔서 여러 번 제공하는 반면, 본 게임은 반려동물 키우기, 장애물 달리기, 산수 게임 등의 여러 형식의 게임들을 다양하게 제공하고, 어린아이들의 눈높이에 맞춰 단어가 없는(wordless) 아이콘을 사용한 코딩으로 코딩에 대한 접근성 증진 및 난이도 완화를 이뤄냈다는 장점이 있다. 하지만 아동용 게임으로 만들어진 게임이다 보니 실제 프로그래밍 언어로 코딩하는 등의 심화 교육은 불가능하다는 단점이 존재한다.

Fig. 5.

GUI coding screen of CodeSpark

두 번째 유형의 게임으로는 닌텐도주식회사(Nintendo Co., Ltd.)의 콘솔기기인 닌텐도 스위치에서 구동할 수 있는 게임인 ‘차근차근 게임코딩(Game Builder Garage)’이 있다. 코딩 과정에서 사용하는 변수, 상수, 함수, 반복문과 같은 역할을 하는 ‘노든’이라는 생명체를 사용하여 게임을 직접 제작할 수 있는 게임으로, 해당 게임의 화면구성은 그림 6에서 확인할 수 있다. 단순히 코딩을 할 수 있는 환경만 제공하는 것이 아니라, 게임의 형식으로 된 단계별 레슨을 콘텐츠로 제공하여 이용자가 따라 하면서 GUI 방식의 코딩을 경험해볼 수 있도록 구성되어 있다. 이 게임에서의 코딩은 필요한 노든을 생성한 뒤, 필요하다면 노든이 가지고 있는 값을 조정하고 생성한 노든들을 선으로 연결하는 방식으로 진행된다. 이는 유니티(Unity)나 언리얼 엔진(Unreal Engine)과 같은 게임 엔진에서 실제로 사용되는 GUI 코딩 방식과 흡사한 방식이므로, 교육의 적용 가능성(Applicability)이 높다고 할 수 있다. 하지만 다른 GUI 코딩 방식과 마찬가지로, 전체 코드의 규모가 방대해지면 코드의 가독성이 현저히 떨어진다는 단점을 가지고 있다.

Fig. 6.

GUI coding screen of Game Builder Garage

2-2 분석 결과 및 개발 방향성

지금까지 현재 서비스 중인 여러 코딩 교육 서비스에 대해서 살펴보았다. 코딩 교육 플랫폼의 경우, 크게 스크래치와 엔트리, 그리고 codeSpark 와 같이 GUI 요소를 배치하고 조합함으로써 코딩하는 방식과 코드카데미(codecademy)와 더코드플레이어(TheCodePlayer)와 같이 텍스트를 입력함으로써 코딩하는 방식으로 나뉘었다.

블록 코딩 방식을 활용한 스크래치 언어의 경우, 컴퓨팅 사고 기술과 문제 해결 기술 개발에 활용될 수 있으며 코드의 재사용성을 통해 코드의 효과를 늘릴 수 있다는 연구자들의 의견이 있으며[13] 국내에서 스크래치 및 엔트리 프로그래밍 언어를 활용한 프로그래밍 교육이 유의미한 성과나 영향력을 보인 실험이 다수 존재한다[12]. 또한 블록 코딩 방식으로 학습한 뒤에 파이썬(Python) 프로그래밍 언어로 텍스트 코딩을 진행했을 때 학습 결과가 더욱 효과적이었다는 연구 결과도 존재한다[14]. 이러한 기존 연구 결과를 바탕으로 앞으로 개발하고자 하는 게임 내에 블록 코딩과 텍스트 코딩을 함께 적용하기로 했다.

시중의 코딩 교육 게임은 대체로 여러 문제로 이루어진 퍼즐 방식의 게임이 주류를 이뤘다. 이러한 게임들은 대개 일관된 형식을 가지고 있는데, 단계별로 문제의 난이도를 바꾸기 위해 구성을 바꾸기만 할 뿐, 기본적으로는 게임의 시작부터 끝까지 같은 형식으로 이루어져 있다. 예를 들어, 별을 획득하여 결승점에 도달하는 형식을 가지고 있는 게임이 있을 때, 이용자는 코딩을 통해 캐릭터를 움직이며 별을 획득하고 결승점까지 도달하게 된다. 무사히 단계를 완료한 뒤 다음 단계로 넘어가더라도 별의 위치가 바뀌거나 새로운 장애물이 추가되는 정도의 차이가 있을 뿐, 전체적인 구성은 동일하다. 이런 형식으로도 충분히 코딩 게임을 만들 수 있겠지만, 만들고자 하는 게임의 교육성과 게임성을 더욱 끌어올리기 위해 스토리텔링을 베이스로 게임에서 맞닥뜨리는 여러 상황에 맞춰 설계된 다양한 문제를 선보이기로 했다.

기존 유사 콘텐츠에 대한 사례 분석을 토대로, 결론적으로 만들고자 하는 코딩 교육 게임의 방향성을 다음과 같이 정했다. 첫 번째, 사용자에게 흥미를 유발할 수 있을 만한 세계관과 스토리텔링을 베이스로 다양한 형식의 코딩 문제를 게임에 녹여낸다. 두 번째, 게임 내에선 블록 코딩과 텍스트 코딩 방식을 모두 사용하되 이용자가 블록 코딩과 텍스트 코딩을 오가면서 학습하는 과정에서 어려움을 느끼지 않게끔 도움을 주는 게임 내 캐릭터를 설정하고, 이용자가 게임 내에서 해당 캐릭터를 통해 적극적인 도움을 받을 수 있도록 하기로 했다. 세 번째, 이용자가 본 게임을 친근하게 받아들일 수 있으며, 코딩에 대한 두려움을 낮출 수 있도록 귀엽고 아기자기한 그래픽으로 디자인한다. 네 번째, 기존의 퍼즐 방식의 게임과 차별성을 두기 위해 쿠키런:오븐 브레이크(Cookie Run: Oven Break)와 같은 러닝 액션 게임(Running Action Game)의 형태로 게임을 제작한다.


Ⅲ. COngDING 개발

3-1 기획 및 디자인

기획 단계에서, 제작할 코딩 교육 게임의 주 장르를 ‘러닝 액션 게임’으로 결정했다. 러닝 액션 게임이란 액션 게임의 한 장르로써 말 그대로 게임 내의 캐릭터가 ‘달리는’ 액션 게임을 뜻한다. 캐릭터는 자동으로 계속 달리고 게임 화면은 캐릭터에 맞춰서 강제로 스크롤 된다. 흔히 접할 수 있는 플랫폼 게임(Platform Game)과 구별되는 점은 캐릭터를 멈추거나 뒤로 돌아가도록 조작할 수 없다는 것이다. 게임마다 세부적인 요소는 다를 수 있지만 대체로 달리면서 슬라이드, 점프, 매달리기, 공격 등의 조작이 가능하다. 이러한 조작을 통해 길의 장애물들을 피하거나 파괴하며 목적지에 도착하거나, 목적지가 정해지지 않은 경우엔 최대한 먼 거리까지 도달하여 높은 점수를 얻는 것이 목표인 게임이다. 대표적으로 앞서 얘기한 ‘쿠키런: 오븐 브레이크’와 같은 게임이 있다. 예시로 든 ‘쿠키런:오븐 브레이크’의 게임 화면은 그림 7에서 확인할 수 있다.

Fig. 7.

Play screen of Cookie Run: OvenBreak

만들고자 하는 게임의 주 장르로 러닝 액션 게임을 선정한 이유는 다음과 같다. 첫 번째, 플레이어를 집중시키기 때문이다. 러닝 액션 게임은 빠른 속도로 진행되므로 언제 튀어나올지 모르는 장애물에 대비하기 위해 긴장하게 된다. 이는 플레이어가 게임을 하는 내내 교육에서 요구되는 집중력을 발휘할 수 있다는 뜻이다. 두 번째는 교육 게임을 하며 느끼는 스트레스를 낮추기 위해서이다. 게임의 형식을 가지고 있다고 해도 플레이어들은 게임 내에서 새로운 지식을 배우는 과정에서 정신적 피로와 고통을 느낄 수 있다. 게임 캐릭터가 시원시원하게 달리면서 장애물을 피하거나 파괴하는 과정을 통해서 플레이어가 스스로 즐거운 ‘게임’을 하고 있다고 생각하게 하면 이러한 교육의 스트레스와 지루함을 완화 시킬 수 있을 것이라 기대했다. 마지막으로, 게임성을 부각하기 위해선 기존 코딩 게임들의 주류인 단순 퍼즐게임의 형식에서 벗어날 필요가 있다고 판단했기 때문이다.

또한, 게임성과 더불어 교육 콘텐츠로서의 교육성을 확보하기 위해서 다음의 네 가지 교육학 이론 및 요소를 게임 내에 반영하였다.

첫 번째는 게임의 세계관과 스토리텔링을 통해 맥락 학습(Contextual Learning)을 유도하는 것이다. 맥락 학습이란 학생이 교육 내용에 포함된 대상 혹은 현상을 인식하고 해석할 때 해석이 바탕이 되는 환경 또는 배경을 상황 맥락에서 이해할 수 있도록 지원하는 것이다[15]. 다시 말해, 게임이 전하는 스토리텔링과 이야기가 펼쳐지는 세계관을 통해 이용자에게 코딩에 대해서 ‘왜’ 학습해야 하는지, 이렇게 학습한 지식이 어떻게 활용되는지를 내러티브(Narrative) 기반의 상황적 맥락으로 제공하고 학생이 게임을 능동적으로 플레이하게 만드는 것이다. 이러한 학습 맥락을 고려한 활동 중심의 과학 수업을 한 결과 학생들의 학업성취도와 인식, 흥미, 태도 및 동기 등에서 긍정적인 효과를 낸 연구 결과가 이미 존재한다[16].

두 번째는 게임 내에서 학습용 에이전트(Pedagogical Agent) 역할을 하는 캐릭터를 게임 내에 추가하는 것이다. 학습용 에이전트는 온라인 학습 환경에서 교육 목적을 위해 사용되는 인격화된 가상 캐릭터이다. 이는 텍스트, 음성, 2D캐릭터, 3D캐릭터 및 인간과 같이 다양한 형태를 가진다[17]. 본 게임에서는 이러한 학습용 에이전트를 통해 이용자가 도중에 학습을 포기하지 않고 수월하게 학습을 진행할 수 있도록 보조하기로 했다.

세 번째는 학습강화를 위한 보상(reward) 시스템이다. 예를 들어 튜토리얼 스테이지를 완료 했을 경우 머리에 새싹이 달린 코스튬을 지급하는 것이다. 만약 정해진 기준을 뛰어넘는 우수한 점수로 완료했을 경우, 머리에 ‘금색’의 새싹이 달린 코스튬을 지급하는 식으로 더욱 특별한 보상을 줌으로써 이용자들의 학습 효과를 강화시키는 것이다. 이와 관련하여 초등학생들을 위한 교육용 게임에서 뱃지(Badge)와 같은 기술적인 보상이 학습을 강화시키는데 도움을 주면서도 학습 동기를 해치지 않는다는 연구 사례가 존재한다[18].

네 번째는 경쟁(Competition)시스템이다. 각각의 스테이지 클리어 이후의 총점수에 의한 순위를 점수판에 게재시키고 이를 통해 더 높은 순위를 얻기 위해 이용자들이 서로 경쟁하는 과정에서 긍정적인 교육적 효과를 얻을 수 있도록 하는 것이다. 이와 관련하여 대인 간 경쟁 형식의 교육 게임을 플레이한 학생들이 대규모 그룹 형식의 교육 게임을 플레이한 학생들보다 더 잘 수행했다는 연구 결과가 존재한다[19].

1) 제목

게임의 제목은 ‘COngDING’으로 결정했다. 이는 후술할 게임의 주인공 캐릭터인 ‘콩딩이’의 이름이기도 하다. 콩으로 발음되는 영어 ‘Cong’과 코딩을 뜻하는 영단어인 ‘Coding’을 합친 단어인데, ‘COngDING‘에서 대문자만 읽으면 CODING 즉, 코딩이된다. 이는 ’주인공인 콩 캐릭터 콩딩이와 코딩을 즐겨보자!‘ 라는 게임의 정체성을 담은 제목이다. 본 제목이 들어간 게임의 로고는 그림 8과 같다.

Fig. 8.

Logo of the game, COngDING

2) 세계관

게임은 현실이 아닌 가상의 허구 공간인 ‘코딩월드’에서 진행된다. 코딩월드에는 코딩 숲, 개미 사막, 첨벙 호수, 비둘기 왕국 등의 장소가 존재한다. 코딩 교육 게임이라는 맥락을 제공하기 위해 코딩월드의 모든 생명체는 코드로 구성되어 있다는 설정을 부여했다. 즉, 현실 세계에서는 움직일 수 없고, 생명체라고 부를 수 없는 깡통이라도 코딩월드에서는 깡통 안에 움직이고 말하는 기능의 코드가 있는 이상 엄연한 생명체라고 볼 수 있는 것이다. 반대로 생명체 안의 코드가 망가지면 제대로 행동할 수 없다. 예를 들어 주인공 콩딩이는 ‘콩’이지만 말하거나 움직일 수 있는 생명체이다. 그리고 게임이 진행되면서 특정 사건으로 인해 콩딩이 내부의 점프 부분을 담당하던 코드가 망가져 점프할 수 없게 되기도 한다.

그림 9는 게임의 세계관이 되는 코딩 숲과 그 밖의 지역에 대한 지도 이미지이다. 코딩 숲에서 벗어나서 개미 사막을 지난 뒤에 첨벙 호수를 지나면 ‘거대둘기마왕’이 지배하는 비둘기 왕국에 도달한다. 비둘기 왕국은 거대한 ‘인간’이라는 생명체들이 사는 밤에도 번쩍번쩍 빛나는 아주 큰 지역의 어느 다리 밑이라는 설정이다. 비둘기 왕국에는 비둘기 대마왕을 따르는 수많은 새가 살고 있으며 이들은 코딩 숲을 지배하고자 하는 야망 아래에 호시탐탐 코딩 숲을 노린다.

Fig. 9.

Map of coding forest

3) 스토리

게임은 주인공인 ‘콩딩이’의 시점을 따라가며 진행된다. 콩딩이는 코딩 숲의 콩줄기 마을에서 살던 콩 캐릭터로, 일련의 사건에 휘말리면서 모험을 떠나게 된다. 전체적인 시놉시스(Synopsis)는 다음과 같다.

“여느 날처럼 콩딩이는 콩줄기 마을의 콩깍지 속에서 다른 친구들과 함께 오순도순 살아가고 있었다. 그러던 어느 날 비둘기 왕국의 거대둘기마왕이 코딩 숲을 지배하려는 야망을 드러내며 일으킨 회오리바람에 의해 콩딩이와 친구들은 뿔뿔이 흩어져 날아가 버리고 말았다. 낯선 곳에 혼자 남겨져 버린 콩딩이, 설상가상으로 거대둘기마왕의 수하인 닭에게 공격당해 콩딩이의 코드가 망가져 버리고 말았다! 과연 콩딩이는 뿔뿔이 흩어진 친구들을 구출하고 거대둘기마왕을 물리칠 수 있을 것인가?”

게임을 처음 시작하면 게임의 기반 스토리를 설명하기 위해 그림 10부터 그림 14까지의 이미지가 차례로 화면에 출력된다. 플레이어들이 아래의 이미지들과 게임 내 스테이지에서 출력되는 각 캐릭터들의 대사 및 행동을 통해 자연스럽게 게임의 스토리와 그로 인한 맥락을 받아들일 수 있도록 설계했다.

Fig. 10.

COngDING’s story board 1*This in-game image is originally written in Korean.

Fig. 11.

COngDING’s story board 2*This in-game image is originally written in Korean.

Fig. 12.

COngDING’s story board 3*This in-game image is originally written in Korean.

Fig. 13.

COngDING’s story board 4*This in-game image is originally written in Korean.

Fig. 14.

COngDING’s story board 5*This in-game image is originally written in Korean.

4) 캐릭터 디자인

게임의 주인공인 콩 캐릭터 ‘콩딩이’는 간단하면서도 귀엽게 보일 수 있도록 디자인했다. 그림 15에서 확인할 수 있듯이 분홍색의 둥근 몸과 간단한 선으로 표현된 팔과 다리를 가지고 있다. 나이가 어린 이용자들에게도 부담이 없도록 전체적으로 무해한 느낌을 주면서 친숙하게 느껴질 수 있도록 디자인했다. 회오리바람으로 인해 친구들과 헤어지고 자신도 낯선 공간으로 날아가서 혼자가 되어버렸지만 낙심하지 않고 씩씩하게 해결책을 찾아 모험을 떠나는 긍정적인 성격이다.

Fig. 15.

Congding’s design

그리고 콩딩이 못지않게 게임에서 중요한 비중을 담당하는 ‘공딩이’에 대한 설명도 빠뜨릴 수 없다. 콩딩이와 마찬가지로 콩 캐릭터인 공딩이는 앞서 기획 부분에서 설명했던 ‘학습용 에이전트’ 역할을 하는 캐릭터이다. 공딩이의 이름은 공학의 ‘공’과 코딩의 ‘딩’을 합쳐서 만들었다. 공딩이는 게임 내에서 콩딩이에게 게임과 학습에 도움이 되는 정보를 알려주는 것은 물론이고, 문제 풀이 도중 혹은 적대적 캐릭터와 코딩으로 싸우는 도중에 도움을 주거나 힌트를 주는 역할을 하기도 한다. 공딩이는 컴퓨터 및 기계 관련 지식에 매우 해박하고, 코딩 능력도 뛰어나다. 하지만 낯을 가리고 소심한 면이 있어서 자주 당황하고 말을 더듬곤 하는데, 이러한 설정을 캐릭터 디자인에 반영하였다. 그림 16에서 볼 수 있듯이 무엇이 들어있는지 모를 커다란 가방을 항상 메고 다니며, 조용한 곳에서 혼자 노트북으로 코딩하는 것을 좋아한다. 콩딩이와 마찬가지로 거대둘기마왕에 의해 회오리 바람으로 날아가서 곤경에 처했지만 콩딩이가 구해주고 이를 계기로 콩딩이의 모험에 합류하게 된다.

Fig. 16.

Gongding’s design

이 밖에도 스테이지 중간에 출연하여 콩딩이에게 코딩 문제를 출제하거나 싸우기도 하는 적대 캐릭터인 ‘가면 새’, ‘닭’, ‘참새’와 같은 캐릭터들도 디자인했다. 그림 17의 가면 새는 나이가 어리지만 거대둘기마왕을 동경해서 그의 얼굴 그림이 그려진 가면을 쓰고 다닌다는 설정이다. 가면을 쓴 상태에서는 자신감이 넘치지만 가면이 벗겨지면 소심해지고 금방 울음을 터트리고 만다. 그림 18의 닭과 그림 19의 참새는 거대둘기마왕의 수하이며 콩딩이의 모험길을 도중에 가로막는다. 특히, 닭은 평소에도 콩딩이의 친구들인 콩들을 쪼아먹으며 괴롭히곤 했기 때문에 콩딩이와 사이가 좋지 않다.

Fig. 17.

Masked bird’s design

Fig. 18.

Chicken design

Fig. 19.

Sparrow design

5) 게임 메커니즘

앞서 설명했듯이, 게임성을 강화하기 위해 여타 코딩 교육 게임과는 다르게 게임의 주 장르를 ‘러닝 액션 게임’으로 결정했다. 게임은 스테이지 단위로 진행되고, 이전 스테이지를 클리어하면 다음 스테이지의 플레이가 가능해지는 형식이다. 튜토리얼 스테이지부터 스테이지 4까지의 총 5개의 스테이지로 구성되어 있으며, 각 스테이지는 모두 개별적으로 디자인하여 플레이 도중에 지루함을 느끼지 않도록 했다. 이러한 스테이지들은 모두 ‘러닝 액션 게임’의 형식을 가지고 있으므로 본 논문에서는 편의를 위해 이러한 각 스테이지를 ‘러닝 스테이지(Running Stage)’라고 지칭하도록 하겠다.

러닝 스테이지를 클리어하기 위해선 게임이 종료(Game Over)되지 않은 상태에서 해당 스테이지의 끝까지 도달해야 한다. 러닝 스테이지 중간중간에는 바닥이 없는 구덩이와 돌덩이, 도토리와 같은 각종 장애물들이 존재한다. 구덩이에 빠져서 맵의 밑으로 떨어지면 그 즉시 게임이 종료된다. 장애물에 부딪치는 경우 생명력이 1이 줄어들기 때문에 생명력에 주의하면서 진행해야 한다. 콩딩이는 총 6의 생명력을 가지고 있으며, 계속 장애물에 부딪쳐서 생명력이 0이 되면 그 즉시 게임이 종료된다.

러닝 스테이지에서는 키보드의 Z 키를 통해 점프, X 키를 통해 대쉬가 가능하다. 점프는 말 그대로 콩딩이가 위로 솟아올랐다가 다시 내려오는 것을 말한다. 점프 버튼을 길게 누를수록 더 높이 점프할 수 있지만, 최대 높이가 정해져 있기 때문에 제한된 높이 이상으로 솟아오를 수는 없다. 대쉬는 한순간 콩딩이가 일정 거리 앞으로 이동하는 것을 말한다. 이 때 콩딩이는 몸을 둥글게 웅크린 공 상태가 되어 잠깐 사이에 매우 빠르게 앞으로 이동한다. 대쉬는 점프를 하는 도중이나 공중에 떠 있는 상태에서도 사용할 수 있으며, 연속으로 사용할 수도 있다. 하지만 대쉬를 사용하기 위해선 대쉬 토큰이 필요하기 때문에 대쉬를 무한정으로 사용할 수는 없다. 콩딩이는 최대 5개의 대쉬 토큰을 가지고 있으며, 대쉬를 한번 사용할 때마다 대쉬 토큰이 하나씩 줄어든다. 대쉬 토큰이 4개 이하일 경우, 일정 시간이 지나면 대쉬 토큰이 하나씩 재생성된다. 만약 대쉬 토큰이 0개일 경우 대쉬를 할 수 없기 때문에 플레이 도중 항상 대쉬 토큰을 일정 수 이상 남겨두는 등의 전략적 플레이가 요구된다.

러닝 스테이지의 맵 중간중간에는 각종 아이템이 놓여있다. 아이템은 하트, 다이아몬드, 별 총 3종류이다. 하트는 콩딩이의 생명력을 1만큼 회복시켜 준다. 만약 콩딩이의 생명력이 이미 꽉 찬 상태라면 생명력을 회복시켜 주지 않는다. 다이아몬드 아이템은 먹는 순간 콩딩이의 대쉬 토큰을 모두 채워준다. 이 아이템도 하트와 마찬가지로 이미 대쉬 토큰이 꽉 차 있다면 아무런 효과가 없다. 마지막으로 별 아이템은 먹으면 이후 일정 시간 동안 콩딩이를 무적으로 만들어준다. 각 아이템의 이미지는 아래의 표 4에서 확인할 수 있다.

Types of Items in the stage

앞서 설명했듯이 장애물과 부딪치면 생명력이 1 줄어들기 때문에 점프와 대쉬를 적절히 사용해서 피해야 한다. 하지만 일부 장애물은 콩딩이가 대쉬를 통해 지나가면서 부술 수 있다. 부술 수 있는 장애물인지는 해당 장애물에 적힌 문자나 숫자의 데이터 타입(Data Type)으로 결정된다. 만약, 현재 스테이지에서 콩딩이가 정수 타입(Int Type)을 가지는 장애물들을 부술 수 있다면, 1004가 적힌 장애물은 대쉬를 통해 파괴할 수 있지만 “1004”가 적힌 장애물은 문자열 타입(String Type)이므로 대쉬로 파괴할 수 없다. 이러한 설정은 코딩 학습에서 맨 처음에 배우는 변수(Variable)와 상수(Constant)의 개념과 관련이 있다. 각 스테이지별로 콩딩이가 부술 수 있는 데이터 타입은 달라진다. 튜토리얼 스테이지에서는 부술 수 있는 장애물이 없고, 스테이지1에서는 int타입, 스테이지2에서는 float타입, 스테이지3 에서는 char타입, 스테이지4에서는 string 타입의 장애물을 부술 수 있다. 이는 콩딩이만의 특수한 능력이라는 설정이다. 물론, 모든 장애물을 피하면서 진행하더라도 러닝스테이지의 진행에 문제가 없도록 주의 깊게 맵들을 디자인했다. 하지만 은연중에 데이터 타입의 구분에 대해서 학습할 수 있도록 하기 위해 이와 같은 메커니즘을 추가했다. 올바른 타입의 장애물을 대쉬를 통해 부수면 장애물이 부서지는 이펙트와 함께 소리가 출력되고, 추가 점수를 얻을 수 있다. 각 장애물의 종류와 이미지는 표 5에서 확인할 수 있다.

Types of obstacles in the stage

러닝 스테이지 내에는 다른 캐릭터를 만나는 등의 이벤트가 존재하기도 한다. 이런 이벤트가 시작되면 게임이 일시 정지되고 각 캐릭터들의 대사가 출력된다. 만약, 적대적 캐릭터와 조우 했을 경우 혹은, 스토리상 필요할 시에는 코딩 문제가 출제된다. 코딩 문제는 OX문제, 블록 코딩 문제, 텍스트 코딩 문제, 퍼즐 문제 등으로 상황에 따라 다양한 형식으로 출제된다. 이러한 문제들은 공딩이가 풀이에 필요한 기본 개념을 가르쳐주고, 어려운 부분에 커서를 가져다 대면 관련 설명을 표시해주는 식으로 도움을 주어 어렵지 않게 풀 수 있도록 디자인했다.

콩딩이는 스토리상 특정 스테이지 클리어 이후 강력한 적대적 캐릭터와 전투해야 한다. 간단하게 이를 ‘보스전’이라고 지칭하겠다. 보스전은 블록 코딩의 형식을 가진 미니 게임으로, 클리어를 위해서는 프로그래밍적 사고가 요구된다. 보스전은 5 × 3 칸의 맵에서 진행되며, 매 턴 플레이어는 총 세 장의 ‘콩딩 카드’를 선택하여 조합할 수 있다. 콩딩 카드는 이동, 공격, 방어 등의 기능을 수행하는 ‘행동 카드’와 반복문, 조건문 등의 기능을 수행하는 ‘제어 카드’로 구성되어 있다. 이동 카드는 현재 콩딩이가 있는 칸에서 상, 하, 좌, 우 중 한 방향으로 한 칸을 이동할 수 있는 카드이고, 공격 카드는 콩딩이 주변의 특정 칸에 공격을 가할 수 있는 카드이다. 방어 카드는 상대의 공격이 콩딩이가 있는 칸에 적중할 시 공격을 막아내어 생명력이 줄어들지 않게 할 수 있는 카드이다. 제어 카드는 앞서 설명한 행동 카드를 반복시키거나, 조건을 붙여서 실행하게 하는 특수 카드이다. 세 장의 콩딩 카드 선택이 끝나면 ‘전투 단계’로 진입한다. 전투 단계에서 콩딩이는 선택한 카드의 첫 번째 순서부터 마지막까지 논리구조를 따라 행동한다. 콩딩이가 첫 번째 행동을 실행하면 상대도 첫 번째 행동을 실행하고, 이후 콩딩이가 두 번째 행동을 실행하면 상대도 두 번째 행동을 실행하는 식으로 번갈아가면서 행동이 실행되고, 전투 단계가 끝난 뒤에는 다시 카드 선택 단계로 넘어간다. 클리어를 위해서는 상대의 행동 패턴을 공딩이가 제공하는 코드를 통해 파악한 뒤, 자신이 가지고 있는 콩딩 카드를 전략적으로 선택하여 보스의 공격은 피하고, 자신의 공격은 상대에게 적중시켜 보스의 생명력을 0으로 만들면 된다. 만약 게임 도중에 콩딩이의 생명력이 0으로 떨어지면 그 즉시 게임이 종료된다. 게임 내 보스전의 맵 이미지와 카드 선택 및 조합 화면은 각각 그림 27그림 28에서 확인할 수 있다.

6) 학습의 흐름 설계

게임 내의 스테이지는 튜토리얼 스테이지를 포함해서 총 5개로 이루어져 있으며, 게임의 전체적인 학습의 흐름은 그림 20을 통해 확인할 수 있다.

Fig. 20.

Flow of the learning

7) 기술 요소

본 게임은 게임엔진인 유니티 엔진(Unity Engine)을 통해 C# 프로그래밍 언어를 사용하여 프로그래밍 되었으며, Windows OS가 적용된 컴퓨터(PC 환경)에서 구동이 가능하다. 게임 내 조작은 키보드와 마우스로 이루어진다.

3-2 구현 결과

게임은 기획 문서를 토대로 유니티를 통해 구현되었다. 러닝 스테이지의 UI(User Interface)는 그림 23을 통해 확인할 수 있다. 화면 우측 상단에 분홍색 하트 아이콘들을 배치하여 콩딩이의 남은 생명력을 보여주도록 했고, 화면 좌측 하단에 파란색 보석 아이콘들을 배치하여 콩딩이의 대쉬 토큰 잔량을 확인할 수 있도록 했다. 일시 정지 버튼은 생명력 아이콘의 오른쪽에 배치하였고, 점수는 화면의 하단 중앙에 표시되도록 구성했다.

이 밖에 게임 시작 화면과 스테이지 선택 화면, 러닝 스테이지 중간에 출제되는 코딩 문제와 보스전 및 순위표, 보상으로 얻을 수 있는 코스튬 등의 게임 내 이미지들은 아래의 그림 21부터 그림 31에서 확인할 수 있다.

Fig. 21.

Game start

Fig. 22.

Stage selection

Fig. 23.

Running stage

Fig. 24.

OX quiz* This in-game image is originally written in Korean.

Fig. 25.

Text coding quiz* This in-game image is originally written in Korean.

Fig. 26.

Character dialogue output* This in-game image is originally written in Korean.

Fig. 27.

Boss battle

Fig. 28.

Boss battle - card combination

Fig. 29.

Gain costume* This in-game simage is originally written in Korean.

Fig. 30.

Costume fitting* This in-game image is originally written in Korean.

Fig. 31.

Leaderboard* This in-game image is originally written in Korean.

기존의 코딩 교육 게임들은 스토리가 존재하지 않거나 미비한 경우가 대부분이었다. 이전 표 3의 게임들을 살펴보면 대부분이 플레이어가 특정 미니 게임 혹은 스테이지를 완수하게 하기 위해서 ‘무언가를 획득하라’ 혹은 ‘목적지에 도착하라’와 같은 표면적이고 얕은 스토리를 가지고있을 뿐이다. 하지만 본 논문에서 구현한 게임은 스토리와 교육이 서로 밀접하게 연관되어 있다. 예를 들어, 스토리 도중 콩딩이는 적대적 캐릭터에게 공격을 받아 코드가 망가져 점프를 할 수 없게 된다. 이를 해결하기 위해 공딩이의 도움을 받아 망가진 자신의 코드를 고치게 되는데 이 과정이 게임 내에서 그림 25의 코딩 문제로 출제된다. 이러한 식으로 전체적인 세계관과 스토리 그리고 시시각각으로 생기는 문제를 해결하기 위해 코딩 문제를 해결한다는 당위성을 통해 ‘맥락(Context)’를 제공한다는 점은 다른 코딩 교육용 게임들과는 구별되는 차별성을 제공한다.

‘교육용 에이전트’ 역할을 하는 ‘공딩이’는 그림 26에서 볼 수 있듯이 플레이어에게 스토리를 통해 콩딩이와 함께 모험을 떠나면서 서로 협력하면서 난관을 헤쳐 나가는 동료로 인식될 수 있도록 했다. 이를 통해 단순 문제를 푸는 과정에서 힌트만을 제공하는 표면적인 역할에서 벗어나서 좀 더 다채로운 방식으로 플레이어에게 도움을 줄 수 있는 캐릭터가 될 수 있도록 구현했다. 그리고 주인공인 콩딩이와 공딩이뿐만 아니라 개성적인 다양한 캐릭터를 통해 입체적인 스토리가 될 수 있도록 했다.

‘학습강화’를 위한 보상도 플레이어가 게임을 플레이하면서 얻는 경험과 연관되도록 디자인하여 플레이어가 보상에 더욱 의미를 가질 수 있도록 하였다. 예를 들어 그림 29에서 볼 수 있듯이 참새와의 보스전을 클리어하면 참새가 머리에 뒤집어쓰고 있던 깡통을 머리에 뒤집어쓸 수 있는 ‘깡통새의 모자’ 코스튬을 얻을 수 있다. 이렇게 획득한 여러 코스튬들은 그림 30의 코스튬창에서 자유롭게 착용할 수 있다. ‘깡통새의 모자’ 코스튬을 장착할 때마다 플레이어는 자신이 플레이했던 참새와의 보스전을 떠올림과 동시에 해당 보스전에서 학습했던 코딩 개념을 떠올릴 수 있을 것이다.

마지막으로, 그림 31과 같이 스테이지 별로 클리어했을 시의 총점수로 순위를 매기고 이를 순위표로 볼 수 있도록 하여 경쟁을 통한 긍정적인 학습효과를 얻을 수 있도록 구현하였다.


Ⅳ. 결 론

본 논문에서는 기존의 일관된 형식 및 단순 퍼즐 형식의 코딩 교육 게임에서 벗어난 새로운 형식의 게임인 ‘COngDING, 부제: 콩딩이의 모험’을 제작하여 새로운 코딩 교육 게임의 형태를 제시했다.

새로이 제작한 게임은 게임성을 확보하기 위해 ‘쿠키런: 오븐 브레이크’와 같은 러닝 액션 게임과 코딩 교육이 결합된 형식으로 제작되었다. 하지만 동시에 교육성도 확보하기 위하여 ‘맥락 학습’, ‘교육용 에이전트’, ‘보상을 통한 학습강화’ 및 ‘경쟁’과 같은 교육학 요소를 게임 내에 녹여냈다. 특히, 더욱 높은 코딩 교육 효과를 끌어내기 위해 블록 코딩과 텍스트 코딩의 방식 모두를 게임 내에서 학습할 수 있도록 설계했다.

하지만 본 연구에도 확실한 한계는 존재한다. 첫째, 이 게임을 통해 실제 교육 현장에서 유의미한 효과를 얻을 수 있는지를 검증하는 실험은 사정상 진행되지 못했다. 둘째, 본 게임은 스토리텔링을 중심으로 문제 풀이를 통해 코딩 과정을 학습할 수 있도록 만들어졌지만, 문제를 풀이하는 과정에서 필요한 개념의 설명은 다소 미비하다.

추후 본 게임의 단점을 보완시킨 후, 개발된 게임을 실제 교육 현장에서도 사용할 수 있도록 관련 연구가 이어졌으면 한다. 또한 앞으로 기존의 코딩 교육 게임의 형식을 깨트리면서도 교육성이 보장된, 다양한 코딩 교육 게임들이 만들어져 여러 연령층의 사람들이 게임을 통해 부담 없이 즐겁게 코딩 교육을 즐길 수 있기를 바란다.

References

  • U.-S. Song and H.-K. Rim, “The Necessity of an Elementary School Information Curriculum Based on the Analysis of Overseas SW and AI Education,” Journal of the Korean Association of Information Education, Vol. 25, No. 2, pp. 301-308, April 2021. [https://doi.org/10.14352/jkaie.2021.25.2.301]
  • J. M. Kim, “Current Status and Future of SW·AI Education in Secondary School,” Communications of the Korean Institute of Information Scientists and Engineers, Vol. 39, No. 9, pp. 27-34, September 2021.
  • S. Kim, “Current Status and Implications of SW·AI Education for Non-Computer Majors at Universities,” Communications of the Korean Institute of Information Scientists and Engineers, Vol. 39, No. 9, pp. 41-47, September 2021.
  • B. Seo and S. H. Cho, “Design and Implementation of Students’ Coding Assessment System for a Coding Puzzle Game,” Journal of Korea Game Society, Vol. 18, No. 1, pp. 7-17, February 2018. [https://doi.org/10.7583/JKGS.2018.18.1.7]
  • Y.-J. Park, E.-J. Jang, J.-E. Han, S.-B. Ahn, and E.-H. Goo, “Development of Software Education Contents Based on Unplugged and Block Coding for Primary Education,” in Proceedings of Korea Society of Computer Information Winter Conference, Online, pp. 341-344, January 2021.
  • D. S. Ma, “Comparative Study of SW Education Leading Middle & High Schools and General School,” Journal of the Korean Association of Information Education, Vol. 25, No. 1, pp. 157-164, February 2021. [https://doi.org/10.14352/jkaie.2021.25.1.157]
  • J. Kim and E. Sohn, “Difficulty Analysis of an Introductory Computer Programming Course for Non-Major Students,” Journal of Creative Information Culture, Vol. 7, No. 2, pp. 69-77, May 2021. [https://doi.org/10.32823/jcic.7.2.202105.69]
  • G. W. You and S. J. Yoon, “Serious Game Design and Implementation for Kids,” Journal of Korea Game Society, Vol. 15, No. 4, pp. 19-28, August 2015. [https://doi.org/10.7583/JKGS.2015.15.4.19]
  • N. Kim, “A Study on the Effect of Coding Education and Improvement of Learning Achievement Using Educational Game,” Journal of Korea Game Society, Vol. 17, No. 4, pp. 161-168, August 2017. [https://doi.org/10.7583/JKGS.2017.17.4.161]
  • D. S. Hong, M. Yu, and H. G. Lee, “The Development and Application Effect of Coding Game for the Childhood Cognitive Development,” Journal of Korea Game Society, Vol. 18, No. 5, pp. 103-112, October 2018. [https://doi.org/10.7583/JKGS.2018.18.5.103]
  • I.-H. An, “Current Situation and Future of Coding Education,” Journal of Media & Education, Vol. 6, No. 1, pp. 76-87, June 2016.
  • N. Kim, “Game Platform Investigation for Effective Coding Education,” Journal of the Korean Society for Computer Game, Vol. 30, No. 3, pp. 59-67, September 2017. [https://doi.org/10.22819/kscg.2017.30.3.008]
  • K. Han, “A Case Study on Block Coding and Physical Computing Education for University of Education Students,” Journal of Creative Information Culture, Vol. 5, No. 3, pp. 307-317, December 2019. [https://doi.org/10.32823/jcic.5.3.201912.307]
  • C.-H. An, K. Lee, and S.-J. Moon, “Programming Learning Method for Beginner Based on Entry Block-Based/Text-Based Coding,” The Society of Convergence Knowledge Transactions, Vol. 6, No. 1, pp. 127-134, January 2018.
  • S. Park and D. E. Shin, “Theoretical Approach for Application of Contextual Learning Based Moving Image Materials to Cultivate Child Creativity,” Journal of Children’s Media & Education, Vol. 12, No. 2, pp. 193-212, August 2013.
  • K. Kim and A. J. Woo, “The Effects of Active-Based Science Instruction Considering Context of Learning,” Journal of Learner-Centered Curriculum and Instruction, Vol. 16, No. 6, pp. 1-25, June 2016.
  • A. S. D. Martha and H. B. Santoso, “The Design and Impact of the Pedagogical Agent: A Systematic Literature Review,” Journal of Educators Online, Vol. 16, No. 1, January 2019. [https://doi.org/10.9743/jeo.2019.16.1.8]
  • M. Filsecker and D. T. Hickey, “A Multilevel Analysis of the Effects of External Rewards on Elementary Students’ Motivation, Engagement and Learning in an Educational Game,” Computer & Education, Vol. 75, pp. 136-148, June 2014. [https://doi.org/10.1016/j.compedu.2014.02.008]
  • J. E. Fisher, “Competition and Gaming: An Experimental Study,” Simulation & Gaming, Vol. 7, No. 3, pp. 321-328, September 1976. [https://doi.org/10.1177/003755007673007]

저자소개

이수연(Su-Yeon Lee)

2022년:경희대학교 소프트웨어융합학과 (공학사)

2023년~현 재: 경희대학교 메타버스학과 석사과정

※관심분야:게임 기획, 게임 프로그래밍, 디지털 스토리텔링, 기능성 게임(Serious Game), 게임화(Gamification)

윤서영(Seo-Young Yun)

2022년:경희대학교 소프트웨어융합학과 (공학사)

※관심분야:게임 기획, 기능성 게임(Serious Game)

정소윤(So-Yun Jeong)

2022년:경희대학교 소프트웨어융합학과 (공학사)

※관심분야:게임 기획, 게임 프로그래밍

우탁(Tack Woo)

2002년:University of Dundee (UK), Electronic Imaging. BA (Honours)

2004년:University of Dundee (UK), Electronic Imaging. MSc (이학석사)

2010년:University of Dundee (UK), Electronic Imaging. (게임학), PhD (이학박사)

2004년~2007년: University of Dundee, Lecturer

2007년~2010년: KAIST 엔터테인먼트 공학연구소, 선임연구원 (기능성 게임랩)

2010년~2012년: KAIST 문화기술대학원, Digital Art & Entertainment Track 초빙교수 (게임)

2012년~2013년: 서울대학교 차세대융합기술연구원, 게임융합미디어연구센터 센터장

2013년~현 재: 경희대학교 디지털콘텐츠학과 교수

※관심분야:메타버스, 실감미디어 콘텐츠, 기능성 게임, 게임화, 게임문화, VR/AR 콘텐츠

Fig. 1.

Fig. 1.
Text coding screen of Codecademy

Fig. 2.

Fig. 2.
Block coding screen of SCRATCH

Fig. 3.

Fig. 3.
Block coding screen of Entry

Fig. 4.

Fig. 4.
Text coding screen of CodeCombat

Fig. 5.

Fig. 5.
GUI coding screen of CodeSpark

Fig. 6.

Fig. 6.
GUI coding screen of Game Builder Garage

Fig. 7.

Fig. 7.
Play screen of Cookie Run: OvenBreak

Fig. 8.

Fig. 8.
Logo of the game, COngDING

Fig. 9.

Fig. 9.
Map of coding forest

Fig. 10.

Fig. 10.
COngDING’s story board 1*This in-game image is originally written in Korean.

Fig. 11.

Fig. 11.
COngDING’s story board 2*This in-game image is originally written in Korean.

Fig. 12.

Fig. 12.
COngDING’s story board 3*This in-game image is originally written in Korean.

Fig. 13.

Fig. 13.
COngDING’s story board 4*This in-game image is originally written in Korean.

Fig. 14.

Fig. 14.
COngDING’s story board 5*This in-game image is originally written in Korean.

Fig. 15.

Fig. 15.
Congding’s design

Fig. 16.

Fig. 16.
Gongding’s design

Fig. 17.

Fig. 17.
Masked bird’s design

Fig. 18.

Fig. 18.
Chicken design

Fig. 19.

Fig. 19.
Sparrow design

Fig. 20.

Fig. 20.
Flow of the learning

Fig. 21.

Fig. 21.
Game start

Fig. 22.

Fig. 22.
Stage selection

Fig. 23.

Fig. 23.
Running stage

Fig. 24.

Fig. 24.
OX quiz* This in-game image is originally written in Korean.

Fig. 25.

Fig. 25.
Text coding quiz* This in-game image is originally written in Korean.

Fig. 26.

Fig. 26.
Character dialogue output* This in-game image is originally written in Korean.

Fig. 27.

Fig. 27.
Boss battle

Fig. 28.

Fig. 28.
Boss battle - card combination

Fig. 29.

Fig. 29.
Gain costume* This in-game simage is originally written in Korean.

Fig. 30.

Fig. 30.
Costume fitting* This in-game image is originally written in Korean.

Fig. 31.

Fig. 31.
Leaderboard* This in-game image is originally written in Korean.

Table 1.

Major web-based coding education platforms[11]

Service Explanation
• A service developed in 2006 by MIT Media Lab in the United States for ages 8 to 16 or available for all age groups.
• Users can create and share Interactive stories, games, and animations themselves.
• Serviced in more than 40 languages in more than 150 countries around the world.
• Users can learn various programming languages such as HTML, CSS, Python, and Ruby.
• Users can write their own code on the homepage and see the results right away.
• Easily understand the underlying concepts of software.
• Provides result of written codes in animation form.
• Provides free educational content such as HTML&CSS, JavaScript, and XML, and allows training and practice on one screen.
• Free software education platform developed by Korean startups.
• Can educate from unplugged activities to physical computing.

Table 2.

Coding education applications on service

Logo Application Explanation
Learn Coding/Programming: Mimo • Targets to help users to learn programming and advance their career.
• Provides programming language education such as Python, JavaScript, HTML, SQL.
• Offers from bite-size programming exercise to portfolio projects.
ScratchJr • Provides coding education for young children(ages 5-7)
• Programming language redesigned to blocks that children can easily create their own stories and games.
Programming Hub: Learn to Code • Provides extensive programming courses from beginner to advanced.
• Offers education in various way such as voice guides, research-backed bite-sized contents to let users learn anytime, anywhere.
Sololearn: Learn to Code • Provides programming education from students to professional with introduction courses and intermediate courses.
• It has AI that helps users to learn quickly.

Table 3.

Major coding education games

Name Platform Explanation
Web • Combines coding education with RPG gameplay.
• Players can learn real-world coding languages like JavaScript, Python, HTML, and CoffeeScript, and gain a foundation in computer science.
Andriod, iOS • Learn-to-Code app for kids ages 5-10.
• Uses wordless block coding to solve various mini-game puzzles.
Nintendo Switch • Players can create games themselves and share them with others, or enjoy games created by other people.
• Players can learn the GUI coding methods used in Unity or Unreal Engine.
Web, Windows, Mac OS, Android, iOS • Educational video game for learning software programming concepts.
• Players can learn programming concepts like loops, procedures and more, without entering code in any programming language.

Table 4.

Types of Items in the stage

Image Name Function
Heart Increase the HP(Health Point) of congding, by one.
Diamond Fill in all dash tokens of congding.
Star Makes congding invincible for a certain amount of time.

Table 5.

Types of obstacles in the stage

3D Model Name Explanation
Acorn Destructible via dash if type matches.
Rock Destructible via dash if type matches.
Pin Indestructible obstacle.
Vine Indestructible obstacle.