jira는 이슈 추적이나 작업의 관리, 프로젝트 괸리 및 버그 추적 등 다양한 기능을 제공해준다. 그래서 스프린트 라는 큰 카테고리(?)를 만들어서 그 안에 이슈들을 작성하고 대시보드에서 실시간으로 작업의 현황 및 버그들을 알 수가 있다. 그리고 버그나 문제가 발생하면 기록들이 다 남아있어 추적하면 금방 문제가 발견한 시점과 위치를 알 수가 있다. 또한 깃허브, 슬랙이 연동이 되어서 커밋이 되거나 머지가 되면 바로바로 알 수가 있었다. Merge의 경우 Merge를 하기 위해서는 1명 이상이 머지내용을 보고 승인을 해줘야 머지가 되는 방식으로 하여 보다 안전성과 책임을 얻을수 있게 되었다.
이슈 추적
워크플로우 관리
대시보드와 보고서
사용자 정의 가능한 필드
연동 가능성
보안
Jira - Slack 연동
Sprint Setting
Issue Make
Issue 분배
저번 프로젝트에서 몬스터부분을 맡아 Behaviour Tree에 대해 공부하고 적용하였는데, 처음 사용하다 보니 중간중간 오류나 설계가 아쉬웠던 부분이 있어서 이번에 완전히 내 것으로 만들고 싶어서 다시한번 몬스터AI쪽을 맡아서 작업하게 되었다.
FSM의 경우는 State가 늘어나면 늘어날 수록 관리하기가 어려워지기에 확장이 제한된다. HFSM(Hierarchical State Machine)을 사용하면 문제점들을 보완할 수 있지만, 여전히 유지 보수에 들어가는 코스트가 높다. 간단한 행동패턴을 만들기에는 좋은 선택이지만 내가 만들려는 게임의 적들의 AI는 좀 더 복잡한 행동 로직이 필요하다고 느꼇다. 상황에 따라서 행동 패턴이 추가가 될 경우도 있을테고 빼야하는 경우도 있을거라고 예상되기에 유지 보수 및 가시성이 좋은 Behaviour Tree를 저번 프로젝트에서 느꼇던 점을 보완하며 다시 한번 도전해보려고 한다.
BT(Behaviour Tree)는 사실 HFSM을 보다 일반화 시킨 것
트리 탐색형 명령 체계로 일반화.
State를 고민하지 않아도 빠르게 동작을 구현해볼 수 있다.
코드를 다시 봐도 금방 읽을 수 있다.
코드의 리팩토링과 모듈화가 용이하다.
확장과 축소가 용이하다.
AI작업의 리팩토링이 용이하다. (노드로 분리, 노드를 재사용 등)
로직이 코드에 그대로 드러나있기에 가독성이 좋다.
그림으로 그려 코드를 직접적으로 보지 않아도 이해하기가 쉽고, 필요한 부분만 액션(리프)노드로 가서 파악하기 용이하다.
탐색 순서가 행동에서의 영향을 미친다. (왼쪽에서 오른쪽, 위에서 아래로 순차적으로 검사하기에)
노드끼리 서로 의존성이 없어야 한다.
노드는 gameObject에서 정보를 가져와야 한다.
(공격)노드는 타겟 정보를 (타겟팅)노드에서 전달 받는 것이 아니고 gameObject의 '현재 타겟'값을 가져와서 처리해야 한다.
'모바일 MMO RPG 로열 블러드' 사례로 본 "복잡한 이벤트 시스템 구현 Behavior tree 패턴으로 한방에 해결하기."
<야생의 땅: 듀랑고>의 거친 환경에서 살아가는 동물 AI
[NDC 2009] 행동 트리로 구현하는 인공지능
Behavior trees for AI: How they work
Behavior Tree를 알아봅시다
FlowTree의 창작 정보 저장소
와이어 프레임 마저 완성
Behaviour Tree Base 완성
BT에 대해 더 공부 (위 링크들 참조)
1차 스코프 재정립