실시간 전략 게임을 처음부터 시작하는 프로젝트가 있습니다. 나는 아직 초기 계획 단계에 있지만, 역학을보기 위해 약간의 프로그래밍을 해왔다.
프로그래밍 방법을 알고 있습니다. 또한 컴퓨터 플레이어를 위해 게임 클래스와 규칙 기반 (상태 머신) AI를 어떻게 구성 할 것인지 잘 알고 있습니다.
스카우트, 미션 루트 따르기, 위치 잡기 (적을 공격하는 사람을 공격하거나 압도 당할 때 퇴각)와 같은 특정 부대에 특정 행동을 주지만 동시에 여러 부대에서 사용할 수있는 교리를 개발하고 싶습니다. 등
교리는 단위에만 적용되므로 단위 관점을 가지게되며 전체지도 위치에 대해서는 알 수 없습니다.
컴퓨터 AI는 전체 가시성지도를 분석하고 다른 규칙 세트에 따라 각 유닛을 할당 할 소 트린을 결정합니다.
C #에서 OpenGL을 사용 하여이 작업을 수행하고 있습니다.
지금은 주요 개념을 시작하기 전에 테스트 할 것이 많지 않습니다. 모든 게임 처리 (업데이트 이동, 전투, 렌더링 등을 차례로 호출 할 곳)가 발생하는 게임 루프가 있는데 Application.Idle 이벤트 인 경우 매우 자주 호출됩니다.
나는 궁금했다. 게임 루프에는 처리해야 할 것이 많기 때문에 컴퓨터 AI와 유닛이 해당 루프에서 동작을 선택해야합니까, 아니면 너무 느려 야합니까?
모든 것을 동시에 처리하려면 컴퓨터 AI에 대해 별도의 스레드를 만들어야합니까? 아니면 모든 단위에 대해 별도의 스레드?
멀티 스레딩에 대한 경험이별로 없습니다. 가장 좋은 방법은 무엇입니까?