작성
·
23
0
롤의 스킬에는 각종 스탯계수가 붙어있는데요, 공격력계수, 주문력계수, 공격속도계수 등이 있습니다.
저는 현재 각 스킬의 계수 관리를 위해서 DealDamage 이펙트의 레벨을 필요한 만큼 만들어서 이용중입니다.
예를 들어, ad,ap 계수가 전부 1인 스킬을 구현한다고 하면, DealDamage 이펙트의 레벨을 2개 만들어서 ad계수가 1인 데미지 이펙트, ap계수가 1인 데미지 이펙트를 스킬에 다 추가하는 방식으로 하고 있습니다.
그런데, 레벨로 관리하니까 너무 직관적이지 않아 고민입니다. 예를 들어, ad계수가 1.5인 이펙트의 레벨이 3이라면, 스킬에 장착된 이펙트를 볼 때 이펙트를 또 한 번 더 들어가서 계수가 몇인지 확인하는 것이 너무 불편하게 느껴져서 질문드립니다.
강사님은 어떤 방식으로 관리하는 것이 좋다고 생각하시나요??
답변 2
0
수강해주셔서 감사합니다.
저 같은 경우는 RPG 개발용 개인 Framework를 가지고 있는데요,
이 프레임워크에는 강의의 Database를 Excel/GoogleSheet로 Export/Import 하는 기능이 갖춰져 있습니다.
그래서 아주 간단한 게임의 경우에는 그때그때 Framework에서 바로 Data를 수정하구요, 좀 규모가 크면 Excel/GoogleSheet로 Data를 수정한 뒤 Framework로 Import합니다.
이런 기능을 구현해놓으면 나중에 Data 변조를 방지를 위해서 실제 Database(SQL)에서 정보를 받아와야할 때도 편합니다.
Excel로 Export/Import 기능은 이 강의에 넣을까하다가 괜히 DB 구조 작성에 대해 어설프게 이해시켜드릴까봐 뺐는데(좀 복잡하기도 하구요.), 해당 내용에 대한 요청이 많아서 다음 강의로 예정된 ItemSystem 강의에서 다루게 될 것 같습니다.
더 간단한 해결책으로는, 지금 SkillSystemWindow에서 목록에 있는 Skill을 누르면 우측에 Skill의 Custom Editor가 뜨는 것처럼, Skill의 EffectSelector에 Effect를 넣으면 Foldout 형태로 Effect의 Custom Editor가 그려지게 만들면 됩니다.(보통 InlineEditor라고 부릅니다.) 그럼 Effect Tab으로 이동할 필요 없이 바로 확인이 가능하겠죠. 직접 만들기 힘드시다면, Odin Inspector나 InlineEditor Attribute를 제공하는 Open Source Custom Atrrbiute들이 많기 때문에 그쪽으로 찾아보시면 될 것 같습니다. 아니면 Effect의 정보를 다 그리지말고 Level별 Action 정보들만 그려서 바로 수정할 수 있게 해준다던가, 여러가지로 Tool 내에서 직관성을 개선할 방법이 많습니다. 툴 프로그래머들이 하는게 이런 일들입니다.
다만, 확실히 아셔야할건 Excel을 이용하든, Tool의 기능을 강화하든 모듈식 구조는 정보가 여기저기 흩어져있기 때문에 직관성이 떨어지는건 어쩔 수 없는 부분입니다, RPG의 Quest 같은 것들도 제대로 만들면 Quest 하나를 구성하기 위해 많은 수의 Table이 필요하구요, 기획자나 프로그래머나 이 구조를 설계하고 익숙해지는데 많은 시간이 들어갑니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. MOOOON님.
스킬의 계수를 관리하는 방법은 게임의 시스템과 구현 방식에 따라 많은 접근 방법이 존재합니다. 현재 질문 주신 내용처럼 여러 레벨의 DealDamage
이펙트를 만들어서 관리하는 방식은 나름의 유연성을 제공할 수 있지만, 직관적이지 않아 불편하실 수도 있습니다. 다양한 스탯 계수를 더 효율적으로 관리할 수 있도록 몇 가지 방법을 추천드립니다.
프로퍼티 객체 사용:
스킬 데이터 클래스 확장:
adCoefficient
, apCoefficient
와 같은 변수를 추가합니다.계수 템플릿 시스템:
JSON 등 외부 설정 파일 사용:
스킬 효과 계산 함수 사용:
위에 설명된 방법들 중에 현재 프로젝트의 구조와 사용자가 선호하는 방식에 맞는 것을 시도해 보시면 좋겠습니다. 다양한 방법을 시험하며 본인의 프로젝트에 가장 적합한 방식을 발견하시길 바랍니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
답변해주셔서 감사합니다.
구글 시트에 IO를 Export, Import하는 기능은 저도 개인적으로 만들어 놓고 이용중인데요,
구글 시트로 데이터를 수정하는 것은 제가 느끼는 불편한 점과는 상관이 없어보여서 InlineEditor를 적용시키거나 익숙해질 수밖에 없겠네요.
지금 생각해보니 전에 하던 프로젝트들처럼 이펙트 레벨을 고유 Id라고 생각하면 똑같긴 하네요.
추가로, ItemSystem 강의는 언제 개설 예정이신지 궁금합니다.