Робимо гру, частина 10 — фінішна пряма

0
1

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

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

Як не дивно, в ассембле залишилося всього три тікета. Механіка лютої атаки — якогось вирішального удару при низьких значеннях життя. Доробити механіку лікування, а саме придбання лікарських зіль за золото. І ввести власне золото і досвід як результат перемоги в бою. Ніяких складнощів.

Люта атака зайняла десять рядків коду і майже годину часу. Пив каву, проглядав новини, читав форуми, пограв в невелику іграшку. Всі ці відволікання дуже здорово заважають. Але нічого, потихеньку рухаємося. Можливо просто вже не вистачає інтересу. Як я помічав раніше — вже втомився від гри-битви. Але досвід все одно чудовий.

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

Код знову набуває якісь моторошні форми. По-хорошому потрібно переписати всі втретє, винісши однотипні завдання в окремі файли або об’єднавши за функціями. Але це нескінченний процес, так що будемо закінчувати з тим, що є.

І ось всі тікети закриті, а на питання «що ще додати» немає очевидної відповіді. Може бути зараз і варто зупинитися? Думаю, грі не вистачає ще однієї сесії розробки, в якій буде зроблено для застосування досвіду і поправлений баланс зброї. Але в цілому, для освітнього проекту, всі цілі виконані. Є робочий ігровий цикл, взаємодія з користувачем, смужки життів і кнопочки…

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

В ексель була зроблена простенька табличка з графіком. На його підставі характеристики зброї приводилися до приємного увазі, на око. Вийшло досить плавно. Меч збалансований у всіх відносинах. Інші види могутніше, але шанс критичного удару зменшується. Кинджал найслабший, але з високим шансом. Думаю, як прототип балансу — цілком непогано. Переніс цифри в гру.

Залишився досвід. Що з ним можна зробити? Ну, розумно буде за нього підвищувати якісь ігрові параметри. У нас це шанс критичного удару і здоров’я. Перше чіпати не будемо, щоб не вбивати баланс зовсім вже. А ось здоров’я варто збільшити, враховуючи плаваюче значення життів противника. Ще годину млявої роботи і можна прокачуватися до 150 життів, а складність ворога кілька підлаштовується під гравця. Приголомшливо.

Версію 0.8 ми пропустили, вона є тільки на репозитарії. А ось версію 0.9 можна помацати в кінці запису.

Список змін версії 0.8-0.9:

  • купівля зілля лікування
  • нарахування досвіду та золота
  • люта атака
  • підвищення здоров’я за досвід
  • левелинг ворога
  • коригування балансу

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

Робимо гру: вступна | підготовка | перші кроки | додаємо функціонал | планомірний рух | перезавантаження (краща частина, імхо) | зберігаємо дані | арсенал | ривок | механіка | фінішна пряма | фініш

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here