2022 졸업 프로젝트 회고록 - (1) 팀 구성 및 기획 편 (feat. NFT 멀티플레이 게임)

박민주·2023년 4월 1일
2

졸업프로젝트

목록 보기
1/1
post-thumbnail

2022년 1학기, 2학기에 걸쳐서 진행했던 졸업프로젝트 회고록을 적어보려 한다.

프로젝트를 하면서 수많은 논의를 하고, 의사결정을 하게 되는데
취업을 하고나서 그 때의 순간들을 돌이켜보니 그렇게 하길 잘했다 싶은 것들이 있다.
물론 부족했던 점도 있어서 그런 것들도 적어보려 한다.

첫 졸프 회의는 아마 2022년 2월 정도였다!
3월 개강 전에 프로젝트 주제라도 잡을까요,,? 해서 처음 만났다.

팀원은 나까지 총 3명인데
한 명은 편입 동기였고, 다른 한 명은 에타에서 구하게 되었다.

내가 졸업 프로젝트에서 이루고자 하는 바는 "안해본 걸 해보자"는 것이었다.
처음에는 그 방향이 아예 다른 분야를 해보는 것이었다.
난 그동안 게임 프로젝트를 주로 해왔으니 졸업 하기 전에 마지막으로 다른 걸 해보고 싶다 하는..

근데 서버는 길이 너무 틀어질 것 같아서 앱/웹 프론트엔드 쪽을 고려했다.

더군다나 같은 팀원이 된 동기는 서버이지만 게임 쪽이 전혀 아니어서
나 때문에 게임 프로젝트를 하자고 하기가 좀 그렇다고 생각했다.

또 그동안 게임 쪽을 희망하는 사람을 거의 본 적이 없어서 새로 합류하게 된 팀원도 왠지 게임 쪽은 별로라고 하지 않을까..? 하는 걱정도 있었던 것 같다.

그래서 처음 프로젝트 주제 회의를 할 때에는 앱/웹 쪽으로 방향를 잡았던 것 같다.

그런데 .. 그동안 프로젝트 해본 게 게임 위주다 보니
아이디어도 콘텐츠/게임 위주로만 생각이 났다.

주제를 조금 더 생각해오자며 첫 회의를 끝나고 나서 고민을 했다.
다른 팀원 둘 다 서버 파트여서 아마 나 혼자 클라이언트를 해야할 것 같은데..
처음해보는 앱/웹을 잘 할 수 있을까? 하는 걱정이 되었다.
그리고 이왕 하는 거 난 게임 쪽을 갈 거니까 졸프가 포폴이 될 수 있으면 좋겠다고 생각이 들었다.

그래서 조심스레..? 게임은 어떠냐고 혼자 클라이언트 하기에도 그게 더 자신이 있는 것 같다고 말했다.
두 팀원 다 게임 프로젝트는 처음이라고 하면서도, 오히려 재밌을 것 같다고 해서 수월하게 게임으로 정할 수 있었다 ㅎ


그래도 아직 목표는 안해본 걸 해보자! 였고, 다른 팀원들도 새로운 걸 해보는 데에 거부감이 없었다.
팀을 너무너무 잘 만난 것 같다!

이후에는 나름 요즘 이슈가 되는 기술을 접목해보고 싶다고 해서 떠오른 것이 NFT였다.

NFT에 대해 아무것도 모를 때, 클라이언트에서 처리해야 할 것 같아 걱정도 컸지만
팀원들이 같이 R&D 해주겠다고 해서 걱정을 덜고, NFT를 접목시킨 게임을 만들기로 결정했다!
(하다보니 NFT 처리는 서버에서 해야해서 클라이언트가 할 작업이 거의 없긴 했다..ㅎ)

그리고 내 포트폴리오 중에는 멀티플레이 게임이 없고 다 싱글플레이였는데,
이게 스스로 포트폴리오에 자신이 없게 만드는 요소라는 생각이 들었다.

네이버제트 인턴 경험 때 멀티플레이를 조금 해봤던 게
게임의 클라이언트-서버 구조를 아는 데 도움이 되었는데 아직 그래도 잘 모르기 때문에 이번 기회에 제대로 알고 싶단 생각이 들었다.

그래서 멀티플레이도 넣게 되었다!


게임 프로젝트에는 기획, 아트도 너무 중요하다는 걸 알지만,
졸업 프로젝트 팀원 수가 3명으로 정해져 있기도 했고,
이번에는 게임의 콘텐츠보다는 기술에 집중하고 싶었다.

그래서 오히려 프로그래머 3명으로 구성된 팀이라는 게 좋았던 것 같다.

이게 나중에는.. 기획이 없으니 어렵기는 했다 ㅋㅋㅋ
큰 틀은 있어도 세부적인 것까지는
문서화가 되어있지 않아서, 최신화가 되어있지 않아서,
그 누구도 기획 내용을 제대로 기억하는 사람이 없어서,,

같은 기능을 서버와 클라가 다르게 구현하는 일도 있었고 여러모로 혼동이 있었다.
이건 프로젝트 진행에서 부족했던 점이라고 생각된다.


이후에는 게임 콘텐츠에 대한 아이디어 회의를 했다.

나름 여러 이유에서 게임의 주인공을 동물로 정했다.
NFT는 갖고 싶어야 가치가 있는데 동물은 귀여우니까 누구나 다 좋아하지 않나?ㅎ 하는 생각도 들었고,
그 당시 레퍼런스 될만한 NFT게임 중에 크립토키티, 엑시인피니티 같은 것들도 참고를 했다.

우린 아트 파트가 없는데 NFT 가치를 높일만한 요소로 뭘 해야할까? 고민했다.
OpenSea에서 인기있는 NFT 콜렉션들을 참고해보면서 색 변경과 액세서리 요소를 넣기로 했다.

당시 포켓몬고를 하고 있었는데 모자 쓴 포켓몬들이 얼마나 귀엽고 갖고 싶던지..
이에 영감을 받아서 액세서리 요소는 동물에게 모자를 씌우는 것으로 정했다.

근데 이건 개발과 관련한 이유도 있었다.
동물 에셋을 찾아보니 동물마다 모델링이 다 다른데,
옷이라던가 신발이라던가 그런 건 너무 공수가 클 거 같고 아트도 없는 상태에서 유연하게 활용하기 어려울 것 같았다.

부가적인 요소로.. NFT 마켓에는 조금 더 특별한, 노력이 들어간 동물들이 등록되었으면 해서
합성을 통해 만들어진 동물만 올라가도록 하기로 결정했다.

여기까지 정해진 것은

  • NFT
  • 멀티플레이 게임
  • 동물이 주인공
  • 각 동물의 가치를 높여주기 위한 색 변경, 액세서리(모자) 요소

그럼 이제 멀티플레이 게임에서는 뭘 해야 할까?

일단 개발 방법에서는 유니티의 포톤 네트워크를 사용하기로 결정했다.
사용할 엔진이 유니티이기도 했고, 포톤이 그나마 이전에 조금 해본 적이 있었다.

콘텐츠 측면에서는 유저가 자신이 모은 동물들을 활용할 수 있는 게임이기를 바랐다.
자신의 동물을 다른 유저에게 보여주고 자랑할 수 있다면,
희귀한 동물을 갖고싶은 욕구가 더 올라갈 수 있을 것이라고 생각했기 때문이다.

여기에선 또 당시 재밌게 했던 제페토의 슬라임파티에서 영감을 얻었는데,
슬라임을 타고 맵을 돌아다니면서 배치된 것들을 먹어 치울 수 있는 게임이었다.
몸집을 키워 다른 플레이어들과 만났을 때 에너지?를 뺏을 수도 있고
이것저것 먹으면서 재화도 얻고 그걸로 게임 내 아이템도 살 수 있고 그랬던 것 같다.

그래서 우리는 동물을 타기에는.. 사람을 잘 구현할 시간까지는 부족할 거 같아서
동물 자체가 돌아다니는 것으로 정했다.
그리고 마을 맵을 먹어 치우면서 몸집을 키울 수 있게 했다.

(여담으로, 구현하다보니 동기화하는 게 여러모로 이슈가 있어서
몸집이 커지는 상태를 동기화 하는 건 진짜 끝까지 미뤘는데,
확실히 하고 나니까 먹어 치우는 재미가 있어서 넣길 잘했다고 생각했다.)

에너지를 모으고 일정 에너지 이상 모으면 색변경/모자변경/합성 등에 이용할 수 있는 코인을 얻을 수 있도록 시스템을 구상했다.


개발 과정에 관련해서도 기록하고 싶은 경험들이 많다.

먼저 나름 핵심 기술이라고 생각되는 건,
플레이어가 색 변경을 시도했을 때 하나 뿐인 동물을 만들기 위한 프로세스이다.

서버에서 어떤 색으로 바뀔 것인지에 대한 결과값을 만들고,
클라이언트에서는 어떤 색조합의 결과를 받아도 그에 대한 동물 오브젝트와 UI를 보여줄 수 있도록 개발되었다.

처음에는 랜덤의 색상값을 만드는 로직을 클라이언트에서 짰었는데,
하나 뿐인 동물을 만들어야 했기 때문에 서버에게 결정권을 넘기게 되었다.

서버는 클라에서 색변경 요청을 받으면 임의의 색 조합을 만드는데,
이후 데이터베이스를 조회해서 해당 타입의 동물 중 같은 색을 가진 동물이
없을 경우에는 바로 리턴하고,
있을 경우 다시 색 조합을 만들어 리턴하는 등 중복 검사를 하는 처리가 되어있다.

그리고 클라이언트에서는 그 색조합을 가진 동물 오브젝트를 보여주기 위해
서버로부터 색조합에 대한 정보를 Json으로 받아 런타임에 텍스처를 생성해서 동물에게 적용했다.

위 사진처럼 멀티플레이를 위한 동물을 고를 때에도 썸네일을 보여주어야 하기 때문에
서버로부터 받은 동물 정보를 이용해서 런타임에 동물 타입, 텍스처, 썸네일 캡처 등이 진행되어야 했다.

나름대로 새로운 시도들이었고, 재미있으면서도 어려웠다..

더 자세한 이야기는 개발편에서 이어서 해야겠다.


여담으로 팀원 모두가 아이폰, 맥북, 아이패드, 애플워치 유저인 우리는
iOS를 타겟으로 빌드를 하게 된다...!

profile
Game Programmer

5개의 댓글

comment-user-thumbnail
2023년 4월 19일

안녕하세요 게임 클라이언트 개발자 황새나입니다! 혹시 포톤 관련해서 여쭤보고 싶은게 있는데 가능할까요?,,

1개의 답글