기본 콘텐츠로 건너뛰기

PICO-8 소개


PICO-8 Fantasy Console



PICO-8은 국내에는 거의 알려지는 않은 게임 개발툴입니다. 하지만 PICO-8은 단순한 개발툴이 아닙니다. PICO-8으로 개발된 게임을 플레이할 수 있는 가상 게임 콘솔까지 포함되어 있는 일종의 DIY 게임 환경이라고 할 수 있습니다.

00000000 
囗 ·


PICO-8의 홈페이지는 PICO-8을 아래와 같이 설명하고 있습니다.

"PICO-8 is a fantasy console for making, sharing and playing tiny games and other computer programs. When you turn it on, the machine greets you with a commandline and simple built-in tools for creating your own cartridges and exploring the PICO-8 cartverse."

우리말로 대충 번역하면,

"PICO-8은 아주 작은 게임이나 컴퓨터 프로그램을 만들어 공유하고, 플레이하기 위한 판타지 콘솔입니다. PICO-8을 켜면 명령어 라인과, 자신의 카트리지를 만들고 다른 개발자들이 만든  카트리지를 탐색할 수 있는 단순한 (빌트인) 도구들이 사용자를 반깁니다."

개발툴이라고 해서 유니티나 언리얼처럼 본격적인 상업용 게임을 만드는 툴이 아닌 작은 게임을 만들어 플레이하거나 다른 사용자들과 공유하는 일종의 취미용 개발툴입니다. 따라서 PICO-8으로 엄청난 게임을 만들어 돈을 벌겠다는 생각은 접으시기 바랍니다.

그럼 뭐하러 PICO-8을 배우고 그걸로 게임을 만드냐고요?

첫 번째 이유는 위에서도 말씀드린 취미입니다. 무언가를 만들 때 모든 사람이 돈을 위해서 만드는 건 아니죠. 그저 재미로, 혹은 성취감에 무언가를 만들기도 합니다.

두 번째가 레트로한 옛날 게임의 느낌을 스스로 구현할 수 있다는 점입니다. PICO-8은 이름에서처럼 예전 8비트 스타일의 레트로한 그래픽의 게임을 만들 수 있습니다. 더불어 PICO-8 가상 콘솔은 게임보이처럼 방향키와 버튼 두 개로만 구성되어 진정한 레트로 게임을 구현 있습니다.

세 번째로 교육적인 효과입니다. 유니티나 언리얼 같은 복잡한 툴로 게임 개발을 시작하기 전에 PICO-8 매우 단순한 개발 환경에서 게임 개발에 대한 전반적인 내용을 경험할 수 있습니다. 이는 PICO-8에서 코딩  외에도 캐릭터 이미지나 특수효과 사운드 같은 게임의 리소스 제작도 직접 할 수 있기 때문입니다. 또한 루아를 코딩에 사용하고 있어서 해당 언어에 대한 학습도 할 수 있습니다.

마지막으로 아이자기한 UI 때문에라도 꼭 한 번 가지고 놀만 하다고 봅니다.

개인적으로는 스크래치 같은 블록형 코딩 교육툴보다 더 코딩 교육에 적합한 툴이 PICO-8이라고 생각합니다. 그래서 국내에서도 PICO-8이 좀 더 알려지길 바라며 이 블로그를 시작합니다. 많은 관심 부탁 드립니다.

PICO-8 아래의 사이트에서 다운받으실 있습니다.


유료입니다만 무료로도 다운받을 있습니다. 하지만 이런 멋있는 프로그램을 만든 친구들에게 작게나마 후원한다는 마음으로 돈을 지불하고 구입하는 것도 좋겠습니다.

다음 포스트부터는 제가 큰 도움을 받았던 Mboffin의 영문 튜터리얼을 한국어로 번역하여 PICO-8 사용법을 알려드리도록 하겠습니다. (영문 버전의 한국어 번역 사용은 미리 허락을 받았습니다.)

댓글

이 블로그의 인기 게시물

PICO-8 그리고 레트로 게임

이 블로그는 게인적으로 좋아하는 판타지 콘솔 PICO-8을 소개하기 위해 만들었습니다. 더불어 레트로 게임들과 그와 관련된 주변 문화에 대한 개인적인 의견과 기록을 남기는 일기장으로도 써볼까 합니다. 편하게 봐 주시기 바랍니다.

튜터리얼 3.4. 게임 루프

PICO-8 은 게임 루프(the game loop)를 만들기 위해 세 개의 특별한 함수를 사용한다 . _ init() 함수는 한 번 작동한다 . 그 후 게임이 끝날 때까지 _ update() 와 _ draw() 함수가 반복해서 작동한다 . 아래는 PICO-8 의 기본 구조이다 . -- 뒤는 주석으로 각 함수가 어떤 작업을 하는지 설명한다 . function _init()   -- 게임이 시작하면   -- 이 부분의 코드가 한 번 작동한다 . end function _update()   -- 매 초마다   -- 이 부분의 코드가 30 번 작동한다 end function _draw()   -- 이 부분의 코드도   -- 매 초마다 30 번 작동한다   -- 하지만 _update() 함수가 작동하고 난 다음에 작동한다 end 여러분의 모든 코드를 이 세 함수 안에 넣을 수 있지만 실제로는 그렇게 하는 건 좋은 방법이 아니다 . 더 좋은 방법은 특정 작업을 하는 다른 함수를 만들고 _init(), _update(), _draw() 함수가 그 함수들을 작동시키는 것이다 . 예를 들어 , 플레이어의 동작 코드를 _update() 에 넣는 대신 move_player() 라는 함수를 만들어서 그것을 _ update() 안에서 동작케 하는 것이다 . 아래 그 예를 살펴보자 .   f unction _init()   make_player() end function _update()   move_player() end f unction _draw()   cls() -- 스크린 지우...