Як створити функцію Ghost Replay в грі?


19

Коли ви встановлюєте найкращий особистий час на колінах у грі з консольною гонкою, у вас є можливість змагатися зі своїм привидом.

Як цю функцію можна створити для однієї гри в стилі casual type?


2
+1 Цікаве запитання для того, хто лише новачок у розробці гри (мені). =)
Буде Маркуйлер

Якщо ви скажете нам, що це за гра, ми могли б допомогти вам конкретніше.
AttackingHobo

Відповіді:


10

Привиди зазвичай робляться шляхом відображення повторної попередньої спроби. Це повторення надається з незбірною версією машини гравців, щоб ви не могли на неї вплинути. Оскільки у гоночних іграх все-таки є функція повторення, такий вид походить безкоштовно.

Ось хороша відправна точка для створення системи перегляду: http://www.gamasutra.com/view/feature/2029/developing_your_own_replay_system.php

Також на цю тему є ряд питань:


+1 Просто дізнався щось нове з вашою відповіддю, дякую! =)
Буде Маркуйлер

1

Це залежить від технології, з якою ви працюєте. Отже, ми не можемо реально обговорити найкращий спосіб, оскільки це може змінитися від технології до іншої. На мою думку, груба ідея буде такою:

  1. Використовуйте базовий сховище даних для збереження ваших даних (XML, файли cookie, база даних, CSV та інші ...);
  2. Опрацюйте доступ своїх даних до цього базового сховища даних;
  3. Вам потрібно зберігати інформацію про найкращий рахунок гравця, тому потрібен ідентифікатор (електронна пошта, ім'я вводу, інше ...);
  4. Так чи інакше пов’язати цю найкращу оцінку з ідентифікатором.

Коротше кажучи, припускаючи використання бази даних, ми могли б мати дві таблиці:

  1. Дані користувачів / гравців (ідентифікатор, електронна пошта тощо);
  2. Дані щодо найкращої інформації на табло

Тоді ви можете зберегти інформацію про користувача разом із індивідуальним табло, яке може, за бажанням, містити реєстр дати та часу щодо того, коли цей результат досягнуто.

Я сподіваюся, що це допомагає і що я правильно зрозумів питання. В іншому випадку, будь ласка, скажіть, щоб я міг відповідно відредагувати свою відповідь.


3
Я думаю, що він, ймовірно, шукає механізм запису / відтворення для цього. Детерміновані ігрові умови, відстеження подій, які змінюють речі (наприклад, введення гравця) тощо, зазвичай є рекомендованими способами цього.
Джеймс

Дякуємо за ваш внесок Джеймс! Це речі, про які я не знаю, хоча моя відповідь також легко підходить, покірно. Однак мені цікаво дізнатись більше по темі. О, і +1 для вашого коментаря, це вчить мене, що є й інший виконаний підхід. =) Дякую! =)
Буде Маркуйлер

Мені дуже шкода цього скандалу, я все ще вивчаю основи завдяки обом за вашу інформацію, я не можу реально відповісти належними знаннями, тому що я не володію жодною. що я хочу досягти - це кожен раз, коли я намагаюся перемогти свій особистий високий бал, який бачу на екрані привид (повтор) того, як я грав у гру, коли я встановлював свій високий бал
Клод Келлер

@ Чи будете ви повідомляти йому інформацію про те, що можна було б зробити для налаштування для кількох гравців, як тільки він насправді з’ясує відповідь на своє запитання про одиночну гру. Його питання полягає в тому, як створити привид в першу чергу.
AttackingHobo

@AttackingHobo: Дякую, що розповіли мені. Я насправді з'ясував із коментаря Джеймса про записуючу річ, тоді, прочитавши відповідь wkerslake, я тепер краще зрозумів, що запитує ОП. Убік, ви праві, говорячи про те, що запропонована установка скоріше буде використовуватись у програмах для кількох гравців. Гей, я все ще вчуся тут, і дякую за те, що дозволили рости краще! Розробка ігор все ще є новим трюком для мене, хоча я досвідчений розробник. =) Дякуємо за ваш коментар AttackingHobo! =)
Буде Маркуйлер

1

Відповісти на це питання непросто, не маючи більше інформації про вашу гру. Відповідь від wkerslake працює до тих пір, поки поточна ситуація з привидом не може вплинути на детермінізм записаних даних про привид. Якщо записані дані є однією пробою часу автомобіля у статичному середовищі, вам слід буде добре використовувати цю техніку.

Однак у багатьох іграх з привидним відтворенням, наприклад, Super Meat Boy, положення гравця може змінити стан рівня та AI. Зрозуміло, у вас не може бути привид, що впливає на світ та AI, тому може бути краще просто записати зміни + анімація (і все інше, що видно) кожен кадр основного гравця. Під час відтворення просто виведіть привид у поточне місце розташування та анімаційний кадр, не маючи його у світі. Це дозволяє відтворювати привид і не впливати на нього поточного гравця.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.