Comment créer une fonctionnalité Ghost Replay dans un jeu?

19

Lorsque vous définissez un meilleur temps personnel dans un jeu de course sur console, vous avez la possibilité de rivaliser avec votre fantôme.

Comment cette fonctionnalité peut-elle être créée pour un jeu de type occasionnel solo?

claude keller
la source
2
+1 Question intéressante pour celui qui n'est qu'un débutant en développement de jeux (moi). =)
Will Marcouiller
Si vous pouviez nous dire de quel type de jeu il s'agit, nous pourrions vous aider plus précisément.
AttackingHobo

Réponses:

10

Les fantômes sont généralement réalisés en affichant une relecture d'une tentative précédente. Ce replay est rendu avec une version non collidable de la voiture des joueurs afin que vous ne puissiez pas l'affecter. Étant donné que les jeux de course ont souvent une fonction de relecture de toute façon, ce type de jeu est gratuit.

Voici un bon point de départ pour construire un système de relecture: http://www.gamasutra.com/view/feature/2029/developing_your_own_replay_system.php

Il y a aussi un certain nombre de questions ici sur ce sujet:

wkerslake
la source
+1 Je viens d'apprendre quelque chose de nouveau avec votre réponse, merci! =)
Will Marcouiller
1

Cela dépend de la technologie avec laquelle vous travaillez. Par conséquent, nous ne pouvons pas vraiment discuter de la meilleure façon, car elle pourrait changer d'une technologie à l'autre. L'idée grossière à mon avis serait la suivante:

  1. Utilisez un magasin de données sous-jacent pour conserver vos données (XML, cookies, base de données, CSV, autres ...);
  2. Travaillez votre accès aux données à ce magasin de données sous-jacent;
  3. Vous devez conserver des informations sur le meilleur score d'un joueur, donc un identifiant est requis (email, nom de saisie, sinon ...);
  4. Associez ce meilleur score à l'identifiant d'une manière ou d'une autre.

En bref, en supposant l'utilisation d'une base de données, nous pourrions avoir deux tables:

  1. Données utilisateurs / joueurs (identifiant, email, etc.);
  2. Meilleures données d'informations du tableau de bord.

Ensuite, vous pouvez enregistrer les informations utilisateur avec un tableau de bord individuel qui pourrait, si vous le souhaitez, contenir un registre de date et d'heure indiquant quand ce score a été atteint.

J'espère que cela aide et que j'ai bien compris la question. Sinon, veuillez le dire afin que je puisse modifier ma réponse en conséquence.

Will Marcouiller
la source
3
Je pense qu'il est probablement à la recherche d'un mécanisme d'enregistrement / lecture pour y parvenir. L'environnement de jeu déterministe, le suivi des événements qui changent les choses (entrée du joueur par exemple) et autres sont généralement les moyens recommandés pour y parvenir.
James
Merci pour votre contribution James! Ce sont des choses que je ne connais pas, bien que ma réponse soit aussi une approche facile à faire, humblement. Cependant, je suis intéressé à en savoir plus sur le sujet. Oh et, +1 pour votre commentaire, cela m'apprend qu'il existe une autre approche réalisable. =) Merci! =)
Will Marcouiller
je suis vraiment désolé pour ce goof-up j'apprends toujours les bases grâce aux deux pour vos informations, je ne peux pas vraiment répondre avec des connaissances appropriées parce que je n'en possède pas. ce que je veux accomplir, c'est chaque fois que j'essaie de battre mon meilleur score personnel que je vois à l'écran un fantôme (replay) de la façon dont j'ai joué le jeu quand j'ai fixé mon meilleur score
claude keller
@ Voulez-vous lui fournir des informations sur ce qui pourrait être fait pour une configuration multijoueur, une fois qu'il aura trouvé la réponse à sa question sur un jeu solo. Sa question est de savoir comment créer le fantôme en premier lieu.
AttackingHobo
@AttackingHobo: Merci de me l'avoir dit. En fait, j'ai compris à partir du commentaire de James à propos de l'enregistrement, puis après avoir lu la réponse de wkerslake, je comprends maintenant mieux ce qui est demandé par l'OP. De plus, vous avez raison de dire que ma configuration proposée est plus susceptible d'être utilisée dans une configuration multijoueur. Hé, j'apprends encore ici, et merci d'avoir permis de grandir mieux! Le développement de jeux est toujours une nouvelle astuce pour moi, même si je suis un développeur expérimenté. =) Merci pour votre commentaire AttackingHobo! =)
Will Marcouiller
1

Ce n'est pas facile de répondre à cette question sans avoir plus d'informations sur votre jeu. La réponse de wkerslake fonctionne tant que la lecture en cours avec le fantôme ne peut pas affecter le déterminisme des données fantômes enregistrées. Si les données enregistrées sont un contre-la-montre d'une seule voiture dans un environnement statique, vous devriez utiliser cette technique correctement.

Cependant, dans de nombreux jeux avec lecture fantôme, comme Super Meat Boy, la position du joueur peut changer l'état du niveau et de l'IA. De toute évidence, vous ne pouvez pas avoir le fantôme affectant le monde et l'IA, il serait donc préférable d'enregistrer simplement les changements de position + d'animation (et tout autre élément visible) à chaque image pour le joueur principal. Pendant la lecture, restituez simplement le fantôme à l'emplacement actuel et au cadre d'animation sans qu'il soit dans le monde. Cela vous permet de lire un fantôme et de ne pas affecter le lecteur actuel.

Lathentar
la source