본문으로 건너뛰기

Game Server / Software Engineer

클라이언트부터 서버까지

클라이언트의 입력과 표현 구조를 이해하고, 이를 Windows IOCP 네트워크와 서버 권위형 시뮬레이션까지 연결합니다.

Game Systems & Client Foundations

게임 클라이언트 시스템과 엔진 없이 직접 구현한 기초 요소를 중심으로 정리했습니다.

Project Ellie gameplay and UI screenshots

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 game programming projects

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 optimization result

Marching Cubes Metaball Optimization

GodotMarching CubesOptimizationSimulation

Marching Cubes 기반 metaball 렌더링에서 병목을 측정하고 렌더링 구조를 바꾸며 성능 개선 과정을 기록했습니다.

  • Marching Cubes metaball에서 draw call 29,678개를 3개로 줄이고 FPS 1에서 23까지 개선
  • 개별 mesh 생성 방식과 MultiMesh 기반 렌더링 구조를 비교
  • 렌더링 병목이 어디에서 발생하는지 수치와 화면을 함께 확인
Illustration style 3D material policy validation

Illustration Lookdev Validation

GodotLookdevToon ShadingVisual Validation

FPS 카메라 조건에서 일러스트풍 3D 룩이 유지되는지 단계별로 검증하고, 재질과 후처리 기준을 정리했습니다.

  • 카메라 거리와 시야 조건에서 외곽선, 그림자, 재질 표현이 어떻게 보이는지 확인
  • 일러스트풍 화면을 만들기 위한 재질/후처리 기준을 단계별로 정리
  • 시각 품질 판단을 스크린샷과 조건별 결과로 남김

Graphics Learning Notes

Vulkan과 렌더링 수학을 학습하며 정리한 기록입니다. 후처리, 동기화, 노멀 변환, TBN 행렬처럼 화면 결과와 렌더링 파이프라인을 이해하는 데 필요한 주제를 중심으로 정리했습니다.

Spinning Cube

C++3D MathProjectionRendering Basics

C++ 콘솔 환경에서 3차원 좌표 변환, 회전 행렬, 원근 투영, 실시간 렌더링의 기초 흐름을 직접 구현했습니다.

  • 회전 행렬을 이용한 3차원 좌표 변환
  • 원근 투영을 통해 3D 좌표를 2D 콘솔 화면으로 매핑
  • 매 프레임 갱신되는 간단한 렌더링 루프 구성

Appendix

Godot Terrain 기반 Autotile 작동 원리

GodotTileMapLayerAutotiling

엔진 소스와 문서를 읽고 autotiling의 constraint, peering bit, penalty 기반 fallback을 분석한 기술 노트입니다.

  • Terrain constraint와 peering bit가 후보 타일 선택에 어떻게 작용하는지 정리
  • connect/path 동작과 fallback penalty 흐름을 엔진 소스 관점에서 확인