포스트

코드 추가 개선 및 콘텐츠 업데이트

안녕하세요. 지난번 아이템 시스템 리팩토링에 작은 추가 개선 사항이 있어서 잠깐 이야기 하고, 그동안 진행돼 왔던 게임 콘텐츠 관련 개발 사항을 정리하고자 합니다.

코드 개선 사항

우선 시스템 개선 사항입니다. 원래 아이템의 데이터를 관리하는 ScriptableObject인 ‘ItemData’는 아이템이 무기인지, 장비인지 구분하지 않고 단순히 모든 종류의 아이템이 가질 수 있는 모든 종류의 데이터들(이름, 설명, 아이콘, 레벨별 스탯 증가량 등)을 정의하는 역할을 했습니다. 이는 무기에 비해 한없이 적은 데이터를 가지는 장비 아이템에 비해 불필요하게 많은 데이터를 가지고 있는 구조였습니다. 예를 들어, 무기 아이템은 ‘공격력’, ‘쿨타임’, ‘공격범위’, ‘지속시간’ 등의 스탯을 가지지만, 장비 아이템은 보통 장착했을 때 플레이어의 이동 속도나 공격력 같은 스탯을 증가시키는 효과만 가지기 때문에, ‘쿨타임’, ‘공격범위’, ‘지속시간’ 같은 데이터는 필요하지 않습니다. 따라서 ItemData를 상속받아 무기 아이템과 장비 아이템 각각의 데이터를 정의하는 ‘WeaponData’와 ‘GearData’ 클래스를 만들었습니다. 이로 인해 각 아이템 타입에 맞는 데이터만을 가지게 되어 코드가 더 깔끔해졌습니다.

몇가지 아이템들의 추가

이제 콘텐츠 관련 개발 사항입니다. 최근에 몇 가지 새로운 무기를 추가했습니다. 이터널 리턴을 플레이했던 경험을 바탕으로 뱀파이어 서바이벌류 게임에서 바로 구현할 수 있을법한 무기들부터 추가했씁니다.

  1. ‘벽력(Red Sprite)’: 이터널 리턴의 혼돈 핵심 특성 ‘벽력’을 구현한 무기입니다. 일정 시간마다 사거리 내의 적을 번개로 공격하는 무기입니다. 이터널 리턴의 ‘벽력’과는 다른 메커니즘이지만, 뱀파이어 서바이벌의 번개 반지 아이템을 참고하여 구현했습니다. 이펙트를 particle system을 활용해 좀 더 이터널 리턴의 느낌에 가깝게 만들어야 할지 고민중입니다.

Image

  1. ‘요술 램프(Magic Lamp)’: 이터널 리턴의 ‘요술 램프’를 구현한 무기입니다. 정식 출시 이후 이터널 리턴에 추가된 요술 램프라는 아이템은 사실 정식 출시 이전에도 잠깐 존재했던 적이 있습니다. 당시에는 사용 가능한 아이템으로, 사용 시 램프의 요정의 주먹이 나타나 적을 공격하고 밀치는 아이템이었습니다. 이를 참고하여, 사용 시 주먹이 나타나 적을 공격하고 밀치는 무기로 구현했습니다.

Image

  1. ‘유독성 발자국(Noxius Aftermath)’: 이터널 리턴의 위클라인 박사가 사용하는 공격이자, 코발트 프로토콜의 인퓨전 중 하나인 ‘유독성 발자국’을 구현한 무기입니다. 플레이어가 이동한 자리에 독성 장판을 남겨 적에게 피해를 주는 무기입니다.

Image

  1. 그 외 잡다한 장비 아이템들: ModifableStat 시스템을 활용하여, 플레이어의 이동 속도, 공격력, 쿨타임 감소, 공격 범위 등을 증가시키는 다양한 장비 아이템들을 추가했습니다. 이 아이템들은 플레이어의 기본 능력치를 향상시키는 역할을 합니다.

개발 관련 이야기

게임 개발은 참 재미있는 여정입니다. 새로운 아이템을 추가하고, 기존 시스템을 개선하는 과정에서 많은 것을 배우고 있습니다. 특히, 이런 콘텐츠 추가 작업을 하려면 아무리 생성형 인공지능의 도움을 받더라도 결국 제가 Aseprite 같은 툴을 활용해서 직접 픽셀 아트를 그려야 하는 부분이 많습니다. 제 전공인 컴퓨터 공학과는 거리가 먼 작업이지만, 이런저런 다양한 시도를 해보면서 어떻게든 해내고 있습니다. 시간이 조금 걸리더라도, 직접 만든 아이템이 게임에 추가되는 순간은 정말 뿌듯합니다.


이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.