캐릭터 조작과 상태 제어
플레이어의 이동·대시·전투부터 상점 손님의 단계별 행동까지, 조건이 복잡한 동작을 유한 상태 머신(FSM)으로 명확하게 나눕니다.
프로젝트에서 직접 부딪치며 익힌 설계 방식과 기술 스택, 그리고 현재 채워 나가고 있는 컴퓨터 공학 기본기를 소개합니다.
플레이어의 이동·대시·전투부터 상점 손님의 단계별 행동까지, 조건이 복잡한 동작을 유한 상태 머신(FSM)으로 명확하게 나눕니다.
데이터와 실행 로직을 분리해 새 규칙이나 스킬을 손쉽게 추가할 수 있는 구조를 잡고, 이벤트 구동 방식의 HUD와 팝업 관리 체계를 만듭니다.
입력부터 물리 연산, 규칙 판정, 화면 갱신으로 이어지는 처리 순서를 정돈해 여러 팀원의 작업물이 하나의 게임으로 매끄럽게 맞물리도록 합니다.
버그가 발생하면 입력 전달 경로와 컴포넌트 책임을 먼저 살피고, 중단점(Breakpoint)으로 기대값과 어긋나는 지점을 좁혀 나갑니다.
작업 단위를 나누어 역할을 조율하고, Git 브랜치와 커밋 이력을 꼼꼼히 살피며 병합 충돌을 해결해 프로젝트의 완주율을 높입니다.
2D 액션·3D 멀티플레이·시뮬레이션 프로젝트에서 인게임 시스템과 씬 전환, 에셋 파이프라인을 다룬 경험.
인터페이스·추상 클래스를 활용한 스킬·축복 설계, C# 이벤트 기반 상태 알림, UniTask 비동기 처리 활용.
포인터와 구조체, 프로세스 분기(fork) 및 파이프·시그널을 활용한 멀티프로세스 프로그램 작성.
객체지향 구조로 게임 루프와 엔티티 관리를 작성하고 외부 물리·그래픽 패키지를 결합한 경험.
프레임 타이밍 제어, 입력 이벤트 분기, 스프라이트 그룹 렌더링 및 사운드 재생 처리.
2D 강체 물리 공간(Space) 설정과 도형 간 접점(Contact) 계산을 활용한 충돌 판정.
프로세스 간 전달된 게임 데이터를 받아 보드·캐릭터 텍스처와 한글 폰트(SDL2_ttf)를 화면에 렌더링.
대기·이동·대시·공격·피격 등 캐릭터 상태와 상점 손님 AI의 단계별 행동 전이를 설계.
화면 전환 연출을 위한 커스텀 셰이더 제작 및 머티리얼 파라미터 제어.
Addressables 비동기 로드와 스택(Stack) 구조를 결합한 팝업 생명주기 관리 및 HUD 갱신.
System V 공유 메모리(shmget/shmat)와 POSIX 시그널을 이용한 프로세스 간 상태 동기화.
브랜치 전략에 따른 병렬 작업 병합, 커밋 이력 기반 충돌 원인 파악 및 기획·아트 에셋 형상 관리.
컨테이너와 탐색·정렬 구조를 직접 작성하며 메모리 관리와 언어 기본기를 다지는 중.
트리·그래프·해시 등 핵심 자료구조의 원리를 복습하고 매주 꾸준히 알고리즘 문제를 풀이.
프로세스·메모리 관리 등 CS 전공 이론과 렌더링 파이프라인의 동작 원리를 학습.
코드가 의도대로 동작하는 데서 그치지 않고, 플레이어가 조작할 때 느끼는 반응성과 안내의 명확함까지 살피려 합니다. 대학 졸업 작품을 PlayX4 현장에서 선보이며, 처음 접하는 관람객들이 막힘없이 게임을 즐기는 모습을 보았을 때 가장 큰 보람을 느꼈습니다.
팀원이 문제로 막혔을 때 결과만 대신 고쳐주기보다, 데이터가 어디서부터 어긋났는지 함께 따라가며 원인을 밝히는 과정을 선호합니다. 서로가 코드의 맥락을 이해해야 이후 기능 수정이나 확장도 흔들림 없이 이어갈 수 있다고 믿습니다.
엔진과 라이브러리가 제공하는 편리한 기능 뒤에서 실제로 어떤 연산과 메모리 처리가 일어나는지 궁금해합니다. 당장 눈앞의 기능 제작에만 머물지 않고, 컴퓨터 공학 기초를 꾸준히 다져 문제의 본질을 볼 줄 아는 개발자로 성장하고 싶습니다.