About
김태훈 (TaehunKim)
클라이언트 게임 프로그래머
게임을 통해 다양한 경험을 전달하고, 플레이어가 몰입할 수 있는 세계를 만드는 개발자가 되는 것을 목표로 하고 있습니다.
청강문화산업대학교에서 멀티 액션 로그라이크 Nirvana(22명, 8개월)와 러닝 액션 CatchHim(20명, 3개월)에서 파트장으로 코어 게임플레이 시스템과 팀 협업 프로세스를 설계했습니다.
대규모 협업에서 겪은 코드 충돌과 초기화 타이밍 문제를 해결하기 위해 GameFeature Plugin과 Initialize State System을 활용한 모듈형 프레임워크를 구축했습니다. 이를 통해 팀원 간 독립적인 개발이 가능해졌고, 새로운 콘텐츠 추가 시 코어 코드 수정 없이 확장할 수 있는 구조를 완성했습니다.
기술적 도전에도 관심이 많아 C++로 대규모 객체 쿼리 최적화(공간분할, SIMD, 메모리 최적화)와 2차원 Perline Noise를 구현했고, 새로운 언어 학습을 위해 Rust와 Bevy 엔진으로 복셀 맵을 제작했습니다.
실제 프로젝트에서 부딪힌 문제를 분석하고, 팀 전체의 생산성을 높이는 솔루션을 만드는 것이 제 강점입니다.
다양한 게임을 만들고, 팀원들과 소통하며 점점 더 재밌는 게임을 만드는 경험을 쌓을 수 있어서 영광이었고,
앞으로도 항상 새로운 기술을 배우고, 주변 사람들 모두 같이 성장할 수 있도록 노력하고 싶습니다.
Game Architecture & Team Collaboration
Epic Games의 Lyra 예제를 발전시켜 팀 협업 환경에 최적화된 프레임워크를 제작한 프로젝트입니다. GameFeature Plugin 을 사용해 모듈형 게임 플레이 구조를 적용했고, CharacterDefinition 데이터에셋으로 쉬운 캐릭터 프로토타이핑을 할 수 있습니다. 초기화 스테이트 시스템을 활용해 전통적인 Init 함수 호출 방식을 대체하고, 객체의 유효한 상태를 보장하도록 개선했습니다.
총 22명의 팀원이 8개월동안 협업하였고, 플레이어블 캐릭터인 파드마를 담당했습니다. 언리얼의 GAS 를 참고한 Action System 과, 보스전의 빙결 시스템도 구현했습니다. 파트장 역할을 맡게 되어 파트의 일정 관리와 개발 규칙, 팀의 협업 방식을 정하는데 기여했습니다.
총 20명의 팀원이 3개월동안 협업하였고, 주인공 캐릭터의 이동 및 장애물 회피 시 가속 시스템과 펀치를 구현했습니다. 게임 클리어 조건인 초고속 질주 시스템도 제작했습니다. 파트장 역할을 맡게 되어 파트의 일정 관리와 개발 규칙, 팀의 협업 방식을 정하는데 기여했습니다.
Optimization & Algorithm
1만 명 이상의 대규모 유닛 환경에서 대량의 쿼리 처리를 최적화하기 위해 std::vector 기반 공간 분할과 SoA(Structure of Arrays) 구조를 도입했습니다. 데이터 지향 설계를 통해 캐시 적중률을 극대화하고 SSE(SIMD) 병렬 가속을 적용함으로써, 기존 대비 쿼리 연산 속도를 2배 이상 향상시킨 프로젝트입니다.
단순한 난수 생성하기 위한 선형 합동법부터 테스트하며, 질서를 가진 일련 값들을 만드는 KenPerlin의 노이즈 알고리즘을 구현했습니다. SFML 을 사용해 노이즈 결과를 출력했습니다.
Rust 기반의 Bevy 엔진을 사용했고, 엔진의 ECS 아키텍처를 이용해 복셀 기반 지형을 생성했습니다. 최적화를 위해 청크 단위로 렌더링하며, Perlin noise 로 지형을 생성하도록 구현했습니다. Simplex Noise 을 사용하여 동굴도 추가했습니다.
Gameplay Systems & Editor Tools
스파이더맨의 웹스윙을 구현한 프로젝트입니다. 줄이 캐릭터를 부착점 쪽으로 계속 당기는 장력을 이용해 스윙을 구현했습니다. 키보드 이동에서 오는 힘과 캐릭터가 궤적을 그릴 때 Velocity 의 방향이 비슷할 때 속도를 올려주는 힘을 더해 최종 힘을 계산했습니다.
Unreal의 Slate UI 프레임워크를 사용하여 커스텀 StaticMesh 편집 에디터를 개발했습니다. CustomAsset 을 생성하여, Asset 을 열면 CustomEditor 가 열리는 구조입니다. 에디터에서는 단순히 에셋의 Mesh 와 Material 변경이 가능합니다.
Documentation & Study
Unreal Engine 개발 시 유용한 팁과 기능 설명을 공유합니다. 자주 발생하는 단순한 문제부터 언리얼 프레임워크를 분석해야 하는 내용도 포함됩니다. 하드 레퍼런스의 문제점, AssetManager 사용 방법, Pawn 제거 시 IMC 가 제거되지 않는 이유 등 이 있습니다.
이득우의 『게임수학』을 기반으로 주요 게임 수학 요소(벡터, 외적 내적, 회전 변환, 좌표계등)를 정리하며 학습했습니다. 모든 공식을 즉시 대답할 정도의 수준은 아니지만, 개발 과정에서 어떤 문제에 어떤 수학 개념이 필요한지 판단할 수 있으며, 실제 프로젝트에서도 이를 적용해 문제를 해결해왔습니다.