면접 보고 형 생일이라 집에 오자마자 가족끼리 술 한잔 하다보니까 이 시간이 되었습니다.

 

꼬냑 마시쪙

'개발일지 > Treasure Hunter' 카테고리의 다른 글

20.03.07 개발일지  (0) 2020.03.07
20.03.05 개발일지  (0) 2020.03.05
20.03.02 개발일지  (0) 2020.03.02
20.02.29 개발일지 2  (0) 2020.02.29
20.02.29 개발일지  (0) 2020.02.29

씬에 따라 세션을 생성하고 참석하는 기능을 대략 구현하였습니다.

 

함수에 있는 로그 상으로는 문제가 없는 것 같은데, 정확히 되는지 안되는지 판단이 되질 않습니다.

 

이를 확인하려면 게임에 참가하면서 Active 되는 Session UI에 데이터가 찍히면 되는데, 

 

문제는 이를 하려면 Sync를 맞춰야 합니다.

 

이 부분에서부터 덩어리가 좀 큰 일이 되었습니다.

 

결국 지금 해야 할 일은 한 명의 클라이언트(혹은 호스트)가 전송한 정보를 다른 클라이언트(혹은 호스트)들이 받아서 화면에 출력을 해야 합니다.

 

근데 이 기능은 지금 뿐만 아니라 이후 게임 플레이에도 필요한 기능입니다.

 

그래서 조금 오랜 기간이 되겠지만, 잠시 개발을 멈추고 PUN2 문서를 보고 정리를 좀 해보고자 합니다.

 

당분간은 개발일지라고 하나, 이 라이브러리 내용이 올라올 것 같습니다.

'폐기된 게시판 > MBGC' 카테고리의 다른 글

20.03.10 개발일지  (0) 2020.03.10
20.03.06 개발일지  (0) 2020.03.06
20.02.28 개발일지  (0) 2020.02.28
02.20.25 개발일지  (0) 2020.02.25
20.02.21 개발일지  (0) 2020.02.21

Projectile Fire 부분을 더 보는데 아무리 생각해도 왜 안되는지 답이 없어서 잠깐 다른 일을 해봤습니다.

 

바닥이 꺼지는 함정인 VanishTrap을 건드려 보았는데 대략 가닥은 잡혔습니다.

 

사용해야 할 것이 Geometry Brush Actor인데 Brush를 사용하는 문서가 아주 조금 보였습니다.

 

그런데 너무 적은 것이 불안합니다.

 

퍼포먼스 문제 때문인지 뭐때문인지 설명되어 있는 문서가 1개 정도 밖에 못찾았습니다.

 

그래도 일단 해보는 데까지 해봐서 돌려보고, 문제가 있다 싶으면 그때 다시 결정하고자 합니다.

 

리그 보느라 생활 패턴이 돌아간데다 이 생활을 5주간 반복하니까 피로가 쌓였는지 컨디션이 너무 안좋네요.

 

리그 적당히 보고 컨디션 좀 회복해서 다시 개발에 집중해야 겠습니다.

'개발일지 > Treasure Hunter' 카테고리의 다른 글

20.03.05 개발일지  (0) 2020.03.05
20.03.04 개발일지  (0) 2020.03.05
20.02.29 개발일지 2  (0) 2020.02.29
20.02.29 개발일지  (0) 2020.02.29
20.02.27 개발일지  (0) 2020.02.27

저녁 먹고 운동 하기 전에 남은 시간동안 문서 좀 더 보고 있는데 함수 바인딩 부분에서 두가지가 스쳐지나갔습니다.

 

하나는 바인딩 함수가 잘못된 것 아닐까? 라는 생각.

 

다른 하나는 콜리전은 Static Mesh에 되어 있는데 바인딩은 Box Component에 되어있는거 아닐까? 라는 생각.

 

혹시나 하고 다시 코드를 열어봤는데 역시나였습니다.

 

오늘 한 9시간동안 10분~15분에 1번씩 코드를 조금씩 수정하다보니 상황 인지가 늦은 것 같습니다.

 

덕분에 Projectile이 Spawn 되는 것까지는 완벽하게 되었습니다.

 

이제 남은건 Fire 함수를 잘 만들어 총알이 발사 되도록 하는 것입니다.

 

이틀이 걸려서야 겨우 윤곽이 잡힌 것에 나름 만족을 하며 오늘 개발일지를 마무리 합니다.

'개발일지 > Treasure Hunter' 카테고리의 다른 글

20.03.04 개발일지  (0) 2020.03.05
20.03.02 개발일지  (0) 2020.03.02
20.02.29 개발일지  (0) 2020.02.29
20.02.27 개발일지  (0) 2020.02.27
20.02.26 개발일지  (0) 2020.02.26

Projectile 문제를 해결하기 위해 계속해서 이리저리 알아 보았으나, 그 무엇 하나 해결하지 못했습니다.

 

우선 어느정도 만들어 놓았던 것들을 다 지우고, 다시 만들면서 찬찬히 다시 곱씹어봐야 할 것 같습니다.

 

빌드가 10분씩 걸리니까 의욕이 더 떨어지는 기분입니다.

'개발일지 > Treasure Hunter' 카테고리의 다른 글

20.03.02 개발일지  (0) 2020.03.02
20.02.29 개발일지 2  (0) 2020.02.29
20.02.27 개발일지  (0) 2020.02.27
20.02.26 개발일지  (0) 2020.02.26
20.02.24 개발일지  (0) 2020.02.24

오늘 몸이 많이 다운 되어서 많이 못했습니다.

환절기 때 원래 몸이 자주 아프기도 한데 다이어트도 하고

일주일에 두번 오버워치 리그 보느라 새벽에 일어나다 보니까 몸에 피로가 잘 쌓이는 것 같습니다.

그래도 다행인건 감기 기운은 아직 없는 것 같네요.

 

PUN2 Document를 좀 보고 튜토리얼을 찾다가 괜찮은 튜토리얼이 있어서 따라해보았습니다.

 

과정도 간단하고 해서 잘 넘어갈 줄 알았는데 빌드를 하고 실행 파일을 돌려 보니까 화면이 출력되지 않네요.

 

게다가 로그가 어디 찍히는지도 몰라서 여러모로 낭패였습니다.

 

다음에는 우선 이 빌드 시 정상 출력과 로그 보는 방법을 먼저 확인해서 화면 출력을 하고, 

 

PUN2 코드가 잘 동작 하는지 확인해 보려 합니다.

'폐기된 게시판 > MBGC' 카테고리의 다른 글

20.03.06 개발일지  (0) 2020.03.06
20.03.03 개발일지  (0) 2020.03.03
02.20.25 개발일지  (0) 2020.02.25
20.02.21 개발일지  (0) 2020.02.21
20.02.18 개발일지  (0) 2020.02.18

총알과 관련된 것들을 검색하다 Projectile Movement Component라는 것을 발견하였습니다.

 

이를 적용하기 위해 어제 만든 것을 지우고 새로운 ProjectileBase를 만들었습니다.

 

Projectile을 발사하는 Trap 또한 기존의 SpawnTrapBase를 상속 받아 만들었으나, Activate, Deactivate 할 때 Projectile Movement Component도 같이 건드려야 해서 하위 클래스로 ProjectileTrapBase를 만들었습니다.

 

그리고 작동을 하였으나, 정상적으로 작동하지 않았습니다.

 

첫번째. 튜토리얼대로 하였는데 총알이 Spawn만 되고 이동을 하지 않았습니다.

 

두번째. 공중에 둥둥 떠있는 총알에 닿았을 때 Collision이 발생하지 않았습니다.

 

생각보다 의외의 곳에서 문제가 발생하여 기간 내에 시간을 남기는 것이 불확실해졌습니다.

 

우선 이 함정을 토요일까지 해서 완성이 될지 미지수입니다.

 

또한 개발을 다 마치고 정리를 하면서 몇가지 실험을 해보고 싶은 것이 생겼습니다.

 

HitBox 구현 방식 변경입니다.

 

현재는 Character에게 Component가 Attach 되어 있는 상태로 구현되어 있습니다.

 

즉, 피격 입장에서 Collision 체크가 발생한다는 점입니다.

 

변경하고 싶은 방식은 Character의 손이나, Projectile 등과 같이 공격을 하는 입장에서 Collision이 발생.

 

즉, 타격 입장에서 Collision 체크를 하는 방식입니다.

 

우선은 Static Mesh나 Skeletal Mesh에 Collision을 적용했을 때 Component와의 Overlap 이벤트가 정상적으로 판단이 되는지 알아봐야 합니다.

 

주말에 이 부분에 대해 알아보아 구현이 가능하다면, Collision 계산을 Character에게서 제거하는 것을 리팩토링 때 할 일로 추가하고자 합니다.

'개발일지 > Treasure Hunter' 카테고리의 다른 글

20.02.29 개발일지 2  (0) 2020.02.29
20.02.29 개발일지  (0) 2020.02.29
20.02.26 개발일지  (0) 2020.02.26
20.02.24 개발일지  (0) 2020.02.24
20.02.22 개발일지  (0) 2020.02.22

오늘은 Spawn Trap을 개발하고, 다른 Trap들의 기본까지 만들었습니다.

 

남은 Trap은 Spawn, Fire, Floor Down이었습니다.

 

Spawn은 당연히 범위 안에 캐릭터가 들어올 시 Spawn이 되는 함정입니다.

 

Fire은 범위 안에 캐릭터가 들어오면 탄환이 발사 되는 함정입니다.

 

Floor Down은 범위 안에 캐릭터가 들어오면 바닥이 사라지는 함정입니다.

 

이들의 공통점은 어떠한 Actor를 생성해야 한다는 점입니다.

 

Spawn은 캐릭터를, Fire는 여러 개의 Actor를, Floor Down은 Geometry brush actor를 생성해야 합니다.

 

그래서 SpawnTrapBase를 만들어, 이를 implement하는 SpawnTrapExample을 만들었습니다.

 

이후 ThrowableBase라는 투사체 담당 클래스를 만들고, BulletExample이라는 예시 탄환을 만든 뒤, FireTrapExample와 collision이 발생하면 이를 발사 할 계획입니다. 

 

조금 정리만 된다면 FireTrap은 금방 구현이 될것입니다.

 

문제는 Floor Down입니다.

 

현재 Geometry brush를 런타임 중 Actor BP 안에서 Spawn 하는 방법을 찾지 못하였습니다.

 

이 방법을 찾지 못한다면, 아마 이 함정 자체를 구현하지 못할 수 있습니다.

 

내일은 Fire Trap을 정리하고 이 부분에 대해 더 알아보고자 합니다.

'개발일지 > Treasure Hunter' 카테고리의 다른 글

20.02.29 개발일지  (0) 2020.02.29
20.02.27 개발일지  (0) 2020.02.27
20.02.24 개발일지  (0) 2020.02.24
20.02.22 개발일지  (0) 2020.02.22
20.02.20 개발일지  (0) 2020.02.20

오늘은 Json으로 만든 임시 데이터 파일을 게임 시작 할 때 읽어오고, 게임 종료할 때 저장하는 기능을 구현하였습니다.

 

저번 개발 일지에서 두가지를 적었습니다.

 

하나는 아바타 정보를 index로 가지고 있는 것. 다른 하나는 DataManager가 함수만 제공하도록 한다는 것.

 

이 중 한가지만 적용이 되었습니다.

 

아바타 정보를 index로 가지고 있는 것은 여러모로 편리했습니다.

 

코드상으로도 좀 더 직관적이라 적절한 조치였다고 생각합니다.

 

하지만 이 방식대로 하면 DataManager가 데이터를 가지고 있지 않으면 값이 바뀔 때마다 UI를 들락날락 해야 했습니다.

 

그리고 처음 게임이 켜졌을 때 초기화 순서를 확실히 몰라 NullReferenceException이 자주 발생했습니다.

 

그래서 DataManager가 모든 데이터를 가지고 있도록 하였습니다.

 

다만 UI에서 값이 바뀔 때의 Index는 각 컴포넌트에 부착된 스크립트들이 가지고 있다가, 게임을 종료 할 때 MainMenuController가 모아서 DataManager의 SaveData 함수를 호출하면서 값을 저장합니다.

 

이 외에 한가지 작업이 이루어졌습니다.

 

바로 일괄적으로 적용되던 UpdateList를 하위 클래스로 분할하여 적용하였습니다.

 

그 이유는 Json 파일을 읽어오는 과정에서 필요한 타입만 다르지 작업 자체는 반복적이라 generic으로 함수를 지정했기 때문입니다.

 

그 결과 UpdateList에서 자신이 붙어있는 컴포넌트에 해당하는 Data를 DataManager에서 가져오는 방법을 찾을 수 없었습니다.

 

그래서 컴포넌트 별로 별도의 UpdateList의 하위 클래스를 붙이고, 이벤트 함수를 override 하여 그 내부에서 데이터를 따로 받아오도록 하였습니다.

 

마지막으로 테스트를 위한 멀티플레이 개발은 무료 에셋인 Photon Unity Networking 2(PUN2)를 사용하기로 결정하였습니다.

 

이를 이용해 최대한 함수를 wrapping하여 인터넷 상으로 P2P 방식을 통해 멀티플레이를 하도록 할 예정입니다.

 

이후에는 UI 개선과 이미지와 슬라이더 기능 추가, 견본 이미지를 통한 아바타 생성을 할 예정입니다.

 

여기까지 마무리가 된다면 그 이후에는 한숨 돌리며 게임 개발을 할 수 있을 것 같습니다.

 

개인적으로 게임 장르 별 공용 함수를 최대한 제작하고, 이를 이용할 계획입니다.

'폐기된 게시판 > MBGC' 카테고리의 다른 글

20.03.03 개발일지  (0) 2020.03.03
20.02.28 개발일지  (0) 2020.02.28
20.02.21 개발일지  (0) 2020.02.21
20.02.18 개발일지  (0) 2020.02.18
20.02.14 개발일지  (0) 2020.02.14

오늘은 특정 범위 안에 들어가면 다른 곳으로 캐릭터를 전이시키는 Teleport Trap을 개발하였습니다.

 

제가 11시에 개발일지 쓰는 것을 알람 맞춰 놓고 하는데 오늘은 조금 늦었습니다.

 

그 이유는 머리속에서 Teleport Trap을 구현하는 방법이 몇가지 생각이 나서 이것을 하나하나 다 해보느라 늦었습니다.

 

지치네요..

 

결국에는 ActorBase를 상속받은 TeleportTrapBase를 만들고, 이의 하위 Blueprint인 BP_TeleportNodeExample을 만들었습니다.

 

그리고 ActorBase를 상속받은 하위 Blueprit인 BP_TeleportTrapExample에서 두 개의 TeleportTrapBase를 Spawn하면서 위치를 잡아주고 있습니다.

 

BP_TeleportTrapExample을 ActorBase의 하위 클래스로 둔 이유는 혹시나 발생할 다형성을 위해서입니다.

 

개발하고 몇가지 아쉬운 점을 느꼈습니다.

 

첫번째는 확장성이 부족한 점. 여러 텔레포트 노드가 존재 할 때에는 완전히 새로운 클래스를 다시 만들어야 합니다.

 

이를 처음부터 여러개의 노드를 관리할 수 있도록 하면 좋지 않을까 싶습니다.

 

두번째는 이름 선정이 잘못 된 점. Node의 상위 클래스가 Trap이 되어버렸습니다.

 

이런 점들은 이슈에 추가를 해놓고 일정이 빨리 끝난다면 리팩토링 전에, 그렇지 않다면 리팩토링 과정 중에 수정을 하고자 합니다.

'개발일지 > Treasure Hunter' 카테고리의 다른 글

20.02.27 개발일지  (0) 2020.02.27
20.02.26 개발일지  (0) 2020.02.26
20.02.22 개발일지  (0) 2020.02.22
20.02.20 개발일지  (0) 2020.02.20
20.02.19 개발일지  (0) 2020.02.19

+ Recent posts