Disclaimer: Meu tipo de jogo favorito de todos os tempos é baseado em texto e eu o escrevo como programador de longa data de um antigo MUD.
Eu acho que uma pergunta importante que você precisa se perguntar é: Você precisa de threads? Entendo que um jogo gráfico provavelmente tenha mais uso de MTs, mas acho que também depende da mecânica do jogo. (Também pode valer a pena considerar que, com GPUs, CPUs e todos os outros recursos que temos hoje, são muito mais poderosos, o que torna suas preocupações com os recursos tão problemáticas quanto lhe parecem; de fato, 100 objetos são praticamente zero). Também depende de como você define 'todos os caracteres de uma vez'. Você quer dizer exatamente ao mesmo tempo? Você não terá isso, como Peter justamente aponta, de modo que tudo de uma vez é irrelevante no sentido literal; só aparece assim.
Supondo que você siga os tópicos: você definitivamente não deve considerar 100 tópicos (e eu nem vou falar se é demais para sua CPU ou não; refiro-me apenas às complicações e à praticidade).
Mas lembre-se disso: o encadeamento múltiplo não é fácil (como salienta Philipp) e tem muitos problemas. Outros têm muito mais experiência (muito) do que eu com o MT, mas eu diria que eles também sugerem a mesma coisa (mesmo que sejam mais capazes do que eu seria - especialmente sem prática da minha parte).
Alguns argumentam que discordam que os threads não são benéficos e outros argumentam que cada objeto deve ter um thread. Mas (e novamente isso é todo o texto, mas mesmo que você considere mais de um tópico, você não precisa - e não deve - considerá-lo para cada objeto), como Philipp aponta que os jogos tendem a percorrer as listas. Mas, no entanto, não é apenas (como ele sugere, embora eu saiba que ele está apenas respondendo aos seus parâmetros de tão poucos objetos) para tão poucos objetos. No MUD, sou programador, pois temos o seguinte (e essa não é toda a atividade que acontece em tempo real, portanto, lembre-se disso também):
(O número de instâncias varia, é claro - mais alto e mais baixo)
Móveis (NPC ou seja, não personagem do jogador): 2614; protótipos: 1360 Objetos: 4457; protótipos: 2281 Quartos: 7983; protótipos: 7983. Cada quarto geralmente tem sua própria instância, mas também temos quartos dinâmicos, ou seja, quartos dentro de um quarto; ou quartos dentro de um móvel, por exemplo, o estômago de um dragão; ou salas em objetos, por exemplo, você insere um objeto mágico). Lembre-se de que essas salas dinâmicas existem por objeto / sala / móvel que realmente as definiu. Sim, isso é muito parecido com a ideia de World of Warcraft (eu não a jogo, mas um amigo me fez jogar quando eu tinha uma máquina Windows, por um tempo) de instâncias, exceto a que tivemos muito antes de World of Warcraft sequer existir.
Scripts: 868 (atualmente) (por incrível que pareça, nosso comando de estatísticas não mostra quantos protótipos temos, por isso acrescentarei). Tudo isso é realizado em áreas / zonas e temos 103 delas. Também temos procedimentos especiais que são processados em momentos diferentes. Também temos outros eventos. Então também temos conectores conectados. Os celulares se movimentam, realizam atividades diferentes (além do combate), interagem com os jogadores e assim por diante. (O mesmo acontece com outros tipos de entidades).
Como lidamos com tudo isso sem demora?
soquetes: select (), filas (entrada, saída, eventos, outras coisas), buffers (entrada, saída, outras coisas), etc. Eles são pesquisados 10 vezes por segundo.
personagens, objetos, salas, combate, tudo: tudo em um loop central em diferentes pulsos.
Nós também (minha implementação baseada na discussão entre o fundador / outro programador e eu) temos extensos testes de rastreamento de lista vinculada e de validade de ponteiro e temos recursos livres mais do que suficientes se realmente precisarmos dele. Tudo isso (exceto que expandimos o mundo) existia anos atrás, quando havia menos RAM, energia da CPU, espaço no disco rígido, etc. E, de fato, mesmo assim, não tivemos problemas. Nos loops descritos (os scripts causam isso, assim como a área redefine / repovoa como outras coisas) monstros, objetos (itens) e outras coisas estão sendo criados, liberados e assim por diante. As conexões também são aceitas, pesquisadas e tudo o mais que você esperaria.