Acho que a forma mais simples, é ter um Switch Global, chamado "Fim do jogo", ou "Jogo zerado" ou uma variável, que indique quantas vezes ele já completou o jogo. No final você "teleporta" o usuário pro primeiro mapa, e reinicia os outros switchs e variáveis pro estado inicial (ou pra alguma condição desejada). E programe os NPCS pra terem uma reação diferenciada caso esse Switch "Fim do Jogo" esteja ativado.
Dark Souls utiliza um sistema parecido, lá é chamado de New Game+. Você automaticamente é levado pro inicio do jogo quando derrota o último Boss, e várias coisas estão diferentes, como inimigos e itens no mapa.
Writing codes. Writing novels. Writing... Fates.