Resposta à pergunta real (um loop do jogo precisa estar em um segmento separado):
A razão pela qual as pessoas geralmente recomendam o uso de um encadeamento separado é porque não desejam que o processamento pesado interfira na interatividade da interface do usuário. Você é o único que pode dizer se é necessário um segmento separado para o seu jogo. Depende inteiramente do mecanismo e da estrutura se o loop principal do jogo em seu design atual pode interferir no tempo de resposta da interface do usuário. Pensei que você geralmente assume que não vai (em pequenos projetos), a menos que você tenha um motivo para pensar de outra forma.
Outro motivo para manter o código em threads separados é manter o código modular e simples. A combinação de dois pedaços de código não relacionados pode fazer com que o código se torne menos legível e mantenível a longo prazo.
Um loop de jogo precisa ser executado em seu próprio segmento separado? Possivelmente. Se houver um problema com o tempo de resposta ou o código e você precisar de vários itens da interface do usuário para responder, independentemente do processamento pesado, ou simplesmente desejar dividir o código em tarefas específicas que ocorrem simultaneamente por motivos de design, siga-o. No entanto, é considerada uma prática de programação avançada .
Um exemplo simples, mas talvez não ótimo, para ilustrar é um jogo para dois jogadores. Você pode executar duas instâncias de uma classe que lida com a entrada do usuário e converte em alterações de estado na instância do personagem do jogador.
Algumas estruturas incentivam / exigem que você utilize um sistema baseado em evento / interrupção, como o ActionScript3.0. Nesse caso, o código do loop normalmente irá para o OnEnterFrame
evento ou algo semelhante que ocorre 20 - 60 ou 120 vezes por segundo.
Resposta à pergunta original (Preciso de um loop principal):
Tudo se resume ao contador do programa . Se você estiver criando um jogo que funcionará mais do que um tempo predeterminado e não gerará código, então será necessário solicitar ao PC do usuário que repita algumas instruções que ele já processou e o que possivelmente será alterado. enquanto isso é o estado (os valores armazenados nos objetos e globais do jogo).
Como você sabe que precisará repetir as instruções, existem várias maneiras de concluir esta tarefa e processar continuamente as mesmas instruções. Todos esses métodos envolvem mover o contador do programa de volta à instrução atualmente relevante. As instruções de fluxo de controle mais comuns que fazem com que o código seja repetido são chamadas de loops, outra é a goto
instrução que raramente é usada no código moderno e tem um efeito semelhante nesse caso (completamente não relevante para você).
Então, para responder à sua pergunta anterior, você precisa de um loop? Sim você faz.