오전에 일어나 캐릭터가 가만히 있어도 앞으로 걷는 현상을 수정하기 별도의 Velocity 적용 로직을 만들어보았으나 동작하지 않았습니다.
그래서 아얘 새로운 Velocity 체계를 만들다가 문뜩 "이거 그냥 당장 문제를 해결하기 위해 땜빵처리 하는거 아닌가?"라는 생각이 들었습니다.
그래서 작업사항을 모두 지우고 처음부터 디비깅을 진행하였습니다.
그 결과 Skeleton에서 root로 잡은 Pelvis가 Animatiton이 재생될 때마다 움직임을 보여서 Velocity가 정지해도 변경이 된다는 것을 발견했습니다.
이를 고치기 위해서는 Animation을 다시 Retarget하여 Root를 root 노드로 지정해서 다시 Animation Retarget을 해야 합니다.
이전에는 그래도 Skeleton에서 노드 연결하는 거라도 해놓았기 때문에 2차 작업을 할 여유가 되었지만, 이번에는 이전 작업사항이 branch checkout을 하면서 다 날라가서 다시 처음부터 해야 했습니다.
이게 두번째.
첫번째는 어제 발생한 사항입니다.
작업사항을 Push하려는데 Git LFS가 용량이 초과되어 새 Data Pack을 구매 하였는데, 그 가격이 60달러였습니다.
사실 이것저것 구독을 해놓은 상태라 60달러 추가 구독이 엄청나게 부담이 되는 것은 아니었습니다.
하지만 뭔가 아깝다라는 생각이 크게 들었습니다.
Github는 왜그런지 모르지만 레포지토리를 삭제하지 않으면 올려놓은 파일이 계속 용량에 잡힌다고 합니다.
즉, LFS 파일 수정이 많아질수록 그 부담이 심히 커진다는 것이죠.
이렇게 되다 보니 또 다시 고질병이 도졌습니다.
바로 끈기 없이 얼마 안가서 작업사항을 날리고 그만두거나, 다시 하는 병입니다.
어제도 Git LFS 때문에 이런 식으로 작업하는게 맞나 싶었는데 Animation Retarget을 다시 해줘야 한다니 무언가 잘못된 것 같다는 생각이 강하게 들었습니다.
그래서 작업 진행 방향에 대해 고민을 했습니다.
제가 다시 개인프로젝트 개발에 의욕과 의무를 가지려 한 이유는 다음과 같았습니다.
1. 퀄리티가 높은 게임 플레이 개발을 하여 관련 경험을 쌓고 실력을 인정받아 게임 플레이 개발로 전환 할 실력을 갖추는 것.
2. 엔진 코드를 보고 이해하여 언리얼 엔진에 대한 숙련도를 높이고, 더 나아가 수정을 할 줄 알아 엔진 개발 능력을 익히는 것
그리고 이 외에 작업을 준비하면서 언리얼 엔진 5가 나오다 보니까 다음 사항이 추가가 되었습니다.
3. 언리얼 엔진 5에 익숙해지고 기능을 사용해보는 등 언리얼 엔진 5 알앤디
사실 우선도로 따지자면 1 -> 2 or 3 순서일 것 같습니다.
그런데 3으로 인해 언리얼 엔진 5를 사용하게 되고, 2로 인해 엔진 코드를 프로젝트에 포함시키다 보니 Asset Store 접근성이 0가 되어 1을 하기 위해 원활히 개발하기 힘든 상황이 되었습니다.
물론 Submodule로 엔진 코드를 넣은 것도 잘못이긴 하였지만, 여튼 이를 병행하기에는 의지와 끈기가 부족해 지금처럼 언젠가는 반드시 포기할 것 같았습니다.
그래서 프로젝트를 지우고 다시 작업하기로 마음먹었습니다.
그나마 다행인건 이 부분을 다시 개발한지 오래되어 작업이 매우 더딘 탓에 작업량이 적다는 점일 것 같습니다.
우선 위의 3가지 목표 중에 1번과 3번을 중점으로 운영되는 프로젝트를 따로 생성 할 예정입니다.
2번이 빠진 이유는 이번에 작업하면서 엔진코드를 수정하고 PR을 날려본 경험.
그리고 오늘 오전에 디버깅을 통해 이슈 발생 원인을 발견한 과정의 경험.
마지막으로 업무에서 디비깅을 했던 경험이 어느정도 이어졌기 때문입니다.
엔진코드의 깊은 부분을 수정할 수는 없지만, 당장 작업에 필요한 기능을 추가하는 것은 충분히 할 수 있을 거란 자신감을 얻었습니다.
또한 이와 별개로 하고 싶은 일이 조금이나마 명확해졌기 때문입니다.
이전에는 엔진 프로그래머와 코어 플레이 개발자 사이에서 고민한 적이 있었습니다.
이는 직장 동료로부터 "엔진 프로그래머가 코어 플레이 프로그래머로 전환하는 경우는 생각보다 좀 있다."라는 말을 들은 것과, 넥슨 등의 회사에서는 "클라이언트 프로그래머가 필요하면 엔진을 직접 수정해서 개발 한다."는 얘기를 듣고 엔진 개발을 하는 편이 업무 전환에 좀 더 빠를까 싶었기 때문입니다.
하지만 최근에 엔진 코드 수정은 부차적인 부분이고 정말 내가 하고 싶은건 새로운 피쳐.
가급적 캐릭터의 스킬이나 기능 구현, 혹은 게임모드 개발하고 싶다고 어느정도 범위를 좁히게 되면서 현재의 경험 감각을 살려두기만 하면 개발을 지속하면서 꾸준히 엔진 코드를 마주칠 수 있는 기회가 있지 않을까 싶습니다.
다시 본론으로 돌아와, 현 게시판 주제인 1번 이유.
코어 플레이 개발은 언리얼 엔진 4로 프로젝트를 만들어 진행하고자 합니다.
이유는 애니메이션을 더 빈번하게 수정해야 하는데 아직은 언리얼 엔진 4 코드와 에디터가 더 친숙하기 때문입니다.
해당 프로젝트에 대한 작업 일지는 그대로 현 게시판에 이어서 작성이 될 예정입니다.
또한 3번 언리얼 엔진 5 기능 RnD는 따로 만들고 싶었던 게임을 만들면서 천천히 해볼 예정입니다.
앞선 코어 플레이 개발 프로젝트가 캐릭터에 초점을 맞췄다면, 이 프로젝트는 캐릭터 기능은 매우 간략하게 만들고 모드와 네트워크에 좀 더 초점을 맞출 생각입니다.
그래서 캐릭터는 개판이지만 게임 플레이가 가능한 상태로 빠르게 진입하고 그 뒤에 게임 플레이에 필요한 최소 요건(HUD, 점수 계산, 데디케이트 서버 등)을 갖추어 프로토타입을 뽑아볼 생각입니다.
그리고 이 프로젝트는 가급적 github를 사용하지는 않을 것입니다.
github를 쓰면 다시 git lfs랑 엮이게 되고 이쪽과 엮이면 또 머리가 복잡해지더군요.
당분간은 git만 사용해서 commit만 올리고, 여유가 될 때 사설 git 서버와 perforce를 사용하여 레포지토리 구조가 어느정도 안정화가 되면 그 때 Push를 해보려 합니다.
정리를 하면 이렇게 될 것 같습니다.
- 기존 프로젝트는 다음 이유로 폐기
- 복수의 개발 목표가 혼동되어 정체 됨
- 1.1의 이유로 지나치게 규모가 커지려는 경향을 보임
- 프로젝트 구조로 인해 애니메이션 작업 속도가 매우 느림
- 작업에 비해 불필요한 비용 발생이 있고 앞으로 그럴 여지가 큼
- 기존 3가지 목표 중 1가지를 폐기.
- 남은 2가지 목표를 각각 다른 프로젝트로 분리하여 재 작업
- 코어 플레이 개발
- 언리얼 엔진 4로 개발
- 캐릭터 기능 개발을 중심으로 함.
- 언리얼 엔진 5 알엔디
- 언리얼 엔진 5로 개발
- AOS 장르 게임을 개발
- 모드와 네트워크 기능에 초점을 둠.
- 빠르게 프로토타입을 생성하고자 함.
- 코어 플레이 개발
각 프로젝트에 대한 사항은 관련 일지 게시판에 추가로 작성해 두도록 하겠습니다.
'개발일지 > 코어 플레이 개발' 카테고리의 다른 글
22년 08월 22일 개발일지 (0) | 2022.08.23 |
---|---|
22년 08월 20일 개발일지 2 (0) | 2022.08.21 |
22년 08월 19일 개발일지 2 (0) | 2022.08.20 |
22년 08월 19일 개발일지 (0) | 2022.08.19 |
22년 08월 18일 개발일지 (0) | 2022.08.19 |