[게임 개발] Tiny 2D RPG: 1 - 프로젝트 설정

이정석·2023년 9월 28일

Tiny 2D RPG

목록 보기
1/9

Tiny 2D RPG

📖 NodeJS와 TypeScript를 공부하면서 소규모 온라인 2D RPG게임을 만들어보고자 작은 토이프로젝트로 'Tiny 2D RPG'라는 프로젝트를 시작하려고 한다.

우선 클라이언트로는 Unity, 서버로는 NodeJS를 사용할건데 소켓통신을 위해 SocketIO를 사용하고자 한다. NodeJS에는 그냥 SocketIO를 설치해서 사용하면 되지만 아쉽게도 유니티에는 SocketIO에셋을 유로로 구매해야한다 ㅠㅠ

SocketIO에셋으로는 'Socket.IO V3/V4 Client Basic'을 사용할 예정이고 다른 프로젝트에서는 'Google ProtuBuf'를 사용했었는데 일단 클라이언트부분을 어느정도 구현하고 이후에 고민해봐야 할 것 같다.

캐릭터, 맵을 위한 에셋으로는 'SPUM''너무네모숲'이라는 에셋을 사용할 예정이다. SPUM은 뭐 유명한 에셋으로 2D 캐릭터를 간단하게 만들 수 있는 에셋이고 너무네모숲은 2D 플랫폼 무료에셋중 평가가 좋은것을 가져온 것이다. 진행하면서 뭔가 부족하면 다른 에셋을 추가할 예정이다.

1. 목표

🔎 'NodeJS로 게임서버를 만드는 것'이 목표지만 처음에는 간단한 이동, 공격구현부터 시작해서 데이터베이스를 붙이고 캐릭터, 스킬 등 여러가지기능을 추가하면서 프로젝트의 규모를 확장하고 싶다.

구현순서는 다음과 같이 할 예정이다.

  1. 프로젝트 기본 설정
  2. 플레이어 구현
  3. 플레이어 이동 구현
  4. 플레이어 공격 구현
  5. 맵 템플릿화
  6. 서버작업

물론, 나중에 데미지 작업을 하려면 캐릭터 스텟을 템플릿화하거나 추가적인 작업을 거쳐야 하겠지만 기본적인 바탕이 되는 작업은 위의 단계로 진행할 것이다.

2. Git

👍 프로젝트의 시작은 역시 Git Repository를 하나 만드는 것인데 만든 Repository는 바로 Tiny-2D-RPG다.

Git의 Issue 템플릿과 Pull Request 템플릿을 설정하고 Merge방법은 직접 main 브랜치로 직접 push하는 방식을 사용한다.

다른 사람들과 함께하는 프로젝트였다면 development 브랜치를 따로 파서 부분적으로 main에 merge하는 방식도 고려해볼만 할 것 같다.


Client

Unity Client의 초기설정은 아래 사진과 같이하였다.

  1. Resources: Prefab이나 각종 아트리소스들을 저장할 폴더
  2. Scenes: 게임화면이나 이후에 추가될 Scene들을 저장할 폴더
  3. Script: Client에 필요한 모든 Script를 저장할 폴더
  4. Socket.IO: SocketIO를 Import한 폴더로 내부 분석 후 적절한 위치에 나눌예정
  5. SPUM: 캐릭터 생성용 SPUM으로 실제 게임에는 사용하지 않을 것이다.

Server

NodeJS의 Server 초기설정은 아래와 같이 하였다.

Server의 내용은 현재 간단한 웹서버 예제로 3000번 포트에 'Hello World!'를 반환하는 예제가 구현되어 있다.

profile
게임 개발자가 되고 싶은 한 소?년

0개의 댓글