프로그래밍 공부
작성일
2023. 12. 1. 15:41
작성자
WDmil
728x90

FSM을 응용하여 FSM의 데이터를 전부 각 함수로 구분지어 사용하는 방법이다.

 

FSM의 이론을 일정부분 사용하면서, 캐릭터, NPC 몬스터 등의 동작을 별도의 객체로 분리하여.

 

별도의 Class로 구분지어 구현하고, 상속처리하여. 다양하게 처리할 수 있는것을 목적으로 한다.

 

이러한 행동 객체화를 통해 FSM과 다른 장점이 생기기도 하는데,


FSM와 비교한 장점

  1. 구현이 쉬워진 복잡한 행동
    • FSM은 내부코드의 재사용성이 생각보다 불투명하지만, 함수별로 구분지어 사용하게 되면. 해당함수를 다시 정의하고 여러 캐릭터가 동일한 이동, 공격, 점프등을 사용할 수 있다.
  2. 객체지향 다형성 활용
    • 기본적으로 상속과 인터페이스를 응용함으로. 동일한 인터페이스를 사용하는 한, 다양한 행동을 쉽고 간단하게 교체할 수 있다.

그러나. 장점만 있는건 아니다.


FSM과 비교한 단점

 

  1. 더 복잡한 코딩방식으로 이루어질 수 있다.
    • FSM은 한 객체 안에서 동작을 구분지어 사용하지만. 행동 객체화는 모든 행동데이터를 각 Class로 구분지어 생성한다. 이러한 행동으로 인해 간단한 동작을더 복잡하게 구현해야할 수 있다.
  2. 가독성이 무척 떨어진다.
    • 이러한 코드의 동작사항을 정확하게 알고있는것 이 아니라면, 각 행동당 이동해야하는 코드의 문단이 늘어지게 됨으로 다른사람들이 코드를 읽을 때 가독성이 크게 떨어질 수 있다.

 

이러한 장단점을 비교했을 때,

 

행동 객체화 방법은 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