Introduction

Ce document contient des simulations pour le jeu Locksgate conçu par l’équipe Perséphone lors de la Game Jam des Rendez-vous de l’Histoire 2023. Dans notre jeu, chaque tombe a une capacité définie par son type (caveau, tombe familiale ou tombe commune). On cherche à savoir en combien de tours cette capacité est atteinte, et combien elle rapporte en cumulé, en fonction :

Note : On veut calculer l’income jusqu’à ce que la tombe soit pleine

a) Caveau

  • Capacité : 50
  • Prix : min = 12, max = 20
  • Formule : Nombre de nouveaux morts = 1 + (Réputation / 8 - Prix / 20)
titre <- "Caveau"
prixConstruction <- 300
maxCapacity <- 50
nTours = 20
prixMin = 12
prixMax = 20
repMin = 1
repMax = 30

myData <- data.frame(Tour = rep(c(1:nTours), times = (prixMax - prixMin + 1) * (repMax - repMin + 1)),
                     Prix = rep(c(prixMin:prixMax), each = nTours),
                     Reputation = rep(c(repMin:repMax), each = nTours * (prixMax - prixMin + 1)),
                     NbreMorts = rep(NA, nTours * (prixMax - prixMin + 1) * (repMax - repMin + 1)),
                     Income = rep(NA, nTours * (prixMax - prixMin + 1) * (repMax - repMin + 1)))

myData$ReputationAsFactor <- factor(ceiling(myData$Reputation / 5), labels = c("0-5", "5-10", "10-15", "15-20", "20-25", "25-30"))

# Formule :
myData$NbreMorts <- myData$Tour * ceiling(1 + myData$Reputation / 8 - myData$Prix / 20)

# Calculs :
myData$Income <- computeIncome(myData$NbreMorts, myData$Prix, maxCapacity)
myData$nTomb <- myData$Tour
myData$nTomb[myData$nTomb > 15] = 15

# Moyennes :
NbreMortsMoyCaveau <- mean(myData$NbreMorts / myData$Tour)
semMoyCaveau <- 1.96 * sd(myData$NbreMorts / myData$Tour)/sqrt(length(myData$NbreMorts))
print(paste0("Nombre de morts / tour = ", round(NbreMortsMoyCaveau, 2), "\U00B1", round(semMoyCaveau, 2)))
## [1] "Nombre de morts / tour = 2.61±0.03"
NbreMortsMoyCaveauTot <- mean(myData$NbreMorts / myData$Tour * myData$nTomb)
semMoyCaveauTot <- 1.96 * sd(myData$NbreMorts / myData$Tour * myData$nTomb)/sqrt(length(myData$NbreMorts))
print(paste0("TOTAL = ", round(NbreMortsMoyCaveauTot, 2), "\U00B1", round(semMoyCaveauTot, 2)))
## [1] "TOTAL = 25.49±0.47"

Analyse - Gagner avec les caveaux demande une réputation élevée. L’income est alors exponentiel à mesure que l’on ajoute des tombes, et à réputation max 12 tours suffisent à rembourser la dette + les coûts de construction et de maintien de la réputation. En contrepartie, il est difficile d’atteindre une réputation élevée en 8 tours tout en construisant des caveaux : le joueur devra utiliser d’autres types de tombes en début de partie pour pouvoir investir dans la loge et les fleurs.

A noter également : pour une faible réputation, le caveau se remplit plus vite à bas prix (et rapporte plus à prix intermédiaire = vert et bleu), tandis qu’à réputation élevée, le joueur a intérêt à maxer le prix. Il faut donc bien ajuster le prix pour une utilisation optimale des caveaux !

b) Tombe familiale

  • Capacité : 100
  • Prix : min = 6, max = 12
  • Formule : Nombre de nouveaux morts = 1.5 * Réputation / Prix
## [1] "Nombre de morts / tour = 3.19±0.05"
## [1] "TOTAL = 50.97±0.82"

Analyse - Les tombes familiales permettent de gagner en 14 tours à réputation maximale. C’est plus que les caveaux, mais elles coûtent moins cher et constituent une bonne alternative en début/milieu de partie. Contrairement aux autres types de tombes, on peut gagner uniquement avec des tombes familiales, mais il faut optimiser sa réputation et le prix des tombes familiales

c) Tombe commune

  • Capacité : 100
  • Prix : min = 1, max = 4
  • Formule : Nombre de nouveaux morts = 5 * (3 - RacineCarrée(Prix))
## [1] "Nombre de morts / tour = 7.5±0.07"
## [1] "TOTAL = 75±1.73"

Note: normalement l’income continue d’augmenter car la tombe commune se vide progressivement (pour mieux se remplir !). Ce comportement est représenté par une income illimitée.

Analyse : Une parcelle de tombe commune se remplit en 10 tours à prix min, et en 20 tours à prix max. Sachant qu’on ne peut pas construire toutes les tombes au début, il est impossible de gagner la partie en ne jouant que des tombes communes.