Pull to refresh

Comments 26

Класс! Вспомнил детство и бейсик, на котором арканойда пилил этак в шестом классе. Строк в 30 вроде бы уложился, но точно не скажу )))))

Код, конечно, хорош, но

позиции AI

всё ожидал про AI почитать, как статья и закончилась...

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

Осторожно, тяжелые гифки

какая-то дикая смесь решающих деревьев, конченных автоматов и эвристик

Лучше сразу перейти на BT если есть возможность, это возможно займет некоторое время на имплементацию, но потом вернется сторицей в виде уменьшения времени разработки поведения и простоты разработки конечных блоков. Понятно, что серебряной пули нет, но BT самое близкое к ней решение пока что, опыт UE/Unity/Godot не даст соврать

Не уверен, что тут это будет оптимально как по эффективности, так и по читабельности.

Даже для простых ситуаций, когда в соседней клеточке враг - дерево поведения может быть очень длинным. Ну да, скорее всего его надо бить. А может убегать, если мало жизней? А стоит ли - пока будешь поворачиваться - добьют? А может на полу лежит дубина получше - сначала её взять и бить? Или вдруг пол под ногами загорелся или треск в потолке и возможно пещера обвалится - нужно бежать.

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

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

Все это решается приоритетами, как минимум до 10-20 активных нпс на одном треде вам не о чем беспокоиться. Плюс можно посмотреть механизм мониторов https://vimeo.com/272377974

мониторы - это хорошо, спасибо, посмотрю.

а 10-20 - это как-то скромненько, их должны быть сотни.

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

Правильно ли я понимаю, что BT — это такой многоуровневый pattern matching? Т.е. что-то вроде

case a of
   A1 -> case b of
           B1 ..
   A2 -> case c of
           C1 ...

Только уровень вложенности сумасшедший.

Любой ЯП это совокупность таких патернов, BT наоборот призван скрыть сложность инструментария, предоставив дизайнерам оперировать блоками уровня "иди туда", "открой дверь", "возьми объект" и тд

Мы и сейчас иногда общаемся на форуме по ремейкам старых игр.

А что это за форум такой, не подскажете?

Чем я хуже потомственного британца? Свернуть можно все, разворачивать потом будет больно. Оставшиеся 10 минут я потратил на "художества", кодом получившийся результат назвать язык не поворачивается, но оно работает.

Но для чего. Так можно почти любое количество строк впихнуть. В чём смысл обфусцировать пробелы и табы?

Никто же в здравом уме не будет ревьюить и принимать в прод такой код.

Ваш код можно уместить в одну строку, но сами понимаете:)

Условия тестового такие, какие есть и формально это можно обернуть себе на пользу. Всё можно уместить в одну строку, любой тест можно сломать. Если у вас это вызвало улыбку, значит время на статью потрачено не зря.

Кстати, наверняка для html+css+js придумали такую софтину, которая сокращает код: удаляет избыточные пробелы, коментарии, переносы строк, заменяет все названия функций на что-нибудь вроде f1, f2, ... fa, fz..., стилей на s1, s2, ..., глобальных переменных на v1, v2 и т.д. Так что остается полностью нечитаемый, но быстро парсящийся браузером набор символов. Здесь это имеет какой-то смысл

Давно уже, здесь просто побаловаться

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

Обфускатор какой нибудь поищите

Teaser?

Но, конечно, не только он, минификаторами такие штуки кличут

Sign up to leave a comment.

Articles