로딩과 병렬처리와 UI가 만나는 곳에서 일어난 이런저런 사단을 겪은 뒤,

FSM 을 만들어야 이후 발생할 끔찍한 일들을 막겠다 싶어서 검색을 해보니까

c++에서는 std::variant 가 최신 유행이야! 라는 말이 제일 많이 나왔습니다만, 영-_- 마음에 안들어서

가장 간단한 switch 문으로 하다가 모든 일이 그렇듯이 이걸로 감당이 안되겠다 싶어서 더 뒤지다 보니까...

TVariant라는 아이가 있더군요. (지금 쓰는 게 언리얼인지라) 하지만 그래도 마음에 안들어서 더 뒤지다보니까...

Finite State Machines (FSM) in Embedded Systems (Part 3) - Unuglify C++ FSM with DSL
이런 흑마술도 나오더군요 하지만 역시 마음에 안들어서 더 뒤지다보니까...

Oh my...

Tech Breakdown: AI with Finite State Machines

/* shorthand macro */
#define FSM_ID( SID, EID ) ( uint64(STATE_##SID) | (uint64(EVENT_STATE_##EID) << 32) )

uint32 SomeEnemy::HandleEvent( const FSMEvent& Event ) override
{
	switch( Event.MakeSwitch(State) )
	{
	case FSM_ID( STANDING_STILL, ENTER ):
	{
		/* code for entering the standing-still state */
		break;
	}
...
	}
}

상태 enum 을 비트시프트한 다음 합쳐서 switch 문의 case로 쓰고 있는 끔찍한 짓을 하고 있더군요' -'

근데 이게 마음에 들더라구요(퍼엉) 이걸로 하려구요.

2

❤️

1 person reacted.

이것저것 해보고 싶은 사람입니다. 지금은 C++과 함께 고통받고 있습니다.

😲

1 person reacted.

Hi, I'm who's behind Fedify, Hollo, BotKit, and this website, Hackers' Pub!

Fedify, Hollo, BotKit, 그리고 보고 계신 이 사이트 Hackers' Pub을 만들고 있습니다.

FedifyHolloBotKit、そしてこのサイト、Hackers' Pubを作っています。

嗨,我是 FedifyHolloBotKit 以及這個網站 Hackers' Pub 的開發者!