Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Регистрируясь, я даю согласие на обработку данных и условия почтовых рассылок.
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр Разгадывайте увлекательные головоломки «три в ряд» и отправляйтесь в захватывающее приключение! Преодолевайте яркие и насыщенные уровни, чтобы раскрыть новую главу доброй и современной истории о мышонке и его верных друзьях!

Мышонок Шон

Казуальные, Три в ряд, Головоломки

Играть

Топ прошлой недели

  • solenakrivetka solenakrivetka 7 постов
  • Animalrescueed Animalrescueed 53 поста
  • ia.panorama ia.panorama 12 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая «Подписаться», я даю согласие на обработку данных и условия почтовых рассылок.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
0 просмотренных постов скрыто
6
Ineedanewnikname
Ineedanewnikname

Пару слов о "Of Ash and Steel"⁠⁠

6 дней назад

В сети «Of Ash and Steel» принято хвалить.  «в основном положительные отзывы» в  Steam, под видео на YouTube — подбадривающие комментарии. На фоне печально известной «Смуты» создается впечатление, что перед нами на редкость годный проект. Так ли это? В этом я и постарался разобраться.

С игрой я познакомился еще до релиза, в открытом плейтесте. На тот момент был доступен пролог и небольшой кусочек будущего мира. Откатав часа два-три, я тогда решил, что буду ждать релиз. Сходство с играми Piranha Bytes подкупало, пусть билд и был очень сырым. «Ну а чего я хочу от плейтеста? К релизу игру допилят, правда? Ну ведь правда?»

Спойлер: нет. Ничего не допилили. В релизной версии я увидел всё то же самое, что было в плейтесте (даже немного хуже — в ранней версии арбалеты хотя бы стреляли). Анимации остались кривыми, а мини-игры, в частности рыбалка, — абсолютно неинтересными. Но обо всем по порядку.

Графика: Ностальгия по Elex

Игра сделана на Unreal Engine 4. На этом движке вышли, к примеру, Atomic Heart и Lies of P. Ладно, не будем сравнивать маленькую студию с гигантами — это несправедливо. Но ведь на этом же движке вышел Stray от команды в 30 человек, Kena: Bridge of Spirits от 20 сотрудников Emergent Labs и Vladik Brutal, которую делал один, собственно, Владик.

При этом Of Ash and Steel умудряется выглядеть и играться как Elex, выпущенный в 2017 году на не самом технологичном Genome Engine. Учитывая, что сама Piranha Bytes никогда не славилась современной графикой, как Firefrost (разработчики данной игры) ухитрились сделать такое в 2025-м — черт его знает. (Буквально в процессе игры ко мне подошла девушка и спросила, зачем я опять в «старье» играю.)

Но окей, графоний не отвратительный, глаза не вытекают. И ладно. Главное ведь не это, главное — геймплей.

ГГ даже чем то похожи

ГГ даже чем то похожи

мимикой дерева

мимикой дерева

Ну красота же

Ну красота же

Геймплей: Сильные и слабые стороны

И тут игру есть за что похвалить. Многое почерпнуто у Piranha Bytes (я буду часто их упоминать, простите). Под наше управление дают не умудренного опытом вояку, а обычного паренька-картографа, который волей судеб втянут в приключение. А поэтому учиться всему нам предстоит в процессе.

Система прокачки классическая: за квесты, убийства и кражу получаем опыт, который конвертируется в уровни. За уровни дают очки характеристик и умений. Первые можно распределять свободно, для вторых нужен учитель, которому нужно платить. Прям как у «Пираний»!

Навыки есть как боевые, так и для крафта: варка зелий, заточка оружия, укрепление доспехов. Все это — однозначно положительный аспект. В процессе прокачки хорошо ощущается прогрессия: добрался по статам до нового меча — и вот уже молодой клыкарь отлетает с тычки. Это приятно и мотивирует развивать свои «циферки» (а не как в Oblivion, да, Тодд?).

Кроме этого «Циферки» дают зелья разбросанные по миру или скрафченные самостоятельно, (прям как у «Пираний»), пристройки к дому (да, дом можно купить) и перки за достижения (убил N врагов, прочел N книг съел N морковок и т.д.).

На этом, пожалуй, о плюсах закончим и перейдем к боевке.

Боевая система: Лотерея вместо мастерства

Если вы играли во что-то от… (вы поняли) — система будет вам знакома. С тем исключением, что здесь всё завязано на выносливости: удары, блоки, увороты ее тратят. В целом выглядит топорно, но это можно было бы простить, если бы всё работало адекватно.

Но нет, не работает. Искусственный интеллект — он, как бы сказать, больше «искусственный», чем «интеллект». Враги застревают в текстурах, не умеют забираться на уступы (буквально), не прыгают через заборы. Крупные противники не проходят в арки и двери, даже если визуально должны помещаться. Клыкари, которые должны быть маневренными, могут тупить на месте, а потом резко телепортироваться вам за спину или на ебало.

Всё это превращает скилозависимую (в теории) систему в лотерею. Повезло — убил. Не повезло — F9 и следующий подход. Я еще не прокачал всю ветку умений, чтобы увидеть фехтование во всей красе, но, кажется, в этом мало смысла из-за вышеописанных проблем.

Легенда о волке в камне

Легенда о волке в камне

Мини-игры: Та за шо ?

Рыбалка, взлом, заточка оружия, добыча ресурсов — всё это сопровождается мини-играми. Убогими, кривыми, нудными. Я поставил моды на скип всего этого на второй день игры, и дышать сразу стало легче. Серьезно, не мучайтесь — это абсолютно чужеродная и плохо сделанная механика.

Увлекательно жму 2 кнопки мыши

Увлекательно жму 2 кнопки мыши

Исследование мира: Выстрел в ногу под видом хардкора

Мир надо изучать. Пешком. Я его дам. Для этого нужна карта. Карту я не дам.

Дай карту

Дай карту

Серьезно, в начале игры карту вам не дадут. Прям как у «Пираний». Только у «Пираний» ее можно было купить в первом же городе, а здесь инструменты картографа найдутся лишь во второй главе. А чтобы карта открылась, нужно пройти 11 точек и зарисовать участки, которые находятся в «темной» зоне. Ищи на ощупь.

Да, нужно слушать подсказки NPC, но на практике это нихера не помогает. В итоге ты бегаешь от точки к точке по миру просто чтобы открыть карту, либо пользуешься гайдами, как сделал я. Увлекательно? По-моему, охрененно.

Но вот карта открыта, жизнь облегчилась? Хрен там. Метку на карте можешь поставить только ты сам. Игра этого не делает. Персонаж говорит: «Твоя цель сейчас на болотах, пиздуй». А где, блять, болота? Что на этой карте болота? И так во всём.

Болота ?

Болота ?

Это даже геймплейно нелогично: нам дают аналог GLONASS (мы видим свою иконку на карте!), но картограф не может сам отметить цель.

Двигаться придется много. Мир не маленький, транспорта и телепортов (на момент второй главы) нет. Выносливость тратится на спринт, поэтому изучать мир будем трусцой, долго и нудно.

Ко всему этому добавили механику падения в лужу и спотыкания о ветки. Тот, кто это придумал, настолько гордился собой, что рассовал эти прелести на каждом шагу. Анимация падения, лежания, подъема и отряхивания длится секунд 20. На 10-й раз за сессию смотреть на это люто заебывает. Потом, конечно, появится перк, и вы перестанете спотыкаться, но на лужи будете смотреть с опаской. Эта травма — навсегда.

Ай

Ай

Больно смотреть

Больно смотреть

Освещение и оптимизация: Дерганый мир

Напомню, игра выглядит как релиз десятилетней давности. Но моя RTX 4070 в городе выдает лишь 60-80 FPS с рваным фреймтаймом, из-за чего картинка дергается. Нельзя сказать, что они не пытались в оптимизацию - пытались: игра использует LOD-ы (разные модели для разного расстояния, такой же принцип использован, к примеру, в недавней Arc Raiders). Но в Of Ash and Steel они работают на полную катушку: модели меняются в метре от персонажа. Мы видим, как дворники метут улицы в 10 FPS, а вояки покадрово отрабатывают пируэты.

Я не зря объединил освещение и оптимизацию. Потому что LOD-ы текстур выглядят еще «лучше». Подходишь к дереву — и на глазах ствол раздваивается, а ветки растут в другие стороны. Освещение тоже меняется рывками в зависимости от приближения. В купе с дергаными текстурами бег по местности может вызвать эпилепсию.

Вот дерево

Вот дерево

тоже самое дерево

тоже самое дерево

Квесты: Беги, ищи, не вспомнишь

Ух, ну за интересные квесты можно было бы всё простить. Увлекательный сюжет всё вытащит! Но... На данный момент не было ни одного запоминающегося квеста. Не буду спойлерить, опишу суть: искал город, добежал до города, нашел капитана, нашел замок, главный послал собрать рыцарей, я побежал искать, для каждого рыцаря нужно было что-то найти, потом побежал искать бывшего рыцаря... Бегать и искать. По дороге — бить кого можешь и убегать от тех, кого не можешь.

И это еще пол беды в некоторых квестах нам дают напарников. И если напарник куда-то тебя ведет, он понял жизнь, он не спешит, все они идут пешком и если ты их немного обгонишь они просто останавливаются. Я шел до лагеря бандитов с Ирвином пешком минут 5-10 реального времени, ничего не происходило, мы просто шли пешком, при чем мой персонаж пешком идет быстрее Ирвина и мне еще приходилось его ждать местами ЭТО. ПРОСТО. ОХУЕННО на кончиках пальцев, боже ж ты мой.

Ждет меня, пока вернусь

Ждет меня, пока вернусь

Потом мы пошли в данж с муравьями-переростками. Ну как «мы» ... Ирвин с криком «ЛЕРООООЙ ДЖЕЕЕНКИНС» врывался в толпу муравьев, а я старался ему не мешать, потому что коридоры узкие и вдвоем, так сказать плечом к плечу, мы биться не могли, потом этот дятел заблокировал своей тушкой выход из комнаты и пришлось перезагружать, вот, пожалуй, самый запоминающийся для меня квест в игре

Ты не пройдешь

Ты не пройдешь

Баги: Слон в комнате

Про баги нельзя не сказать. Часть я описал выше, но есть и классика: летающие предметы и NPC, исчезнувшие квестовые персонажи, пропажа вещей из инвентаря. У меня был лук и два арбалета. Я поменял лук на один арбалет — и у меня стало три одинаковых арбалета. Лук и второй арбалет исчезли. Как? Почему? Впоследствии этот баг повторялся.

Три раза я проваливался под текстуры, потому что мир не успевал подгружаться. Под картой — море, так что не разобьетесь. Разрабы все продумали. Арбалеты, кстати, не стреляют. Они просто красивые.

Вот мои 3 арбалета вместо лука

Вот мои 3 арбалета вместо лука

1 раз я зашел в игру и не мог прыгать, вылечил перезагрузкой. Выше я писал, что большие мобы в двери не пролазят, но это актуально и для нашего персонажа, эго у нас очень широкое и не в каждую дверь влезет, особенно если она полузакрыта или над нами висят цепи, все это непроходимые препятствия, с мечом наш картограф прыгать не умеет и перешагнуть может не все, к примеру можно пятиться назад и застрять в ветке и за чего на вас прыгнет волк\крыса\бандит и F9, при чем понять заранее что он перешагнет а что нет невозможно.

Ну как ты протиснешься то

Ну как ты протиснешься то

Цепь в голову упирается

Цепь в голову упирается

Вывод

Несмотря на всё вышесказанное, это не прям плохая игра. Любители той же «Готики» найдут, чем в ней заняться.

Но прежде, чем защищать ее «по поводу и без», хочу напомнить: студия выпустила это как готовый продукт и просит за него денег. Да, в их студии 15 человек. Но если двое делали ракету, а получилось ведро с гайками, вы же не станете говорить: «А чё ты хотел, их же всего двое»?

Важен конечный результат. А он, к сожалению, очень и очень спорный.

Показать полностью 16
[моё] Игры Компьютерные игры Российский игрострой Геймеры Обзор Gameplay Мат Длиннопост
11
52
Блог компании
ggsel.net
ggsel.net
Серия Обзоры и гайды

Почему вам не стоит пропускать Of Ash and Steel⁠⁠

16 дней назад

До выхода RPG от российской команды Fire & Fost осталось совсем немного. В студии трудится всего пятнадцать человек, но их проект Of Ash and Steel уже успел привлечь внимание. Руководитель коллектива называет игру духовным продолжением «Готики», и для тех, кто когда-то провел десятки часов в ее мирах, это звучит особенно заманчиво. Мы сами относимся к числу давних поклонников этой серии, поэтому пройти мимо релиза просто невозможно.

Мы добрались до тестовой версии не сразу, и это оказалось удачным совпадением: до выхода полной игры осталось совсем немного времени. Перед нами был самый ранний вариант проекта, который со временем получит все необходимые доработки. Тем не менее даже в таком виде он сумел удержать наше внимание почти на десять часов, а исследование компактной, но насыщенной территории принесло немало удовольствия.

Команда работала над игрой около четырех лет без поддержки инвесторов, фактически своими силами, и все же сумела заинтересовать издателя tinyBuild Games. В результате появилась пробная версия, пусть и сырая, но уже производящая достойное впечатление. Честно говоря, ощущения оказались очень позитивными, и теперь ожидание релиза вызывает у нас почти такие же эмоции, как и грядущий ремейк «Готики». В этом материале мы подробно остановимся на Of Ash and Steel и ее игровом мире.

Предыстория и необычный герой RPG

События разворачиваются в Королевстве Семи, названном так из-за количества островов, объединенных в союз и ведущих торговлю друг с другом. Но в какой-то момент связь с двумя островами теряется, а на третьем архипелаге, Грейшафте, начинают происходить странные события. Именно туда и отправляется игрок.

Главный персонаж в RPG — это основа впечатления. Через него раскрывается история, именно его путь задает тон встречам с другими героями и событиями. От того, насколько удачно выбран протагонист, зависит, будет ли приключение захватывающим или быстро забудется.

В Of Ash and Steel вам предлагают примерить роль молодого картографа по имени Тристан. Он родом из столицы королевства, где жизнь течет спокойно и богато. Его задача кажется простой: уточнить карты соседнего острова Грейшафт. Но едва начав работу, все идет наперекосяк.

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

Именно эта ситуация делает его особенным героем для жанра. В отличие от привычных бойцов, он не умеет обращаться с оружием и не выглядит прирожденным воином. Это сразу ставит его и игрока в уязвимое положение. Но Тристан не проявляет высокомерия и не отказывается учиться. Его неопытность заметна, но желание справиться с испытаниями компенсирует недостаток навыков.

Характер Тристана не всегда производит сильное впечатление: временами он кажется простоватым, хотя умеет разбавить диалоги легкой шуткой. На это накладываются и технические ограничения — анимация, озвучка и монтаж кат-сцен не всегда позволяют раскрыть героя ярко. Тем не менее сам выбор сделать протагонистом человека, который постепенно превращается из мирного картографа в бойца, заслуживает уважения. Это дает игроку возможность наблюдать за ростом персонажа и самому участвовать в его становлении.

Диалоги и выборы

Высадившись на острове, мы разбиваем лагерь и знакомимся с игровым процессом. Первые задания просты: например, уничтожить жуков, чтобы они не портили провизию. Параллельно мы общаемся с членами экипажа.

И здесь стоит остановиться. В этом мире разговоры и выборы в диалогах играют не меньшую роль, чем сражения. В стартовой зоне встречается множество персонажей, и каждый готов заговорить с вами. Реплики открывают разные пути — от дружбы и союзов до мелких конфликтов, которые позже могут неожиданно повлиять на развитие событий. Правда, не всегда очевидно, какая именно фраза изменит отношение NPC, поэтому игра фактически подталкивает к экспериментам и проверке всех вариантов.

Система работает неоднозначно. В одних случаях удается блеснуть красноречием и повернуть ситуацию в свою пользу, в других — разговор открывает новые задания или приносит бонусы вроде золота или оружия. Но бывают моменты, когда механика дает сбой. Иногда складывается впечатление, что вы наткнулись на сюжетную лазейку, и диалог начинает звучать странно.

Характерный пример — короткий квест из обучающей зоны, где нужно избавиться от насекомых. Если попросить у NPC оружие до выполнения задания, он откажет: мол, ничего нет. Но если заранее уничтожить вредителей, а потом завершить разговор и снова попросить оружие, персонаж вдруг без проблем вручает его, будто никаких ограничений не существовало. В такие моменты ощущается несостыковка, словно сценарий не успели довести до конца.

Подобные ситуации встречаются не слишком часто, но заметить их можно. Такие шероховатости вполне реально исправить патчами. В остальном же диалоги остаются важной частью Of Ash and Steel, задавая ритм и добавляя ощущение, что ваши слова действительно имеют вес.

Пролог

Посреди ночи на лагерь нападают и перебивают почти всех, кроме Тристана и члена ордена. Последний с самого начала был добр к нам, но в конечном итоге умирает от ран. Перед смертью он поручает доставить письмо в город членам ордена. Это становится нашей главной задачей и билетом обратно домой.

Беда не приходит одна: появляются бандиты. К счастью, не конкретно за нами, так что повезло отделаться сотрясением и потерей всего снаряжения. Однако случайный путник загружает нас в свою повозку и отвозит в избу, где мы приходим в себя.

Очнувшись, мы обшариваем жилище до последней мелочи. В основном там пустые бутылки, которые все равно пришлось бы собрать. Возможно, поэтому хозяин никак не отреагировал. На релизе в игре появится система штрафов за воровство: если жертва слабее, она не бросится с кулаками, а позовет стражника.

Наш спаситель — Нерест — обычный мародер, который показывает, что жизнь на острове кардинально отличается от столичной. В знак благодарности мы помогаем ему по хозяйству.

Игра демонстрирует взаимодействие с предметами. Например, бочки можно переносить, что добавляет элемент вертикального геймплея. Герой цепляется за уступы, и это тоже не случайно: в труднодоступных местах можно найти ценности.

Нерест рассказывает о двух фракциях — Ордене и Вольных Охотниках, между которыми предстоит сделать выбор. В зависимости от него изменятся геймплейные и сюжетные моменты.

Тут же выясняется, что записку, полученную от павшего товарища, у нас отобрали вместе с одеждой. И прежде чем выполнить главную задачу, нужно найти тех, кто поможет отыскать грабителей.

Боевка и враги

Возможностей у нас поначалу немного: владение оружием Тристана оставляет желать лучшего. Система боя сразу бросается в глаза — и не потому, что она удобна. Игра намеренно показывает, насколько ограничен главный герой в начале пути. Тристан, простой картограф, впервые берет меч в руки, и первые схватки даются ему с трудом. Удары тяжеловесны, движения неуклюжи, и игроку приходится тщательно выбирать момент для атаки или отступления. Герой быстро выдыхается уже на втором ударе, ведь в игре есть система выносливости. Увороты и парирования тоже ее расходуют.

Но именно эта слабость делает прогресс ощутимым. Постепенно, шаг за шагом, Тристан учится владеть оружием, и со временем его можно превратить в уверенного бойца. Открываются новые стойки, увеличивается серия ударов, и игрок постепенно приспосабливается к суровым условиям за пределами городских стен.

Даже к концу демки Тристан не становится мастером уровня Геральта или драконорожденного, но его навыков хватает, чтобы выжить в суровых условиях Грейшафта. А угрозы там действительно впечатляют: монстры и противники способны загнать в угол любого. В этом есть особая ностальгия — проект Fire & Frost явно стремится вернуть атмосферу классических RPG, где путь от слабого новичка до закаленного героя ощущается максимально честно.

Враги здесь пропитаны духом «Готики», но воспринимается это не как заимствование, а как дань ностальгии. Для тех, кто не играл в культовую RPG, эти монстры будут и вовсе вновинку.

К боевой системе придется привыкать. Закликать врагов не получится — они уворачиваются, герой часто промахивается. В демке есть серьезные проблемы с регистрацией попаданий: одна и та же атака может достать цель, а может пройти мимо. Из-за этого сложно быть уверенным в успехе уворота или парирования. Хочется верить, что к релизу это исправят.

Сражаться становится легче, когда открываешь боевые навыки и прокачиваешь стойки.

Навыки и ремесло

В игре есть очки способностей, которые выдаются за повышение уровня. Они прокачивают характеристики, на которых строится ваш билд. Это привычные для RPG показатели: сила, ловкость, выносливость, проницательность и крепость. Чем выше значения, тем больше открывается дополнительных функций, включая навыки, без которых в суровых условиях острова не обойтись.

По поводу билдов все скромненько. Полноценного мага нет, на релизе обещают лишь подобие знаков из «Ведьмака», которых в демке не было. По сути, выбор ограничен: либо сильный и крепкий воин, либо ловкий убийца с критами.

Однако проницательность, которая расширяет вариативность диалогов, также увеличивает критический урон. А выносливость и крепость нужны для крафтовых навыков вроде кузнечного дела.

Система навыков оформлена в виде древовидных веток, напоминающих классические RPG вроде Skyrim. Есть направления «Выживание», «Крафт» и «Боевая» — каждое со своим набором умений, способных изменить ход событий. Навыки изучаются у NPC-наставников.

Путь к новым умениям не прост: одних очков недостаточно. Нужно заплатить за обучение и иметь нужное количество характеристик. Есть и перки, но о них подробнее узнаем уже на релизе.

Требования к характеристикам довольно высокие даже на сюжетном режиме сложности. Например, навык «Базовое выживание», позволяющий разводить костры, требует серьезных вложений, хотя подобные действия обычно считаются элементарными.

Дальше сложность растет: для изучения новых умений нужны все более высокие показатели и внушительные суммы золота. Некоторые навыки стоят сотни монет, другие — тысячи. При этом добывать золото на ранних этапах непросто, и приходится тратить все до последнего.

В целом прокачка выглядит комплексно. Придется думать, куда вкладывать очки, чтобы не заруинить билд.

До полноценного крафта мы не добрались — в демке толком нет рецептов. Удалось лишь попробовать заточку. Она выполнена в виде мини-игры: насколько безупречно выполняются условия, настолько качественным будет результат. При каждой попытке расходуются инструменты.

Квесты

О них мы много не расскажем. Если игра вас заинтересует, будет куда интереснее разобраться самостоятельно. Даже на стартовой локации квесты оказываются запутанными и требуют внимательности. Иногда приходится включать голову и искать нестандартные решения. Самое важное — внимательно читать записки. В них зачастую прямым текстом указано, где найти нужный предмет или как попасть в определенное место. Игнорировать такие подсказки не стоит: именно они помогают двигаться дальше.

Навигация и интерфейс

Особый интерес вызывает то, что в игре нет привычных квестовых маркеров. Авторы из Fire & Frost открыто заявляют: «заблудиться и погибнуть в лесах — часть задуманного опыта». Для RPG с открытым миром это звучит логично. Любопытство всегда связано с риском, и именно это ощущение разработчики стремятся передать. Однако игроки воспринимают такой подход по-разному. Кому-то достаточно намеков, а другим нужны более четкие подсказки. Если их нет, часть аудитории чувствует себя потерянной и буквально выброшенной из процесса.

На самом деле все не так сложно. Карта, по словам разработчиков, не будет огромной. Напротив, она станет более локальной, насыщенной и структурно понятной. В итоге это даст полное погружение в мир игры: мы будем знать каждую тропинку и каждое дерево так же, как свой район.

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

Куда именно идти, придется узнавать из диалогов. А вот поиск квестовых предметов будет проще: они подсвечиваются, что избавляет от лишних трудностей.

Точки интереса

В открытом мире хватает и простых активностей, которые напрямую ни на что не влияют, но добавляют атмосферу. Например, можно найти записку у скелета за решеткой. За ним стоит статуя, и у игрока сразу возникает желание попасть туда. Но никаких рычагов или способов открыть решетку нет. Только записка, из которой узнаем, что бедняга оказался там после пьянки и сам не помнит как.

Игра подсказывает: попасть туда можно, если напиться до состояния «нестояния». Мы пробуем — и действительно каким-то чудом оказываемся за решеткой. Логики в этом мало, но результат радует: там лежит зелье, навсегда повышающее ловкость на +1.

После такого неочевидного мини-квеста игроки наверняка начнут совершать максимально нелогичные действия, надеясь на новые открытия. И кто знает, какие тайны они найдут.

Разработчики обещают множество сокровищ. Поэтому важным предметом станет лопата. Она одноразовая, что ограничивает возможность копать бесконечно, но при этом стимулирует внимательность: подсказки о местах кладов можно услышать в диалогах или заметить в окружении.

Элементы выживания (ну почти)

Тристану нужно пить, есть и спать. Поэтому готовить и отдыхать придется. Однако смерть от нехватки этих потребностей не наступает — лишь накладываются дебафы на здоровье и выносливость. С другой стороны, чем лучше еда, тем сильнее баф.

В игре можно будет построить собственный дом. Даже в демке один из NPC упоминает об этом. Скорее всего именно он познакомит нас с этой механикой в будущем.

Необычные механики

Одна из самых запоминающихся деталей — главный герой может подскользнуться, если бежит спринтом. В самом начале игра словно нарочно подталкивает нас к этому: прямо перед лужей появляется подсказка «побеги», и Тристан тут же падает на спину. Ситуация выглядит комично, но служит очевидным уроком — мир не прощает невнимательности.

С палками на дороге или в лесу все сложнее: они заметны плохо, но о них тоже можно споткнуться. Причем это касается не только героя, но и врагов, которые бегут за ним. В результате случаются забавные моменты, когда противник сам оказывается на земле.

Спринт активируется двойным нажатием клавиши Shift. Одиночное нажатие включает легкий бег, а по умолчанию герой идет пешком. Решение выглядит необычно и не слишком удобно, будто разработчики сознательно решили выделиться именно в этом моменте.

Важная особенность — отсутствие автолевелинга. Здесь есть зоны, куда попасть на ранних этапах невозможно: враги слишком сильны. Но позже, прокачавшись, можно вернуться и отыграться за прошлые обиды.

Визуал и оптимизация

В целом игра демонстрирует хорошую оптимизацию и работает на проверенном временем Unreal Engine 4. Благодаря этому она не слишком требовательна к железу, выглядит приятно и, по словам разработчиков, способна идти плавно даже на слабых ПК.

Визуальный стиль оставляет положительное впечатление, однако есть вопросы к освещению. Например, туман выглядит так, будто яркость выкручена на максимум, а контрастность — на минимум. Ночи в игре действительно темные, поэтому без факела не обойтись. Но огонь освещает главным образом самого Тристана, а не окружающее пространство, из-за чего факел кажется почти бесполезным.

Куда более заметной проблемой становятся светящиеся кристаллы и грибы. Их яркость настолько велика, что приходится буквально щуриться. Если первые два пункта можно объяснить ограниченным бюджетом, то здесь напрашивается простое решение — снизить интенсивность свечения.

В демоверсии, конечно, встречается множество других проблем, например застревание в текстурах. На такие моменты Fire & Frost должны обратить внимание и исправить их к релизу, на что мы очень рассчитываем.

Итоги и перспективы

Заключительные впечатления от Of Ash and Steel складываются преимущественно положительные. Перед нами удивительно насыщенный проект: помимо основной кампании разработчики добавили режим Arena Master, где можно проверить себя в дополнительных боях. Для молодой независимой студии такой объем контента — редкость, и это сразу бросается в глаза. Игра явно создавалась как дань уважения классическим RPG начала 2000‑х, и внимание к деталям подтверждает это на каждом шаге.

Тем не менее есть моменты, где авторы, похоже, стремились выделиться любой ценой. Отсутствие привычных элементов интерфейса и навигации могут отпугнуть часть аудитории. Диалоги пока выглядят сыровато, а кат‑сцены временами производят неловкое впечатление. Все это не критично, но заметно.

Если разработчики успели исправить подобные недочеты к релизу или уделят больше времени «шлифовке» — будь то через обновления или патчи, — проект вполне способен закрепиться в памяти игроков как один из ярких представителей жанра.

Of Ash and Steel выходит на ПК в Steam 24 ноября 2025 года.


Переходите на ggsel.net — торговую площадку, где вы найдете игры для ПК и консолей, DLC, сможете пополнить баланс популярных игровых и неигровых сервисов, купить и продать игровой аккаунт. И все это — по низким ценам!

Реклама ООО «Ай Ти Инвест», ИНН: 02405202310226

Показать полностью 13
Геймеры Видеоигра Компьютерные игры Игры Обзор Игровые обзоры RPG Gothic Российский игрострой Длиннопост Блоги компаний
52
270
Ugrum71
Ugrum71
IT-юмор

Ответ на пост «Разработка как бразильский сериал»⁠⁠1

1 месяц назад

Напомнили бессмертную классику:

Две полоски.

#НАГИБАТЬ КРОВЬ КИШКИ РАСЧЛЕНЕНКА ВСЕХ РАСПИДАРАСИЛО В МЕЛКИЕ КЛОЧКИ.

JIRA ISSUE #182355 Type: BUG Priority: MEDIUM Created: 21.02.12 18:21 Description: С "Дзуйкаку" взлетает "Зеро" с маркировкой авианосца "Кага".

21.02.12 18:30 Elena Ivanova [community manager] commented:
наблюдательные товарищи пишут в интернете что у нас на утекших в сеть скриншотах на самолетах не та маркировка цветные полосы а должны быть белые

22.02.12 11:51 Elena Ivanova [community management] reassigned to Sergei Lodkin [qa lead]
оформите баг чтобы исправили а то позоримся

05.03.12 15:41 Sergei Lodkin [qa lead] reassigned to Mihail Dorenkov [qa engineer]

11.03.12 10:42 Mihail Dorenkov [qa engineer] reassigned to Alexander Rozhko [art director]
Надо нанести на самолеты две белые полосы.

06.04.12 11:13 Alexander Rozhko [art director] reassigned to Semen Kemshakov [3d artist]

17.04.12 15:50 Semen Kemshakov [3d artist] reassigned to Tatiana Severina [textures artist]
Нужны две одинаковые белые текстуры для полосок. Очень надо!

20.04.12 11:10 Tatiana Severina [textures artist] reassigned to Alexandra Lebedeva [2d artist]
нужны эскизы двух белых полосок, а то я не знаю, на что они похожи

24.04.12 12:00 Alexandra Lebedeva [2d artist] reassigned to Tatiana Severina [textures artist]
У нас полный завал. Полоски сможем не раньше, чем через два месяца.

01.05.12 18:34 Tatiana Severina [textures artist] reassigned to Alexandra Lebedeva [2d artist]
можешь сверхурочно поработать? может, дома? это же пара часов, не больше. очень надо!

02.05.12 12:30 Alexandra Lebedeva [2d artist] reassigned to Tatiana Severina [textures artist]
Взяла работу на дом, ночью засела рисовать. (((((( Парень мой спрашивает: "Чего не спишь?"
А я ему: "Да понимаешь, у меня тут тут две полоски..." Обернулась - а его нет. Где теперь его искать? ((((((

02.05.12 15:54 Tatiana Severina [textures artist] reassigned to Semen Kemshakov [3d artist]
похоже, текстур не будет. возьмите пока любую похожую текстуру, потом заменим, когда сделаем

11.05.12 12:13 Semen Kemshakov [3d artist] reassigned to Andrei Hobotov [programming lead]
Я замоделил две белых полоски, лежат на системном диске. Теперь надо, чтобы движок крепил их к самолетам.

08.06.12 10:33 Andrei Hobotov [programming lead] reassigned to Alexei Mshigorotchitskii [junior programmer]
Леша, прицепи к самолетам по две белые полоски.

08.06.12 12:11 Alexei Mshigorotchitskii [junior programmer] reassigned to Andrei Hobotov [programming lead]
Вдоль или поперек?

10.06.12 17:14 Andrei Hobotov [programming lead] reassigned to Konstantin Krainihin [historical consultant]
Вдоль или поперек?

10.06.12 17:15 Konstantin Krainihin [historical consultant] reassigned to Andrei Hobotov [programming lead]
Поперек

11.06.12 18:35 Andrei Hobotov [programming lead] reassigned to Alexei Mshigorotchitskii [junior programmer]
Поперек

14.06.12 18:35 Alexei Mshigorotchitskii [junior programmer] closed issue.
Готово

17.06.12 14:30 Mihail Dorenkov [qa engineer] reopened issue.
Не видно что-то

21.06.12 11:51 Alexei Mshigorotchitskii [junior programmer] commented:
Как не видно? Вчера в релиз ушло. Тестеры в недоумении, уже триста писем с вопросами, что это за странные полоски на всех самолетах.

25.06.12 12:50 Mihail Dorenkov [qa engineer] commented:
В какой релиз? Даже альфа еще не началась.

29.06.12 20:56 Alexei Mshigorotchitskii [junior programmer] commented:
Вы, простите, в каком проекте работаете?

01.07.12 12:21 Mihail Dorenkov [qa engineer] commented:
World of Warships

01.07.12 19:30 Alexei Mshigorotchitskii [junior programmer] reassigned to: Andrei Hobotov [programming lead]
Я программист World of Warplanes. Смотрите внимательнее, кому баги перекидываете.

07.07.12 14:57 Andrei Hobotov [programming lead] reassigned to Alexei Mshigorotchitskii [junior programmer]
Леха, прикинь, в Киеве твой однофамилец работает. Только он Мщигорочицкий, а ты Мчигоротчитский.

07.07.12 14:58 Alexei Mshigorotchitskii [junior programmer] reassigned to: Andrei Hobotov [programming lead]
Я в курсе, что я там работаю. Я из за ваших гребаных полосок такой нагоняй получил. Теперь вычистить не можем - во все бранчи уже просочились.

07.07.12 14:59 Andrei Hobotov [programming lead] commented:
Упс... сорька. Опять не тому перекинул.

07.07.12 15:00 Andrei Hobotov [programming lead] reassigned to Alexei Mchigorotchitskii [junior programmer]
Леха, прикинь, в Киеве твой однофамилец работает. Только он Мщигорочицкий, а не Мчигоротчитский.

07.07.12 15:01 Alexei Mchigorotchitskii [junior programmer] closed issue.
Клево

16.07.12 13:01 Mihail Dorenkov [qa engineer] reopened issue.
Почему закрыли несделанный таск?

20.07.12 09:31 Andrei Hobotov [programming lead] commented:
Леха, ты выше-то почитай, что сделать надо.

21.07.12 15:59 Alexei Mchigorotchitskii [junior programmer] commented:
Ааааа... я думал, ты таск завел, чтобы про однофамильца рассказать.
Еще удивился, чего не по аське, в одной же комнате сидим.

21.08.12 11:09 Alexei Mchigorotchitskii [junior programmer] closed issue.
Сделано

23.08.12 14:37 Mihail Dorenkov [qa engineer] reopened issue.
Истребители перестали сбивать. Не могут стрелять.

01.09.12 13:26 Alexei Mchigorotchitskii [junior programmer] assigned to Andrei Hobotov [programming lead]
Я не понимаю, в чем дело.

15.09.12 19:03 Andrei Hobotov [programming lead] reassigned to Boris Vovk [senior programmer]
Боря, проверь, в чем там дело.

04.11.12 09:23 Boris Vovk [senior programmer] reassigned to Andrei Hobotov [programming lead]
Полоски закрывают пулеметы. А на них материал, в котором прописана коллизия для пуль. Пули не проходят.

11.11.12 10:00 Andrei Hobotov [programming lead] reassigned to Boris Vovk [senior programmer]
Как полоски могут закрывать пулеметы, если полоски нанесены в задней части фюзеляжа?

14.11.12 11:11 Boris Vovk [senior programmer] reassigned to Andrei Hobotov [programming lead]
А у нас у истребителей настоящие пулеметы как раз в задней части фюзеляжа. А в крыльях - фейковые, для вида только, пыщ-пыщ делать.
Так исторически сложилось, уже не помню, почему. Теперь долго переделывать, на это вся их баллистика завязана.

05.12.12 12:07 Andrei Hobotov [programming lead] reassigned to Semen Kemshakov [3d artist]
Зачем полоски коллизят пули? Сними с них коллизию.

12.12.12 12:03 Semen Kemshakov [3d artist] reassigned to Andrei Hobotov [programming lead]
Я не могу, у нас коллизии захардкожены в текстурах, а других текстур нет.
Эту вырезал с Флетчера, самая белая текстура, какую нашел. А у него там броня четыре сантиметра.

27.12.12 11:34 Andrei Hobotov [programming lead] reassigned to Boris Vovk [senior programmer]
У нас правда коллизии захардкожены в текстурах? Нельзя их оттуда вынести в отдельную настройку?

14.01.13 17:00 Boris Vovk [senior programmer] reassigned to Andrei Hobotov [programming lead]
Да как же их вынесешь? У нас же честный расчет пробития, с учетом карты нормалей текстуры, а в альфа-канале у нее усталость металла закодирована.

03.02.13 12:12 Andrei Hobotov [programming lead] reassigned to Tatiana Severina [textures artist]
Сделайте уже нормальные текстуры для полосок, только визуал. Сколько можно тянуть?

12.02.13 15:45 Tatiana Severina [textures artist] reassigned to Alexandra Lebedeva [2d artist]
как там насчет эскиза?

13.02.13 11:15 Alexandra Lebedeva [2d artist] reassigned to Tatiana Severina [textures artist]
Говорила же уже: у нас завал, сможем не раньше, чем через два месяца.
Срочно перерисовываем все миникарты, сказали поконтрастнее выделить сушу. Кто как, а я выделяю более темненькой водой.
Ночью работать больше не буду (((((((

14.02.13 11:10 Tatiana Severina [textures artist] reassigned to Andrei Hobotov [programming lead]
у нас завал. сможем не раньше, чем через четыре месяца.

01.03.13 18:20 Elena Ivanova [community manager] changed priority to HIGH
высокий проритет задачи они опять заметили что полоски неправильные говорят что не будут играть в такой отстой проект на грани провала

07.03.13 17:27 Andrei Hobotov [programming lead] reassigned to Semen Kemshakov [3d artist]
Подвинь полоски, чтобы не закрывали пулеметы.

07.03.13 17:28 Konstantin Krainihin [historical consultant] commented:
Я щас кому-то подвигаю! До миллиметра по историческим фотографиям вымеряли...

11.03.13 12:36 Andrei Hobotov [programming lead] reassigned to Boris Vovk [senior programmer]
Боря, придумай какой-нибудь хак. Ситуация безвыходная.

17.05.13 14:37 Boris Vovk [senior programmer] reassigned to Vladimir Orlov [game designer]
Пропишите пулеметам дамаг 231 вместо 2. Из него ровно 229 уйдет на пробитие полосок, дальше полетят пули с остаточным дамагом 2, как и должно быть.

27.05.13 11:22 Vladimir Orlov [game designer] reassigned to Boris Vovk [senior programmer]
Прописал пулеметам дамаг 231

29.05.13 15:01 Boris Vovk [senior programmer] closed issue.
Теперь все должно быть в порядке.

30.06.13 16:30 Sergei Lodkin [qa lead] reopened issue:
После вашего изменения Нью-Мексико вдруг начал нагибать всех, кто к нему приблизится.
Нет, не так. Нью-Мексико вдруг начал НАГИБАТЬ КРОВЬ КИШКИ РАСЧЛЕНЕНКА ВСЕХ РАСПИДАРАСИЛО В МЕЛКИЕ КЛОЧКИ.
Мы случайно взяли Нью-Мексико и два раза нагнули геймдизайнеров в товарищеском матче. Нам приятно. Спасибо.
Но теперь они тоже просекли фишку, поэтому пора исправить.

01.07.13 10:02 Boris Vovk [senior programmer] reassigned to Vladimir Orlov [game designer]
Почему Нью-Мексико начал нагибать? Вы кроме пулеметов истребителей ничего не меняли?

01.07.13 17:00 Vladimir Orlov [game designer] reassigned to Boris Vovk [senior programmer]
Оказывается, те же самые пулеметы, отскейленные в 10 раз, используются как орудия второстепенного калибра Нью-Мексико.
По форме очень похожи, вот моделлеры и решили сэкономить.
Дамаг тоже автоматически скейлится, но уже в 1000 раз, пропорционально объему ствола.
Так что у нас теперь у Нью-Мексико дамаг 231000 на выстрел второстепенного калибра.

03.07.13 18:01 Elena Ivanova [community manager] changed priority to VERY HIGH
просьба ускориться нас опять в интернете ткнули носом в этот позор не те полоски мне стыдно за тот отстой что мы делаем аааааааааа

03.07.13 19:39 Boris Vovk [senior programmer] reassigned to Andrei Hobotov [programming lead]
Хак не прокатил. Надо всю архитектуру движка менять, чтобы можно было динамически оверрайдить коллизии в текстурах. Иначе ничего не получится. А это работы на полгода.

04.07.13 10:13 Andrei Hobotov [programming lead] reassigned to Slava Makarov [makarovslava]
Такие решения должны приниматься на высшем уровне.
Ну что, отодвигаем альфу на полгода?
Слава, жду решения.

04.07.13 10:22 Andrei Hobotov [programming lead] reassigned to SerB [vice makarovslava]
Извините, что беспокою.
Это очень важный и срочный баг, его фикса ждут уже больше года.
Вы не знаете, где Слава Макаров?

04.07.13 10:28 SerB [vice makarovslava] reassigned to Andrei Hobotov [programming lead]
Нет, я не знаю, где Слава Макаров.

04.07.13 10:37 Slava Makarov [makarovslava] commented:
Извините, что не сразу ответил. Я тут подумал и решил, что проще забанить того неприятного человека.
Белые полоски делать не надо, всем отбой. Пойду думать, как бан обосновать.

04.07.13 10:39 Slava Makarov [makarovslava] closed issue.


04.07.13 18:21 Alexandra Lebedeva [2d artist] reopened issue:
Как не надо? (((((((( А зачем же я вчера всю ночь эскиз рисовала? ((((((((
Хотела сюрприз сделать ((((((

04.07.13 18:27 Alexander Rozhko [art director] commented:
Скинь эскиз на сетевой диск посмотреть. Может, куда-нибудь пристроим.

04.07.13 18:34 Alexander Rozhko [art director] commented:
А почему там не две белых полоски, а три оранжевых звездочки?

04.07.13

20:48 Alexandra Lebedeva [2d artist] commented:
Я - художник, а не маляр... ((((((( Я творчески переосмыслила... ((((( Я хочу, чтобы у нас была красивая игра... (((((((

Показать полностью
Скриншот Разработка IT юмор Ответ на пост Текст Длиннопост Российский игрострой
32
12
UncleMedied
UncleMedied
Gamedev по-русски
Серия Славянские Мифы. Том I. "Я хочу летать"

Электромонтер-геймдизайнер⁠⁠

3 месяца назад

Не буду томить предисловиями. Вводные данные: 35, мужчина, стаж работы в обслуживании высоковольтных линий 12 лет. Работа тяжелая, нужно лазать по опорам, пилить деревья и кусты под проводами, ремонтировать линии. Любая непогода - сети стоят раком, приходится работать допоздна. Но зато, в моем понимании, я человек социально полезный, каковой должна являться каждая живая душа, если у нее нет аккаунта на онлифанс.

Всю жизнь пишу художественные тексты, занимался созданием интерактивной литературы, всяких мини-игр и прочего. Никаких регалий, медалей и орденов за этот род деятельности нет. Мечтал заняться разработкой прям вот с нуля какой-то игры, чтобы это было моё. Но программист из меня примерно такой же, как и художник, так что искал команду.

Искал везде, где хватало ума искать. В моменте просто вбивал в гугл "Ищу сценариста\геймдизайнера\автора реплик для своей игры". Переходил по ссылкам, натыкался на херь, затем от балды в какой-то группе ВК оставил заявочку, что я такой-сякой писатель, кому надо, забирайте, авось пригожусь. Выполнил еще ряд мероприятий, так как идея жгла, а реализация не спешила появиться на горизонте.

Спустя несколько месяцев, наверно, даже почти год, мне написали в ВК, оттуда мы перекочевали в ТГ. Ребятам нужен был сценарий квестов. Мы пообщались, я посмотрел наработки в кайтене, быстренько вдохновился, написал страницу текста "по мотивам". Ребятам сразу понравилось и мы, крайне бессистемно, но с желанием, принялись притираться друг к другу. Были трения, трудности и непонятности, однако без конфликтов. Механизм медленно, но верно, набирал обороты.

Через пару месяцев моей работы над сценарием игры парни поняли, что всё заходит слишком далеко и предложили мне самому подготовить Базу Данных с предметами, персонажами, квестами, механиками и прочее, и так далее. Случилось это потому, что в придумывании они не были столь хороши, как я, и здраво рассудили, что лучше будут заниматься тем, в чем я полный профан. Они делают модели и реализуют механики. Еще у нас есть человек, который отвечает за звуковое сопровождение.

За полгода работы над БД, не имея опыта, я всё таки умудрился создать что-то цельное и довольно объемное. Парни в восторге, я тоже доволен, наш коллектив перешёл на тот уровень общения, когда переход на мат это не конфликт, а переизбыток позитивных эмоций.

Мир продуман детально, вариативный сюжет пишется каждый день. Решили разбить игру на 7 глав. Первая, для релиза, по объему работ, самая большая, так как именно в ней нужно соорудить весь фундамент для дальнейших сцен. Кто понял, тот поймет.

Собственно, цель написания данного поста в том, чтобы вы стали зрителями интересного случая. Сбудется ли мечта работяги? Станет ли он прославленным геймдизайнером? Сумеет ли закрепиться в новой для себя стезе? Постараюсь писать не часто, но периодически. Мы пишем игру, которая называется "Славянская Мифология. Том первый: Я хочу летать". Ее еще нигде нет, есть только канал в ТГ, группа в ВК и дискорд. Никуда никого не приглашаю, материала "на показ", у нас маловато.

В дальнейшем поделюсь опытом, как впервые решил воспользоваться екселем, как начал его осваивать, и как заполнял. Расскажу, как приступил к написанию сценария. В общем, обо всем чуть подробнее. Спасибо за внимание, пишите комментарии, ставьте антилайки, пророчьте полный провал. Мы почитаем, утрём сопли натруженной ладонью и пойдем работать на любимый завод.

Показать полностью
[моё] Gamedev Завод Российский игрострой Сценарист Сюжет Истории из жизни Текст Личный опыт
9
16
TwoMoons
TwoMoons
Лига Геймеров

Black Book 2⁠⁠

4 месяца назад

Глава студии «Мортёшка» Владимир Белецкий сообщил, что его студия планирует создать сиквел «Чёрной Книги».

Действие будет происходить всё там же, в Чердынском Уезде конца XIX века, но зимой.

Боёвка, скорее всего, будет уже не карточной, а JRPG-шной.

Путешествия по карте хотят сделать более проработанными, менее линейными.

Менеджмент чертей и знаткость оставят, как и былички.

Эти скриншоты — из нереализованного DLC про молодого деда Егора. Разработку остановили ради «Лиха Одноглазого», но не отменили насовсем. Возможно, это DLC станет дополнением именно ко второй части «Чёрной Книги».

Ссылка на саму новость.

Показать полностью 4
Компьютерные игры Черная Книга RPG Российский игрострой Новости игрового мира Длиннопост
0
2
Asmagor
Серия Unity3D

UNITY3D. RTS/RPG. Уровень: Бестолочь. Часть 3⁠⁠

5 месяцев назад

Доброго времени, товарищи! Прошло некоторое время с того момента как я начал учить Unity и вот, что я на данный момент знаю и понимаю. Это офигеть как трудно, но неимоверно увлекательно!

Итак, напомню что я там хотел (требования к игре):
1. Большой мир (80-100 систем).

Пример Игрового мира для реализации.

Пример Игрового мира для реализации.

2. Каждый уровень (звездная система) хранит своё состояние.
3. RPG система для юнитов. (уровень, экипировка, инвентарь). Квесты, события, песочница, сюжет, торговля.
4. RTS управление (перемещение в 3-х мерном пространстве). Захват систем, кол-во юнитов в сражении как в Homeworld2, Star Wolves 3: Civil War.
5.
6. Игра однопользовательская, для Windows. (Steam)

Что из этого удалось реализовать и на какой стадии оно всё находится? Для начала расскажу вам о настройках проекта:
1. Версия UnityEngine 2022.3.62f1 LTS. Тип проекта: 3D. Built-In Render Pipeline.
2. Сразу после создания переходим в Project Manager и выполняем в таком порядке: обновляем пакеты в In Project, потом устанавливаем новые пакеты в таком порядке - Addressables, 2D Sprite, AI Navigation, Cinemachine, Localization, Input System и перезапускаем редактор для вступления изменений необходимых для Input System.

Project Packages

Project Packages

3. После перезагрузки переходим в Window -> Asset Management -> Addressables -> Groups. В появившемся окне -> Create Addressables Settings. Я пока что разделил для себя ассеты в такие группы: Prefab_Camera, Prefab_Lights, Prefab_MainMenu, Prefab_PauseMenu, Prefab_UI, Prefab_GameObjects, Asset_Audio, Asset_Sound, Asset_Music, Asset_Image, Asset_Material, Asset_Skybox, Asset_Fonts, Asset_Localization, VFXSFX, Core. Возможно потом я пересмотрю подход к групперовке.

Мой вариант групп для проекта

Мой вариант групп для проекта

4. Далее создаём папку для Localization. Переходим Project Settings -> Localization и создаём настройки локализации - Localization Settings в созданной ранее папке. Потом в обновившемся окне Project Settings -> Localization - добавим локали Add Locales. Я выбрал - EN, RU, и сохраняем их в Localization/Locales.
6. Теперь создаём таблицы для локализации Window- > Asset Management и в появившемя окне в левом верхнем углу -> New Table Collection. В появившемся окне Name -> MainMenu и нажимаем Create. Сохраняем по адресу: Localizatino/Tables. Закрываем пока это окно.

Localization Tables

Localization Tables


5. Переходим в Project Settings - Player. Вводим название своей компании согласно вашей форме предпринимательства ))).( Я пока не менял Project Settings - Player -> Active Input Handling и оставил его в значении Both.)
6.Переходим в Project Settings - Text Mesh Pro и устанавливаем необходимый минимум - Import TMP Essentials.
7. Создаём папку - Inputs. Переходим в Project Settings -> Input System Package и создаём действия для всего проекта - Create and assign a default project-wide Action Settings и перемещаем их в папку.
8. Переходим в Project Settings -> Input System -> Settings и создаём Settings Asset. В обновившемся окне - Supported Devices -> добавляем Mouse и Keyboard.
8. Возвращаемся в Project Settings - Input System Package и создаём несколько Action Maps: Gameplay_RTS, MainMenu, PauseMenu, Dialogue, Management и Gameplay_DirectControl (я пока остановился на таких).Чуть позже - подробнее о настройках.

Для Menu: Переименовать New Action ->LMB_Click и в уго Binding -> Path -> Left Button [Mouse] и чуть ниже в Use In Control scheme - тут и далее везде ставим галочку Keyboard&Mouse.

9. Создаём папки для импортируемых ассетов: UI/Image/Texture, UI/Image/Icon, UI/Fonts, UI/Selection, Audio/Sound, Audio/Music, Skyboxes, Prefab/GameObjects, Prefab/UI, Prefab/Core. Потом заполним ассетами. Едем дальше.

10. Папке Scenes: Переименовать Sample Scene в MainMenu, потом добавить сцены Bootstrap, Gameplay и UI.
11. Создать папку Scripts. В папке создать Assembly Definition (MainAssemblyDefinition). В инспекторе при выбранном свежесозданном assembly definition: Namespace -> (название вашей игры или как вам заблагорассудится) и чуть ниже - Assembly Definition References -> Add и добавляем следующее:
com.unity.cinemachine; InputSystemForUI; Unity.Addressables; Unity.AI.Navigation; Unity.InputSystem; Unity.Localization; Unity.ResourceManager; Unity.TextMeshPro; UnityEngine.UI

12. Теперь перейдем на сцену Bootstrap удалим все объекты, создаём пустой объект Hierarchy -> RMB -> Create Empty, и переименвываем его в Bootstrap.
13. File -> Build Settings -> и перетащили Bootstarp Scene из папки Scenes в Scenes in Build.
14. В папке Scripts создайте новый скрипт с именем Bootstrap и прикрепите его к объекту на сцене.
15. File -> Save и Save Project. ВСЁ! Вот и закончили первоначальную настройку проекта.

В следующем посте: ассеты, скрипты.

Показать полностью 6
[моё] Unity Программирование Российский игрострой Странный юмор Длиннопост
6
PresidentOfGames
PresidentOfGames

Привет пикабу!⁠⁠

6 месяцев назад

Мы команда инди разработчиков и сейчас делаем свой "Симулятор курьера"!

Показать полностью 1
[моё] Gamedev Инди игра Игры Инди Unity Российский игрострой
26
1
Asmagor

UNITY3D. RTS/RPG. Уровень: Бестолочь. Часть 1⁠⁠

6 месяцев назад

Простите, мне пипец как стыдно просить помощи, но данный материал пока пишется с целью получения хоть каких нибудь денег... Блять, испанский стыд... докатился....

Итак... игра.

Посмотрев на то, что народ публикует под вывеской - "Я сделялъ" (тут картинка, где почки показывают мозгу камни) - я немного офигел и подумав решил, что буду делать игру RTS/RPG в космосе.
Почему RTS/RPG? Достойный вызов, изумруд в портфолио, да и не солидно делать, вот эти вот покатушки шариком, бесконечный бегун (runners)...


Поизучав игры, я вначале хотел сделать игру на мобильный телефон (прекрати называть ЭТО телефоном - запомни, это - устройство) на Android, но слегка приуныл от нехватки знаний.


Почему в космосе, спросят самые любопытные? А, потому, что в этом случае надо меньше объектов.

В итоге посмотрев ещё несколько видосов от CodeMonkey (хитрый дядька, но об этом потом) я понял, что:
1. Сэттинг - будущее, 2250 год, космос.
2. Жанр - RTS/RPG
3. Платформа: Windows
4. Распространение: Steam
5. Тип: Singleplayer (пока что)

Задача максимум:
31.05.2025 - создать MVP* и опубликовать игру в раннем доступе по сходной цене.


*Шо такое MVP - Minimal Viable Product, тобишь, по-нашему, это будет - Минимально Жизнеспособный Продукт.

Я пропущу такие моменты (они, кстати, очень важны. Пожалуйста - не пренебрегайте.):

1. Составление Game Design Document
2. Составление Technical Design Document

Итак, немного о предстоящей игре.... Я вдохновлялся следующими играми: EVE Online, Homeworld2, Star Wolves 3: Civil War, X4

Игровой мир: Галактика, звездные системы, соединенные прыжковыми вратами или черными дырами, кстати галактика планируется на 60+ систем, но для начала попробую сделать хотя бы 10
4 Основные фракции - Калгарцы, Аракибы, Воссолны, Сларусы.
Второстепенные фракции - Пираты, Мусорщики, Наемники, Исследователи (ещё думаю).

Игровой мир (диспозиция): Основные фракции развиваются, конкурируют между собой, но цель одна - одна фракция будет владеть Галактикой. Игрок может влиять на это дело, а может и забить на это дело и заниматься своими делами.

Сюжет: В процессе т.к. еще не готова система диалогов и квестов.

Фишки игры: Ага, так я вам и сказал ) Узнаете в процессе.

Итак, начнем. Начнем мы с того, что будем использовать паттерн - Единая Точка Входа. Хотя следует сначала определится (где твоё место и что ты за птица (с)) c архитектурой проекта и его структурой.

1. Открываем Unity Hub
2. Качаем версию LTS 2023.3.61f1

Так выглядит Unity 2023.3.61f1

Так выглядит Unity 2023.3.61f1

3. Создаём проект на BRP (Built-in Render Pipeline)*
*Да, знаю, что будут делать URP (Universal Render Pipeline) проекты в новых версиях Unity по-умолчанию и дело движется к деприкации BRP.

Итак для себя я решил, что буду использовать следующие полезные (не факт) приобретенные знания:

Игра будет состоять из (пока) 7 сцен:

1. Bootstrapper - отвечает за инициализацию сервисов.
2. MainMenu - главное меню. Позволяет начать новую игру (продолжить - пока не работает), загрузить игру, изменить настройки (применить и сохранить),
3. Gameplay - сцена в которой и будет происходить всё действо.
4. UIScene - сцена загружающаяся поверх Gameplay и отвечающая за отображение HUD и других UI.... Так, надоело... HUD - Heads-Up Display, UI - User Interface.
4. EndGame - Тут будем показывать заставку/видео/кат-сцену Победы/Проигрыша/Секретная_Концовка (пока одна).
5. Utility - по идее должна использоваться для гарантированной выгрузки всего, что было в памяти, дабы предотвратить возможные (я ведь не волшебник, а только учусь) утечки памяти

Где, 1 - Bootstrap сцена, в которой мы будем инициализировать полезные нам сервисы, мэ-э-э-энеджеры и т.д. С этой целью создадим несколько скриптиков (придется попечатать немного):
- Удалить все объекты со сцены.
- Добавить объект, переименовать в Bootstrap (вообще без разницы, как вы его назовете - ни на что не влияет).
- В папочке (см. структуру проекта ниже) создаём скрипт: Bootstrap.cs который будет отвечать за инициализацию сервисов.
- Сервисы мы будем хранить и использовать централизованное (Service Locator шаблон). Более того Service Locator у нас будет не MonoBehaviour, а обычный Plain Old Class Object (POCO).

Структура проекта. Всё красиво разложено по папочкам. Всё как мы любим.

Структура проекта. Всё красиво разложено по папочкам. Всё как мы любим.


Тут следует сделать небольшое отступление:
Классы которые наследуются от MonoBehaviour ВСЕГДА должны быть компонентом (прикреплены) GameObject и присутствовать на сцене.
*При смене сцены, например (сцена1 -> сцена2) все объекты сцены1 будут выгружены из памяти (т.е. канут в Лету)

В таком случае мы будем использовать шаблон Singleton (Одиночка.... одинокий одиночка.... лол)
Поскольку мы его применяем к Service Locator, следовательно сервисы, зарегистрированные в нем будут присутствовать во всех сценах.

Внимание вопрос:
Каким следует сделать Service Locator - MonoBehviour или POCO. Почему?

Я остановился на POCO:

using System;

using System.Collections.Generic;

using UnityEngine;


namespace SpaceMercsLife

{

/// <summary>

/// ServiceLocator - это паттерн проектирования, который предоставляет глобальную точку доступа к сервисам, не связывая клиентский код с конкретными реализациями этих сервисов.

/// В данном случае мы используем ServiceLocator как POCO класс, что бы он был доступен везде.

/// По окончанию использования вызвать Dispose из другого класса - MonoBehaviour

/// </summary>

/// //: MonoBehaviour

public class ServiceLocator : IDisposable

{

// Словарь для хранения зарегистрированных сервисов. Ключ - тип сервиса, значение - экземпляр сервиса.

private readonly Dictionary<Type, object> _services = new Dictionary<Type, object>();

// Статическое поле для хранения единственного экземпляра ServiceLocator (Singleton).

private static ServiceLocator _instance;

// Статическое свойство для доступа к единственному экземпляру ServiceLocator.

// Ленивая инициализация: экземпляр создается только при первом обращении.

public static ServiceLocator Instance => _instance ??= new ServiceLocator();

/// <summary>

/// Регистрирует сервис указанного типа с предоставленным экземпляром.

/// Если сервис такого типа уже зарегистрирован, он будет перезаписан, о чем будет выведено предупреждение.

/// </summary>

/// <typeparam name="T">Тип регистрируемого сервиса (интерфейс или класс).</typeparam>

/// <param name="service">Экземпляр сервиса для регистрации.</param>

// Событие, вызываемое после регистрации сервиса.

public static event Action<Type, object> ServiceRegistered;


// Событие, вызываемое после отмены регистрации сервиса.

public static event Action<Type> ServiceUnregistered;

/// <summary>

/// Регистрирует сервис указанного типа (интерфейса) с предоставленным экземпляром.

/// Если сервис такого типа уже зарегистрирован, он будет перезаписан, о чем будет выведено предупреждение.

/// </summary>

/// <typeparam name="TInterface">Тип интерфейса регистрируемого сервиса.</typeparam>

/// <typeparam name="TImplementation">Тип конкретной реализации сервиса.</typeparam>

/// <param name="service">Экземпляр сервиса для регистрации.</param>

public void Register<TInterface, TImplementation>(TImplementation service)

where TInterface : class

where TImplementation : class, TInterface

{

var interfaceType = typeof(TInterface);

if (_services.ContainsKey(interfaceType))

{

Debug.LogWarning($"Service {interfaceType} already registered. Overriding with {service.GetType().Name}...");

_services[interfaceType] = service;

}

else

{

_services.Add(interfaceType, service);

ServiceRegistered?.Invoke(interfaceType, service);

}

}

/// <summary>

/// Отменяет регистрацию сервиса указанного типа (интерфейса).

/// </summary>

/// <typeparam name="TInterface">Тип интерфейса сервиса, который необходимо отменить регистрацию.</typeparam>

public void Unregister<TInterface>() where TInterface : class

{

var interfaceType = typeof(TInterface);

if (_services.ContainsKey(interfaceType))

{

_services.Remove(interfaceType);

ServiceUnregistered?.Invoke(interfaceType);

Debug.Log($"Service {interfaceType} unregistered.");

}

}

/// <summary>

/// Получает зарегистрированный сервис указанного типа (интерфейса).

/// </summary>

/// <typeparam name="TInterface">Тип интерфейса запрашиваемого сервиса.</typeparam>

/// <returns>Экземпляр зарегистрированного сервиса.</returns>

/// <exception cref="Exception">Выбрасывает исключение, если сервис указанного типа не найден.</exception>

public TInterface Get<TInterface>() where TInterface : class

{

var interfaceType = typeof(TInterface);

if (!_services.TryGetValue(interfaceType, out var service))

{

throw new Exception($"Service {interfaceType} not found");

}


return (TInterface)service;

}


/// <summary>

/// Пытается получить зарегистрированный сервис указанного типа (интерфейса).

/// </summary>

/// <typeparam name="TInterface">Тип интерфейса запрашиваемого сервиса.</typeparam>

/// <param name="service">Выходной параметр, содержащий экземпляр сервиса, если он найден, иначе null.</param>

/// <returns>True, если сервис найден, иначе false.</returns>

public bool TryGet<TInterface>(out TInterface service) where TInterface : class

{

var interfaceType = typeof(TInterface);

if (_services.TryGetValue(interfaceType, out var obj))

{

service = (TInterface)obj;

return true;

}

service = null;

return false;

}


/// <summary>

/// Удаляет все зарегистрированные сервисы и очищает события.

/// </summary>

public void Clear()

{

_services.Clear();

ServiceRegistered = null;

ServiceUnregistered = null;

// Можно добавить Debug.Log("ServiceLocator cleared.") для обратной связи.

}


/// <summary>

/// Реализация интерфейса IDisposable. Освобождает ресурсы, удерживаемые ServiceLocator.

/// В данном случае, очищает список сервисов, отписывается от событий и обнуляет ссылку на экземпляр.

/// </summary>

public void Dispose()

{

if (_instance != null)

{

_instance.Clear();

_instance = null;

}

GC.SuppressFinalize(this);

}

}

}

А вот на "прям вот сейчас, сию минуту" выглядит Bootstrap.cs

using UnityEngine;

using SpaceMercsLife.Service.Interfaces;

using SpaceMercsLife.Service.Implementation.Mono;

using SpaceMercsLife.Service.Implementation.POCO;

using System.Threading.Tasks;

using UnityEngine.SceneManagement;

using SpaceMercsLife.SLocator;


namespace SpaceMercsLife

{

public class Bootstrap : MonoBehaviour

{

private string configFileName = "game_config";

private string defaultLocale = "en";


private async void Start()

{

MonoBehaviourServicesRegistration();

await POCOServicesRegistration();

ReleaseResources();


await LoadGameSettings();


// Воспроизведение фоновой музыки

var audioService = ServiceLocator.Instance.Get<IAudioService>();

await audioService.PlayBackgroundMusicAsync("main_theme", volume: 1.0f, fadeInDuration: 2.0f);


// Загрузка сцены главного меню

var sceneService = ServiceLocator.Instance.Get<ISceneService>();

await sceneService.LoadSceneAsync("MainMenu", LoadSceneMode.Single, showLoadingScreen: true, uiSceneName: null);

}


private async Task LoadGameSettings()

{

// Загрузка графических настроек

var graphicsService = ServiceLocator.Instance.Get<IGraphicsService>();

await graphicsService.LoadSettingsAsync();


// Загрузка настроек ввода

var inputService = ServiceLocator.Instance.Get<IInputService>();

await inputService.LoadBindingsAsync();


// Загрузка настроек VFX

var vfxService = ServiceLocator.Instance.Get<IVFXService>();

await vfxService.LoadSettingsAsync();


// Загрузка настроек UI

var uiService = ServiceLocator.Instance.Get<IUIService>();

await uiService.LoadSettingsAsync();


// Инициализация камеры

var cameraService = ServiceLocator.Instance.Get<ICameraService>();

var mainCamera = cameraService.CreateCamera("MainCamera");

cameraService.SetMainCamera(mainCamera);


// Загрузка настроек камеры и мыши

await cameraService.LoadSettingsAsync();

}


private void MonoBehaviourServicesRegistration()

{

VFXService vfxServicePrefab = Resources.Load<VFXService>("Prefabs/VFXService");

SceneService sceneServicePrefab = Resources.Load<SceneService>("Prefabs/SceneService");


var vfxService = Instantiate(vfxServicePrefab);

DontDestroyOnLoad(vfxService.gameObject);

vfxService.Initialize(ServiceLocator.Instance.Get<IConfigurationService>());

ServiceLocator.Instance.Register<IVFXService, VFXService>(vfxService);


var sceneService = Instantiate(sceneServicePrefab);

DontDestroyOnLoad(sceneService.gameObject);

ServiceLocator.Instance.Register<ISceneService, SceneService>(sceneService);

}


private void ConfigInitialization()

{

var configService = new SimpleConfigurationService();

configService.LoadConfig($"Config/{configFileName}");

ServiceLocator.Instance.Register<IConfigurationService, SimpleConfigurationService>(configService);


var audioService = new AudioService(configService);

ServiceLocator.Instance.Register<IAudioService, AudioService>(audioService);


var graphicsService = new GraphicsService(configService);

ServiceLocator.Instance.Register<IGraphicsService, GraphicsService>(graphicsService);


var inputService = new InputService(configService);

ServiceLocator.Instance.Register<IInputService, InputService>(inputService);


var cameraService = new CameraService(configService);

ServiceLocator.Instance.Register<ICameraService, CameraService>(cameraService);


var uiService = new UIService(configService);

ServiceLocator.Instance.Register<IUIService, UIService>(uiService);


var localizationService = new SimpleLocalizationService();

localizationService.SetLocale(defaultLocale);

ServiceLocator.Instance.Register<ILocalizationService, SimpleLocalizationService>(localizationService);

}


private async Task POCOServicesRegistration()

{

ConfigInitialization();


ServiceLocator.Instance.Register<IResourceService, ResourceService>(new ResourceService());

ServiceLocator.Instance.Register<IPhysicsService, PhysicsService>(new PhysicsService());

ServiceLocator.Instance.Register<IEventBus, EventBus>(new EventBus());

ServiceLocator.Instance.Register<IStateMachineService, SimpleStateMachineService>(new SimpleStateMachineService());


var binaryDataService = new BinaryDataService();

await binaryDataService.InitializeAsync();

ServiceLocator.Instance.Register<IDataService, BinaryDataService>(binaryDataService);

}


private void ReleaseResources()

{

Resources.UnloadUnusedAssets();

}

}

}

А вот так вот выглядят все сервисы

Показать полностью 3
[моё] Unity Российский игрострой Программирование Странный юмор Мат Длиннопост
17
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Маркет Промокоды Пятерочка Промокоды Aroma Butik Промокоды Яндекс Путешествия Промокоды Яндекс Еда Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии