Tag: cpp
All the articles with the tag "cpp".
-
[C++] Execution 레이어: Work Lane으로 스케줄링 공통화
PrivateServer의 Actor 스케줄링 경험과 Akka의 메일박스 구조를 바탕으로 Execution 레이어를 구성한 과정을 정리합니다.
-
[C++] Service Host: 패킷과 서비스 로직을 연결하는 공통 파이프라인
업데이트:Packet Tool을 이용해 패킷 생성을 자동화해도 실제 서비스에 반영하기 위해 필요한 분기 처리, 검증, 패킷 전달과 응답의 과정을 Service Host의 공통 파이프라인으로 모은 과정을 정리합니다.
-
[C++] Templates: 기초부터 컴파일 타임 타입 검증까지
C++17 템플릿의 개념과 기본 문법을 알아봅니다.
-
[C++] Packet Tool: JSON 스키마 기반 패킷 코드 자동화
패킷을 추가할 때마다 새로운 코드를 매번 작성하던 기존 구조에서, Protobuf의 코드 생성 구조를 참고한 JSON 기반 Packet Tool의 도입 과정을 살펴봅니다.
-
[C++] 결과 반환과 상세 진단을 위한 공통 파이프라인
PrivateServer에서 새로운 계층마다 결과 타입을 반복해 작성했던 경험을 돌아보고, Vulkan의 VkResult를 참고해 결과 반환과 상세 진단을 TkResult와 TkDiagnostic으로 분리한 공통 계층을 설계하고 Packet Tool에 적용한 과정을 정리합니다.
-
[C++] World Server 2: Double Buffer 도입기
업데이트:비동기 Runtime event를 authoritative tick 입력으로 확정하기 위해 Double Buffer를 도입하고, publication 병목을 Outbound Triple Buffer로 개선한 과정을 정리합니다.
-
[C++] World Server 1: Fixed-Step과 Bounded Catch-Up
업데이트:World Server가 tick을 유지하고, 밀린 simulation의 event와 state 발행을 구분하는 과정을 정리합니다.
-
[C++] World Server 3: 게임 로직의 계산과 상태 반영을 분리하다
업데이트:네트워크 event를 tick 전용 input으로 변환하고, 읽기 전용 상태를 계산한 typed result만 Coordinator가 반영하도록 게임 로직의 mutation 경계를 분리한 과정을 정리합니다.
-
[C++] C++ 객체를 C#에 전달하기
C++ IOCP NetworkRuntime을 Godot C#에서 사용하기 위해 C ABI 브리지, 불투명 핸들, P/Invoke, SafeHandle과 페이로드 소유권을 설계한 과정을 정리합니다.
-
[C++] Actor Scheduling: Lost Wakeup을 막는 Admission Protocol
업데이트:Producer와 Consumer가 구분되어 있는 환경에서 발생할 수 있는 Lost Wakeup 에 대해 알아보고, 어떻게 해결할 수 있었는지 알아봅니다.