요 몇일 컨디션이 안좋은거 버티면서 운동 하던게 한달만에 한꺼번에 반동이 와버렸습니다.

 

내리 2시간을 유니티 업데이트 후에 2시간 정도 뻗어버렸습니다..

 

그래서 충분히 개발까지 할 수 있을법한 시간에 대략적인 계획만 잡게 되었습니다.

 

문서를 읽어보면서 나온 내용을 종합해보자면

1. OnPhotonSerializeView에서 Stream이 Writing 중이면 통신을 보내고, Reading 중이면 통신을 받는다.

2. OnPhotonSerializeView는 Update와 같이 수시로 호출이 된다.

3. OnPhotonSerializeView는 PUN2 내부 스크립트에서 호출되는 함수다. 의도적으로 호출할 수 없다.

이 세가지입니다.

 

제가 구현해야 하는 기능은 "Player들의 PlayerInfoList의 동기화" 입니다.

여기서 주의해야 할 점은

1. 새로운 Player가 접속했을 경우, 기존에 Data를 가지고 있는 Player의 PlayerInfoList를 read 해야지
본인이 가지고 있는 것을 write 해서 기존의 Player들의 PlayerInfoList가 날라가면 안된다.

2. 반대로 Player가 방을 나갈 때는 해당 Player의 PlayerInfoList가 write 되어야 한다.

이 정도 될 것 같습니다.

 

지금 생각하는 구현 방식은 대략 두가지 정도입니다.

1. Player가 각자 관리하는 트리거를 둔다.
Host-Client 구분은 쉽게 될 것 같으니, 이를 통해 Client는 평소에는 write 하지 않고 read만 하도록 한다.
Host는 항상 write와 read를 열어 둔다.

Client의 주도로 List가 바뀌는 경우(ex. ready, logout)에는 해당 이벤트가 발생 시 호출하는 함수에서 트리거를 열어둔다.

열린 트리거는 write 하는 부분 마지막에 자동으로 잠궈두도록 한다.

 

2. RPC로 PlayerList를 관리한다.

OnJoinRoom 이벤트에서 RPC 함수를 통해 자신의 PlayerInfo를 전달한다.

Update 함수에서 전달 받은 PlayerInfo가 존재하는 경우, 이를 초기화하고 PlayerInfoList에 PlayerInfo를 적용한다.

이 중 Host는 다시 RPC를 함수를 통해 최신 버전의 PlayerInfo를 전달한다.

 

가능하면 금요일에 이 방법들을 구현해보고 싶으나, 아직 확신이 없습니다.

때문에 몇일 더 구현 방법을 고려해보고 그럴듯하다는 확신이 생기면 개발을 하고자 합니다.

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

20.05.01 개발일지 - 일시정지  (0) 2020.05.01
20.04.28 개발일지 2  (0) 2020.04.28
20.04.24 개발일지  (0) 2020.04.24
20.04.21 개발일지  (0) 2020.04.21
20.04.17 개발일지  (0) 2020.04.17

오늘은 Puzzle에서 사용되고 있던 TwoBlockTrap의 벽을 Static Mesh에서 THWall로 교체하고, 
이에 의해 Puzzle에서 변경되는 부분을 변경해주는 작업을 진행하였습니다.

 

그리고 이에 앞서, AllBlockTrap에서 Wall이 제대로 작동하지 않는 문제를 해결하였습니다.

 

원인은 Control Point 초기화 위치가 잘못 되었기 때문입니다.

 

기존에는 Begin Play에서 초기화를 하였는데, 이를 Constructor에서 초기화를 해주자 원하는대로 작동하였습니다.

 

또한 BlockTrap에 적용되었던 Initialize 함수를 C++상에서 InitializeTrap 함수로 대체,

이를 Implement하여 사용하도록 변경하였습니다.

 

게임이 시작하자마자 벽의 움직임을 일시정지하는 로직도
BlueprintImplementableEvent로 선언된 StopAllInterpWall 함수로 정리하였습니다.

 

현재 대부분의 문제는 해결 되었습니다.

 

Trap은 물론이고 DestroyPuzzle에서도 잘 작동합니다.

 

하지만 AttachPuzzle에서 Trap이 정상작동하지 않고 있습니다.

 

다음에는 이 버그를 고치는 것이 첫번째 작업이 될 것입니다.

 

두번째는 Trap Class 생성입니다.

 

예를 들어, Initialize 함수의 경우에는 Puzzle에 언제든지 붙을 수 있는 Trap 계열에는 모두 선언되어야 하는 함수입니다.

 

또한 현재의 Trap은 THObjectBase를 상속받아서 선언했기에 선언에 있어서 흩어져 있는 감이 없지 않습니다.

 

이를 위해 Trap Class를 생성하고자 합니다.

 

이는 아마 기존의 코드 전반적인 Refactoring과 병행 될 것 같습니다.

 

4월 안에는 Trap 관련 자잘한 수정 작업은 끝낼 수 있도록 하려 합니다.

 

그럼 5월에는 큼직한 구현 이슈들을 해결하고, 월말에는 영상을 촬영할 계획입니다.

 

그리고 포트폴리오에 적용하여 상시 채용중인 회사에 지원해볼 계획입니다.

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

20.04.30 개발일지  (0) 2020.04.30
20.04.29 개발일지  (0) 2020.04.29
20.04.23 개발일지  (0) 2020.04.23
20.04.22 개발일지  (0) 2020.04.22
20.04.20 개발일지  (0) 2020.04.20

오늘은 어제부터 준비하던 방 청소 및 인테리어 변경을 하느라 개발을 하나도 하지 못했습니다.

 

몇가지 이슈를 적어보자면

 

1. 구조를 바꾸기 전에 파워포인트로 대략적인 견적을 맞추는데,
침대 사이즈를 잘못 적어놓아서 구조가 변경되었습니다.

 

기껏 판때기 주워서 드릴로 나사 조이고 시트지 붙였는데 필요가 없어져서 슬픕니다.

 

2. 방 형광등이 3개 들어가는데 그 중 2개만 불이 들어오고 있습니다.

 

마침 구조를 바꾼 뒤 책상이 들어가는 쪽 형광등이 불이 없는데 저녁이 되니 게임하기에는 적당한 밝기가 되었습니다.

 

마지막으로 방 사진을 올리며 마칩니다.

 

 

 

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

20.06.13 비개발일지  (0) 2020.06.13
20.05.02 비개발일지  (0) 2020.05.02
0701 리슨서버 골자 구축  (0) 2019.07.01
게임 제작 근황  (0) 2019.06.17
Animation Replicate 삽질 일기  (0) 2019.05.19

일지가 늦었습니다.

 

요 근래 기관지가 안좋았었는데 원인을 몇가지 꼽아보자면

 

1. 가습기 청소를 안함

2. 본체 청소를 안함

3. 방에 먼지가 쌓임

 

이 세가지 때문이었습니다.

 

이 중 1번은 한달 전쯔음에 청소를 하였고, 조만간 가습기를 넣을 시기라 해결.

 

2번은 한달 반 전에 했으니 해결.

 

이제 3번을 해결하기 위해 방 내부 인테리어 및 구조를 변경할 계획을 잡았습니다.

 

원래는 개발을 쉬는 날에 하는 것이 좋으나, 운동 시간도 고려하다보니 불가피하게 오늘 개발을 하지 못했습니다.

 

요즘 취업에 대한 발작성 감정 폭발로 많이 힘들었는데 비록 몸은 쉬지 못하지만 기분이 좀 풀렸으면 합니다.

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

20.04.28 개발일지 2  (0) 2020.04.28
20.04.28 개발일지  (0) 2020.04.28
20.04.21 개발일지  (0) 2020.04.21
20.04.17 개발일지  (0) 2020.04.17
20.04.14 개발일지  (0) 2020.04.14

오늘은 BlockTrap에 THWallBase를 적용해 보았습니다.

 

현재 구현해 놓은 BlockTrap은 AllBlockTrap과 TwoBlockTrap. 두가지입니다.

 

이 중 TwoBlockTrap은 Puzzle에도 사용 되어있어 비교적 수정하기 용이한 AllBlockTrap을 먼저 수정하였습니다.

 

이전 기능과 햇갈리긴 했지만 예시로 만들어놓았던 것을 보면서 큰 문제 없이 작성하였습니다.

 

하지만 정작 동작은 예시 함정도, 이 함정도 제대로 되지 않았습니다.

 

몇가지 문제를 간추려보자면

 

1. Wall이 바닥을 뚫고 올라오지 못합니다.

Wall에 직접 Control Point를 작성해주면 부드럽게 올라오는데, 그렇지 않으면 바닥과 부딛쳐 바로 멈추어버립니다.

 

2. 모든 벽이 올라와야 하는데 일부 벽만 올라오는 경우가 있습니다.

 

3. 상대 좌표로 Control Point를 주었는데 절대좌표로 작동합니다.

 

아직 관련 사항 검색도 해보지 못했지만 느낌상

원인을 파악하고 이를 수정하려면 꽤 많은 시간과 수고를 들여야 할 것 같습니다.

 

토요일에는 이 문제를 먼저 해결하고, 해결이 되는 즉시 Puzzle에 적용되는 Trap도 수정하고자 합니다.

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

20.04.29 개발일지  (0) 2020.04.29
20.04.27 개발일지  (0) 2020.04.27
20.04.22 개발일지  (0) 2020.04.22
20.04.20 개발일지  (0) 2020.04.20
20.04.18 개발일지  (0) 2020.04.18

이제는 더 살아가는 것이 의미가 있나 싶을 정도로 미래가 절망적이게 느껴진다.

 

가뜩이나 사람 안 뽑는 업계인데 코로나 때문에 신규 채용이 있을지도 의문이다.

 

그리고 나름 열심히 한다고 하루에 못해도 6시간씩은 개발을 하는데 이제 모르겠다.

 

무엇 때문에 떨어진걸까?

 

스스로 부족한 것을 생각해본다면 너무 많은 것이 스쳐지나간다.

 

더 큰 문제는 그것이 진짜인지 아닌지 판단이 안선다.

 

예전의 나는 남들보다 넓은 경험과 탄탄한 기본기를 가지고 있었고

구조 개선과 그래픽, 엔진 사용에 능숙하다고 생각을 했다.

 

지금은 모르겠다. 그냥 아무것도 모르겠다.

 

내가 그럴듯한 게임을 개발해야 하는지

 

기본지식을 더 꼼꼼하게 다져야 할지

 

알고리즘 문제를 많이 풀어서 더 빠르고 정확하게 최적의 답을 찾아야 하는지

 

DirectX나 OpenGL과 같은 그래픽 라이브러리 사용법을 익혀야 하는지

 

마음만 같았으면 다 하고 싶은데 그렇지 못할 체력과 집중력을 가진 내 자신이 싫다.

오늘은 Trap. 정확히는 BlockTrap에서 Tick에 If문으로 구현되어 있던 Wall의 움직임을

MovementComponent로 처리하는 부분을 개발하였습니다.

 

이를 위해 먼저 Actor를 하나 생성해서 부착이 가능한 MovementComponent들을 살펴봤습니다.

 

그 중 InterpToMovementComponent가 있었습니다.

 

나머지는 다 예시로 봤던 것인데, InterpToMovementComponent는 처음 본 것이라 검색을 조금 해보았습니다.

 

예시 영상을 보니 플랫폼 게임에서 일정 궤도만 왔다갔다하는 움직임을 구현하는데 쓰이는 것이었습니다.

 

제가 원하는 벽의 움직임은 위로 올라갔다가, 아래로 내려오는 것이었습니다.

 

때문에 이 움직임을 runtime 상에서 원하는대로 끊었다가 다시 시작하거나,

더 나아가 runtime 상에서 움직임을 멈추거나 바꿀 수 있는지 알아보았습니다.

 

Document를 읽고 검색을 해본 결과, 가능하다는 결론을 내릴 수 있었습니다.

 

이후 THWallBase를 생성하고, InterpToMovementComponent를 부착하며 기본 함수들을 구현하였습니다.

 

내일은 이를 Trap에 직접 적용을 해보고, 원하는대로 적용이 되면 이전 구현체를 삭제하려 합니다.

 

혹, 시간이 조금 남는다면 다른 일로 넘어가기 전에 클래스 이름 오타나, 헤더 정리를 해보려 합니다.

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

20.04.27 개발일지  (0) 2020.04.27
20.04.23 개발일지  (0) 2020.04.23
20.04.20 개발일지  (0) 2020.04.20
20.04.18 개발일지  (0) 2020.04.18
20.04.16 개발일지  (0) 2020.04.16

시국이 시국이기도 하고, 원래 이 시기에는 신입 모집이 없긴 하지만

작년 마지막 공채 지원으로부터 6개월 가량 지난 이 시기가 가장 힘들고 고달프다.

 

졸업을 한 직후에도 만감이 교차했는데 1년을 더 지나버리니까 진짜 오만가지 생각이 다 든다.

이대로 1년 더 취직이 안되면 어떻게 하지?

내가 지금 공부 하고 있는 것이 올바른 것인가?

왜이리 신입은 안뽑는거지?

다른 분야로 지원을 해야 하나?

차라리 대학원을 가야 하나?

 

특히 동기들은 벌써 일하면서 경력 쌓고 돈 모으면서 가끔 만나서 밥도 먹고 하는데

그럴 엄두가 나지 않는게 너무 싫다.

 

게임 개발사는 왜 대부분 1년에 1번만 신입을 뽑는건지도 원망스럽다.

마음같아서는 떨어진 회사에 찾아가 떨어진 이유라도 듣고 싶다.

 

일이 안풀리니까 모든 것에 확신이 없고 내 장점도 무뎌지는 기분이다.

 

하루 빨리 백수 생활을 청산했으면 좋겠다.

돈도 벌고, 사고 싶은 것도 사고, 무엇보다 사람들과 협업을 하고 싶다.

그리고 흥미 위주의 개발 활동을 다시 이어가고 싶다.

오늘은 PUN2에서 PhotonView Initialize 문제를 해결하고 Multiplayer들간 정보를 주고 받도록 하고자 하였습니다.

 

우선 PhotonView Initialize 문제인데,

Script가 Attach 된 Component에 PhotonView Script를 Attach를 한 뒤

GetComponent로 읽어왔어야 한다는 사실을 검색을 통해 알아냈습니다.

 

이를 통해 PhotonView를 정상적으로 받아올 수 있었고, 그러면서 RPC 함수 작동이 잘 되는 것을 확인했습니다.

 

다만 Multiplay 환경에서 Player들간 정보를 주고 받는 과정은 구조나 방법이 확정되지 못해 아직 개발하지 못했습니다.

 

금요일에는 이 부분을 정리하고, 가능하면 시도를 한번 해보고자 합니다.

 

 

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

20.04.28 개발일지  (0) 2020.04.28
20.04.24 개발일지  (0) 2020.04.24
20.04.17 개발일지  (0) 2020.04.17
20.04.14 개발일지  (0) 2020.04.14
20.04.10 개발일지  (0) 2020.04.10

오늘은 Custom CharacterMovementComponent를 Character에 적용하고, Character의 Movement와 Rotation을 이 CharacterMovementComponent를 통해 이루어지도록 변경하였습니다.

 

첫번째 이슈였던 FObjectInitializer 문제입니다.

 

여전히 검색과 질문으로 해결을 할 수 없었습니다. 

 

한 1시간 정도를 다시 삽질을 하다가 Log에 Intermediate 폴더 안 파일에서 에러가 발생 했다는 메세지를 발견합니다.

 

제가 아는 한 Intermediate 폴더를 건드려야 하는 경우는 한가지.

 

빌드가 꼬이는 등의 이유로 Project Regenerate를 할 때 Saved, Binaries 폴더와 함께 이 폴더를 지워야 한다는 것입니다.

 

그렇게 혹시나 하는 마음에 Project Regenerate를 하였고, 이것은 정답이었습니다.

 

아마도 기존에 Build 했던 Default Constructor 부분이 새 Constructor 빌드를 엉키게 한 것 같습니다.

 

이리하여 길고 길었던 삽질을 허무하게 마무리 하고, 드디어 MovementComponent를 적용하였습니다.

 

혹시나 하는 마음에 Server Character의 Mesh가 화면 전환과 같이 회전되는 현상은 자동으로 수정 되었는지 확인하였는데, 이는 여전하였습니다.

 

수요일에는 Trap에 MovementComponent를 적용해보고자 합니다.

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

20.04.23 개발일지  (0) 2020.04.23
20.04.22 개발일지  (0) 2020.04.22
20.04.18 개발일지  (0) 2020.04.18
20.04.16 개발일지  (0) 2020.04.16
20.04.15 개발일지  (0) 2020.04.15

+ Recent posts