Войти
ПроектыФорумОцените

Encased (36 стр)

Страницы: 135 36 37 38 39 Следующая »
#525
10:58, 25 дек 2019

У алпрога о технических подробностях так-то целый паблик в телеге есть(проплаченная реклама)

#526
13:39, 25 дек 2019

Alprog
> Да, мне норм. Если сервис часто ломается, я поищу другой сервис.
> Давай уже закругляться про обновления.

Закругляемся, потому что ты лукавишь. Я не верю что если у тебя брикнется от апдейта ПС4, ты пожмешь плечами и пойдешь в магазин за новой.

Alprog
> Про пластик я подробно писал в моём телеграмм канале:
> https://t.me/logofalprog/35

Понял. Одно не понял - зачем ветки для бинарников?

#527
14:13, 25 дек 2019

jaguard
> Одно не понял - зачем ветки для бинарников?
Где ты это вычитал?

> Я не верю что если у тебя брикнется от апдейта ПС4, ты
> пожмешь плечами и пойдешь в магазин за новой.
Я такого не говорил. Я говорил, что если будет часто ломаться, то я поищу другой сервис (например, возьму себе XBox).

Если ты действительно хочешь понять позицию, а не оппонировать ей ради оппонирования, то тебе нужно совершить некоторую работу и попробовать посмотреть на мир моими глазами. С моей точки зрения это выглядит так: я рассказываю про то, что крупногабаритные сумки брать в салон самолёта не следует, они будут мешать проходу людей. И что для этого изобрели багаж, а авиакомпании теперь заставляют сумки больше определённого размера сдавать в багаж. А ты эдакий дед, который летал ещё на кукурузниках в 50-ых, где все баулы брали с собой в салон, и заладил что-то в духе «багаж часто теряют» и «я не верю, что если твой багаж потеряют, то ты с покерфейсом купишь новый багаж». Нет, я такого не говорил. Конечно, я расстроюсь, и если часто будут терять мой багаж, сменю авиакомпанию. Но я не буду против самой концепции багажа.

#528
15:21, 25 дек 2019

Alprog
> Где ты это вычитал?

С этого места и далее.

Но плюс к этому, в пластике ветки являются не легковесными метками, а полноценными объектами...И как показывает практика, контевики тут вполне осваиваются и справляются даже с ветками.

Alprog
> Я такого не говорил. Я говорил, что если будет часто ломаться, то я поищу
> другой сервис (например, возьму себе XBox).

А если все альтернативные сервисы будут ломаться? Ведь история именно про это сейчас - все обновления резко упали в своем качестве. Хром, Вин-10, даже вроде всегда стабильный MacOS недавно отличился и сломал при обновлении изрядное количество компьютеров до уровня "надо переустанавливать заново".
Багаж в 1 случае из 10 теряют безвозвратно - реальная реальность на рынке ПО. И от нее никуда не деться и не спрятаться - всё же теперь "сервис", нельзя просто взять и откатить.

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

Ладно, теперь я все сказал. Можешь не отвечать.

#529
15:34, 25 дек 2019

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

#530
16:19, 25 дек 2019

jaguard
> "Я за прогресс науки! Ну и что, что сейчас просверлят дырку и я сгорю к чертям,
> зато наука вперде!"
При этом надо понимать, что это лютое мракобесие.

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

Стандарты в отношении качества софта я бы сказал на историческом минимуме. Ну и что, что "самолёты" стали падать чаще, зато "багаж". Ага.

#531
11:28, 28 дек 2019

Alprog, можно небольшой вопрос организационного плана? После выхода в ЕА у вас что-то поменялось в пайплайнах, распределении обязанностей и т.п., т.е. все ли прошло по плану, или были какие-то незапланированные моменты, например, большое количество багов, из-за которых пришлось выделять больше ресурсов на QA, или хорошие продажи, которые позволили увеличить масштаб проекта и, соответственно, расширить штат команды, и т.д.?

#532
11:42, 28 дек 2019

Alprog
> то тебе нужно совершить некоторую работу и попробовать посмотреть на мир моими
> глазами
<...>
> А ты эдакий дед, который летал ещё на кукурузниках в 50-ых, где все баулы брали
> с собой в салон, и заладил что-то в духе «багаж часто теряют» и «я не верю, что
> если твой багаж потеряют, то ты с покерфейсом купишь новый багаж».
"А ты говно мамонта, которое непонятно кому нужно. Но видишь, я умею смотреть на мир твоими глазами." Главное заменить "говно" на "дед", а "мамонта" на "баул" - и вы цивилизованный и конструктивный собеседник.

#533
11:43, 28 дек 2019

Jaxxx
Разумеется, никогда ничего не идёт строго по плану.
Сроки и бюджеты растут быстрее самых смелых прикидок на протяжении всего проекта.
Одновременно и непрерывно происходят всякого рода фичекаты или переосмысления каких-то глав игры в сторону сокращения, упрощения или переиспользования.

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

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

#534
12:01, 28 дек 2019

NyakNyakProduction
> Но видишь, я умею смотреть на мир твоими глазами
Я не утверждал, что в состоянии взглянуть на ситуацию чужими глазами. Я описывал свою картину мира, потому что к ней был проявлен интерес и желание понять.

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

#535
12:39, 28 дек 2019

u960
> я бы выделил, (судя по колву багов описанных в стиме в группе в вк)
Баги в проекте не потому, что мы не знаем о них. От того, что станет больше людей на QA, ничего принципиально не поменяется. Основная масса проблем из-за расходящихся циклов производства. Например, рефакторинг системы тасок нпс не успел, а скриптерам решение нужно уже сейчас. В итоге пишутся костыли, которые и не будут работать в 100% ситуаций, и зачастую это накладывается на изменившийся в последний день перед релизом гейм- или левелдизайн. Патч при этом переносить тоже нельзя из-за бизнесовых причин или расписания площадок.
Наверное, сейчас последует совет нанимать больше или лучше программистов/скриптеров, но проблемы в IT шапками не закидываются. Больше скриптеров на данном этапе будет означать только больше багов.
На самом же деле нужно правильно балансить циклы производства кода, контента, скриптов и маркетинга таким образом, чтобы все линии сходились вовремя и на актуальном инструментарии.

> посмотрим на следующее крупное обновление
Посмотрим… и что? Вынесем вердикт по профессионализму нашей команды?

> кстати оно когда планируется?
Весной.

#536
13:45, 28 дек 2019

Alprog, спасибо за развернутый и содержательный ответ. С Наступающим )

#537
15:31, 28 дек 2019

u960
> как было в моем случае
А что за случай?

#538
17:42, 28 дек 2019

u960
Не, я имею в виду, что это вообще было? Инди с друзьями? Большая компания? И чем закончилось?

#539
3:07, 18 апр 2020

Запустить видео по клику - Как делать игрыЗапустить видео по клику - Как делать игры

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

Итак, главное техническое изменение — это то, что переделали стейтмашины персонажей с простой цепочки тасок, которые скриптер мог набивать вручную, на сложную структуру. Стейт-машина теперь состоит из стека state'ов. Внизу стека лежит RegularState, описывающий обычное поведение нпс; в случае боя сверху на него кладётся боевой стейт, который оверайдит поведение; ещё выше может располагаться стейт текущего приказа или стейт, описывающий прерывание текущего действия реакцией на попавшую пулю и тому подобное. Стейт смерти всегда помещается на вершину стека и оверайдит все действия.

Стейты состоят из последовательности Job'ов. Стейты или заданы программистом или описываются скриптерами в Behaviour-файлах. В данном случае имеется в виду не unity monobehaviour, а наши скрипты. Но принцип действия довольно схож: behaviour вешается на нпс и имеет внешние переменные, которые можно заполнить для каждого нпс отдельно. В самом behavior перечислены функции-стейты, которые представляют из себя енумераторы job'ов и функции-события.

Псевдокод того, как примерно выглядит файл Behavior:

public Vector3 Point1;
public Vector3 Point2;
public Stand Bed;

Enumerator<Job> PatrolState()
{
   yield return StayAtPoint(Point1, Waiter.Seconds(5.0f));
   yield return StayAtPoint(Point2, Waiter.Seconds(5.0f));
}

Enumerator<Job> SleepState()
{
   yield return StayAtStand(Bed, Waiter.Endless);
}

[OnMorning]
void OnMorning()
{
   SetRegularState("PatrolState");
}

[OnEvening]
void OnEvening()
{
   SetRegularState("SleepState");
}

Здесь задаются переменные для каждого нпс отдельно: 2 точки и кровать.
Ниже идёт описание двух стейтов: патрулирование (стоять по 5 секунд на 1 и 2 точке) и сон (бесконечно находиться на кровати). И наконец функции, обрабатывающие наступление дня и ночи, и переключающие Regular (самый нижний) слой в стеке машины состояний.

Как было сказано ранее, это поведение может быть переопределено, если выше в стеке будет находиться другое поведение. Например, персонаж спит на кровати, но тут начинается бой. CombatState кладётся выше в стеке, персонаж встаёт, начинает драться, после боя стейт убирается и мы возвращаемся в Regular state. Так как текущий job у нас был спать в кровати, то персонаж идёт в кровать и снова ложится.

Реализовано это тем, что Job'ы в свою очередь состоят из низкоуровневых тасок, которые были основой старой системы. Если job был прерван, то он очищает все свои дочерние таски, а по возвращению управления набивает их заново. Job знает, что ему надо сделать (спать в кровати), так что он оценивает ситуацию и набивает соответствующую очередь тасок: убрать оружие, подойти к кровати, повернуться, лечь. Джобы пишут только программисты и обеспечивают их способность добиться желаемого из любого фактического положения нпс. В крайнем случае нпс прибегают к телепортам, если не могут по честному добраться до точки назначения.

А уже из джобов и переменных бехавиора скриптеры составляют стейты. Может показаться, что разделение между джобами и тасками условное, но главное отличие это то, что при прерывании таски стираются и набиваются заново, а джобы — нет. Если нас прервали боем во время выполнения патрулирования точки 2, то после боя нпс пойдёт заканчивать эту джобу (постоит оставшее количество секунд на этой точке).

Текущая схема дизайнилась мной лишь процентов на 40% и в основном это касалось деталей реализации, а на 60% и больше по сути — нашими геймдизайнерами на основе их опыта работы в Larian. Так как похожая схема зарекомендовала себя там хорошо.

Страницы: 135 36 37 38 39 Следующая »
ПроектыФорумОцените

Тема в архиве.

Тема закрыта.