Pico-8

피코-8
PICO-8
PICO-8 logo modern
소프트웨어 정보
원작자 zep[1]
개발 Lexaloffle Games
종류 게임 엔진, 가상 머신
fantasy console
출시 2015년
최신버전 0.2.6
2024.02.28
언어 영어, 일본어
운영체제 윈도우, macOS, 리눅스
플랫폼 x86, ARM, HTML5[2]
라이선스 상용
웹사이트 www.lexaloffle.com/pico-8.php

PICO8는 1980년대 8비트 시스템을 모방한 가상의 콘솔이며 동시에 게임 엔진이다. 음악, 음향 제작, 스프라이트와 맵 에디터, lua기반의 코드를 작성할 수 있는 코드 에디터가 포함되어 있다. 게임 개발에 특화되어 있지만 게임 엔진보다 컴퓨터에 가깝다.

본인이 만든 게임을 윈도우, macOS, 리눅스 실행파일로 내보내거나 HTML5 웹 게임용으로 추출해 자신의 홈페이지, 인디게임 플랫폼, 공식 BBS에 올릴 수 있다. 공식 BBS에 업로드할 경우 인터넷만 연결되어 있다면 PICO8을 통해서나 BBS페이지를 통해서 본인이 업로드한 게임 포함, 전 세계의 PICO8 개발자들이 올려놓은 게임을 무료로 어디서든지 즐길 수가 있다.

무료로 개발할 수 있는 교육용 에디션이 존재한다.[3]

사양[편집 | 원본 편집]

디스플레이 128*128px[4]
고정된 16색상 팔레트
입력 6개 버튼 컨트롤러[5]
카트리지 .p8
.png[6]
사운드 4채널
스프라이트 8*8px 256tiles
128*32tiles
코드 P8 lua[7][8]
CPU 4M vm insts/sec
메모리 64kib
컬러팔레트
기본
0 #000000 8 #FF004D
1 #1D2B53 9 #FFA300
2 #7E2553 10 #FFEC27
3 #008751 11 #00E436
4 #AB5236 12 #29ADFF
5 #5F574F 13 #83769C
6 #C2C3C7 14 #FF77A8
7 #FFF1E8 15 #FFCCAA
숨겨진
128 #291814 136 #BE1250
129 #111D35 137 #FF6C24
130 #422136 138 #A8E72E
131 #125359 139 #00B543
132 #742F29 140 #065AB5
133 #49333B 141 #754665
134 #A28879 142 #FF6E59
135 #F3EF7D 143 #FF9D81


CONSOLE[편집 | 원본 편집]

Pico-8 console.gif
PICO8을 실행하면 무조건 보게 되는 부팅업화면[9] 뒤에 나오는 콘솔화면이다.
HELP 명령어로 기본적인 명령어와 조작법들을 볼 수 있다. 파일을 저장하거나 불러오기, 불러온 파일을 실행하거나 편집하기 위해 에디터로 넘어갈 수 있다. 실행하자마자 SAVE 부터 입력하면 UNTITLED.P8라는 파일이 생성되는데 이 .p8파일이 PICO8의 카트리지 형식중 하나이며 게임데이터를 담고 있는 텍스트 파일이다.
PICO8에는 소문자가 존재하지 않아[10] 모든 문자를 대문자로 표현한다. 만약 평범하게 대문자를 입력할시 특수문자가 입력된다.[11]

만들어낸 게임을 실행파일로 추출하거나 그래픽, 음향 리소스를 추출할수있다. 해당 명령어는 다음과 같다.[12]

명령어들
  • EXPORT [파일 이름].PNG
    스프라이트 데이터를 .png파일로 내보낸다. 128 * 128픽셀 크기의 이미지 파일로 세로 32픽셀 크기로 4구역, 테이블로 나뉘어져있다. 1~2 테이블은 스프라이트 시트이며 3~4 테이블은 맵 데이터이다.
  • IMPORT [파일 이름].PNG
    불러온 .p8파일의 스프라이트 데이터을 해당 파일로 덮어씌운다. 이 방법 외에도 그래그&드랍으로도 가능하다.
  • EXPORT -L [파일 이름].PNG
    .png파일 카트리지의 라벨 데이터를 .png파일로 추출한다.
  • IMPORT -L [파일 이름].PNG
    .png파일 카트리지의 라벨 데이터를 덮어씌운다. 해당 명령어로 생성된 라벨 데이터는 .p8에선 __label__로 구분한다.
    자세한 내용은 SAVE [파일 이름].P8.PNG에서 서술한다.
  • EXPORT [파일 이름].WAV
    효과음 또는 음악을 .wav파일로 추출한다.
  • EXPORT [파일 이름].MAP.PNG
    타일맵 데이터를 1024 * 512픽셀 크기의 .png파일로 추출한다.
  • SAVE [파일 이름].P8.PNG
    pico-8의 카트리지 형식중 하나인 .png파일로 인코딩된 32kb크기의 데이터파일로 추출한다.
    아무것도 안하고 명령어을 입력시 갤러리의 예제파일과 다르게 라벨 이미지나 나오지 않는다. IMPORT -L [파일 이름].PNG로 라벨 이미지를 넣는게 가능하며 128 * 128픽셀 크기의 이미지 파일만 받아들인다.
    보통은 인게임 스크린샷을 사용하는데 현재화면을 라벨이미지로 만들어주는 F7단축키로 아주 간단하게 할수있다. 아니면 외부 픽셀아트툴을 사용해 처음부터 그리는 방법도 있다.
    이렇게 추출된 .png파일은 .p8파일처럼 사용이 가능하다.
  • EXPORT [게임 이름].HTML
    완성한 게임의 게임데이터가 포함되어있지 않은 .HTML파일과[13] .js파일이 생성된다.
  • EXPORT -W [게임 이름].HTML
    완성한 게임을 웹 어셈블리로 추출한다.


저장된 파일은 각 운영체제에 따라 해당 경로에 저장된다.
윈도우 C:/Users/Yourname/AppData/Roaming/pico-8/carts
OSX /Users/Yourname/Library/Application Support/pico-8/carts
리눅스 ~/.lexaloffle/pico-8/carts

CODE[편집 | 원본 편집]

Pico8 CodeEditor.png
콘솔창에서 편집하고 싶은 파일을 불러 온 뒤 ESC를 누를시 볼 수 있는 화면이다. 아무것도 안 한 상태에서 들어올 경우 위의 이미지처럼 비어있는 모습으로 나온다. 기본적인 사용 방법은 메모장과 비슷하다.

좌측상단 + 버튼으로 새로운 탭을 생성할 수 있다. 생성된 탭의 내용이 아무것도 없을시 다른탭으로 이동한다면 자동으로 사라진다. 내용이 있는 탭에 마우스커서를 올릴시 해당탭의 가장 첫번째 줄에 있는 코드가 미리보기로 나타난다.[14]
좌측하단에는 커서가위치해있는 좌표,
우측상단에는 다른 에디터로 넘어갈 수 있는 버튼,
우측하단에는 코드입력가능 공간이 표시된다. 마우스커서로 클릭해서 표기 방식을 바꿀 수 있다.

해당화면에서 작성된 데이터는 .p8파일에서 __lua__로 구분하며 탭을 통해 나뉘어진 코드는 -->8 로 구분한다.

기본적인 메모장의 기능말곤 없어서 이것만으로 코드짜기에는 부족한 점이 매우많다. 그래서 일부 개발자들은 외부 텍스트 에디터를 사용하는 것을 적극적으로 추천한다.


SPRITE[편집 | 원본 편집]

Pico8 SpriteEditor.png
스프라이트 에디터이다. 이곳에서 모든 이미지형태의 그래픽 리소스를 만들거나 관리한다. 물론 이것도 외부 에디터로 통해 작업할 수 있다.
검은색은 없는 색으로 취급하여 출력하지 않는다. 파일을 생성하면 자동적으로 생성되는 흰색의 X모양의 스프라이트가 있는 위치의 위치값이 0으로 8*8픽셀 크기로 한칸씩 오른쪽으로 이동할때마다 위치값이 1씩 올라간다.
스프라이트는 spr()sspr()함수로 화면에 출력할 수 있으며 위치값은 해당함수에서 사용된다.


예제
CODE
function _draw()
	cls(0) --배경을 검은 색으로 칠하기
	
	--리디버그
	spr(1,4,4,2,2)
	spr(1,4,21,2,2,true,false)
	spr(1,4,38,2,2,false,true)
	spr(1,4,55,2,2,true,true)
	
	--리브라
	spr(3,24,4)
	spr(3,24,13,1,1,true,false)
	spr(3,24,22,1,1,false,true)
	spr(3,24,31,1,1,true,true)
end
SPRITE SHEET
Pico-8 spr sprite sheet.png

결과
Pico-8 spr example result.png
짜잔! 16*16크기의 리디버그와 8*8크기의 리브라픽셀아트가 나왔다!
갤러리에서 해당 예제파일을 받아 실행하거나 코드를 수정할 수 있다. 만약 PICO8가 없다면 위에서 언급한 교육용 에디션으로 통해서도 가능하다.[15]


해당화면에서 작성된 데이터는 .p8파일에서 __gfx__로 구분한다.


MAP[편집 | 원본 편집]

Pico8 MapEditor.png

해당화면에서 작성된 데이터는 .p8파일에서 __map__로 구분한다.


SOUND[편집 | 원본 편집]

  • SFX, MUSIC 에디터의 공통 단축키
    space - 재생, 일시정지
    ⇧ Shift + 마우스 왼쪽 클릭 - 노트 다중 선택
    ctrl + c, ctrl + v - 복사 붙여넣기
    s ~ j - 검은 건반
    z ~ m - C 메이저 스케일
    2 ~ 7 - 검은 건빈
    q ~ u - C 메이저 스케일


SFX[편집 | 원본 편집]

Pico8 SoundEditor.png
PITCH모드, TRACKER모드, 2가지의 형태가 있다. PITCH모드는 주로 효과음을 만드는곳이고, TRACKER모드는 주로 작곡용으로 사용된다. SPD 값이 낮을수록 재생속도가 빨라지고 높을수록 느려진다. LOOP값으로 어느 구간을 반복할지 정할 수 있다. 만들어진 효과음은 SFX() 함수로 출력할 수 있다.


단축키
ctrl[16] + 마우스 왼쪽 그래그 - 생성되는 노트를 C 마이너 펜타토닉에 맞추기[17]

해당화면에서 작성된 데이터는 .p8파일에서 __sfx__로 구분한다.


MUSIC[편집 | 원본 편집]

Pico8 MusicEditor.png
전형적인 뮤직트래커의 형태를 하고있다. 총 4개의 채널을 가지고 있으며 1 ~ 4 옥타브 까지 출력할 수 있다. 8개의 파형, 8개의 이팩트를 가지고있다.
만들어진 음악은 MUSIC() 함수로 출력할 수 있다.

해당화면에서 작성된 데이터는 .p8파일에서 __music__로 구분한다.

여담[편집 | 원본 편집]

pico-8의 splore 기능으로 celeste classic 2을 실행하는 모습
pico-8의 splore 기능으로 celeste classic 2]을 실행하는 모습

PICO8의 제한된 사양에 따른 단순함이 celeste classic을 시작으로 사람들에게 알려져 오히려 다양한 기능들이 없어 생긴 단순함, 제한된 사양이 불러오는 개발자변태들의 도전욕구 자극, 외의 기타 요인으로 인해 많은 사람들에게 사랑받고있다.

PICO8의 개발자인 zep의 제안으로 Fantasy Video Game Console이라는 용어가 생겨났으며[18] 이는 실존하는 구식 기기의 에뮬레이터 없이 고전 게임, 개발 경험을 제공하는 가상의 컴퓨터를 칭하는 단어가 되었다.
상위 개념으로 개발자 zep이 출시한 3번째이자 마지막 가상컴퓨터가 될 picotorn에서 언급된 Fantasy Workstation 이 있다.

PICO8 외의 판타지 콘솔로는 대표적으로 tic-80Pixel Vision 8이 있다.

게임개발에 특화되어있지 사실상 컴퓨터라서 게임뿐만 아닌 3D CAD뮤직 시퀀서, 스프레드시트같은 걸 만드는 사람들이 있다. 그래서 그런지 게임개발할때 필요한 외부도구들을 PICO8로 직접 구현하는 경우도 존재한다.

실존하지 않는 기기의 가상머신이라는 컨셉이다 보니 각종 게임콘솔에 이식해 보는 시도가 많은 편이다. 닌텐도와 같은 대기업의 콘솔기기에다 이식해보거나 리눅스 기반 휴대용 게임기[19], 아에 PICO8만을 위해 홈브루 게임콘솔을 만드는 경우도 있다.
fake-08, retro8이라는 PICO8의 에뮬레이터가 존재한다.[20][21]하지만 에뮬레이션 정확도가 그리 좋은편이 아니다.

PICO8의 기본 컬러팔레트와 글꼴의 라이선스CC0이다.

인디 게임 플랫폼 itch.io에서 많이 사용된 게임 엔진 TOP 10안에 들어간다.

관련 사이트[편집 | 원본 편집]


갤러리[편집 | 원본 편집]


각주

  1. 본명 Joseph White
  2. 안드로이드 지원
  3. 웹 환경에서만 가능하며, 모바일 환경에선 이용이 불가능하다. 일부기능이 제한되어있다.
  4. 기본 16색, 최대 32색 동시출력
  5. 개발자의 선택의 따라 키보드, 마우스 사용 가능
  6. png파일로 인코딩된 32kb크기의 데이터
  7. lua 5.2
  8. 최대 65535자 입력가능
  9. PICO8 특유의 칩튠사운드가 재생되는데 음소거로 실행시 소리대신 화면에 음표를 띄우는 이스터에그가 있다
  10. 정확히는 존재는 한다. 대소문자 구분이 있는 파일을 불러올때나 외부도구로 편집된 파일을 불러올때 소문자 출력하는걸 볼수있다. 다만 소문자가 존재하는 코드는 작동이 안되며 PICO8로 통해서도 정상적인 방법으로 소문자를 입력하는게 불가능하다.
  11. 예) L,D,U,R => ←,↓,↑,→
  12. 명령어들은 추출하고자 하는 .p8파일을 이미 LOAD명령어로 불러왔다는 상태라는 전제하에 서술되었다.
  13. CC0 라이선스에따라 제공된다
  14. 주로 주석으로 통해 제목을 표시하는 용도로 쓰인다.
  15. 실행하고자 하는 파일을 웹페이지에 그래그해서 넣으면 해당 파일을 불러온다
  16. macOS기준 ⌘ Cmd
  17. PITCH 모드에서 사용시
  18. 줄여서 Fantasy Console라고도 부른다
  19. 특히 라즈베리 파이기반 기기가 자주 사용된다.
  20. pico8의 카트리지 형식인 .p8, .png 파일 재생외의 기능이 존재하지 않는다.
  21. 이 둘은 RetroArch의 코어로도 쓸수있다.