인기 포스트
-
(WIP) 스파르타) Node.js 5기 게임 서버 최종 프로젝트 (D-5)
학습 키워드: C#, .NET, Recast & Detour, DotRecast 1. Progress1) 디버깅: GitHub - donkim1212/PathfindingDediServer: (WIP) 내배캠 스파르타 Node.js 5기 Team 12 최종 프로젝트 The Last Rollba(WIP) 내배캠 스파르타 Node.js 5기 Team 12 최종 프로젝트 The Last Rollback에서 사용될 길찾기 전용 서버 입니다. - donkim1212/PathfindingDediServergithub.com (24-08-22 일자 'dev' branch commit history 확인) 2. Troubleshooting1) 동시성 문제로 에러 발생 (해결): 몬스터 사망 시 제거하는 기능이 추..
-
Bull 라이브러리 (Node.js)
> 최종 프로젝트 진행 전 기획 단계에서 사전학습으로 Bull 라이브러리에 대해 간략하게 조사해보았다. 학습 키워드: Node.js, Bull Queue 1. Bull1) What is it?: Bull은 Redis 기반의 Queue 시스템이다. Redis에서도 자체적으로 Queue를 지원하지만, low level의 디테일을 신경 쓸 필요 없도록 API화 시켜둔 라이브러리라고 할 수 있겠다. 2) How does it work?: npm install bull --save (NPM 설치) // my-first-queue 가 instantiation name이 된다.const bullQueue = new Bull('my-first-queue'); Bull 클래스 생성자에 인자로 instance 이름을 ..
-
[Node.js] Stream과 Back Pressure
학습 키워드: Node.js, Stream, Back Pressure, Socket 1. Stream1) What is it?: 연속적인 데이터 흐름을 처리하는 방식으로, 한 번에 모든 데이터를 메모리에 올리지 않고, 작은 단위의 청크(Chunk)로 나누어서 처리하여 메모리 사용을 최소화 함으로써 성능 최적화를 달성하는 방법이다. Node.js에서 스트림은 크게 다음의 네 가지로 나뉜다.Readable Stream: 데이터를 읽을 수 있는 스트림 (File System의 read stream이나 HTTP 요청). Writable Stream: 데이터를 쓸 수 있는 스트림 (File System의 write stream이나 HTTP 응답)Duplex Stream: 읽기와 쓰기가 모두 가능한 스트림 (TCP..
-
(WIP) 스파르타) Node.js 5기 게임 서버 최종 프로젝트 (D-3)
> 개발 과정을 문서로 정리하면서 이전 TIL 글 들에서 놓친 디테일을 조사하고 추가하여 당시 발생한 문제들의 원인을 좀 더 정확하게 알 수 있었다. 학습 키워드: - 1. Progress1) Notion 문서 작업: 서버 아키텍처 - 데디케이티드 서버 로직 | Notion서버 플로우eliotjang.notion.site 서버 아키텍처 - Dedicated Server | NotionBuilt with Notion, the all-in-one connected workspace with publishing capabilities.eliotjang.notion.site > Dedicated 서버 개발 과정 정리 관련 TIL 링크 : https://donkim0122.tistory.com/165 : ht..
-
스파르타) The Last Rollback (D-12, Node.js 게임 서버 최종 프로젝트) - DotRecast (2)
> 프로젝트 진행 간 DotRecast 관련 학습 내용을 정리해보았다. 학습 키워드: C#, .NET, Recast & Detour, DotRecast, DtNavMesh 1. Progress1) DtNavMesh Loader 기능 추가: 이전 TIL에서는 Wavefront .obj 파일으로 변환하는 과정을 다뤘는데, 이번에는 이 obj 파일을 Detour가 사용할 DtNavMesh로 변환하는 과정을 학습했다. 거의 하루 종일 라이브러리 코드만 들여다 보다가 결국 Demo Scene에서 힌트를 얻어서 메쉬 로드에 성공했다. 이전에 언급했듯이 Demo Scene에 불러온 obj 파일은 Unity에서 이미 NavMesh로 생성된 파일을 변환한 mesh다. 그렇기 때문에 Recast를 통해 새로운 NavMe..
-
[.NET] C# DotNet으로 TCP 소켓 서버 열어보기
> D-15 | Dedicated Server 구축을 위한 조사 및 테스트용 코드를 작성했다. 학습 키워드: C#, DotNet, Socket 프로젝트 진행 사항1) Pathfinding Dedicated Server 구축을 위한 사전 학습: 현재 진행중인 게임 서버 프로젝트(The Last Rollback)는 Unity 클라이언트 게임과 연결된다. 클라이언트에서는 Unity의 NavMesh로 pathfinding을 진행하고 있는데, 개발 초기에 서버에 이를 올려둘 마땅한 방법을 찾지 못해서 클라이언트 주도로만 이루어지고 있다. 이전에 이 문제를 해결하기 위해 토의해서 나온 결론은 pathfinding 만을 담당하는 dedicated 서버를 구축하는 것이었다. C#으로 서버를 개발해야 하다보니 MVP 기..