๋ก๋ฉ๊ณผ ๋ณ๋ ฌ์ฒ๋ฆฌ์ UI๊ฐ ๋ง๋๋ ๊ณณ์์ ์ผ์ด๋ ์ด๋ฐ์ ๋ฐ ์ฌ๋จ์ ๊ฒช์ ๋ค,
FSM ์ ๋ง๋ค์ด์ผ ์ดํ ๋ฐ์ํ ๋์ฐํ ์ผ๋ค์ ๋ง๊ฒ ๋ค ์ถ์ด์ ๊ฒ์์ ํด๋ณด๋๊น
c++์์๋ std::variant ๊ฐ ์ต์ ์ ํ์ด์ผ! ๋ผ๋ ๋ง์ด ์ ์ผ ๋ง์ด ๋์์ต๋๋ค๋ง, ์-_- ๋ง์์ ์๋ค์ด์
๊ฐ์ฅ ๊ฐ๋จํ switch ๋ฌธ์ผ๋ก ํ๋ค๊ฐ ๋ชจ๋ ์ผ์ด ๊ทธ๋ ๋ฏ์ด ์ด๊ฑธ๋ก ๊ฐ๋น์ด ์๋๊ฒ ๋ค ์ถ์ด์ ๋ ๋ค์ง๋ค ๋ณด๋๊น...
#UnrealEngine ์ 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๋ก ์ฐ๊ณ ์๋ ๋์ฐํ ์ง์ ํ๊ณ ์๋๊ตฐ์' -'
๊ทผ๋ฐ ์ด๊ฒ ๋ง์์ ๋ค๋๋ผ๊ตฌ์(ํผ์) ์ด๊ฑธ๋ก ํ๋ ค๊ตฌ์.