-
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
-
이론 정리 - < 자바스크립트(1) > TOP NEW
var, let, const JavaScript에는 상수/변수를 선언하는데 사용되는 명령어들이다! var 제일 기본적으로 사용되었던 변수 선언 명령어 중복 선언이 가능하여, 중복 선언 시 마지막 값이 할당되게 된다 참조 유효 범위가 함수 단위 범위로 함수 내에서만 선언되었다면 함수의 어디에서든 사용가능하다! 호이스팅 된 값이 undefined로 선언되어, 같은 함수 내에서는 선언되기 전에도 참조가 가능하다.. let ES6 의 등장으로 새로 등장한 변수 선언 명령어 중복 선언이 불가하다! 참조 유효 범위는 블록(“... Read More