关于模拟游戏的考虑因素

Gus*_*eno 4 simulation

我想到的那种模拟游戏就是你可以在不同的地方建立东西,以及连接这些地点的工人/运输者.

更像是定居者系列的东西.

我们假设我现在不想要任何图形,我认为我可以管理.

所以我的怀疑如下:

  1. 每个实体应该是一个类,每个实体都有一个线程吗?
  2. 应该将实体分组到类中的列表中,每个实体都有一个线程吗?

如果采用实现1,那么在低规格机器上运行将非常困难,并且对于大数字而言不能很好地扩展.

如果采用实施2,那么在资源方面会更好但是......

我该如何分组实体?

  1. 有一个一般的房子类,并有一个接口列表来管理它?
  2. 有一个特定的房屋组的课程,并有一个对象列表来管理它?

那线程怎么样?

  1. 我应该有简单的主游戏循环吗?
  2. 我应该为每个班级组都有一个帖子吗?
  3. 工人/运输工人如何适应这幅画面?

小智 14

常规方法根本不使用线程,而是将实体实现为状态机.然后你的主循环看起来像这样:

 while( 1 )
{
    foreach( entity in entlist )
    {
        entity->update();
    }

    render();
}
Run Code Online (Sandbox Code Playgroud)