발표 비디오 영상 편집, WebRTC 공부

정글일지 63 날짜 2023년 6월 25일 일요일 계획 발표 비디오 영상 편집 WebRTC 구현 공부 결과 Vrew 덕분에 그래도 편집을 수월하게 했다. TIL 발표 생각보다 사람이 말을 할때 잔 소음이 많다. 입이 벌어지는 소리라던가, 손 발이 가만히 있질 못한다던가.. 스스로의 발표 모습을 찍어 보는것이 많이 도움이 된다. 회고 일찍 일어나서 편집하고, 공부했다. 뭔가 열심히는 하는것 같은데 진척이 없어서 걱정이다.

2023년 6월 25일 · 1 분 · 배준수

제출용 비디오 촬영, 산성비 게임 구현

정글일지 62 날짜 2023년 6월 24일 토요일 계획 산성비 게임 고도화 메인 머지 산성비 게임 멀티 구현 제출용 초안 비디오 촬영 결과 여전히 산성비게임은 갈 길이 멀다. 발표 동영상 촬영에 너무 오래걸렸다. TIL GITHUB 커밋은 최대한 자주 해야한다. 너무 먼길오면 되돌아 가는데 또 시간낭비해야한다.. 회고 발표 비디오를 촬영이 끝나니 새벽 5시다.. 월요일까지 제출하려면 내일 안쉬고 편집해야한다. 뭐 팀장이니까 받아들여야지. 나만 고생하면 팀원들은 쉴 수 있으니 차라리 다행이다. 게임 구현에서 여전히 배우는게 없이 헤매고 있어서 걱정이다. ...

2023년 6월 24일 · 1 분 · 배준수

산성비 게임 버그잡기

정글일지 61 날짜 2023년 6월 23일 금요일 계획 산성비 게임 완성 시나리오 계획 결과 그 동안 머지, 풀 안한 업보를 치뤘다. 버그 잡느라 혼났다. 우선 게임을 정상화하는덴 성공하였다. TIL javascript TypingGame, Typinggame, typinggame, TYPINGGAME 이 모두는 다르게 적용된다. 쓸때 정신안차리면 개고생한다. ?는 null 값이거나 제대로 안받으면 진행을 멈추는데, 아무곳에나 다 쓰면 버그 투성이된다. 꼭 필요한 애를 체크할때만 쓰자. rootstate와 rootreducer로 관리하는 습관을 들이자. 되게 편해진다. 회고 갈길이 멀다. 내일은 제발 게임좀 완성하 ...

2023년 6월 23일 · 1 분 · 배준수

멀티플레이 게임 서버 구현

정글일지 60 날짜 2023년 6월 22일 목요일 계획 멀티플레이 서버 구현 산성비 게임 고도화 아바타 회의 구현 결과 Colyseus를 이용해 멀티플레이를 위한 Room 생성에 성공했다. 산성비게임에서 키워드 생성 갯수와 출발속도 증가를 다룰 수 있게 되었다. TIL useEffect() typescript로 되어있는 skyoffice 코드를 살펴보다 class 정의 내에서 useEffect 함수를 많이 보았다. 그리고 게임을 setInterval로 작성했었다. 드디어 이걸 이해하였다. useEffect는 1회 호출된다. 마지막에 인자를 설정하여 추가적으로 호출할 지를 결정할 수 있다. 즉 2번째 인자를 [ ]처럼 비워두면 추가 호출에 관한 조건이 없기 때문에 더이상 호출되지 않는다. Game.state로 두었던 나는 Game.state에 변화가 일어날 때 마다 useEffect가 호출되었다. 위에서 말했다싶이 이 함수 내에는 특정 시간 간격으로 키워드를 생성하는 등의 인터벌 함수를 구현했었다. 인터벌 함수가 game.state를 변화시켰고, 그로 인해 useEffect가 호출되었고 이 루프가 반복되어서 인터벌 함수들이 지나치게 많이(거의 수만번 이상) 호출되어 게임이 엉켰었다. useEffect의 두번 째 인자를 제거하여 이 문제를 해결하였다. 또한 return 문에 clearinterval을 통해 정의한 인터벌들을 모두 초기화 해주었는데, 그로 인해 주기적인 호출이 발생하지 않아 키워드가 1회만 생성되거나 하는 문제가 있었다. 이부분도 clearinterval을 제거하였더니 해결되었다. ...

2023년 6월 22일 · 2 분 · 배준수

멀티플레이 서버 공부

정글일지 59 날짜 2023년 6월 21일 수요일 계획 산성비 게임 서버 연결하여 중복처리 아바타 변환을 위한 API 서버 구현 멀티플레이 서버 공부 결과 Colyseus를 이용해 멀티플레이 구현하는데 감은 잡았다. 아직까지도 눈에 띄는 성과가 나오지 않고 있다. TIL javascript 현재 우리는 리액트를 기반으로 javascript(정확히는 typescript)로 구현 중이다. 필요한 api를 찾아서 적용할때 공식 document를 이해하는게 너무 힘들었다. 이제 어느정도는 감을 잡았다. Class라는 것에 크게 묶여 있다. 그 내부에 property라고 하는 작은 내부 구성요소들이 존재한다. 그리고 이 class를 바탕으로 method라고 하는 다양한 함수들이 정의된다. class를 정의할땐 property를 정의하고, constructor를 통해 초기화 한 이후 method들이 정의되어 있다. 물론 자세하고 정확한 개념은 더 공부가 필요하지만 현재 구현하면서 내린 결론은 이정도이다. 프로젝트가 끝나면 다시 공부해보자. ...

2023년 6월 21일 · 1 분 · 배준수