Codex를 한번 사용해봤습니다.

왜 이 짓을 해봤냐!?
원래도 게임을 좋아하는데, 그 중 마인크래프트도 좋아하는 게임 중 하나임. 그래서 스트리머들이 하는 마인크래프트 서버를 보고 스킬도 쓰고, 보스 레이드도 하고, 여러가지 생활 시스템이라던가.. 뭔가 마크스럽지 않은 것들을 마크에 구현해서 즐기는 걸 보고 오 나도 만들어보고 싶은데? 에서 시작했음.
그런데 문제가 있다.
- java도 딥하게 아는게 아니고 기본적인 것만 안다는 문제.
- 그리고 마인크래프트 모드 개발에 대한 지식이 아예 없다는 문제.
- 그리고 모드 개발에 대한 문서가 정말 별로 없고 빈약하다는 문제.
돌파구는 있음.
앞서 언급한 문제들 때문에 그 동안 도전 자체를 안하게 됐는데, 요즘은 AI가 화제 아닌가. 그래서 나도 이번에 AI-Agent를 활용하는 경험을 할 겸 생각만 했던 마인크래프트 모드로 내가 원하는 걸 만들어보자해서 정한게 RPG시스템을 만드는 것. 왜냐? 게임 개발의 로망이였음, 원래도 게임 개발을 많이 했었고 나중에 대박 게임 만들어서 한 탕 하고 싶다는 목표도 있음 ㅋㅋ.
어떤 Agent를 선택했나?
gpt-5.3-codex를 선택했음. 왜냐? 지금 유료 플랜으로 쓰는게 챗지피티라서! 다른건 다 무료 플랜이라 그래도 유료 플랜이 좀 성능이 더 좋지 않겠나 싶었다.
codex와 함께 개발진행(코드는 거의 codex가 다 만든듯)
우선 처음부터 codex를 쓴 건 아니고, 영상에도 나왔듯 불 검을 휘두르는 듯한 스킬(Slash)를 직접 만들어보는 것부터 해봤음. 근데 벌써부터 난관이라 이때는 챗지피티의 도움을 받아 코드 조각을 만들어나갔는데 자꾸 구버전의 코드를 제시해서, 뼈대정도만 지피티가 만들고 최신버전 코드는 직접 구글링해서 찾아가면서 작성해서 어찌저찌 이펙트를 출력시키는데 성공함..
그래도 만들면서 어떤 흐름으로 코드를 작성하면 "스킬"시스템을 만들 수 있을지 감은 잡았음.
그래서 이때부터 codex를 연결해서 요청을 하기 시작했음
기존 Slash 구현 코드는 객체지향적인 프로그래밍이 안돼있어서 확장성이 안 좋았음
그래서 우선 codex에게 기존 하드코딩을 직업별 스킬셋으로 관리할 수 있는 시스템으로 정리해달라고 부탁해봤음
와 그러더니 혼자 분석하고 도구를 사용해서 api같은 것도 정확하게 찾아서 적용하고 빌드도 잘 되는지 테스트하고 내가 말한 요구사항을 완벽하게 해냈음
여기서 완전 신세계를 경험함.. 심지어 내가 추가적으로 요구하지 않은 마법사직업과 마법사직업의 스킬, 커스텀 파티클 이미지도 생성해서 예시 스킬(Arcane Pulse)도 만들어냄
추가적으로 쿨타임도 만들고, 중간중간 코드를 읽어보다가 이해가 안되는 부분은 또 내가 이해하기 쉽게 정리해달라하니 이 부분도 잘해주더라.
그래서 결과적으로 하루종일 삽질해서 만든게 위의 1분17초짜리 영상 내용임!
뭘 만들었냐?
일단 마인크래프트는 기본적으로 키에 연결되어있는 기본 기능들이 있음.
예를 들면
좌클릭은 캐릭터가 손에 든 아이템으로 기본 공격을 하는 기능F는 메인 손에 들고있는 아이템을 보조 손으로 옮기거나 보조 손에 있는 아이템을 메인 손에 옮기는 기능
이런 기능들이 있는데, 나는 이번에 픽셀 크리에이터 타운2(이하 픽크타) 에 전투모드, 일반모드 전환기능이 있는 걸 봤음.
오? 어떤 식인가 봤더니, 전투모드에선 기본 키바인딩을 백업한 후 연결해제 처리를 한 다음 사용자 정의 기능을 붙이는 방식이였음.
그래서 영상에서 Slash를 쓰는건 "전사 직업의 전투 모드의 좌클릭"임, Arcane Pulse를 쓰는건 "마법사 직업의 전투모드의 F" 여기서 더 나아가 플레이어의 애니메이션도 적절히 재생하도록 하면 보다 자연스럽게 연출이 가능하겠지
스킬,직업,스킬슬롯, 은 EnumMap을 사용해서 관리함. 그래서 실질적으로 스킬을 캐스팅하면 플레이어의 직업, 눌린 키를 통해 스킬 슬롯을 확인해서 스킬정보를 얻음. 그리고 쿨다운 체크를 하고 사용가능 상태면 스킬의 이펙트 엔티티나 파티클을 적절히 스폰하고 스킬에 맞는 사운드도 재생하는 구조. 그리고 전투모드일때는 해당 과정을 진행하지 않음.
Slash 이펙트는 어떻게 만들었는데?
간단히 4개의 점(vertex)으로 평면을 생성하고 텍스쳐 좌표를 매핑함. 그리고 총 5장의 휘두르는 이펙트 이미지를 준비해서 렌더링할 때 생성한 평면에 이 이미지를 애니메이션 시켰음
그리고 적절하게 이 이펙트 엔티티를 회전, 이동, 스케일 등을 조절해서 스폰하면 됨!
Aracane Pulse 이펙트는 어떻게 만들었는데?
커스텀 파티클 이미지를 사용하는 파티클 타입을 새로 만들고 캐릭터 좌표에서 삼각함수와 반지름을 이용해서 원형 범위에 파티클이 스폰되도록 함
이걸 하면서 느낀점은?
AI-agent를 활용하면 내가 모르는 분야에 대해서도 뭔가 도전을 시도할 수 있겠구나 느꼈음
되게 희망적인 느낌. 그냥 코드만 띡띡 만드는게 아니라 직접 코드도 읽어보고 전체 흐름을 이해하려했고, 이해가 안가는 부분이 있으면 정리를 요청해서 내가 이해하는데 도움이 될 수 있게 학습을 진행해서 이런 시도를 계속해서 진행하면 나도 언젠가 개쩌는 마인크래프트 서버를 만들 수 있지 않을까 기대함! 아자스.


댓글
댓글을 작성하려면 이 필요합니다.