GETTING STARTED
시작하기
엔트리 온라인을 쓰면 내 엔트리 작품에 실시간 멀티플레이를 붙일 수 있어요. 플레이어들이 같은 방에 모여 변수와 리스트를 실시간으로 주고받으니까, 서로의 캐릭터가 한 화면에서 같이 움직이는 게임도 만들 수 있죠. 이 글은 확장 프로그램을 설치하는 일부터 첫 2인용 작품을 완성하기까지를 차례대로 따라 하도록 정리했어요.
엔트리에도 실시간 리스트 기능이 원래 있긴 한데, 자주 망가져요. 그래서 그 대신 확장 프로그램으로 값을 더 안정적으로 맞춰 줍니다. 첫 번째 사람과 두 번째 사람을 짝지어 방을 만드는 매칭까지 확장 프로그램이 알아서 해 주니, 만드는 사람은 게임 내용에만 집중하면 돼요.
핵심 개념
엔트리 온라인은 정해진 이름의 함수와 변수·리스트로 움직입니다. 작품에 아래 이름을 그대로 만들어 두면 확장 프로그램이 알아서 값을 채우거나 호출을 받아요. 그리고 이름이 $로 시작하는 변수·리스트는 같은 방에 있는 플레이어끼리 저절로 공유됩니다.
| 종류 | 이름 | 하는 일 |
|---|---|---|
| 함수 | $입장("아이디") | 등록할 때 받은 사이트 아이디(엔트리 아이디가 아님)로 방에 입장합니다. |
| 함수 | $나가기 | 지금 방에서 나갑니다. (인자 없음) |
| 함수 | $바로시작 | 정원이 다 차지 않아도 지금 인원으로 방을 즉시 잠그고 시작합니다. (인자 없음) |
| 변수 | $확장프로그램 | 확장 프로그램이 설치돼 있으면 0이 아닌 값이 됩니다. (설치 확인용) |
| 변수 | $유저번호 | 매칭 중에는 0, 방이 잠기면 내 슬롯 번호(1, 2, …)가 됩니다. |
| 변수 | $방인원수 | 지금 방에 실제로 연결된 인원 수입니다. |
| 리스트 | $유저연결상태 | 방 인원 수만큼 칸이 있고, 각 칸이 '연결' 또는 '끊김'입니다. |
| 규칙 | $로 시작하는변수·리스트 | 같은 방 플레이어끼리 값이 자동으로 공유·동기화됩니다. |
확장 프로그램 설치
먼저 크롬 웹스토어에서 '엔트리 온라인' 확장 프로그램을 설치해요. 이 확장 프로그램은 작품 페이지에서만 움직이고, 만들기 화면에서는 움직이지 않습니다. 괜히 문제가 생기는 걸 막으려고 그렇게 해 둔 거예요. 그러니 테스트는 늘 작품 페이지에서 합니다.
작품 등록
online.205.kr에 가입한 다음 작품을 등록해요. 엔트리에서 작품을 한 번 저장하면 주소창에 작품 ID가 생기는데, 이 ID를 복사해서 등록 페이지에 붙여넣고 한 방에 들어갈 인원을 2명에서 8명 사이로 정합니다. 확장 프로그램 아이콘을 눌러 뜨는 팝업에서 '작품 등록'을 누르면 등록 페이지가 바로 열려요. 여기서 한 가지 조심할 게 있어요. 엔트리 온라인 계정은 엔트리 계정과 따로 노는 거라, 가입할 때 엔트리에서 쓰던 아이디나 비밀번호는 절대 쓰면 안 됩니다. 등록을 마치면 화면에 사이트 아이디가 뜨는데, 이 값을 곧 $입장에 그대로 넣을 거니까 잘 기억해 두세요.
Pro 모드로 방 없이 전체 공유하기
이 안내는 Pro 모드 등록 권한이 있는 계정에만 보여요. Pro 모드는 일반 방처럼 정원이 다 찰 때까지 기다렸다가 슬롯을 받는 방식이 아니라, 등록한 작품 하나로 모두가 곧장 들어오는 공유 채널이에요. 등록 페이지에서 '동기화 방식'을 Pro 모드로 고르면 한 방 인원을 정하는 항목은 사라지고, 최대 30명이 같은 채널의 $ 변수와 리스트를 함께 씁니다.
코드에서 가장 크게 달라지는 건 $유저번호를 기다릴 필요가 없다는 점이에요. Pro 모드에는 1번, 2번 같은 슬롯이 없어서 $유저번호와 $유저연결상태는 확장이 따로 건드리지 않아요. 대신 $방인원수를 만들어 두면 지금 연결된 인원 수가 들어오고, $값이나 $목록처럼 $로 시작하는 변수와 리스트는 접속한 모두에게 공유됩니다.
| 항목 | 일반 방 모드 | Pro 모드 |
|---|---|---|
| 입장 | 정원이 찰 때까지 매칭 후 방 잠금 | $입장("사이트 아이디") 호출 후 바로 공유 채널 입장 |
| 번호 | $유저번호가 1, 2, …로 바뀜 | 슬롯이 없어서 $유저번호를 기다리지 않음 |
| 인원 | $방인원수가 방의 실제 연결 수 | $방인원수가 Pro 채널의 현재 연결 수 |
| 연결 상태 | $유저연결상태 리스트 사용 | 슬롯별 상태가 없으므로 사용하지 않음 |
| 즉시 시작 | $바로시작 사용 가능 | 정원 대기가 없어서 $바로시작은 아무 일도 하지 않음 |
| 정원 초과 | 다음 방으로 매칭 | 30명이 가득 차면 $확장프로그램이 -1이 됨 |
추천하는 흐름은 간단해요. 먼저 $확장프로그램이 0이 아닐 때까지 기다린 뒤 $입장("사이트 아이디")를 호출합니다. 호출하고 나서 $확장프로그램이 -1이 되면 "Pro 채널이 가득 찼습니다" 같은 안내를 띄워 주고, 값이 그대로 1이면 $방인원수가 0보다 커질 때 게임을 시작하면 돼요. $방인원수 변수를 만들지 않았다면 입장을 호출한 뒤 바로 게임을 시작해도 괜찮습니다.
Pro 모드는 모두가 같은 값을 공유해요. 그래서 방 모드처럼 "내 칸"과 "상대 칸"을 나누는 게임보다는, 공동 낙서장이나 실시간 투표, 전체 랭킹, 함께 움직이는 오브젝트처럼 여러 사람이 하나의 상태를 같이 바꾸는 작품에 잘 어울립니다. 아무도 접속하지 않아도 마지막으로 공유된 값이 서버에 남아 있을 수 있으니, 새 판을 시작할 때는 작품 코드에서 필요한 $ 변수와 리스트를 직접 초기화해 주세요.
입장 코드
이제 작품 코드를 짭니다. 순서는 늘 똑같아요. 먼저 확장 프로그램이 깔려 있는지 확인합니다. $확장프로그램 값을 가져와서 0이 아닐 때까지 기다리면 돼요. 0이면 아직 설치 전이라는 뜻이니, 작품 설명란의 확장 프로그램을 설치해 달라고 안내합니다. 설치가 확인되면 $입장에 사이트 아이디를 넣어 호출해요. 그러면 매칭이 시작되면서 방을 찾습니다. 방을 찾는 동안 $유저번호는 0이에요. 정원이 차서 방이 잠기면 도착한 순서대로 1번, 2번 번호가 붙으니, $유저번호가 0이 아닐 때까지 기다렸다가 게임 장면을 시작합니다.
$확장프로그램이 0이 아닐 때까지 기다리기 (미설치 시 설치 안내).
$입장("사이트 아이디") 호출 + '매칭 중' 표시.
$유저번호가 0이 아닐 때까지 기다린 뒤 게임 장면 시작.위치 동기화
같은 방에 있는 두 사람이 서로의 움직임을 보려면, 공유되는 $ 리스트에 자기 위치를 적어야 해요. 예를 들어 $목록 리스트를 두 칸 만들고, 오른쪽·왼쪽 화살표 신호로 내 위치 값을 옮긴 다음, $유저번호에 맞는 칸(1번이면 첫째, 2번이면 둘째)에 그 값을 적습니다. 거꾸로 상대를 그릴 때는 먼저 상대 번호를 정해요. 내가 1번이면 상대는 2번, 내가 2번이면 상대는 1번이죠. 그런 다음 $목록의 상대 번호번째 칸을 읽어 상대 캐릭터를 그 위치로 옮기고, 이 동작을 장면이 시작된 뒤로 계속 반복하면 상대가 실시간으로 따라 움직입니다. 번호에 따라 캐릭터 모양을 다르게 정해 두면 누가 누구인지 덜 헷갈려요.
위치를 옮기고, $유저번호에 맞는 $목록 칸을 갱신.
상대 번호를 정하고 $목록의 그 칸을 읽어 상대를 이동.연결 끊김 처리
상대가 도중에 나갔는데 화면에 캐릭터가 그대로 남아 있으면 곤란하겠죠. $유저연결상태는 확장 프로그램이 채워 주는 리스트인데, 방 인원만큼 칸이 있고 각 칸은 '연결' 아니면 '끊김'입니다. 4단계에서 만든 반복문 안에서 상대 번호의 칸을 확인해, '끊김'이면 상대 캐릭터 모양을 숨기고 '연결'이면 다시 보이게 합니다. 새 게임을 다시 시작하면 새 방에서 매칭되니까 이전 상대와 섞이지 않아요. 참고로 작품을 정지하면 자동으로 방에서 나가지만, 직접 내보내고 싶을 때는 $나가기를 호출하면 됩니다.
$유저연결상태의 상대 번호 칸이 '끊김'이면 숨기고 '연결'이면 보이기.
$나가기 호출.로컬 테스트
작품을 등록하고 마이페이지에서 열어서 두 탭으로 테스트하는 건 꽤 번거롭습니다. 그래서 '엔트리 온라인 개발 도구'라는 또 다른 확장 프로그램이 있어요. 이건 공개 배포가 아니라 링크로만 설치하니 영상 설명란을 참고하세요. 코드 보기 화면에서 '로컬 테스트 열기'를 누르고 인원을 우리 게임과 똑같이 맞추면, 서버를 거치지 않고 브라우저 안에서 곧바로 여러 명이 접속한 상황이 만들어집니다. 이때 $입장에 넣은 아이디 인자는 무시되니, 작품을 등록하지 않아도 동기화되는 값을 바로 눈으로 확인할 수 있어서 테스트가 한결 빨라요.
보너스 · $바로시작
정원이 다 차야만 시작되는 게 답답할 때가 있죠. $바로시작을 호출하면 정원이 안 찼어도 그 순간의 인원으로 방을 바로 잠그고 시작합니다. 예를 들어 8인방에서 4명일 때 부르면 그 4명에게 번호가 붙고 게임이 시작돼요. $유저연결상태에는 칸이 8개 그대로 있고 5번부터 8번까지는 '끊김'으로 채워지니까, 빈자리에 손을 대도 오류가 나지 않습니다. 이미 잠긴 방에서 호출하면 아무 일도 일어나지 않아요.
여기까지 따라 왔다면 첫 멀티플레이 작품이 완성된 거예요. 이제 직접 작품을 등록해서 친구와 함께 플레이해 보세요.
작품 등록하러 가기 →