-
Ducktopia - <9> TOP NEW
디버거의 삶 코드를 빠르게 해석하고 오류를 찾는 것을 잘한다고 팀원분들이 얘기해주셔서 문제가 생기는 부분이 생기면 붙어서 도와주는 역할을 맡게 되었다! ( 물론 비교적 잘하는 것이죠.. 우쭐 ㄴㄴ ) 그러나 디버깅 일을 하는게 단편적인 일들이 많아 장기적으로 무얼 할 지 생각을 해야했다! 서버에서 타일맵을 저장 및 이용하여 검증할 수 있도록 수정가능성 확인 Docker 공부 부하 테스트 라이브러리 및 툴 사용방법 및 장단점 비교하기 서버의 타일맵 현재는 구현된 MVP는 클라이언트의 움직임을 에코서버처럼 다른 클라이언트에게 전달하는 역할이 많다... Read More
-
Ducktopia - <8> TOP NEW
-
이론 정리 - < 자바스크립트(2) > TOP NEW
깊은 복사와 얕은 복사 얕은 복사(Shallow Copy)는 객체의 참조 값(주소 값)을 복사하여 새로운 객체를 생성하지 않고, 기존 객체와 동일한 메모리 주소를 참조하는 복사이며, 반면 깊은 복사(Deep Copy)는 객체의 실제 값을 복사하여 새로운 객체를 새로 생성하는 것이다! 얕은 복사 얕은 복사는 주소를 복사하기 때문에 일반적인 STRING/INT/BOOL 과 같은 형식은 복사된 값을 가져오지만, 배열이나 객체와 같은 경우는 주소를 복사하기 때문에 원본 자체를 가져오게된다! 그로인해 가져온 객체나 배열을 수정하면, 원본도 똑같이 수정이되는 참사가 일어난다.. const Mine = ["noodle... Read More
-
Ducktopia - <7> TOP NEW
프로세스 정리 어제 아웃 게임 및 게임 프로세스에 맞게 서버 및 통신 구조를 리팩토링하였다! 그 이후 서버와 클라이언트 간 필요한 정보만 주고받을 수 있도록 프로토버프 종합이 끝나, 이와 관련된 핸들러를 수정해주어야 한다! 프로토버프 적용 현재 서버의 경우엔 2차까지 기능 구현이 대부분 맞춰졌으나, 이를 시험할 클라이언트 구현이 부족하여 이를 도와주기로 하였다! 기존 클라이언트 담당자 분과 협의를 하여 프로토버프 구조를 통해 패킷을 생성하고 서버에게 보내주는 부분을 담당하기로 하였다 수정 부분 전달 패킷의 페이로드 구조가 바뀐 ... Read More
-
Ducktopia - <6> TOP NEW
2차 구현 배정받은 역할인 코어 클래스 구현( 본진 및 게임오버 조건 )을 시작한다! 코어 구현 게임 내 맵 중심에 있어 몬스터에 의해 공격을 받아 게임오버 트리거가 되는 “코어”와 “코어 관련 통신” 기능을 만든다! 서버의 코어 코어의 기능은 위치와 hp만 가지고 피격을 검증하는 것이다. 그렇기에 게임당 코어가 1개인 점을 생각하여 Game Class에 core를 관리할 수 있는 메서드와 필드를 정의해준다! class Game { constructor() { this.coreHp = config.game.core.maxHP; this.corePo... Read More
-
Ducktopia - <5> TOP NEW
2차 구현 일단 MVP에 관련해 구현해야할 기능들은 마쳤다! 이제 이 기능들을 연결하여 디버깅하는 작업이 남았는데, 저번 역할분배처럼 기초구현과 디버깅 총괄을 나눠 MVP 기능들을 마무리하는 작업과 다음 2차 구현 작업을 동시에 하기 로 하였다 노선 수정 대략적으로 역할분배를 통해 작업을 분리하여 각 작업자들이 시작을 하려 했는데.. 서버에서 충돌처리를 위한 맵을 어떻게 관리 및 사용해야할지가 너무 막막하다는 걸 깨닫게 되었다! 장애물이 있어 이동하지 못하는 영역은 어떻게 구별할 것이고, 최적화 할 것인가? 장애물이 포함된 맵 자료를 받은 클라이언트는 어떻게 해석하여 맵을... Read More
-
Ducktopia - <4> TOP NEW
업무 재분배 현재 진행된 사항들을 정리하여 업무 재분배를 통해 자원을 효율적으로 사용할 수 있도록 했다! 속도 계산 팀원 분들 중 추측항법에 관해 고민하시고 계시길래 같이 이론을 정리했다! 그리고 기존에 클라이언트의 timestamp를 받는 생각을 했는데, 이는 클라이언트 의존적 데이터라 위험할 수 있다 생각되어 서버의 시간으로 latency를 감안하도록 변경하였다! 통신 구조 수정 어제 작업한 통신 구조가 제대로 작동하는지 확인하기 위해 디버깅용 더미 클라이언트를 만들어준다! 더미 클라이언트 일단 기초적인 TCP 통신을 위한 socket 과 필요한 정보들을 저장할 수 있도록 구... Read More
-
Ducktopia - <3> TOP NEW
디버깅 어제 제작한 오브젝트베이스 클래스의 기능을 테스트해보기 위해 패킷구조를 정하고, payload를 인코딩/디코딩 하기 위해 protobuf 구조도 종합하였다! 패킷 구조 패킷을 통해 통신을 하기 위해 패킷의 구조를 정하고, 이를 해석 및 생성 해주는 로직을 구현한다! const onData = (socket) => (data) => { console.log('데이터 수신'); socket.buffer = Buffer.concat([socket.buffer, data]); const packetTypeByte = config.header.packetTypeByt... Read More