Писать игровой AI очень интересно и увлекательно - не раз убеждался в этом на личном опыте. Недавно, случайно наткнувшись на код своего старого проекта шахматной программы, решил его немного доработать и выложить на GitHub. А заодно рассказать о том, как он создавался и какие уроки преподал мне в процессе работы.
Рубрика «Gamedev» - 7
Шахматы на Delphi. Как я изобретал велосипед
2021-04-10 в 19:44, admin, рубрики: AI, chess, Delphi, Gamedev, Pascal, геймдев, логические игры, разработка игр, шахматыПервые пять шагов для перелома ситуации с читерами в PvP-шутере
2021-03-18 в 16:57, admin, рубрики: cheats, Gamedev, pvp, unity, Блог компании Lightmap, геймдев, Дизайн игр, обфускация, разработка игр, разработка мобильных приложений, читеры, шутер
Мы прошли долгий путь от появления в игре первых читеров до полного пересмотра подхода к разработке, чтобы создавать защищенные по умолчанию мобильные проекты. О том, как в игре появились читеры, я рассказал в прошлом материалеЧитать полностью »
Как мы «вырастили» и победили читеров в своем онлайн-шутере
2021-03-02 в 18:25, admin, рубрики: cheaters, cheats, Gamedev, pvp, unity, Блог компании Lightmap, геймдев, Дизайн игр, Игры и игровые приставки, мобильная разработка, разработка игр, разработка мобильных приложений, читеры, шутер
Часто сижу на форумах читеров, не потому что нравится, а просто разработчику PvP-шутера всегда нужно быть в тонусе. Некоторые из взломщиков в прямом смысле слова выросли на моих глазах вместе с проектом. Вспоминал эти истории после очередного апдейта в проекте и захотелось ими поделиться.
Устройство игрового бота: 16-е место в финале Russian AI Cup 2020 (и 5-е после)
2021-02-19 в 18:55, admin, рубрики: AI, bot, codecraft, Gamedev, raic, russian ai cup, искусственный интеллект, Программирование, разработка игр, Спортивное программированиеЭта статья об участии в чемпионате по написанию игрового искусственного интеллекта Russian AI Cup
Дисклеймер, пока все не разбежались
Хоть в финале я и был 16-м, статья описывает бота, удерживавшего 5-е место в общем зачете песочницы на момент её остановки.
Я не планировал писать статью о 16-м месте, но другие участники попросили, а потому, дабы не было стыдно никому смотреть в глаза, я потратил ещё немного времени уже после завершения чемпионата на исправление тех вещей, которые не успел исправить во время чемпионата. Результат на скриншоте.
Избавляемся от «мистических» строк в системе реактивного связывания на Unity
2020-12-17 в 7:14, admin, рубрики: Gamedev, reactive programming, unity, unity3d, Блог компании Pixonic, валидация, оптимизация, Программирование, разработка игр, реактивное программирование, реактивностьЛюбая система, которая часто используется в проекте, со временем обречена на эволюцию. Так случилось и с нашей системой реактивного связывания reactive bindings.
Что это за система? Она позволяет нам связывать данные на префабе с данными в коде. У нас есть ViewModel, лежащая на префабе. В ней есть некие ключи с разными типами. Соответственно, вся остальная логика, которая у нас привязана к UI, привязана к этим ключам и их изменениям. То есть, если у нас есть некая логическая переменная, меняя ее в коде, мы можем менять любые состояния UI автоматически.
Использование reactive bindings принесло нам как множество новых возможностей, так и ряд зависимостей. Для связи переменных кода и ViewModel, лежащей на префабе, нам необходимо было соответствие строковых имен. Это приводило к тому, что в результате неосторожной правки префаба или ошибки мерджа могли быть утеряны какие-то из этих связей, а ошибка замечалась уже на этапе поздних тестов в виде отвалившегося UI-функционала.
Росла частота использования системы — росло число подобных сложностей.
Два основных неудобства, с которыми мы столкнулись:
- Строковые ключи в коде;
- Нет проверки соответствия ключей в коде и ключей в модели.
Эта статья — о том, как мы дополнили систему и тем самым закрыли эти потребности.
Читать полностью »
Russian AI Cup 2020 — новая игра-стратегия для разработчиков
2020-11-27 в 12:01, admin, рубрики: AI, codecraft, Gamedev, raic, russian ai cup, russian ai cup 2020, Блог компании Mail.Ru Group, Занимательные задачки, искусственный интеллект, ненормальное программирование, ПрограммированиеЭтот год трансформировал многие процессы, изменились традиции, привычки. Поменялся ритм, появилась дополнительная неопределенность и напряженность. Но душа IT-специалиста требует разнообразия, и многие разработчики нас спрашивали — будет ли ежегодный чемпионат Russian AI Cup? Будет ли анонс? Какая тема грядущего чемпионата? Брать ли отпуск?
Не без изменений, но в лучших традициях. Накануне старта мы анонсируем один из крупнейших онлайн-чемпионатов современности по программированию искусственного интеллекта — Russian AI Cup. Приглашаем войти в историю!
Читать полностью »
Воксели против теневых карт: выбор новой системы освещения для Roblox
2020-11-20 в 10:53, admin, рубрики: Gamedev, Блог компании Pixonic, воксели, Игры и игровые приставки, освещение, перевод, разработка игр, теневые картыВ течение последних четырех лет воксели служили в качестве системы освещения в мире Roblox. Но рано или поздно во всем приходит время перемен. Именно поэтому разработчики задались вопросом, что делать дальше.
Освещение — штука сложная, так что нужно быть осторожными при выборе новых технологий, ведь при этом необходимо учитывать множество факторов. Для облегчения принятия решения для Roblox создали прототипы двух будущих систем: так называемых вокселей и теневых карт. Для того, чтобы понять ограничения тех и других, сначала важно понять, как они работают.Читать полностью »
Микрокосм, демоверсия
2020-10-23 в 14:31, admin, рубрики: demo, Gamedev, Godot, godotengine, indie, microspace, геймдизайн, Дизайн игр, микрокосм, проектирование, прототипирование, разработка игрВсем доброго дня, в какой бы галактике вы ни находились.
После череды итераций прототип «космической» jrpg, разрабатываемый на Godot engine, дорос, наконец, до первой демоверсии. Доступны win64 и linux варианты. Ниже подробности о том, что было, что стало и куда летает маленький звездолёт.
Как мы пришли к реактивному связыванию в Unity3D
2020-10-23 в 9:23, admin, рубрики: Gamedev, reactive programming, unity3d, Блог компании Pixonic, Программирование, Проектирование и рефакторинг, разработка игр, реактивное программирование, реактивностьСегодня я расскажу о том, как некоторые проекты в Pixonic пришли к тому, что для всего мирового фронтэнда уже давно стало нормой, — к реактивному связыванию.
Подавляющее большинство наших проектов пишется на Unity 3D. И, если у других клиентских технологий с реактивщиной всё неплохо (MVVM, Qt, миллионы JS-фреймворков), и воспринимается она как должное, в Unity каких-либо встроенных или общепринятых средств связывания нет.
У кого-то к этому моменту наверняка созрел вопрос: «А зачем? Мы такое не используем и неплохо живём».
Причины были. Точнее, были проблемы, одним из решений которых могло стать использование такого подхода. В результате оно им стало. А подробности под катом.
Читать полностью »
Как мы переосмыслили работу со сценами в Unity
2020-10-17 в 10:52, admin, рубрики: C#, csharp, Gamedev, unity, unity3d, разработка игрUnity, как движок, имеет ряд недостатков, но которые благодаря возможностям для кастомизации и инструментам для кодогенерации, можно решить.
Сейчас я вам расскажу о том, как мы написали плагин для Unity на основе пост-процессинга проектов и кодогенератора CodeDom.
Проблема
В Unity загрузка сцен происходит через строковой идентификатор. Он не стабильный, а это означает, что он легко изменяем без явных последствий. Например, при переименовании сцены всё полетит, а выяснится это только в самом конце на этапе выполнения.