내일배움캠프 57일차 TIL

김정환·2024년 12월 4일
0

키워드

  • 스킬 시스템 구조잡기

어제 작업을 마무리하고 다음 작업으로 넘어갔다.
이번에 시작한 작업은 스킬 작업이다.

현재 시점에서 스킬 작업의 진행도는 스킬에 관련한 데이터 작업이 완료되었고,
이제 캐릭터가 스킬을 쓸 수 있도록하는 작업을 해주어야한다.

처음에는 데이터를 가지고 스킬 사거리와 범위, 데미지 적용만 해주면 되겠지했다.

스킬 관련한 기획 내용과 모작 중인 원본 게임을 보고 꿈을 깼다...


이건 구조를 만들지 않고서는 진행하면 안되는 작업이다...
일차원적으로 작업을 할 수 없다보니 구조를 잡고 들어가기로 했다.

유형화하기

지금 가지고 있는 데이터를 보고 필요한 기능을 유형화해보려고 한다.

기획을 처음부터하는 프로젝트라면 구조를 잡고 거기에 맞게 스킬 기획을 작성해나가면 되겠지만,
모작을 하고 있다보니 주어진 스킬의 내용을 바탕으로 최대한 만족할 수 있는 유형을 만드는 것이 최선이라고 생각했다.

  • 반경 내 적을 선택하고 / 대상 적에게 n의 데미지~~~
  • 반경 내 적을 선택하고 / 대상 적 주변 2칸을 타격~~~
  • 주변 4 방향 중 1 방향을 선택하고 / 선택 방향을 따라
  • 반경 내 모든 적을 / 타격
  • 반경 내, 아군을 선택하고 / 아군에게 버프~~
  • 모든 아군에게 / ~~버프

이렇게 대략 6개의 유형으로 스킬을 정리할 수 있다.
그러다가 공통된 부분을 보았다.

구조 잡기

만들려는 스킬 시스템은 러프하게 선택 파트발동 파트로 구성되어 있다.
(추가적으로 후속 디버프를 부여할 수 있다.)

구조적으로 공통된 부분을 갖고 있으며 작동 방식은 액티브 스킬에 한해서 동일했다.
다만, 세부적인 작동 방식이 다를 수 있다는 점을 보고 전략 패턴을 적용해보기로 했다.

선택 ISelectable

  • 사거리 범위의 셀 내에서
    • 적 대상을 1개 선택
    • 모든 적을 선택
  • 주변 4 방향 중 1 방향 선택

발동 IActivatable

  • 대상을 공격
  • 대상들을 공격
  • 대상 주변 칸을 공격

스크립트 작업을 하기 전에 구조를 정리해보았다.

이걸로 대략적인 틀이 잡혔으니 작업을 들어갈 수 있을 것이다.
그리고 좀 더 좋은 스킬 구조는 없을지 나중에 찾아봐야겠다.

#내일배움캠프 #스파르타내일배움캠프 #스파르타내일배움캠프TIL

profile
사파 개발자

0개의 댓글

관련 채용 정보