Tic-Tac-Toe PhaserJS 튜토리얼 #
이 튜토리얼에서는 PhaserJS와 Nakama 서버를 사용하여 온라인 tic-tac-toe 게임인 XOXO를 만듭니다.
이 게임과 튜토리얼은 Nakama의 강력한 인증, 매치메이킹, 실시간 멀티플레이어 기능을 강조합니다.
필수 조건 #
튜토리얼을 쉽게 따라하기 위해서는 진행하기 전에 다음을 실시합니다:
- 노드 LTS 설치
- TypeScript 설치
- Phaser 설치
- Nakama 설치
- Nakama JavaScript 클라이언트 설치
- Svelte 설치
- Nakama 프로젝트 템플릿 복제
- PhaserJS 게임 엔진 준비
Nakama 서버 실행 #
XOXO 게임을 실행하려면 먼저 Nakama가 실행 중이어야 합니다.
Docker를 설치하고 Nakama 프로젝트 템플릿을 복제했으면 리포지토리를 복제한 폴더로 이동한 후 다음 명령을 실행합니다:
|
|
JavaScript 프레임워크 구성 #
여기에서 이 프로젝트에 필요한 TypeScript 종속성을 설치하고 TypeScript 코드를 JavaScript로 변환하고 PhaserJS를 Svelte JavaScript 프레임워크에 추가합니다.
- NPM을 설치하여 종속성을 관리합니다. 터미널 창에서:
|
|
- Nakama 서버를 시작하기 전에 TypeScript 코드를 JS로 변환합니다:
|
|
index.html
파일에 PhaserJS 스크립트 태그를 추가합니다:
|
|
- 이제 다음을 실행하여 로컬에서 자신의 애플리케이션을 실행할 수 있습니다:
|
|
여러분의 애플리케이션은 localhost:5000
에서 사용할 수 있습니다.
UI 빌드 #
App.svelte
파일에 PhaserJS 구성을 추가하여 시작합니다(main.js
파일에 가져온 게임의 기본 진입점):
|
|
|
|
- 다음으로 게임 설정을 위한
config.js
파일을 만듭니다. 이 경우 게임 캔버스의 높이와 너비는 다음과 같습니다:
|
|
- 이제 게임의 Phaser 장면을 생성하여 관련 로직을 그룹화할 수 있습니다. 우리 게임에는 메인 메뉴 장면, 매치메이킹 장면, 게임 내 장면의 세 가지가 있습니다:
MainMenu.js
|
|
Matchmaking.js
|
|
InGame.js
|
|
메인 메뉴 장면의 경우 Nakama(아래에서 설명)에서 사용자를 인증하고 “XOXO에 오신 것을 환영합니다” 배너와 버튼을 표시하여 이를 클릭하면 사용자를 게임 내 장면으로 이동합니다.
매치메이킹 장면의 경우 Nakama가 사용자의 상대방을 찾는 동안 대기 중인 스피너만 표시합니다.
게임 내 장면의 경우 플레이어가 X와 O를 입력할 수 있도록 9개의 개별 사각형으로 구성된 대화형 보드를 만듭니다. 또한 플레이어의 차례를 설정 및 업데이트하고 게임을 종료하는 게임플레이 함수를 정의합니다. 여기에 정의된 nakamaListener
은(는) 웹 소켓을 통해 이러한 작업을 Nakama 서버에 전달합니다.
Nakama 연결 #
- 다음으로 클라이언트를 Nakama 서버에 연결하고 이를 장치 인증을 위해 구성합니다:
nakama.js
|
|
localStorage
에서 가져오기보다는 deviceId
을(를) uuidv4()
(으)로 설정해야 합니다. 그렇지 않으면 동일한 사용자로 두 번 인증되어 첫 번째 세션 연결이 끊어지고 게임을 플레이할 수 없게 됩니다.- 여기에서 멀티플레이어 기능도 구성합니다. 이에 대해서는 권한 보유 멀티플레이어 및 매치메이커 문서를 참조하세요.
nakama.js
|
|
이제 게임할 준비가 되었습니다!
추가 사항 #
다음을 통해 이 튜토리얼의 주제와 기능을 자세히 알아보세요: