Level Up: Геймдев в эпоху искусственного интеллекта
Машинное обучение революционизирует игровую индустрию всё больше. Если играли, то знаете, что в играх теперь не просто бездумно бегают NPC, а ведут битву настоящие стратеги, которые адаптируются к вашему стилю игры и, так уж и быть, позволяют вам красиво выиграть, а себе — также красиво (или не очень) проиграть…Как так происходит?С помощью ML, конечно. Есть обучение с учителем. Это когда персонажи учатся на основе заранее размеченных данных или подсказок, что можно представить как обучение на основе опыта предыдущих игроков или действий разработчиков. В результате получается оптимальное поведение, которое уже имеет определенную «интеллектуальность». Есть обучение без учителя. Здесь уже боты изучают игровую среду и формируют свои стратегии, не имея прямых указаний от разработчиков или опыта предыдущих игроков. Этот подход позволяет создавать персонажей, которые могут адаптироваться к самым разным игровым ситуациям, даже если они не были предвидены заранее. И наконец, обучение с подкреплением. Это когда боты принимают решения, основываясь на полученных «наградах» или «штрафах» за свои действия, что в игровом мире может быть аналогично получению очков или бонусов за правильные действия и потере жизней или опыта за ошибочные. Читать далее
#геймдев #разработка_игр #искусственный_интеллект #машинное_обучение #обучение_без_учителя #обучение_с_учителем #обучение_с_подкреплением #ml #gamedev | @habr_ai
Машинное обучение революционизирует игровую индустрию всё больше. Если играли, то знаете, что в играх теперь не просто бездумно бегают NPC, а ведут битву настоящие стратеги, которые адаптируются к вашему стилю игры и, так уж и быть, позволяют вам красиво выиграть, а себе — также красиво (или не очень) проиграть…Как так происходит?С помощью ML, конечно. Есть обучение с учителем. Это когда персонажи учатся на основе заранее размеченных данных или подсказок, что можно представить как обучение на основе опыта предыдущих игроков или действий разработчиков. В результате получается оптимальное поведение, которое уже имеет определенную «интеллектуальность». Есть обучение без учителя. Здесь уже боты изучают игровую среду и формируют свои стратегии, не имея прямых указаний от разработчиков или опыта предыдущих игроков. Этот подход позволяет создавать персонажей, которые могут адаптироваться к самым разным игровым ситуациям, даже если они не были предвидены заранее. И наконец, обучение с подкреплением. Это когда боты принимают решения, основываясь на полученных «наградах» или «штрафах» за свои действия, что в игровом мире может быть аналогично получению очков или бонусов за правильные действия и потере жизней или опыта за ошибочные. Читать далее
#геймдев #разработка_игр #искусственный_интеллект #машинное_обучение #обучение_без_учителя #обучение_с_учителем #обучение_с_подкреплением #ml #gamedev | @habr_ai
Хабр
Level Up: Геймдев в эпоху искусственного интеллекта
Машинное обучение революционизирует игровую индустрию всё больше. Если играли, то знаете, что в играх теперь не просто бездумно бегают NPC, а ведут битву настоящие стратеги, которые адаптируются к...
Фреймворки Gymnasium + Stable-Baselines 3, VizDoom и платформа SMAC в геймдеве
RL (Reinforcement Learning) или же обучение с подкреплением — это удивительный подход к обучению искусственного интеллекта, который позволяет игровым персонажам или ботам учиться, исходя из собственного опыта.
В основе обучения с подкреплением лежит принцип "trial and error" (проб и ошибок). RL-агент, или бот, помещается в определенную среду, например, в игровой уровень. Задачи у RL-агентов разные, но, если мы говорим о бота-противниках, то здесь цель одна — усложнить игроку путь. При этом усложнить умеренно, чтобы игрок мог с ним справиться. При этом же агент не имеет никакой информации о том, как это сделать, и должен учиться. И о том, как ему это делать, сегодня пойдет речь.
В геймдеве обучение с подкреплением используется для создания умных ботов, способных принимать сложные решения и адаптироваться к действиям игрока. Например, в стратегических играх боты могут учиться эффективно использовать ресурсы, строить базы и вести войска в бой. В шутерах боты могут учиться эффективно использовать оружие, уклоняться от пуль и работать в команде.
Обучение с подкреплением также используется для автоматического тестирования игр. Боты могут учиться проходить игровые уровни и находить баги и ошибки, которые не может найти человек.
Читать далее
#разработка_игр #gamedev #gamedevelopment #фреймфорки #starcraft2 #обучение_с_подкреплением #машинное_обучение #ml | @habr_ai
RL (Reinforcement Learning) или же обучение с подкреплением — это удивительный подход к обучению искусственного интеллекта, который позволяет игровым персонажам или ботам учиться, исходя из собственного опыта.
В основе обучения с подкреплением лежит принцип "trial and error" (проб и ошибок). RL-агент, или бот, помещается в определенную среду, например, в игровой уровень. Задачи у RL-агентов разные, но, если мы говорим о бота-противниках, то здесь цель одна — усложнить игроку путь. При этом усложнить умеренно, чтобы игрок мог с ним справиться. При этом же агент не имеет никакой информации о том, как это сделать, и должен учиться. И о том, как ему это делать, сегодня пойдет речь.
В геймдеве обучение с подкреплением используется для создания умных ботов, способных принимать сложные решения и адаптироваться к действиям игрока. Например, в стратегических играх боты могут учиться эффективно использовать ресурсы, строить базы и вести войска в бой. В шутерах боты могут учиться эффективно использовать оружие, уклоняться от пуль и работать в команде.
Обучение с подкреплением также используется для автоматического тестирования игр. Боты могут учиться проходить игровые уровни и находить баги и ошибки, которые не может найти человек.
Читать далее
#разработка_игр #gamedev #gamedevelopment #фреймфорки #starcraft2 #обучение_с_подкреплением #машинное_обучение #ml | @habr_ai
Хабр
Фреймворки Gymnasium + Stable-Baselines 3, VizDoom и платформа SMAC в геймдеве
RL (Reinforcement Learning) или же обучение с подкреплением — это удивительный подход к обучению искусственного интеллекта, который позволяет игровым персонажам или ботам...
ChatGPT Глубокая интеграция
Первое, что приходит в голову, когда речь заходит о ChatGPT и играх, это работа с текстом: диалоги, квесты, сюжет. Но это банально, скучно и не интересно. Мне же хочется, чтобы ИИ мог управлять буквально каждым аспектом геймплея. Сейчас я нахожусь на начальном этапе, и тем не менее мне удалось найти способ, которым можно реализовать все задуманное. Фундаментальной вещью в каждой игре является движение объектов, с этого я и решил начать.
Читать далее
#chatgpt #java #libgdx #parsing #compilation #text_generation #gamedev #game_engine #futures #graphics | @habr_ai
Первое, что приходит в голову, когда речь заходит о ChatGPT и играх, это работа с текстом: диалоги, квесты, сюжет. Но это банально, скучно и не интересно. Мне же хочется, чтобы ИИ мог управлять буквально каждым аспектом геймплея. Сейчас я нахожусь на начальном этапе, и тем не менее мне удалось найти способ, которым можно реализовать все задуманное. Фундаментальной вещью в каждой игре является движение объектов, с этого я и решил начать.
Читать далее
#chatgpt #java #libgdx #parsing #compilation #text_generation #gamedev #game_engine #futures #graphics | @habr_ai
Хабр
ChatGPT Глубокая интеграция
Считаю себя инди-разработчиком, моей самой серьёзной работой, является MMO Project zone 2d online (онлайн-версия игры “S.T.A.L.K.E.R.” в 2D). Когда я узнал про ChatGPT, решил, что обязательно надо...
Интерактивный NPC на Unreal Engine
Всем привет.
Я хочу с вами поделиться результатами эксперимента по созданию интерактивного NPC на Unreal Engine 5.
Speech recognition, Text-to-speech, LLM модели, LipSync, MetaHuman и все это без использования сторонних сервисов.
Видео работы и ссылка на демо версию прилагается.
Если вам интересно увидеть результат и обсудить перспективы интерактивных NPC в игровой индустрии - добро пожаловать под кат.
Читать далее
#speech_recognition #text_to_speech #large_language_models #unreal_engine_5 #metahuman #gamedev #игры | @habr_ai
Всем привет.
Я хочу с вами поделиться результатами эксперимента по созданию интерактивного NPC на Unreal Engine 5.
Speech recognition, Text-to-speech, LLM модели, LipSync, MetaHuman и все это без использования сторонних сервисов.
Видео работы и ссылка на демо версию прилагается.
Если вам интересно увидеть результат и обсудить перспективы интерактивных NPC в игровой индустрии - добро пожаловать под кат.
Читать далее
#speech_recognition #text_to_speech #large_language_models #unreal_engine_5 #metahuman #gamedev #игры | @habr_ai
Хабр
Интерактивный NPC на Unreal Engine
В настоящее время у многих на слуху использование нейронных сетей в игровой индустрии (в том числе генерация музыки, изображений, 3D моделей). Одним из возможных применений нейронных сетей в...
👍2
[Перевод] Как интеллектуальные NPC Ubisoft справляются с динамическим взаимодействием с игроками?
Снятся ли NEO NPC электроовцы?
На GDC 2024 компания Ubisoft официально представила миру NEO NPC — генеративную технологию на базе ИИ для внутриигровых диалогов и взаимодействия игроков с неигровыми персонажами. Проект NEO NPC возник в результате сотрудничества между разработчиками Ubisoft и Inworld AI, которая предоставляет большую языковую модель (Large Language Model – LLM) для NEO NPC, позволяющую разработчикам создавать и формировать персонажей с их собственным прошлым, личностями и жизненными позициями. Также в этом проекте участвует Nvidia, предоставляя свою технологию Audio2Face для анимации NEO NPC в режиме реального времени. Читать дальше →
#gamedev #npc #ubisoft #разработка_игр | @habr_ai
Снятся ли NEO NPC электроовцы?
На GDC 2024 компания Ubisoft официально представила миру NEO NPC — генеративную технологию на базе ИИ для внутриигровых диалогов и взаимодействия игроков с неигровыми персонажами. Проект NEO NPC возник в результате сотрудничества между разработчиками Ubisoft и Inworld AI, которая предоставляет большую языковую модель (Large Language Model – LLM) для NEO NPC, позволяющую разработчикам создавать и формировать персонажей с их собственным прошлым, личностями и жизненными позициями. Также в этом проекте участвует Nvidia, предоставляя свою технологию Audio2Face для анимации NEO NPC в режиме реального времени. Читать дальше →
#gamedev #npc #ubisoft #разработка_игр | @habr_ai
Хабр
Как интеллектуальные NPC Ubisoft справляются с динамическим взаимодействием с игроками?
Снятся ли NEO NPC электроовцы? На GDC 2024 компания Ubisoft официально представила миру NEO NPC — генеративную технологию на базе ИИ для внутриигровых диалогов и взаимодействия игроков с неигровыми...
[Перевод] Революция искусственного интеллекта в игровой индустрии: Формирование будущего видеоигр
Так, что это тут у нас? Очередная статья о генеративном ИИ? Скорее всего это первый вопрос, который придет вам в голову. Короткий ответ на него — да, но все не совсем так, как вам может показаться с первого взгляда.
Я написал эту статью не для того, чтобы примазаться к хайпу вокруг генеративного ИИ, а в надежде поделить ценными соображениями на эту тему. Моя цель — помочь специалистам сделать осознанный выбор в отношении своего будущего, которое (давайте будем честны) уже стоит за порогом, как орда мертвецов во время зомби-апокалипсиса, и совсем скоро постучится к нам в дверь.
Основатель и генеральный директор Half Moon Studios и бывший директор по маркетингу студии Miniclip Питер Койман (Pieter Kooyman) недавно поделился с Михаилом своей историей, которой я с удовольствием поделюсь с вами в этой статье. Опыт работы Коймана в игровой индустрии насчитывает 15 лет, из которых 13 Питер входил в руководящий состав студии Miniclip до того, как компания была приобретена Tencent. Сейчас он занимается развитием Half Moon Studios, которая начала с переосмысления жанра викторин (Picture Quiz).
Half Moon Studios использует особый метод управления своим бизнесом. Их акцент на тщательном подборе инвесторов и партнеров, а также использование искусственного интеллекта для оптимизации операций выделяют их на фоне других студий. Что еще примечательно, так это то, что они не планируют расширять команду дальше 10-12 человек. ИИ — ключевой ингредиент в достижении этого впечатляющего результата.
Давайте же узнаем, как им это удалось!
Читать далее
#gamedev #искусственный_интеллект #видеоигры | @habr_ai
Так, что это тут у нас? Очередная статья о генеративном ИИ? Скорее всего это первый вопрос, который придет вам в голову. Короткий ответ на него — да, но все не совсем так, как вам может показаться с первого взгляда.
Я написал эту статью не для того, чтобы примазаться к хайпу вокруг генеративного ИИ, а в надежде поделить ценными соображениями на эту тему. Моя цель — помочь специалистам сделать осознанный выбор в отношении своего будущего, которое (давайте будем честны) уже стоит за порогом, как орда мертвецов во время зомби-апокалипсиса, и совсем скоро постучится к нам в дверь.
Основатель и генеральный директор Half Moon Studios и бывший директор по маркетингу студии Miniclip Питер Койман (Pieter Kooyman) недавно поделился с Михаилом своей историей, которой я с удовольствием поделюсь с вами в этой статье. Опыт работы Коймана в игровой индустрии насчитывает 15 лет, из которых 13 Питер входил в руководящий состав студии Miniclip до того, как компания была приобретена Tencent. Сейчас он занимается развитием Half Moon Studios, которая начала с переосмысления жанра викторин (Picture Quiz).
Half Moon Studios использует особый метод управления своим бизнесом. Их акцент на тщательном подборе инвесторов и партнеров, а также использование искусственного интеллекта для оптимизации операций выделяют их на фоне других студий. Что еще примечательно, так это то, что они не планируют расширять команду дальше 10-12 человек. ИИ — ключевой ингредиент в достижении этого впечатляющего результата.
Давайте же узнаем, как им это удалось!
Читать далее
#gamedev #искусственный_интеллект #видеоигры | @habr_ai
Хабр
Революция искусственного интеллекта в игровой индустрии: Формирование будущего видеоигр
Так, что это тут у нас? Очередная статья о генеративном ИИ? Скорее всего это первый вопрос, который придет вам в голову. Короткий ответ на него — да, но все не совсем так, как вам может показаться с...
Нейросеть для создания персонажа 2D игры
Я по фану нарисовал куклу, чтобы потом на ее основе делать разные фанарт скины с анимациями и выкладывать их во все запрещенные и нет соцсети.
Читать далее
#ai #искусственный_интеллект #генерация_изображений #инди_игры #инди_разработка #графика_игр #gamedev #unity | @habr_ai
Я по фану нарисовал куклу, чтобы потом на ее основе делать разные фанарт скины с анимациями и выкладывать их во все запрещенные и нет соцсети.
Читать далее
#ai #искусственный_интеллект #генерация_изображений #инди_игры #инди_разработка #графика_игр #gamedev #unity | @habr_ai
Хабр
Нейросеть для создания персонажа 2D игры
Я по фану нарисовал куклу, чтобы потом на ее основе делать разные фанарт скины с анимациями и выкладывать их во все запрещенные и нет соцсети. Кукла и анимация А спустя время наткнулся на...
Портируем олдскульную головоломку на web с использованием LLM и Midjourney для бати
С детства я люблю компьютерные игры: хоть сейчас у меня и другие приоритеты, но иногда люблю зайти в старую добрую классику (недавно добил 100% прохождение GTA San Andreas, прошел классическую серию Serious Sam). Мой папа же — не особо любил подобные игры, ему больше нравился минимализм: шашки, тетрис и прочие 2d игры-головоломки. (До Зумы кстати не добрался, надо бы дать ему попробовать! ремарка)
Одна из таких игр — была незамысловатая игра жанра маджонг в сеттинге Покемонов: в ней нужно находить пары одинаковых карт, чтобы путь между ними был свободен и имел максимум 2 изменения траектории.
В статье делюсь опытом попытки декомпиляции, успешного портирования, генерации кода и изображений
Читать далее
#midjourney #gamedev #web #cursor #llm #шедеврум #opensource | @habr_ai
С детства я люблю компьютерные игры: хоть сейчас у меня и другие приоритеты, но иногда люблю зайти в старую добрую классику (недавно добил 100% прохождение GTA San Andreas, прошел классическую серию Serious Sam). Мой папа же — не особо любил подобные игры, ему больше нравился минимализм: шашки, тетрис и прочие 2d игры-головоломки. (До Зумы кстати не добрался, надо бы дать ему попробовать! ремарка)
Одна из таких игр — была незамысловатая игра жанра маджонг в сеттинге Покемонов: в ней нужно находить пары одинаковых карт, чтобы путь между ними был свободен и имел максимум 2 изменения траектории.
В статье делюсь опытом попытки декомпиляции, успешного портирования, генерации кода и изображений
Читать далее
#midjourney #gamedev #web #cursor #llm #шедеврум #opensource | @habr_ai
Как я написал свою первую обучающую игру на JavaScript с помощью Mistral AI и Яндекс Шедеврума
Я преподаватель математики и информатики. В один прекрасный день осознал простую и важную вещь: дети (и взрослые) любят игры, а математику не любят. И с этим ничего нельзя сделать.
Начал размышлять, как бы геймифицировать учебный процесс. Увлекаюсь HTML, CSS, JavaScript, поэтому задумал написать игру, в которой сюжет продвигался бы за счёт решения задач. Но самое интересное то, что больше половины работы за меня сделал ИИ.
В статье рассказываю о том, как это было. Читать далее
#ии #яндекс_шедеврум #javascript #gamedev #diy #edtech #егэ #огэ | @habr_ai
Я преподаватель математики и информатики. В один прекрасный день осознал простую и важную вещь: дети (и взрослые) любят игры, а математику не любят. И с этим ничего нельзя сделать.
Начал размышлять, как бы геймифицировать учебный процесс. Увлекаюсь HTML, CSS, JavaScript, поэтому задумал написать игру, в которой сюжет продвигался бы за счёт решения задач. Но самое интересное то, что больше половины работы за меня сделал ИИ.
В статье рассказываю о том, как это было. Читать далее
#ии #яндекс_шедеврум #javascript #gamedev #diy #edtech #егэ #огэ | @habr_ai
Хабр
Как я написал свою первую обучающую игру на JavaScript с помощью Mistral AI и Яндекс Шедеврума
Привет! Я преподаватель информатики и математики. В один прекрасный день осознал простую и важную вещь: дети (и взрослые) любят игры, а математику не любят. И с этим ничего нельзя сделать. Начал...
Пять ИИ-сервисов, которые пригодятся в разработке игр
Никого уже не удивить генерацией картинок или текста. Искусственные интеллект постепенно проникает во все сферы нашей жизни, кто-то насколько я знаю, даже гадает с помощью чата GPT, составляет план питания. Короче, как только не используют этот ИИ. Я сегодня кратко хотел бы пробежаться по ИИ-сервисам, которые могут помочь в разработке игр.
Читать далее
#ии #ai #gamedev | @habr_ai
Никого уже не удивить генерацией картинок или текста. Искусственные интеллект постепенно проникает во все сферы нашей жизни, кто-то насколько я знаю, даже гадает с помощью чата GPT, составляет план питания. Короче, как только не используют этот ИИ. Я сегодня кратко хотел бы пробежаться по ИИ-сервисам, которые могут помочь в разработке игр.
Читать далее
#ии #ai #gamedev | @habr_ai
Хабр
Пять ИИ-сервисов, которые пригодятся в разработке игр
www.artbreeder.com Никого уже не удивить генерацией картинок или текста. Искусственные интеллект постепенно проникает во все сферы нашей жизни, кто-то насколько я знаю, даже гадает с помощью чата GPT,...
InZOI – убийца The Sims 4 или новая Метавселенная? Симулятор жизни с ИИ
28 марта более 450 000 пользователей уже получили доступ к демо-версии "симулятора жизни" с ИИ от корейского разработчика, Krafton — создателя PUBG. Новая метавселенная или продвинутый The Sims? Разбираемся в статье.
Читать далее
#inzoi #gamedev #компьютерные_игры #искусственный_интеллект #виртуальная_реальность #метавселенная #метавселенные #метаверс #the_sims #симулятор | @habr_ai
28 марта более 450 000 пользователей уже получили доступ к демо-версии "симулятора жизни" с ИИ от корейского разработчика, Krafton — создателя PUBG. Новая метавселенная или продвинутый The Sims? Разбираемся в статье.
Читать далее
#inzoi #gamedev #компьютерные_игры #искусственный_интеллект #виртуальная_реальность #метавселенная #метавселенные #метаверс #the_sims #симулятор | @habr_ai
Как я открыл WebSocket для Сомников из Чёрного Зеркала, а они начали водить хороводы
С приходом популярности генеративных нейросетей, другие виды искусственного интеллекта тоже получили своё место под солнцем. Однако, ещё до этого уже существовали проекты, где искусственный интеллект играет в различные игры, получает очки за достижение целей и обучается на основе своих результатов. При этом, у каждого игрового ИИ есть свой массив доступных ему действий, который может быть постоянным или изменяемым согласно правилам. Я решил собрать небольшой проект, описать механизм взаимодействия ИИ с игровым пространством, а уже потом наполнить игру правилами и смыслом. Читать далее
#искусственный_интеллект #java #html #javascript #webflux #spring #q_learning #gamedev #черное_зеркало | @habr_ai
С приходом популярности генеративных нейросетей, другие виды искусственного интеллекта тоже получили своё место под солнцем. Однако, ещё до этого уже существовали проекты, где искусственный интеллект играет в различные игры, получает очки за достижение целей и обучается на основе своих результатов. При этом, у каждого игрового ИИ есть свой массив доступных ему действий, который может быть постоянным или изменяемым согласно правилам. Я решил собрать небольшой проект, описать механизм взаимодействия ИИ с игровым пространством, а уже потом наполнить игру правилами и смыслом. Читать далее
#искусственный_интеллект #java #html #javascript #webflux #spring #q_learning #gamedev #черное_зеркало | @habr_ai
Хабр
Как я открыл WebSocket для Сомников из Чёрного Зеркала, а они начали водить хороводы
Это моя небольшая история про создание примитивного пет-проекта. Откуда растут ноги: Я посмотрел 4 эпизод 7 сезона сериала «Чёрное зеркало», где описывалась компьютерная игра с искусственным...
QapGen: Создаём мощные парсеры на C++
QapDSLv2 — это язык который транслируется в обычный C++ код. Он позволяет удобно и компактно задавать грамматики/правила разбора кода программ, значительно упрощая разработку компиляторов/анализаторов/трансляторов.
QapGen — это генератор дерева_лексеров/парсеров описанных на QapDSLv2. Сама грамматика QapDSLv2 описана на QapDSLv2 на 100%. Поэтому QapGen как основной читатель этой грамматики сам генерирует часть своего кода(весь парсер QapDSLv2).
Основные фишки QapDSLv2 + QapGen — это:
1) Отсутствие этапа токенизации — дерево лексеров разбивает входной поток на лексемы и сохраняет их в строго типизированных древовидных С++ структурах пропуская этап токенизации.
2) Генерация оптимизированного кода полиморфных лексеров.
3) Полное сохранение всех лексем(даже разделители сохраняются, такие как пробелы/переходы на новую строку и комментарии) в результирующем дереве.
4) Возможность сохранить как оригинальное дерево, так и модифицированное обратно в код/текст без потери разделителей/комментариев.
5) Автоматическая генерация кода посетителей(это такой паттерн проектирования).
А теперь пример самой сочной части(рекурсивно самоописывающийся код):
structt_target_struct:i_target_item{
structt_keyword{
stringkw=any_str_from_vec(split("struct,class",","));
" "? // optional separator
};
structt_body_semicolon:i_struct_impl{";"};
structt_body_impl:i_struct_impl{
"{" // жрём скобочку
vectornested?; //рекурсия!
" "?
vectorarr?; // парсим поля
" "?
TAutoPtrc?; // остальной С++ код
" "?
"}"
};
structt_parent{
stringa_or_c=any_str_from_vec(split("=>,:",","));
" "?
t_namename;
};
//точка входа в парсер:
TAutoPtrkw?; //парсимstruct/class
t_namename; //парсим имя
" "?
TAutoPtrparent?;
" "?
TAutoPtrbody;
}; Читать далее
#parser #parser_generator #lexers #c_ #tree #ast #gamedev #dsl #compiler | @habr_ai
QapDSLv2 — это язык который транслируется в обычный C++ код. Он позволяет удобно и компактно задавать грамматики/правила разбора кода программ, значительно упрощая разработку компиляторов/анализаторов/трансляторов.
QapGen — это генератор дерева_лексеров/парсеров описанных на QapDSLv2. Сама грамматика QapDSLv2 описана на QapDSLv2 на 100%. Поэтому QapGen как основной читатель этой грамматики сам генерирует часть своего кода(весь парсер QapDSLv2).
Основные фишки QapDSLv2 + QapGen — это:
1) Отсутствие этапа токенизации — дерево лексеров разбивает входной поток на лексемы и сохраняет их в строго типизированных древовидных С++ структурах пропуская этап токенизации.
2) Генерация оптимизированного кода полиморфных лексеров.
3) Полное сохранение всех лексем(даже разделители сохраняются, такие как пробелы/переходы на новую строку и комментарии) в результирующем дереве.
4) Возможность сохранить как оригинальное дерево, так и модифицированное обратно в код/текст без потери разделителей/комментариев.
5) Автоматическая генерация кода посетителей(это такой паттерн проектирования).
А теперь пример самой сочной части(рекурсивно самоописывающийся код):
structt_target_struct:i_target_item{
structt_keyword{
stringkw=any_str_from_vec(split("struct,class",","));
" "? // optional separator
};
structt_body_semicolon:i_struct_impl{";"};
structt_body_impl:i_struct_impl{
"{" // жрём скобочку
vectornested?; //рекурсия!
" "?
vectorarr?; // парсим поля
" "?
TAutoPtrc?; // остальной С++ код
" "?
"}"
};
structt_parent{
stringa_or_c=any_str_from_vec(split("=>,:",","));
" "?
t_namename;
};
//точка входа в парсер:
TAutoPtrkw?; //парсимstruct/class
t_namename; //парсим имя
" "?
TAutoPtrparent?;
" "?
TAutoPtrbody;
}; Читать далее
#parser #parser_generator #lexers #c_ #tree #ast #gamedev #dsl #compiler | @habr_ai
Хабр
QapGen: Создаём мощные парсеры на C++
QapDSLv2 — это язык который транслируется в обычный C++ код. Он позволяет удобно и компактно задавать грамматики/правила разбора, значительно упрощая разработку компиляторов и анализаторов. QapGen —...
Как приручить AI-пиксель-арт
За последние пару лет генеративные нейросети стали волшебной кисточкой для всего: концепт-артов, иконок, иллюстраций, обложек, аватаров, спрайтов… Особенно - пиксель-арта. В Midjourney, Stable Diffusion, Dall-E, Image-1 и в других моделях можно просто вбить:
“Pixel art goose with goggles in the style of SNES” — и получить шикарного пиксельного гуся за 10 секунд.
Но если ты пробовал вставить такого гуся в игру — ты уже знаешь боль.
Я решил вкопаться в эту тему поглубже и сделать open‑source‑инструмент, который автоматизирует превращение AI‑generated pixel art в pixel‑perfect pixel art. Читать далее
#pixel_art #opencv #tools #ai_art #computervision #gamedev | @habr_ai
За последние пару лет генеративные нейросети стали волшебной кисточкой для всего: концепт-артов, иконок, иллюстраций, обложек, аватаров, спрайтов… Особенно - пиксель-арта. В Midjourney, Stable Diffusion, Dall-E, Image-1 и в других моделях можно просто вбить:
“Pixel art goose with goggles in the style of SNES” — и получить шикарного пиксельного гуся за 10 секунд.
Но если ты пробовал вставить такого гуся в игру — ты уже знаешь боль.
Я решил вкопаться в эту тему поглубже и сделать open‑source‑инструмент, который автоматизирует превращение AI‑generated pixel art в pixel‑perfect pixel art. Читать далее
#pixel_art #opencv #tools #ai_art #computervision #gamedev | @habr_ai
Хабр
Как приручить AI-пиксель-арт
За последние пару лет генеративные нейросети стали волшебной кисточкой для всего: концепт‑артов, иконок, иллюстраций, обложек, аватаров, спрайтов… Особенно — пиксель‑арта ....