Crie um simulador de colônia original em torno de uma fila de trabalho e um prazo. No fictício Relé da Crista Tern, dois membros da tripulação precisam reparar uma porta contra tempestade, trocar um filtro de ar e levar uma caixa para o armazenamento. Apenas um membro da tripulação pode reparar a porta. Se uma tarefa de menor risco ocupar essa pessoa primeiro, a estação pode perder o prazo, mesmo que todas as tarefas sejam concluídas eventualmente.
Use três ticks fixos para expor essa escolha. Um cronograma legível informa o que cada membro da tripulação fez, qual tarefa precisou esperar e se o reparo foi concluído dentro do prazo.
Comece com um gargalo compartilhado

A Ludeon Studios descreve RimWorld como uma simulação de colônia de ficção científica na qual os jogadores gerenciam colonos e suas necessidades. Os próprios materiais de tutorial do estúdio também descrevem prioridades de trabalho configuráveis. Para um protótipo original, empreste a ideia ampla de trabalho em competição e defina exatamente como sua equipe assume uma tarefa.
No Tern Ridge Relay, Mira e Sol começam livres. Apenas Mira pode Reparar ou Filtrar. Qualquer uma pode Transportar. Todas as tarefas estão disponíveis quando o tick um começa. A porta de enrolar deve ser reparada até o final do tick dois. A estação começa com 5 Ar, um contador abstrato do jogo, e usa 1 Ar no final de cada tick.
Torne a regra de despacho visível
| Tarefa | Equipe elegível | Duração | Efeito de conclusão |
|---|---|---|---|
| Reparar porta de enrolar | Mira | 2 ticks | Porta fechada. O prazo é o final do tick 2. |
| Alterar filtro | Mira | tick 1 | Adicionar 2 de Ar. |
| Transportar caixa | Mira ou Sol | tick 1 | Marcar a caixa como entregue. |

A cada tick, mantenha as tarefas ativas com sua tripulação designada. Classifique as tarefas pendentes por rank numérico ascendente e, em caso de empate, pelo ID da tarefa em ordem alfabética. Selecione o primeiro trabalhador elegível disponível na ordem Mira, Sol. Se uma tarefa não tiver um trabalhador elegível disponível, registre o motivo e continue a verificação. Uma tarefa em espera nunca deve impedir um trabalhador elegível de assumir uma tarefa diferente.
Ao final de um tick, avance todas as tarefas ativas em um passo. Aplique os efeitos de conclusão, subtraia o custo de Ar e, em seguida, verifique qualquer prazo. Uma tarefa concluída no tick dois é considerada dentro do prazo. Uma tarefa concluída no tick três não pode apagar um prazo perdido no tick dois.
Reproduzir dois cronogramas a partir da reinicialização
Comece com as funções Reparar 1, Filtrar 2 e Transportar 3. Em seguida, reinicie e altere apenas Filtrar para a função 0. Este pequeno agendador aceita 0 como uma função acima de 1. Mantenha a mesma elegibilidade dos trabalhadores, a duração das tarefas e o Ar inicial em ambas as execuções.
| Ciclo | Atribuições de referência | Ar de referência | Filtrar primeiro | Ar da variante |
|---|---|---|---|---|
| 1 | Mira repara, Sol transporta | 4 | Mira filtra, Sol transporta | 6 |
| 2 | Mira conclui a reparação no prazo. Sol ocioso. | 3 | Mira inicia a reparação. Sol ocioso. Prazo perdido. | 5 |
| 3 | Mira conclui a filtragem. Sol ocioso. | 4 | Mira conclui a reparação com atraso. Sol ocioso. | 4 |

Ambos os cronogramas terminam em 4 de Ar. A linha de base protege o prazo e a variante o perde. Para diagnosticar a falha, examine o tick de início da tarefa e a primeira atribuição a Mira. Mantenha o resultado do prazo e o status atual da tarefa separados para que uma conclusão atrasada permaneça visível.
Forneça ao IA o agendador e os rastros de aceitação
Peça primeiro um controle de etapa única. Avançar um tick de cada vez facilita o correspondência entre o log e o fixture.
Construa um simulador de colônia original para navegador chamado Tern Ridge Relay.
Use dois tripulantes na ordem Mira e depois Sol. Comece com ambos livres e 5 de Ar.
No tick 1, torne três tarefas disponíveis: Reparo rank 1 (apenas Mira, 2 ticks, prazo no fim do tick 2), Filtro rank 2 (apenas Mira, 1 tick, adiciona 2 de Ar) e Transporte rank 3 (qualquer tripulante, 1 tick, marca a caixa como entregue).
Mantenha as tarefas ativas e ocupe um trabalhador por tarefa até a conclusão. Cada trabalhador detém no máximo uma tarefa.
Ordene as tarefas pendentes por rank ascendente, depois por ID da tarefa em ordem alfabética. Escolha o primeiro trabalhador elegível livre. Pule tarefas indisponíveis e continue varrendo.
No fim do tick, avance o trabalho, aplique os efeitos de conclusão, subtraia 1 de Ar e, em seguida, verifique os prazos.
Rastreie o tick de conclusão e o resultado do prazo separadamente. Preserve um prazo perdido quando uma tarefa termina atrasada.
Exiba um botão de etapa, ranks das tarefas, atribuições da tripulação, elegibilidade e um log cronológico. Permita Filtro rank 0 antes da execução.
Pare após 3 ticks. O reset restaura os ranks base, o Ar, ambos os tripulantes e todas as tarefas pendentes.
Ar da linha de base após cada tick: 4, 3, 4. O Reparo termina no tick 2.
Com apenas o Filtro alterado para 0: Ar 6, 5, 4. O Reparo perde o tick 2 e termina no tick 3.
Use visuais originais de estação de retransmissão e controles acessíveis por teclado.
Verifique com cuidado o primeiro tick de referência. Sol deve assumir a tarefa de Transporte, mesmo que o Filtro tenha sido verificado anteriormente. Se Sol permanecer ocioso, inspecione a regra que trata uma tarefa inapto. Se a referência perder o prazo, apesar de concluir a Reparação no segundo tick, verifique se os efeitos de conclusão são aplicados antes da verificação do prazo.
Use o guia de primeira construção para adaptar o cenário a outro ambiente. Crie o agendador do Relevo Tern Ridge no SEELE AI Game Maker e reproduza ambos os agendamentos antes de adicionar eventos ou novas tarefas.
Perguntas frequentes
Quantos trabalhadores e tarefas devo começar?
Comece com dois trabalhadores e três tarefas, incluindo duas tarefas que exigem o mesmo trabalhador. Isso permite testar tanto um gargalo genuíno quanto uma atribuição paralela. Neste exemplo, Sol pode transportar a caixa enquanto Mira lida com a tarefa de especialista que tiver a maior prioridade.
E se um trabalhador não puder assumir a tarefa de maior prioridade?
Avalie se alguém livre é qualificado para essa tarefa. Se ninguém for, continue a verificação e registre por que ela foi pulada. Um membro da equipe flexível ainda pode assumir outros trabalhos elegíveis, o que impede que a lista pendente deixe a estação inteira ociosa.
Por que registrar o status de conclusão e de prazo separadamente?
Uma tarefa pode terminar após o tick de vencimento. Seu estado de conclusão pode ser verdadeiro, enquanto o resultado do prazo permanece como perdido. Preserve ambos os valores e seus números de tick para que o jogador possa entender uma reparação atrasada, mesmo quando a estação concluída parecer idêntica.
Como devo testar uma mudança nas prioridades das tarefas?
Reinicie a estação, altere apenas uma prioridade e repita a sequência exata de ticks. Compare quem inicia cada tarefa, quando ela é concluída e quais prazos mudam. Verifique também o valor final de Ar, mas use o agendamento completo para explicar casos que terminam com a mesma quantidade.


