Привіт! Сьогодні я написав невеличкий топік на тему створення системи ковальства та крафту в моїй грі Our Freedom, яку я роблю самотужки.
Відео з результатом:
Про гру
Почну з невеликого опису гру для тих, хто бачить її вперше: Our Freedom — це 2D пригодницька RPG у відкритому середньовічному світі. Ви граєте за Вільяма, звичайного хлопця, на долю якого випали важкі випробування: війна, смерть близьких, новий дім, великі битви і не тільки.
На своєму шляху головний герой зробить багато важких і важливих виборів, вибере шлях, яким піде, знайде нову сім’ю, нових друзів, здобуде важливі перемоги та по-справжньому змінить світ!
В плані геймплею гра натхненна переважно Mount & Blade, Stardew Valley та Skyrim. Ви можете як захоплювати аванпости розбійників, грабувати торговців, відбиватись від атак ворожого королівства, так і просто займатись спокійними справами, такими як риболовля, фермерство, торгівля, або ж ковальство, про яке я сьогодні і розповім.
Початок створення
Перед початком створення системи ковальства я був дуже незадоволений архітектурою інвентарів в грі. Проєкт виріс з маленької гри про бої на арені до великої RPG у відкритому світі дуже швидко, а архітектура залишилась на рівні техно-демки. Тому першим етапом було підготувати архітектуру проєкт до додавання таких великих фіч як крафт, ковальство, торгівлю і тому подібні.
Етап рефакторингу коду я дуже не люблю, але він максимально важливий в контексті розширення проєкт та додавання нових фіч. Після ре факторингу архітектура інвентарів стала дуже проста — кожен об’єкт для взаємодії (піч, верстак) та гравець мають свої контейнери предметів та окремий скрипт, який виводить з контейнерів інформацію на інтерфейс. Такий гнучкий підхід дав мені можливість швидко додавати нові інтерфейси, буквально для будь-якого об’єкта, в тому числі скрині, що представлені на відео, я додав за 10 хвилин, з яких 9 — малював їх.
Механіка перенесення предметів та інтерфейси
Як ви можете бачити на відео, головний герой може переносити важкі предмети в руках — форму для плавки, розпечене лезо. Наразі ця механіка ще в процесі, адже виглядає нелогічно, коли розпечене лезо переноситься голими руками, але цей момент буде допрацьовано.
Цю механіку я додав в першу чергу для того, щоб у гравця була більша імерсивність та занурення в процес створення предмета, адже коли гравець бачить тільки іконки предметів, що рухаються по клітинках інтерфейсу, він набагато менше буде відчувати, що доклав руку до створення нового інструменту чи зброї. З тієї ж причини було прийнято рішення відмалювати інтерфейси об’єктів не просто з клітинок і панелей, а саме з візуалізацією того об’єкта, на якому зараз працює головний герой.
В грі я хочу досягнути максимально можливої атмосферності та занурення, адже, як на мене, це саме те, для чого багато хто і грає в ігри. Важлива задача зробити світ, який навіть не виглядаючи гіперреалістично, буде затягувати і захоплювати увагу гравця.
Інтерактивність
Повертаючись до теми імерсивності, варто також відзначити міні-ігри, які я додав на етапі кування і які планую додавати у всі великі механіки в грі. Дуже важливо не додати їх занадто багато, щоб на двадцятій годині проходження не було бажання кинути геймпад в монітор після десятитисячної витягнутої риби в одноманітної міні-гри під час рибалки. Але при цьому я дуже хочу, щоб гравець в битві з розбійниками згадав, як він створював цей меч і як більш якісний удар молотом в більш точний момент міг би дати додаткові 10% нанесеної ворогу шкоди, що, можливо, в майбутньому врятувало б його ігрове життя.
Від точності попадань молотом залежить як якість меча чи інструмента, так і його ціна, якщо гравець забажає продати свій виріб.
Ціноутворення та генерація історій
Говорячи вже про торгівлю, важливо зазначити, що ресурси для своїх виробів треба десь брати. Один з варіантів — купити їх у торговців, таким чином чистий прибуток буде менший, але зекономлений час може все окупити. Інший же варіант — деякі ресурси можна добути, а деякі навіть вкрасти.
Коли гравець часто купує одні і ті ж ресурси у одного і того ж торговця, то ціни на товар можуть значно вирости, тому є сенс піти в інше селище чи місто, витратити час, але зекономити грошей на матеріалах. Все це буде генерувати історії. Лише уявіть, як ви закупили ресурсів на всі свої гроші, вже плануєте зробити нову партію лопат для продажу, але на шляху до кузні на вас нападають розбійники і все у вас забирають, після чого залишається лиш один варіант — відшукати їх табір напасти і забрати своє в битві, або ж прокрастись і непомітно витягнути свої речі зі скрині. А на початку ви всього лиш хотіли зекономити пару монет.
Крафт
Наразі це останній етап створення зброї, але в майбутньому я планую додати також заточення леза на точильному камені і обіграти це як міні-гру. Крафт наразі доволі простий і потребує лишень викласти в слоти верстака предмети, що закладені в рецепті. Від рівня майстерності головного героя залежить якість фінального виробу. Тобто на якість впливають:
- Якість матеріалів,
- Майстерність гравця в міні-іграх,
- Рівень навичок головного героя,
- Трошки рандому.
Квест, озвучка та субтитри
Куди ж без цього елементу кожної RPG. Перший досвід ковальства гравець отримає в одному ж з перших квестів гри. По сюжету наш майстер, який навчає головного героя фехтуванню, в минулому був ковалем, тому у нього ще є працююча кузня і деякі ресурси. На одному з тренувань у головного героя ламається шабля, тому він вирішив зробити нову. Саме так починається квест «Blacksmithing!». Під час цього квесту гравця навчають всьому процесу створення шаблі. І тут не обійшлось без імерсивності, адже навчати гравця буде сам головний герой, який по суті просто згадує процес, попутно проговорюючи його в голос. Окрім цього знизу екрана є субтитри, що дублюють слова головного героя.
Поточний стан проєкту
Наразі я готую демку до Steam Next Fest, який пройде вже цієї осені. В ній буде представлено 2 сюжетні епізоди, а вся демка має проходитись за 50-90 хвилин. Роботи ще дуже багато, тому на цьому моя міні-стаття завершується, а я відправляюсь фіксити баги і працювати над сюжетом. Дякую за прочитання!
Додати гру в вішліст можна за посиланням:
https://store.steampowered.com/app/2758190/Our_Freedom/?l=ukrainian
Слідкувати за розробкою можна в:
Twitter: https://x.com/CodeMyGod1
Instagram: www.instagram.com/our.freedom.rpg
Топ коментарі (0)