Game Server / Software Engineer
클라이언트부터 서버까지
클라이언트의 입력과 표현 구조를 이해하고, 이를 Windows IOCP 네트워크와
서버 권위형 시뮬레이션까지 연결합니다.
Featured Project
C++ / Windows IOCP Game Server
Windows IOCP 부터 권위 서버 모델, Godot 클라이언트까지 게임의 전체
사이클을 설계하고 구현했습니다.
PrivateServer
C++Windows IOCPGodot
Windows IOCP 기반 NetworkRuntime, 서버 권위형 World와 Godot thin client를 하나의 플레이 가능한 게임 사이클로 연결한 개인 프로젝트입니다.
- Session Actor가 연결별 I/O 상태와 pending recv/send lifetime을 직렬화
- fixed-step(60Hz) World, 채널별 독립 Host 구성
- 독립된 2개 채널에 각 100개 클라이언트를 연결해 총 200개 클라이언트의 병렬 실행 확인
Game Systems & Client Foundations
게임 클라이언트 시스템과 엔진 없이 직접 구현한 기초 요소를 중심으로 정리했습니다.
Project Ellie
UnityC#Team ProjectGame Systems
개발자 4명·기획자 3명의 Unity 3D 팀 프로젝트에서 팀장으로 참여해, 씬 단위 이벤트 채널과 UGUI 공통 계층을 설계하고 인벤토리·옵션·저장 시스템에 적용했습니다.
- BaseCenter가 씬별 채널을 소유하고 Ticket과 payload로 플레이어 입력을 UI에 전달해 송신자와 수신자의 직접 참조를 완화
- UIManager/UIBase/UIEventHandler로 prefab 생성, enum 이름 기반 child binding, click·drag·drop 연결을 공통화
- 임시 슬롯 buffer로 두 아이템의 위치와 데이터를 보존한 채 인벤토리 슬롯을 교환
Windows API 2D Game Client Foundations
C++Windows APIGDIAnimationCollisionGeometry
WinAPI/GDI로 2D 슈팅 게임의 애니메이션·프레임·충돌 구조와 땅따먹기의 경로·다각형 규칙을 구현하며 게임 클라이언트의 기본 실행 흐름을 직접 구성했습니다.
- sprite cut·투명색·pivot을 데이터로 분리하고 상체·하체·전체 animation과 일회성 동작 복귀를 구성
- 메시지 처리와 게임 프레임을 분리하고, 갱신 순서와 back buffer 기반 GDI 합성 흐름을 구성
- 충돌 그룹별 AABB/OBB 판정과 enter·stay·exit 이벤트를 만들고 line terrain 위 캐릭터 위치를 보정
- 현재 경계와 새 이동 경로로 두 polygon 후보를 만들고 ray crossing과 외적 누적으로 점령 영역을 선택
Real-time Graphics / Visual Validation
실시간 화면에서 성능과 시각 결과를 측정하고 검증한 작업입니다.
Marching Cubes Metaball Optimization
GodotMarching CubesOptimizationSimulation
Marching Cubes 기반 metaball 렌더링에서 병목을 측정하고 렌더링 구조를 바꾸며 성능 개선 과정을 기록했습니다.
- Marching Cubes metaball에서 draw call 29,678개를 3개로 줄이고 FPS 1에서 23까지 개선
- 개별 mesh 생성 방식과 MultiMesh 기반 렌더링 구조를 비교
- 렌더링 병목이 어디에서 발생하는지 수치와 화면을 함께 확인
Illustration Lookdev Validation
GodotLookdevToon ShadingVisual Validation
FPS 카메라 조건에서 일러스트풍 3D 룩이 유지되는지 단계별로 검증하고, 재질과 후처리 기준을 정리했습니다.
- 카메라 거리와 시야 조건에서 외곽선, 그림자, 재질 표현이 어떻게 보이는지 확인
- 일러스트풍 화면을 만들기 위한 재질/후처리 기준을 단계별로 정리
- 시각 품질 판단을 스크린샷과 조건별 결과로 남김
Graphics Learning Notes
Vulkan과 렌더링 수학을 학습하며 정리한 기록입니다. 후처리, 동기화, 노멀 변환, TBN 행렬처럼 화면 결과와 렌더링 파이프라인을 이해하는 데 필요한 주제를 중심으로 정리했습니다.
Spinning Cube
C++3D MathProjectionRendering Basics
C++ 콘솔 환경에서 3차원 좌표 변환, 회전 행렬, 원근 투영, 실시간 렌더링의 기초 흐름을 직접 구현했습니다.
- 회전 행렬을 이용한 3차원 좌표 변환
- 원근 투영을 통해 3D 좌표를 2D 콘솔 화면으로 매핑
- 매 프레임 갱신되는 간단한 렌더링 루프 구성
Vulkan Bloom
VulkanCompute ShaderBloomPost-processing
Vulkan compute shader로 Bloom 후처리를 구현하며 threshold, blur, composite 흐름과 이미지 레이아웃 전이를 정리했습니다.
Vulkan / Rendering Notes
VulkanSynchronizationNormal MappingCamera
동기화 객체, 노멀 변환, TBN 행렬, 카메라 벡터 계산 등을 정리했습니다.
Appendix
Godot Terrain 기반 Autotile 작동 원리
GodotTileMapLayerAutotiling
엔진 소스와 문서를 읽고 autotiling의 constraint, peering bit, penalty 기반 fallback을 분석한 기술 노트입니다.
- Terrain constraint와 peering bit가 후보 타일 선택에 어떻게 작용하는지 정리
- connect/path 동작과 fallback penalty 흐름을 엔진 소스 관점에서 확인
btwin
WorkflowContextHarness
LLM 세션 간 작업 맥락, 기록 검색, handoff 흐름을 파일 기반으로 남기는 개인 워크플로 도구입니다.
- 작업 기록과 handoff를 검색 가능한 형태로 남기는 흐름 구성
- 로컬 파일 기반으로 세션 간 맥락을 이어가는 방식 구성
Hooklusion
HooksVisualization
Codex/Claude hook event를 읽어 LLM 에이전트의 작업 상태를 작은 시각 신호로 보여주는 앱입니다.
- Codex/Claude hook event를 읽어 작업 상태를 감지
- 상태 변화를 시각 신호로 보여주는 데스크톱 피드백 앱