728x90
FSM을 응용하여 FSM의 데이터를 전부 각 함수로 구분지어 사용하는 방법이다.
FSM의 이론을 일정부분 사용하면서, 캐릭터, NPC 몬스터 등의 동작을 별도의 객체로 분리하여.
별도의 Class로 구분지어 구현하고, 상속처리하여. 다양하게 처리할 수 있는것을 목적으로 한다.
이러한 행동 객체화를 통해 FSM과 다른 장점이 생기기도 하는데,
FSM와 비교한 장점
- 구현이 쉬워진 복잡한 행동
- FSM은 내부코드의 재사용성이 생각보다 불투명하지만, 함수별로 구분지어 사용하게 되면. 해당함수를 다시 정의하고 여러 캐릭터가 동일한 이동, 공격, 점프등을 사용할 수 있다.
- 객체지향 다형성 활용
- 기본적으로 상속과 인터페이스를 응용함으로. 동일한 인터페이스를 사용하는 한, 다양한 행동을 쉽고 간단하게 교체할 수 있다.
그러나. 장점만 있는건 아니다.
FSM과 비교한 단점
- 더 복잡한 코딩방식으로 이루어질 수 있다.
- FSM은 한 객체 안에서 동작을 구분지어 사용하지만. 행동 객체화는 모든 행동데이터를 각 Class로 구분지어 생성한다. 이러한 행동으로 인해 간단한 동작을더 복잡하게 구현해야할 수 있다.
- 가독성이 무척 떨어진다.
- 이러한 코드의 동작사항을 정확하게 알고있는것 이 아니라면, 각 행동당 이동해야하는 코드의 문단이 늘어지게 됨으로 다른사람들이 코드를 읽을 때 가독성이 크게 떨어질 수 있다.
이러한 장단점을 비교했을 때,
행동 객체화 방법은 FSM의 방법을 사용하되, 매우 복잡하고 다양한 동작을 수행해야 할 경우
사용해야 한다는것을 쉽게 알 수 있다.
728x90
'컴퓨터 용어 정리' 카테고리의 다른 글
DirectX Particle Trail (0) | 2023.12.09 |
---|---|
클래스 다이어그램(Class Diagram) (0) | 2023.12.06 |
유한 상태 기계방법[ FSM(Finite State Machine) ] (0) | 2023.12.01 |
DirectX Instancing (0) | 2023.11.28 |
20231109 27일차 Font, Frustum (0) | 2023.11.09 |