맨위로가기

프로그래밍 게임

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

프로그래밍 게임은 플레이어가 작성한 프로그램으로 특정 목표를 달성하도록 하는 비디오 게임의 한 유형이다. 이러한 게임은 퍼즐 게임의 형태로, 플레이어가 시각적 언어를 사용하여 화학 분자를 조작하는 '스페이스켐'과 같은 예시가 있으며, 프로그램의 효율성을 평가하기 위해 타임스텝 또는 명령어 수를 제한하기도 한다. 또한, 프로그래밍 요소를 '핵 앤 슬래시'와 같은 더 큰 게임의 퍼즐에 통합하거나, '쿼드리래터럴 카우보이'와 같이 명령 줄 인터페이스를 통해 게임 내 객체를 제어하는 방식으로 활용하기도 한다. 프로그래밍 게임은 로봇, 탱크, 세균 등을 제어하여 경쟁하는 형태로도 나타나며, '코어 워'와 같은 초기 경쟁 게임과 토너먼트 및 리그가 존재한다. 오픈 월드 게임인 '마인크래프트'는 블록을 활용하여 논리 회로 및 프로그램을 구축하는 데 사용되며, 'Codecademy'와 같은 웹사이트는 게임화 기법을 통해 실제 프로그래밍 언어를 가르치는 데 활용된다.

더 읽어볼만한 페이지

  • 프로그래밍 게임 - 코어 워
    코어 워는 1970년대 초 앤서니 K. 디코드에 의해 설계되어 자기 복제 프로그램을 가상 메모리 공간에서 경쟁시키는 프로그래밍 게임으로, 컴퓨터 과학과 인공지능 연구에 영향을 주었고 1980년대 A.K. 듀드니에 의해 대중화되어 국제 코어 워 협회에서 표준이 제정되었으며, 1990년대 후반 한국에 소개되어 프로그래밍 기술을 겨루는 문화로 발전했다.
  • 프로그래밍 게임 - 차근차근 게임 코딩
    차근차근 게임 코딩은 비주얼 프로그래밍 언어를 활용해 닌텐도 스위치에서 게임을 만들고 공유하는 소프트웨어로, 노드를 연결하여 게임을 구성하고 가이드 레슨 및 자유 프로그래밍 모드를 제공하며 온라인 공유와 멀티플레이어 기능을 지원한다.
  • 비디오 게임 장르 - 오픈 월드
    오픈 월드는 플레이어가 자유롭게 탐험하고 상호작용하며 다양한 방법으로 목표를 달성할 수 있는 비선형적인 게임 플레이를 특징으로 하는 비디오 게임 디자인이다.
  • 비디오 게임 장르 - 전쟁 게임
    전쟁 게임은 18세기 후반 프로이센의 크리크슈필에서 시작되어 전투나 전쟁을 시뮬레이션하는 게임으로, 다양한 형태로 발전해 왔으며 군사 목적과 오락 목적, 그리고 현실성과 게임성, 규모, 전장의 안개 등의 디자인 요소를 고려하여 제작된다.
프로그래밍 게임
기본 정보
장르비디오 게임 장르
관련 항목
관련 항목인공지능
머신 러닝
유전 알고리즘
프로그래밍
코드 골프
알고리즘

오토
세부 정보
설명플레이어가 코딩을 통해 게임 내 요소를 제어하거나, 주어진 문제를 해결하는 게임
종류
종류코드 골프
티어즈 오브 더 킹덤 - 젤다의 전설 시리즈의 최신작. 주어진 환경에서 프로그래밍적인 설계를 통해 문제를 해결해야 함.
휴먼 리소스 머신
TIS-100
셉템버 1999
Opus Magnum
크립토네이터
SHENZHEN I/O
while True: learn()
스파이럴 스쿼드
MHRD
자바스크립트 배틀
에뮤레이터
플래닛 코스터 - 롤러코스터 디자인 과정이 프로그래밍과 유사한 방식으로 작동
드림
크리에이티브 툴 - 마인크래프트, 로블록스 등, 게임 내에서 스크립팅을 통해 새로운 콘텐츠를 만들 수 있도록 지원하는 게임들.
스크래치
엔트리
아워 오브 코드
코드 컴뱃
라이트 봇
코딩 몬스터
코드마스터
프로그래밍 퍼즐
특징
특징프로그래밍 언어 또는 유사한 언어를 사용하여 게임 로직을 구현
알고리즘 설계 능력 요구
문제 해결 능력 및 창의성 요구
역사
역사1970년대 텍스트 기반 어드벤처 게임에서 시작
1980년대 본격적인 프로그래밍 게임 등장
2000년대 이후 인디 게임 개발 붐과 함께 다양한 프로그래밍 게임 등장
프로그래밍 기본 지식 학습
알고리즘 및 자료구조 학습
다양한 프로그래밍 게임 경험
창의적인 문제 해결 시도
같이 보기
같이 보기게임 인공지능
절차적 콘텐츠 생성
게임 개발
모딩

2. 퍼즐 게임으로서의 프로그래밍 게임

프로그래밍 게임은 퍼즐 게임의 일부로 사용되어, 프로그램이 작동을 시작하면 플레이어가 특정 결과를 달성하도록 도전한다. 이러한 게임의 예시로는 플레이어가 시각적 언어를 사용하여 두 개의 월도를 조작하여 화학 분자를 분해하고 재조립해야 하는 ''스페이스켐''이 있다. 이러한 게임에서 플레이어는 작동하는 솔루션을 찾을 때까지 필요에 따라 프로그램을 테스트하고 디버깅할 수 있다. 이러한 게임 중 다수는 플레이어가 필요한 타임스텝 수 또는 필요한 명령어 수로 측정되는 가장 효율적인 프로그램을 찾도록 장려한다. 이와 유사한 다른 게임으로는 ''휴먼 리소스 머신'',[1] ''인피니팩토리'', 그리고 ''TIS-100''이 있다. 자크트로닉스는 프로그래밍 중심의 퍼즐 게임으로 유명한 비디오 게임 개발 회사이다.[2]

다른 게임들은 프로그래밍의 요소를 더 큰 게임의 퍼즐의 일부로 통합한다. 예를 들어, ''핵 앤 슬래시''는 게임 세계에 표현된 객체의 내부 프로그램 및 변수에 접근할 수 있다는 은유를 포함하며, 플레이어가 이 프로그래밍 인터페이스에 참여하고 객체의 프로그램을 수정하여 더 진행함에 따라 게임의 나머지를 일시 중지한다. 이것은 객체의 상태를 파괴 불가능에서 파괴 가능으로 변경하는 것일 수 있다. 이러한 유형의 프로그래밍 접근 방식을 가진 다른 유사한 게임으로는 ''트랜지스터'', ''else Heart.Break()'', ''글리치스페이스'', 그리고 ''포니 아일랜드''가 있다.[3]

프로그래밍 요소가 있는 일부 그래픽 게임에서 사용되는 또 다른 접근 방식은 플레이어에게 명령 줄 인터페이스를 제공하여 도메인별 언어를 통해 명령을 내려 게임 내 객체를 제어함으로써, 미리 만들어진 프로그램을 만드는 대신 상황이 변경됨에 따라 플레이어가 명령을 재발행할 수 있도록 하는 것이다. ''쿼드리래터럴 카우보이''와 ''더스터스''와 같은 게임은 사용자가 특정 목표를 달성하기 위해 코드 언어를 통해 여러 개의 작은 로봇 생물을 함께 명령하도록 한다.[3] ''핵머드''는 플레이어에게 앞으로 나아가기 위해 명령을 내리는 시뮬레이션된 메인프레임 인터페이스를 제공한다.[4]

2. 1. 초기 프로그래밍 게임

시스템 15000 (1984)과 해커 (1985)는 초기 프로그래밍 게임에 해당한다.[9]

2. 2. 프로그래밍 기반 퍼즐 게임

프로그래밍 게임은 퍼즐 게임의 하위 장르로, 플레이어가 작성한 프로그램이 특정 결과를 달성하도록 하는 방식으로 진행된다. 초기 게임으로는 1984년에 출시된 ''System 15000''과 1985년에 출시된 ''해커''가 있다. 이러한 게임에서 플레이어는 작동하는 솔루션을 찾을 때까지 필요에 따라 프로그램을 테스트하고 디버깅할 수 있으며, 가장 효율적인 프로그램을 찾도록 장려된다.[1]

''스페이스켐''은 플레이어가 시각적 언어를 사용하여 월도를 조작하여 화학 분자를 분해하고 재조립해야 하는 게임이다.[1] ''휴먼 리소스 머신'',[1] ''인피니팩토리'',[1] ''TIS-100''[1] 과 같은 게임들도 프로그래밍 기반 퍼즐 게임에 속한다. 자크트로닉스는 프로그래밍 중심의 퍼즐 게임으로 유명한 비디오 게임 개발 회사이다.[2]

''핵 앤 슬래시''와 같이, 프로그래밍 요소를 더 큰 게임의 퍼즐의 일부로 통합한 게임도 있다. 이러한 게임에서 플레이어는 게임 세계에 표현된 객체의 내부 프로그램 및 변수에 접근하여 수정할 수 있다.[3] ''트랜지스터'', ''else Heart.Break()'', ''글리치스페이스'', ''포니 아일랜드'' 등이 이러한 유형에 속한다.[3]

''쿼드리래터럴 카우보이'', ''더스터스''[3], ''핵머드''[4] 와 같이 명령 줄 인터페이스를 통해 게임 내 객체를 제어하는 방식을 사용하는 게임도 있다.

2. 3. 게임 내 프로그래밍 요소 통합

2. 4. 명령 줄 인터페이스 활용

3. 경쟁 게임으로서의 프로그래밍 게임

프로그래밍 게임 중 다수는 로봇, 탱크 또는 세균과 같은 개체를 제어하여 서로 경쟁하는 방식으로 진행된다.[5] 이러한 게임은 인공 생명 시뮬레이션과 관련된 디지털 유기체 환경으로 간주될 수 있다. 초기 예시로는 ''코어 워''(1984)가 있으며, 여기서는 표준화된 어셈블리 유사 언어로 작성된 프로그램이 유한한 메모리(가상 자기 '코어') 공간을 놓고 경쟁한다. 플레이어는 게임의 도메인 특화 언어 내에서 프로그램을 개발하고 테스트하는 도구를 받게 되며, 이를 통해 중앙 서버에 프로그램을 제출할 수 있다. 서버는 다른 프로그램과 비교하여 해당 프로그램을 실행하고 그 결과를 플레이어에게 보고하며, 플레이어는 이를 바탕으로 프로그램에 변경 사항이나 개선 사항을 적용할 수 있다.

캐릭터들이 서로 경쟁할 수 있는 프로그래밍 게임을 위한 다양한 토너먼트와 리그가 존재한다. 일반적으로 스크립트는 특정한 전략에 맞게 최적화된다. 이와 유사한 접근 방식은 더 전통적인 게임에도 사용된다. 세계 컴퓨터 체스 선수권 대회는 추상 전략 게임인 체스를 위해 작성된 프로그램 간의 대결로 구성된다.

경쟁적인 프로그래밍 게임은 ''로보랠리'' 또는 ''로봇 터틀''과 같은 다양한 보드 게임에도 적용되었으며, 여기서는 일반적으로 프로그램이 코드를 실행하기 위해 하나씩 플레이되는 미리 만들어진 카드 덱이 된다.[5] 연구자들은 프로그래밍을 가르치기 위한 "문제 기반 학습" 기질로서 ''로보코드''를 제시했다.[6]

3. 1. 초기 경쟁 프로그래밍 게임

3. 2. 프로그래밍 게임 토너먼트 및 리그

프로그래밍 게임 중 다수는 서로를 파괴하려는 로봇, 탱크 또는 세균과 같은 개체를 제어하는 방식으로 진행된다.[5] 이러한 게임은 인공 생명 시뮬레이션과 관련된 디지털 유기체 환경으로 간주될 수 있다.[5]

캐릭터들이 서로 경쟁할 수 있는 프로그래밍 게임을 위한 다양한 토너먼트와 리그가 존재한다.[5] 일반적으로 스크립트는 특정한 전략에 맞게 최적화된다. 세계 컴퓨터 체스 선수권 대회는 추상 전략 게임인 체스를 위해 작성된 프로그램 간의 대결로 구성된다.[5]

3. 3. 보드 게임에서의 프로그래밍 요소

4. 관련 분야

열린 세상 게임은 플레이어가 다양한 블록으로 환경을 구축할 수 있는 기능을 제공하며, 숙련된 플레이어들은 이러한 기본 블록을 사용하여 논리 회로 및 더 발전된 프로그램을 구축하는 데 종종 활용한다. 마인크래프트가 그러한 예시 중 하나인데, 이 게임은 스위치와 전기 회로를 모방하는 제한된 블록 세트를 제공하지만, 사용자들은 가상 세계 내에서 기본적인 기능적 컴퓨터를 만들 수 있었다.[7] 적어도 하나의 모드는 아이들에게 간단한 언어로 가상 컴퓨터를 프로그래밍하는 방법을 가르치는 것을 목표로 한다.[7]

Codecademy와 같은 몇몇 사이트는 비디오 게임의 원리를 사용하여 사용자의 동기를 유발하는 게임화를 통해 실제 프로그래밍 언어를 가르치는 데 도움을 준다.[8]

4. 1. 열린 세상 게임(오픈 월드 게임)과의 연관성

열린 세상 게임은 플레이어가 다양한 블록으로 환경을 구축할 수 있는 기능을 제공하며, 숙련된 플레이어들은 이러한 기본 블록을 사용하여 논리 회로 및 더 발전된 프로그램을 구축하는 데 종종 활용한다. 마인크래프트가 그러한 예시 중 하나인데, 이 게임은 스위치와 전기 회로를 모방하는 제한된 블록 세트를 제공하지만, 사용자들은 가상 세계 내에서 기본적인 기능적 컴퓨터를 만들 수 있었다.[7] 적어도 하나의 모드는 아이들에게 간단한 언어로 가상 컴퓨터를 프로그래밍하는 방법을 가르치는 것을 목표로 한다.[7]

4. 2. 프로그래밍 교육과의 연관성

Codecademy와 같은 몇몇 웹사이트들은 비디오 게임의 원리를 사용하여 사용자의 동기를 유발하는 게임화를 통해 실제 프로그래밍 언어를 가르치는 데 도움을 준다.[8] 열린 세상 게임(open world game)은 플레이어가 다양한 블록으로 환경을 구축할 수 있는 기능을 제공하며, 숙련된 플레이어들은 이러한 기본 블록을 사용하여 논리 회로 및 더 발전된 프로그램을 구축하는 데 종종 활용한다. 마인크래프트가 그러한 예시 중 하나인데, 이 게임은 스위치와 전기 회로를 모방하는 제한된 블록 세트를 제공하지만, 사용자들은 가상 세계 내에서 기본적인 기능적 컴퓨터를 만들 수 있었으며, 적어도 하나의 모드는 아이들에게 간단한 언어로 가상 컴퓨터를 프로그래밍하는 방법을 가르치는 것을 목표로 한다.[7]

참조

[1] 웹사이트 Can Videogames Teach You Programming? https://www.rockpape[...] 2016-10-03
[2] 웹사이트 Zachtronics book Zach-Like shows how the puzzle sausage gets made https://www.rockpape[...] 2019-02-07
[3] 웹사이트 The 10 Best Hacking, Coding, Computing Games https://www.rockpape[...] 2015-11-09
[4] 웹사이트 Wot I Think: Hackmud https://www.rockpape[...] 2016-09-27
[5] 간행물 The 75-Year Saga Behind a Game That Teaches Preschoolers to Code https://www.wired.co[...] 2014-09-24
[6] 논문 "RoboCode & problem-based learning: a non-prescriptive approach to teaching programming." ACM SIGCSE Bulletin 2006
[7] 간행물 New Minecraft Mod Teaches You Code as You Play https://www.wired.co[...] 2014-08-18
[8] 간행물 Codecademy 'gamifies' the process of learning Javascript https://www.wired.co[...] 2011-08-19
[9] 웹인용 Can Videogames Teach You Programming? https://www.rockpape[...] 2016-10-03



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com