2010-07-19 5 views
1

턴 게임 (일종의 보드 게임)을 계획 중이며 백엔드는 아마도 Erlang에서 수행 될 것입니다. 게임 로직 부분은 계층 적 상태 머신에 적합한 것 같지만 얼랭에서 구현하는 방법에 대해서는 잘 모르겠습니다.Erlang의 계층 적 상태 머신 구현

어쩌면 나는 각 자식 fsm과 별도의 프로세스를 생성 할 수 있습니다. 이것이 작동하는지 확실하지 않습니다.

또 다른 옵션은 스크립트 언어를 임베드하거나이 용도로 DSL을 작성하는 것입니다.

당신은 어떻게 생각하십니까?

감사합니다.

답변

1

저는 원래 질문 저자입니다. (사실 나는이 질문을 내 것으로 주장하고 싶지만, 어떻게해야할지 모르겠다.)

OTP가 제공하는 모든 것들, gen_fsm에 대해 이미 알고 있습니다.

개념은 HIERARCHICAL 상태 시스템을 사용하는 것이며 gen_fsm은 일반 상태 시스템입니다. 게임 회전, 단계 등을 추적하기 위해 gen_fsm과 같은 일반 상태 시스템으로는 충분하지 않다고 생각합니다.

어쨌든, 나는 더 조사를 해왔고 모든 게임 논리에 Lua를 사용할 수 있도록 erl-lua를 사용할 것이라고 생각합니다. 일단 작동하면 병목 현상을 검색하여 C 구현이나 다른 것으로 이동할 수 있습니다.

+0

다른 곳에서는 언급 할 수 없으므로 여기에서 의견을 말합니다. AFAIK, NIF 기반 접근 방식으로 문제를 해결할 수 없으며 NIF 충돌로 인해 링크드 인 드라이버와 동일한 결과가 발생할 수 있습니다. 여기를보십시오 : http://groups.google.com/group/erlang-programming/browse_thread/thread/896f6269d874da10/07b09a0770d47491 – Papipo

1

@codecaster 여러분은 gen_fsm을 사용하여 상태를 추적 할 수 있으며 fsm 상태 내에서 추가 수준의 상태를 구축 할 수 있습니다 ... 그러나 erl-lua도 작동합니다. erlmon이라는 모니터링 도구를 만들었습니다. erl-lua 충돌에 약간의 문제가있어서 버그가 없다는 것을 명심하십시오. 또한 Nifs에 대한 새로운 지원으로, 누군가가 nif 기반의 새로운 lua 드라이버를 작성하기를 기다리고 있습니다. 당신은 그 주위를 돌아보고 싶을 것입니다.