보리 섬 개발 노트Bori Island Dev Notes

개발 노트 · 0장

Dev notes · Chapter 0

보리 섬 개발 노트

Bori Island Dev Notes

원더보이처럼 섬을 달리고, 줄어드는 체력을 열매로 채우고, 꽃봉오리에서 무기를 꺼내는 8비트 횡스크롤 액션을 빈 캔버스부터 만든다. 장마다 게임의 부품을 하나씩 직접 만져 보며 만들고, 마지막 장에서 그 부품을 모두 합친 게임을 플레이한다.

We build an 8-bit side-scroller in the style of Wonder Boy from an empty canvas: run across an island, keep a draining vitality meter topped up with fruit, and pull weapons out of flower buds. Each chapter builds one part of the game, and you can try every part as you go. The last chapter puts all the parts together so you can play the game.

완성된 게임이 몇 가지 단순한 규칙으로 스스로 플레이하는 데모 화면. 그림, 레벨, 소리, 물리 모두 이 페이지의 코드와 도구로 만들었다.

The finished game playing itself by a few simple rules. The art, level, sound, and physics were all made with the code and tools on this page.

0.1무엇을 만드나What we're making

원작 원더보이(1986)에서 가져오는 것은 규칙뿐이다. 시간이 지나면 줄어드는 체력 게이지, 열매를 먹어 버티는 긴장감, 알에서 나오는 무기, 발에 걸리는 돌, 뒤로 돌아갈 수 없는 스크롤. 이런 규칙은 장르의 문법이라 누구나 쓸 수 있다.

캐릭터, 그림, 음악, 이름은 모두 새로 만들었다. 주인공은 머리에 새싹이 난 아이 보리다. 돌도끼 대신 도토리를 던지고, 알 대신 꽃봉오리를 연다.

From the original Wonder Boy (1986) we borrow only the rules: a vitality meter that drains over time, the tension of eating fruit to survive, weapons that come out of eggs, rocks that trip you, and a screen that never scrolls back. Rules like these are the grammar of the genre, and anyone can use them.

The character, art, music, and names are all new. The hero is Bori, a kid with a sprout growing out of his head. He throws acorns instead of stone axes and opens flower buds instead of eggs.

0.2하드웨어를 정하고 시작한다Pick the hardware first

제약이 있어야 결정이 빨라진다. 이 노트는 원더보이가 이식된 세가 마스터 시스템(SMS)의 사양을 기준으로 삼는다. 진짜 하드웨어를 에뮬레이션하지는 않지만, 같은 숫자 안에서 그림과 소리를 만든다. 그 시절 하드웨어가 지금의 컴퓨터와 어떻게 다른지는 8장에서 자세히 비교한다.

Constraints make decisions faster. This notebook takes its numbers from the Sega Master System (SMS), which got a port of Wonder Boy. We don't emulate the real hardware, but we make the art and sound within the same limits. Chapter 8 compares that hardware with today's computers in detail.

항목SMS 사양이 노트에서
화면256 × 192캔버스를 이 크기로 그리고 픽셀 그대로 키운다
색64색 중 16색 × 2벌배경용과 스프라이트용 팔레트 (2장)
스프라이트한 줄에 8개까지넘치면 깜빡이는 이유 (2장)
배경 타일8 × 8 픽셀16 × 16으로 묶은 메타타일 (3장)
소리사각파 3 + 노이즈 1웹 오디오로 흉내 낸 PSG 칩 (5장)
화면 갱신60Hz (NTSC)1/60초 고정 업데이트 (1장)
ItemSMS specIn this notebook
Screen256 × 192The canvas is drawn at this size and enlarged pixel for pixel
Color2 × 16 of 64 colorsA background palette and a sprite palette (Chapter 2)
SpritesUp to 8 per lineWhy sprites flicker when there are too many (Chapter 2)
Background tiles8 × 8 pixelsGrouped into 16 × 16 metatiles (Chapter 3)
Sound3 square + 1 noiseA PSG chip imitated with Web Audio (Chapter 5)
Refresh60 Hz (NTSC)A fixed 1/60 s update (Chapter 1)

0.3부품이 이어지는 방식How the parts connect

데이터DataDATA

팔레트 번호로 된 스프라이트 시트Sprite sheets of palette numbers
글자 지도와 RLE 타일 열A character map and RLE tile columns
효과음 파라미터Sound-effect parameters
패턴과 순서표Patterns and an order list

게임GameGAME · 9장CHAPTER 9

도구에서 바꾼 것은 데이터가 되고, 엔진은 그 데이터를 읽어 게임을 돌린다. 이 페이지에서는 그 흐름이 실제로 이어져 있다. 4장의 픽셀 에디터로 보리의 옷 색을 바꾸면 모든 장의 게임 화면에서 보리의 옷이 바뀐다. 바꾼 내용은 이 브라우저에만 저장되고, 왼쪽 아래 목록에서 확인하거나 각 도구의 기본값 버튼으로 되돌릴 수 있다.

Whatever you change in a tool becomes data, and the engine reads that data to run the game. On this page that pipeline is actually connected. Change the color of Bori's shirt in the Chapter 4 pixel editor and his shirt changes on every game screen in every chapter. Your changes are saved only in this browser; you can review them in the list at the bottom left or undo them with each tool's reset button.

0.4조작Controls

← →이동. 계속 누르면 점점 빨라진다
Z Space ↑점프. 길게 누를수록 높이 뛴다
X도토리 던지기. 첫 꽃봉오리에서 주머니를 얻은 뒤부터 쓸 수 있고, 한 번 얻으면 죽어도 남는다
↓ + 점프통나무 발판 아래로 내려가기
Enter · P시작 · 일시정지
← →Move. Hold to pick up speed
Z Space ↑Jump. Hold longer to jump higher
XThrow an acorn. Available once you get the pouch from the first flower bud, and you keep it even after dying
↓ + jumpDrop down through a log platform
Enter · PStart · pause

게임 화면을 한 번 클릭해야 키보드 입력이 그 화면으로 간다. 휴대폰에서는 화면 아래의 버튼을 쓴다.

Click a game screen once so that keyboard input goes to it. On a phone, use the buttons under the screen.