我有一个从头开始制作实时策略游戏的项目。我仍处于早期计划阶段,但是我已经进行了一些编程以了解其机制。
我知道如何编程。我对如何构造游戏类和面向计算机玩家的基于规则的(状态机)AI也有很好的想法。
我想开发一种教义,它会赋予特定单位特定的行为(但可以同时在多个单位上使用),例如侦察兵,跟随任务路线,保持位置(攻击不速之客或退缩)等
该学说仅适用于单位,因此它将具有单位的观点,而对整个地图的状况并不了解。
计算机AI将分析整个可见图,并根据另一套规则决定分配哪个单元的学说。
我正在C#和OpenGL中执行此操作。
就目前而言,在我开始主要构想之前,我还没有太多东西在测试中。我有一个游戏循环,所有游戏处理(我将其依次称为更新运动,战斗,渲染等)将发生,如果发生Application.Idle事件,则经常调用该循环。
现在,我在想。由于游戏循环中有很多事情要处理,因此计算机AI和单位应该在该循环中选择其动作还是会太慢?
如果我希望所有事物都同时存在,是否应该为计算机AI创建单独的线程?甚至每个单元都有单独的线程?
我在多线程方面没有太多经验。最好的方法是什么?