Чи можна системи досягнень впроваджувати пізніше у процесі розробки?


12

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

Це функція, яку легко реалізувати пізніше, припускаючи, що я керую все та зберігаю все?


3
Я переніс певну відому гру DOS до Windows пару років тому - одна з речей, яку я хотів би додати до неї, якби ми збиралися внести якісь зміни в геймплей - були б досягненнями. Тож якби я міг додати здобутки до гри старше 10 років, явно не призначеної для цього, я б сказала, що їх можна додати де завгодно. Чорт, цей самий сайт має досягнення ..
Jari Komppa

Відповіді:


19

Ви ставите запитання з точки зору технічних можливостей реалізації чи наслідків проекту? Так чи інакше, відповідь на ваше запитання - «так».

З технічної сторони речей, загалом кажучи, ви просто знаходите гачки у своєму коді, які відповідають вашим подіям досягнення та вводите туди свій статистичний код відстеження. Можливо, вам доведеться додати нові речі, якщо ви відстежуєте речі, які не є абсолютно дискретними подіями, які вже відбуваються в грі (наприклад: X кількість відіграних годин).

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


Так, я зараз це роблю. Було досить легко з'єднатись у shotsFired++ту частину, де нові кулі примірники, і shotsHit++в ту частину, де куля вражає іншого гравця. Це допомогло тому, що я відслідковував, хто стріляв, яка куля (тому що я використовую інформацію, щоб відстежувати, хто що вбив тощо)
bobobobo

5

За умови, що ваш ігровий движок добре розроблений і використовує якусь систему спостережуваних подій (де події генеруються та прослуховуються зацікавленими сторонами), слід «легко» підключити систему досягнень у подальшому (додавши відповідні слухачі). Цей вид конструкції дуже гнучкий.


2

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

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

Ви завжди можете створити один клас (бажано однотонний) для отримання всіх подій. Тепер перерахуйте всі ваші досягнення. Потім перерахуйте всі ігрові події, необхідні для відстеження. Наприклад, наприклад, мій поточний список виглядає приблизно так

Вбийте ENEMY - ходьба, кулі СМЕРТИ ГРУЗА - падіння, відхід, здоров'я ENTER_ROOM, EXIT_ROOM тощо.

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


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