프로젝트 시작

생각보다 바쁜 일이 주어지지 않는 설 연휴다. 2021년 즈음 상근예비역으로 군복무를 할 때는 항상 이런 연휴에 ‘프로젝트’를 했던 기억이 있다. C++로 테트리스를 만들거나, 간단한 유니티 프로젝트 같은 것들이었다.

군복무를 마치고 복학한 후에는 연휴에 ‘프로젝트’를 한 적은 없는 것 같다. 항상 게임개발 팀에 속해서 남은 작업을 급하게 쳐내거나, 잘 쉬는 것에 집중했었다.

그러다 문득, 오래간만에 그런 ‘프로젝트’를 하고 싶다는 생각이 들었다. 예전부터 만들어왔던 소프트웨어 렌더러를 더 발전시킬까, 고민했지만 (아마도 취업을 위해) 게임 서버를 1년여간 공부한 입장에서 서버단의 작업이 붙을 수 있는 프로젝트를 하고 싶었다.

고민 끝에, 요즘 내가 가장 재미있게 플레이하고 있는 메이플스토리와 비슷한 2D MMORPG를 구현해보고 싶다는 생각이 들었다. 결심이 서자마자 컴퓨터 앞에 앉았다.

지금껏 2D 플랫포머 게임은 만들어보지 않았기 때문에 관련한 엔진 기능도 배우고, 예전에 구매했던 2D 캐릭터 애셋들도 살펴보았다. 그러다 문득 메이플스토리를 모작하는 방향으로 가면 더 도전적인 것들이 많겠다는 생각이 들었다.

그렇게 메이플스토리에서는 타일맵을 어떻게 구현하는지에 대해 알아보았고… 개발일지 1편은 여기서부터 시작된다.

이 프로젝트의 목표

일단 내가 이 프로젝트를 통해 구현하려는 것은 무엇이고, 얻으려는 것은 무엇인가? 이에 대한 고민이 선행되어야 개발에 대한 방향이 잡힐 것 같아 이렇게 정리해보았다.

(참고로, 설 연휴동안 모든 것을 구현하는 것이 아니라 연휴를 ‘부스터’삼아 중장기 프로젝트를 시작하려는 것이다.)

얻고자 하는 것

  • 단순한 위치 동기화 및 더미 클라이언트 테스트를 넘어, 실제 컨텐츠를 구현해보기
  • 다양한 기능을 구현하며 규모있는 코드베이스를 만들고 관리해보기
  • 상용 게임(메이플스토리)을 분석하고 유사한 컨텐츠를 개발하며 기술적 난관을 경험해보기
    • 성공이나 실패에 상관없이, 일단 도전하고 기록을 남긴다!

플레이 영역

1단계: 핵심 루프 구현

  • 계정 생성 및 로그인
  • 서버-클라이언트간 위치 동기화
  • 잡몹과 간단한 보스 구현(특별한 기믹이 없는 ‘마노’같은 느낌)
  • 아이템 및 재화 드랍, 인벤토리, 상점
  • 간단한 스킬
  • 퀘스트
  • 파티

2단계: 기능 확장

  • 길드
  • 거래소
  • 기믹이 존재하는 보스

개발 및 운영 영역

  • 맵 에디터
  • 운영툴(유저 정지, Kick 등)

‘완성’의 정의 (1단계 기준)

  • 다수의 플레이어가 동일한 맵에 접속해서 자유롭게 이동하며 전투 가능
  • 몹을 사냥하고 퀘스트를 완료하여 보상을 얻어 상점에서 아이템을 구매하는 루프를 플레이 가능
  • 모든 판정은 서버가 담당함

시작합니다!

오랜만에 시작된 프로젝트인만큼 달려봅시다. 출발!

카테고리:

업데이트:

댓글남기기