<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
  <channel>
    <language>ru</language>
    <title>Unity</title>
    <description>Уроки по использованию Unity — использующей C# платформы для разработки игр от Microcoft.</description>
    <link>https://tproger.ru/tag/unity</link>
    <atom:link href="https://tproger.ru/tag/unity/feed" rel="self" type="application/rss+xml"/>
    <lastBuildDate>Wed, 30 Sep 2026 22:54:02 GMT</lastBuildDate>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>12</sy:updateFrequency>
    <image>
      <title>Unity</title>
      <link>https://tproger.ru</link>
      <url>https://tproger.ru/apple-touch-icon.png</url>
    </image>
    <item>
      <title>Unity анонсировала Unity 7: бесшовный переход с Unity 6 и открытая экосистема</title>
      <link>https://tproger.ru/news/unity-anonsirovala-unity-7-beswovnyj-perehod-s-unity-6-i-otkryt</link>
      <comments>https://tproger.ru/news/unity-anonsirovala-unity-7-beswovnyj-perehod-s-unity-6-i-otkryt?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/unity-anonsirovala-unity-7-beswovnyj-perehod-s-unity-6-i-otkryt</guid>
      <description><![CDATA[<p>Unity анонсировала Unity 7 на Unite Seoul 2026: бета в декабре 2026, релиз в начале 2027. Переход без пересборки проектов, открытый API и опциональный ИИ.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/unity-anonsirovala-unity-7-beswovnyj-perehod-s-unity-6-i-otkryt">Unity анонсировала Unity 7: бесшовный переход с Unity 6 и открытая экосистема</a>»</p>]]></description>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 21 Jul 2026 07:36:17 GMT</pubDate>
      <content:encoded><![CDATA[<p>На конференции Unite Seoul 2026 компания Unity представила следующее поколение движка — Unity 7. Главное обещание: переход с Unity 6 не потребует пересборки проектов, а все навыки, ассеты и код сохранятся.</p><p>Релиз состоится в несколько этапов: закрытое бета-тестирование начнётся в декабре 2026 года, а финальная версия выйдет в начале 2027-го. Архитектура Unity 7 — прямое продолжение Unity 6: ключевые компоненты вроде CoreCLR и Surface Cache GI уже проходят production-проверку внутри Unity 6.</p><p>Unity 7 анонсирована на Unite Seoul 2026.</p><p>Переход с Unity 6 обещают без пересборки проектов.</p><p>Бета-версия — декабрь 2026, релиз — начало 2027 года.</p><p>Новые CLI и публичное API позволят работать с движком из внешних инструментов.</p><p>ИИ-инструменты будут опциональными: студии сами решают, использовать их или нет.</p><h2>Что меняется для разработчиков</h2><p>Unity 7 позиционируется как более открытая и быстрая платформа. Новый CLI и публичный API позволят художникам, продюсерам и инженерам проверять ассеты, собирать билды и комментировать правки, не открывая редактор.</p><p>Например, художник в Blender получит «глубокую ссылку» со сценой, ассетом и ревизией, откроет веб-дашборд Unity, внесёт правку и сразу увидит результат в игровом освещении и анимации благодаря Scene Preview. Изменение затем попадает в систему контроля версий, а инженер валидирует ассет и пушит билд через новый CLI.</p><h2>Позиция Unity по ИИ</h2><p>В отличие от громких заявок конкурентов, Unity не навязывает генеративный ИИ. Движок будет работать с уже используемыми инструментами, предлагать ИИ-помощь в оптимизации графики и интеграцию с платформой Unity Vector. При этом компания подчёркивает: выбор остаётся за студией, а не за платформой.</p><h2>Выводы</h2><p>Unity 7 выглядит попыткой вернуть доверие разработчиков после непростых лет: стабильный переход, открытая экосистема и уважение к выбору студий по ИИ. Если обещания сдержат, обновление станет менее болезненным, чем многие прошлые мажорные релизы движка.</p><p>Источник: <a href="https://www.gamedeveloper.com/programming/unity-unveils-unity-7-roadmap-with-update-path-that-won-t-break-your-build">Game Developer</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Бесплатный WAF инструмент кибербезопасности, который я использую</title>
      <link>https://tproger.ru/articles/besplatnyj-waf-instrument-kiberbezopasnosti-kotoryj-ya-ispolzuyu</link>
      <comments>https://tproger.ru/articles/besplatnyj-waf-instrument-kiberbezopasnosti-kotoryj-ya-ispolzuyu?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Неопознанный программист]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/besplatnyj-waf-instrument-kiberbezopasnosti-kotoryj-ya-ispolzuyu</guid>
      <description><![CDATA[<p>Разбор бесплатного open-source WAF SafeLine для защиты от OWASP Top 10, DDoS и ботов. Сравнение с ModSecurity и Cloudflare по точности обнаружения атак, минимальные ложные срабатывания, простая установка одной командой Docker.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/besplatnyj-waf-instrument-kiberbezopasnosti-kotoryj-ya-ispolzuyu">Бесплатный WAF инструмент кибербезопасности, который я использую</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[.NET]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Docker]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[IBM]]></category>
      <category><![CDATA[Cloudflare]]></category>
      <category><![CDATA[Маркетинг]]></category>
      <category><![CDATA[CSR]]></category>
      <category><![CDATA[PostgreSQL]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 01 Jul 2026 05:55:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Решения с открытым исходным кодом достигли такого уровня зрелости, что сегодня они действительно могут конкурировать с коммерческими продуктами — не только по функциональности, но и по удобству использования и поддержке сообщества. Если вы управляете собственной инфраструктурой, больше нет оправдания тому, чтобы оставлять дверь открытой для угроз.</p><p>SafeLine WAF — это бесплатный инструмент, который я лично тестировал.</p><p>Это полностью open-source решения, продукт с действительно бесплатной Community Edition, где ключевые функции не урезаны.</p><p><b>SafeLine WAF — веб-приложенийный межсетевой экран, который действительно поставляется с разумными настройками по умолчанию</b></p><p><b>Что он делает:</b></p><p>Защищает веб-приложения от SQL-инъекций, XSS-атак, командных инъекций, CSRF, SSRF, атак включения файлов и других угроз из списка OWASP Top 10. Также поддерживает защиту от CC/DDoS-атак, управление ботами и может работать как шлюз аутентификации.</p><p><b>Почему он:</b></p><p>Большинство WAF с открытым исходным кодом достаточно сложно настроить. Можно потратить часы на настройку правил, пытаясь остановить ложные срабатывания, из-за которых легитимные пользователи блокируются.</p><p>SafeLine использует другой подход — вместо того чтобы полностью полагаться на сигнатурное обнаружение, он применяет движок семантического анализа, который фактически анализирует и понимает входящие HTTP-запросы. Это позволяет добиться более высокого уровня обнаружения при значительно меньшем количестве ложных срабатываний по умолчанию.</p><p>Некоторые показатели, которые стоит учитыват</p><ol><li>Уровень обнаружения - SafeLine (Balanced) (71.65%), ModSecurity (Level 1) (69.74%), Cloudflare (Free) (10.7%)</li><li>Уровень ложных срабатываний - SafeLine (Balanced) (0.07%), ModSecurity (Level 1) (17.58%), Cloudflare (Free) (0.07%)</li><li>Точность - SafeLine (Balanced) (99.45%), ModSecurity (Level 1) (82.20%), Cloudflare (Free) (98.40%)</li></ol><p>Сбалансированный профиль SafeLine обнаруживает более 70% атак, при этом блокируя легитимный трафик ошибочно всего в 0.07% случаев. Это именно тот уровень настроек по умолчанию, который можно использовать в промышленной среде без постоянного ручного контроля.</p><p>Установка выполняется одной командой</p><p>После запуска он разворачивается как набор Docker-контейнеров: Tengine (форк Nginx) используется в качестве reverse proxy, отдельный сервис отвечает за семантический анализ, PostgreSQL хранит конфигурации и логи, а удобная веб-панель администратора работает на порту 9443.Community Edition поддерживает до 10 сайтов, чего достаточно для большинства личных проектов и небольших бизнес-сценариев.</p><p>Сайт: <a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Fcodeby.net%2Fgoto%2Flink-confirmation%3Furl%3DaHR0cHM6Ly9jeWJlcnNlcnZhbC50ZWNoL2xhbmRpbmcvc2FmZWxpbmXvv7xHaXRIdWI%253D%26s%3D7008b60d8a0849ba0be350fe25edfa72&amp;postId=3005263" rel="nofollow noopener">https://cyberserval.tech/landing/safeline</a></p><p>GitHub:<a href="https://api.vc.ru/v2.8/redirect?to=http%3A%2F%2Fgithub.com%2Fchaitin%2FSafeLine&amp;postId=3005263" rel="nofollow noopener"> github.com/chaitin/SafeLine</a> (более 21 тыс. звёзд)</p><p>Лицензия: GPL-3.0 / MIT (Community Edition)</p>]]></content:encoded>
    </item>
    <item>
      <title>Unity для детей: прямой путь от увлечения играми к будущей IT-профессии</title>
      <link>https://tproger.ru/articles/unity-dlya-detej--pryamoj-put-ot-uvlecheniya-igrami-k-budushhej-it-professii</link>
      <comments>https://tproger.ru/articles/unity-dlya-detej--pryamoj-put-ot-uvlecheniya-igrami-k-budushhej-it-professii?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Блог Школа программирования Пиксель]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/unity-dlya-detej--pryamoj-put-ot-uvlecheniya-igrami-k-budushhej-it-professii</guid>
      <description><![CDATA[<p>Юнити для детей — это не просто детское хобби. На этом игровом движке созданы Genshin Impact, Pokemon GO, Rust и даже симуляторы для хирургов. Рассказываем, как устроен Unity, почему его стоит изучать детям и как записаться на бесплатный урок.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/unity-dlya-detej--pryamoj-put-ot-uvlecheniya-igrami-k-budushhej-it-professii">Unity для детей: прямой путь от увлечения играми к будущей IT-профессии</a>»</p>]]></description>
      <category><![CDATA[Партнёрский материал]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Для начинающих]]></category>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 24 Dec 2025 10:30:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Часто ли ваш ребенок играет в компьютерные игры? Ответ, скорей всего, — «да». Но представьте, что вместо того, чтобы просто проходить уровни, он может... создать свой собственный игровой мир. Нарисовать своих героев, придумать для них правила и оживить целую вселенную. Звучит как фантастика? На самом деле для этого существует совершенно конкретный и мощный инструмент, доступный детям, — Unity.</p><p>Unity — это не язык программирования, как Python или JavaScript. Это игровой движок. Если представить создание игры как постройку умного дома, то движок — это даже не набор кирпичей и инструментов. Это готовый фундамент, проложенные коммуникации, система управления освещением и безопасностью. С Unity детям не нужно изобретать условные «провода» с нуля. В игровой движок уже встроены системы для работы с 2D и 3D-графикой, реалистичной физикой, звуком, освещением и анимацией. Это огромный сложный «цифровой конструктор», где создатель концентрируется на самом интересном: на своей идее, истории и геймплее.</p><p>Именно поэтому знакомство с Unity для детей и подростков — это не просто еще одно хобби за компьютером. Это прямой путь от роли увлеченного игрока к востребованному специалисту: геймдизайнеру, программисту, техническому художнику. Это путь от потребления цифрового контента к его созданию, где каждый новый навык — это еще один кирпичик в фундаменте возможной будущей профессии.</p><h2>Как устроен Unity</h2><p>Когда вы впервые откроете Unity, вы увидите интерфейс с несколькими панелями и вкладками. Главное пространство по центру — это Сцена (Scene). Именно здесь происходит все волшебство созидания. Это — та самая съемочная площадка, где вы расставляете декорации и «актеров».</p><figure><img src="https://media.tproger.ru/user-uploads/134865/2025-12-22/3df87ba0-efbe-48af-8d00-918add44b965.jpg" alt="Юнити для детей, интерфейс движка" /><figcaption>Интерфейс Unity, изображение с сайта unity.com</figcaption></figure><p>Игровые объекты (GameObjects) — это «актеры» и «реквизит» на этой сцене. Все, что вы видите в игре: персонаж, дерево, камень, пуля, светильник, сама камера — является GameObject. Но изначально это просто пустой объект, контейнер для свойств. Его индивидуальность появляется благодаря Компонентам (Components).</p><p>Компоненты — это инструкции и свойства, которые вы «вешаете» на объект, чтобы он обрел форму и поведение.</p><p>Хотите, чтобы объект был видимым кубом? Добавьте компонент Mesh Renderer и Box Collider.</p><p>Нужно, чтобы он подчинялся законам гравитации и падал? Прикрепите компонент Rigidbody.</p><p>А чтобы объект двигался при нажатии клавиш или взаимодействии с другими объектами нужен самый важный тип компонентов — Скрипт (Script). Скрипты в Unity пишутся на языке C# (произносится «си шарп»). Именно они говорят персонажу: «Когда игрок нажмет клавишу W, примени силу вперед», врагу — «Если видишь героя, начинай преследование», а двери — «Если персонаж вошел в зону действия и нажал E, откройся».</p><p>Почему C# — отличный язык для старта в серьезном программировании?</p><ul><li>C# заставляет мыслить четко и организованно. Он требует объявлять типы данных (это число, текст или что-то еще?), что сразу приучает к аккуратности и помогает избежать ошибок. Это как учиться черчению по ГОСТу — сначала это кажется лишним, а потом становится основой для проектирования любых сложных систем.</li><li>Это профессиональный язык, на котором создают не только игры, но и банковские системы, корпоративные приложения. Его синтаксис логичен и относительно понятен для новичков. Выучив его основы, подросток получает ключ к огромному сегменту IT-рынка.</li></ul><h2>Почему Unity покорил мир</h2><p>Компания Unity Technologies была основана в Дании в 2004 году. Ее ключевой идеей была демократизация разработки игр. В то время мощные дорогие движки были доступны только крупным студиям с миллионными бюджетами, но Unity сфокусировался на независимых разработчиках. Он предложил относительно простой вход (Unity можно использовать бесплатно), понятный интерфейс и, что критически важно, кроссплатформенность.</p><p>Это значит, что игру, созданную один раз в Unity, можно с минимальными доработками собрать и выпустить практически на любую платформу: Windows, macOS, PlayStation, Xbox, iOS, Android и даже в веб-браузер. Для детей это невероятно вдохновляющий факт: их творения могут оказаться не только на компьютере друга, но и в мобильном магазине приложений. Эта философия «создай один раз — распространяй везде» и сделала Unity мировым стандартом, на котором сегодня работает почти половина мобильных и ПК-игр.</p><h2>Мобильные хиты на Unity</h2><p>Практически в каждом смартфоне найдется игра на Unity. Например, на Unity сделаны:</p><p>Pokémon GO — тот самый феномен, который вывел людей в парки по всему миру. Его успех построен на технологии дополненной реальности (AR), которую удалось блестяще реализовать с помощью Unity.</p><figure><img src="https://media.tproger.ru/user-uploads/134865/2025-12-22/9913d7e0-bc17-4352-bd87-04b138eef294.jpg" alt="Pokémon GO — игра на Юнити для детей и взрослых" /><figcaption>Pokémon GO — игра, постороенная на технологии дополненной реальности, изображение с pokemongo.com</figcaption></figure><p>Genshin Impact — бесплатная игра с огромным миром в стиле аниме, которая покорила не только мобильные устройства, но и ПК и консоли. Ее визуальная красота — прямое доказательство того, на что способен Unity.</p><figure><img src="https://media.tproger.ru/user-uploads/134865/2025-12-22/e243cf93-9163-47d6-bd6a-80a17059d09c.jpg" alt="Скриншот Genshin Impact, игры, созданной на Юнити" /><figcaption>Genshin Impact, изображение с genshin.hoyoverse.com</figcaption></figure><p>Beat Saber — культовая VR-игра, где нужно разбивать летящие блоки в ритм музыки.</p><figure><img src="https://media.tproger.ru/user-uploads/134865/2025-12-22/09dc8e16-80c0-4188-9683-4d9ecaa8c9fe.png" alt="Юнити для детей: скриншот главной страницы сайта beatsaber.com." /><figcaption>Beat Saber, скриншот с beatsaber.com</figcaption></figure><h2>Культовые инди-игры на Unity</h2><p>Здесь — истории успеха маленьких студий, которые больше всего вдохновляют юных разработчиков. Небольшие команды или даже одиночки смогли создать мировые хиты, а Unity был их основным инструментом.</p><p>Cuphead — игра в уникальном стиле «резиновой» анимации 30-х годов, также созданная на Unity.</p><figure><img src="https://media.tproger.ru/user-uploads/134865/2025-12-22/568a5d68-9dda-4024-a4e6-a931ff74ae17.jpg" alt="Юнити для детей: персонаж Cuphead" /><figcaption>Cuphead, изображение с unity.com</figcaption></figure><p>Hollow Knight — игра с огромным мрачным миром, сложными боссами и запоминающейся атмосферой.</p><figure><img src="https://media.tproger.ru/user-uploads/134865/2025-12-22/ca3c50d1-746d-4f6c-ac0b-b0224fb8c65c.png" alt="Юнити для детей: игра Hollow Knight" /><figcaption>Hollow Knight, изображение с unity.com</figcaption></figure><p>Among Us — игра, ставшая глобальным социальным феноменом. Простая графика и гениальная механика обмана были реализованы на Unity.</p><figure><img src="https://media.tproger.ru/user-uploads/134865/2025-12-22/5eddbbd3-1a08-4e7a-83b1-841c60e92d2c.jpg" alt="Among Us — игра на движке Юнити" /><figcaption>Among Us, скриншот с greatgamer.ru</figcaption></figure><h2>Серьезные игровые проекты для ПК и консолей на Unity</h2><p>Unity справляется и с крупными, технологически сложными играми.</p><p>Escape from Tarkov — хардкорный симулятор выживания с невероятной детализацией оружия и реализмом, который высоко ценится продвинутыми игроками.</p><figure><img src="https://media.tproger.ru/user-uploads/134865/2025-12-22/41000f3f-4334-4b10-be9e-c3acea58c958.jpg" alt="Escape from Tarkov, скриншот игры" /><figcaption>Escape from Tarkov, изображение с unity.com</figcaption></figure><p>Rust — еще одна суровая песочница на выживание с огромным открытым миром и постоянной онлайн-активностью игроков.</p><figure><img src="https://media.tproger.ru/user-uploads/134865/2025-12-22/2e64ad34-5942-4a20-8f93-f8d487cc57d5.jpg" alt="Реалистичный пейзаж в Rust" /><figcaption>Реалистичный пейзаж в Rust, скриншот игры с vgtimes.ru</figcaption></figure><p>Новые части таких серий, как Hearthstone или Cities: Skylines также созданы на Unity, то есть он отлично подходит для стратегий и карточных игр.</p><figure><img src="https://media.tproger.ru/user-uploads/134865/2025-12-22/119e39cd-5572-4c12-a28d-b47d5031cad8.jpg" alt="Юнити для детей: игра Hearthstone также создана на этом движке" /><figcaption>Hearthstone, скриншот с playground.ru</figcaption></figure><h2>Не только игры: что еще работает на Unity</h2><p>Unity был создан именно как игровой движок. Однако его ключевая философия — «демократизация разработки» — сделала его настолько гибким и дружелюбным, что со временем разработчики из самых разных отраслей, не связанных с играми, начали использовать его для своих задач. В итоге Unity вырос из игровой ниши, превратившись в универсальную платформу для создания любого интерактивного 2D/3D-опыта.</p><p>На этом движке создают образовательные симуляторы и обучающие приложения:</p><ul><li>Медицинские тренажеры — будущие хирурги отрабатывают операции на виртуальных органах с точной физикой и анатомией. Например, один из таких симуляторов на Unity — FundamentalVR.</li><li>Виртуальные экскурсии и музеи — вы можете «пройтись» по древнеримскому форуму, заглянуть внутрь атома или в кабину космического корабля. Многие современные интерактивные онлайн-музеи и проекты по сохранению культурного наследия используют Unity, среди них — Британский музей, Виртуальный музей похищенных культурных ценностей ЮНЕСКО, «Запретный город» в 3D (Пекин) и многие другие.</li><li>Тренажеры для пилотов, водителей и операторов сложной техники — Unity можно использовать везде, где ошибка в реальности стоит слишком дорого.</li></ul><p>Дополненная (AR) и виртуальная реальность (VR) — одна из самых сильных сторон Unity. Движок предоставляет готовые инструменты для работы с камерами, датчиками и шлемами. На Unity создают:</p><ul><li>AR-приложения для ритейла и дизайна — можно примерить очки прямо со смартфона, увидеть, как новый диван впишется в вашу гостиную, или визуализировать архитектурный проект на реальной стройплощадке. Microsoft даже использует Unity для своих платформ смешанной реальности (Mixed Reality).</li><li>VR-тренинги для бизнеса, — например, отработка действий в чрезвычайных ситуациях для сотрудников предприятий.</li><li>Интерактивный сторителлинг и искусство — художники и режиссеры создают иммерсивные VR-фильмы и инсталляции, где зритель становится частью повествования.</li></ul><p>Еще дна сфера использования — визуализация и инженерия в промышленности и архитектуре:</p><ul><li>Архитектурная визуализация — в Unity можно создать не просто статичную картинку, а полноценную «прогулку» по будущему дому или кварталу до начала стройки. Можно менять материалы стен, время суток, расставлять мебель.</li><li>Промышленные симуляторы — инженеры могут создать точную виртуальную копию заводской линии, чтобы отслеживать ее работу, искать слабые места и тестировать модификации, не останавливая реальное производство. Такие подходы используют, например, компании Boeing и Volvo.</li></ul><h2>Почему детям стоит начать с Unity</h2><p>Когда дети задаются вопросом, что попробовать в IT, выбор может быть непростым. Python предлагает упор на логику, JavaScript — веб, Scratch — визуальную простоту. Но Unity занимает особое место: это, пожалуй, самый прямой и мотивирующий путь от детского увлечения к взрослой профессии.</p><p>Чем же так хорош Unity для детей:</p><ul><li>Профессионализм по умолчанию. С Unity дети с первых шагов используют тот же инструмент, что и крупные студии и независимые разработчики. Это не симулятор или учебная среда, а промышленный стандарт. Такой старт сразу формирует правильное, ответственное отношение к разработке и дает чувство сопричастности к реальной индустрии.</li><li>Баланс сложности и наглядности. В отличие от чисто текстовых языков, где первое время уходит только на консольные задачи, Unity дает мгновенный визуальный результат. Написал несколько строчек кода — и объект на экране ожил, отреагировал. Эта наглядность — мощнейший источник мотивации, который компенсирует сложность изучения C# и принципов геймдизайна.</li><li>Синтез творчества и логики. Unity не загоняет детей в узкие рамки «технаря» или «художника». Он естественным образом объединяет оба мира: чтобы создать игру или симулятор, нужно и мыслить алгоритмами, и чувствовать композицию, и рассказывать историю. Это помогает раскрыть разносторонние способности и найти свою сильную сторону.</li></ul><p>Именно такой комплексный подход делает Unity уникальной стартовой площадкой.</p><p>Кроме того, изучая Unity, дети осваивают не просто инструмент, а целый цикл разработки:</p><ul><li>Анализ задачи: Что должен делать пользователь? Какую проблему решает приложение?</li><li>Проектирование логики: Как разбить сложное действие на простые шаги (алгоритмы)?</li><li>Работа с интерфейсом (UI/UX): Как сделать управление интуитивно понятным?</li><li>Тестирование и итерация: Почему что-то работает не так? Как это улучшить?</li></ul><p>Это те самые hard skills (программирование на C#, понимание 3D-графики) и soft skills (логика, решение проблем, креативность), которые ценятся в любой IT-профессии: от бэкенд-разработчика до проджект-менеджера в технологической компании. Unity, в данном случае, становится не целью, а мощной и увлекательной средой для развития цифрового интеллекта.</p><h2>Что делать, чтобы ребенок не потерял интерес к Unity?</h2><p>Осваивать такой мощный инструмент в одиночку по видеороликам — сложно. Можно быстро запутаться в деталях, упустить системное понимание и, что самое обидное, забросить перспективный проект из-за бага, который не смог решить.</p><p>Именно поэтому мы в школе программирования «Пиксель» создали специальный курс по Unity для детей и подростков. Наши педагоги — практикующие разработчики, которые знают, как объяснить сложные концепции C# и геймдизайна на простых и увлекательных примерах. Мы построили программу вокруг создания собственного проекта — чтобы теория сразу применялась на практике, а каждое занятие приносило чувство достижения и успеха.</p><p>Хотите увидеть, как это работает, и дать ребенку возможность принять взвешенное и самостоятельное решение?</p><p>Приглашаем на бесплатный полноценный пробный урок по Unity. Это не вводный вебинар, а настоящее практическое занятие в нашей онлайн-среде, где под руководством преподавателя дети:</p><ul><li>познакомятся с интерфейсом Unity;</li></ul><ul><li>напишут свои первые строчки кода на C#, чтобы оживить объект;</li></ul><ul><li>увидят, как их действия мгновенно меняют виртуальный мир.</li></ul><p>Это лучший способ понять, подходит ли такой формат и вызывает ли Unity искру интереса у ребенка.</p><p><a href="https://pixel.study/demo?utm_source=tproger.ru&amp;utm_medium=article&amp;utm_campaign=unity-dlya-detey-pryamoy-put-ot-uvlecheniya-igrami-k-budushchey-it-professii">Здесь можно записаться на бесплатный пробный урок</a>.</p><p>А <a href="https://pixel.study/unity?utm_source=tproger.ru&amp;utm_medium=article&amp;utm_campaign=unity-dlya-detey-pryamoy-put-ot-uvlecheniya-igrami-k-budushchey-it-professii">здесь — узнать подробнее о курсе Unity для детей</a> в «Пикселе».</p><p>Давайте превратим увлечение играми в созидательную силу и первый серьезный навык будущего!</p><p>Итак, Unity — это гораздо больше, чем просто хобби или способ занять время за компьютером. Это первый по-настоящему профессиональный и при этом доступный инструмент, который подросток может освоить. Он не имитирует процесс разработки — он является его полноценной частью и прямо сейчас на нем создаются будущие мировые хиты. Выбор в пользу изучения Unity — это выбор в пользу роли создателя, когда ребенок перестает быть просто пользователем цифрового мира и становится его архитектором.</p><p><i>Реклама. Рекламодатель ООО «Пиксель.Стади», ИНН 5074078988, erid: 2W5zFGCQe1e</i></p>]]></content:encoded>
    </item>
    <item>
      <title>Unity раскрыла давнюю уязвимость и просит разработчиков срочно обновить игры</title>
      <link>https://tproger.ru/news/unity-raskryla-davnyuyu-uyazvimost-i-prosit-razrabotchikov-srochno-obnovit-igry</link>
      <comments>https://tproger.ru/news/unity-raskryla-davnyuyu-uyazvimost-i-prosit-razrabotchikov-srochno-obnovit-igry?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Даровская Маша]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/unity-raskryla-davnyuyu-uyazvimost-i-prosit-razrabotchikov-srochno-obnovit-igry</guid>
      <description><![CDATA[<p>Unity сообщила о серьёзной уязвимости в проектах на версиях 2017.1+ для Windows/Android/macOS. Патчи уже доступны, Steam и Microsoft добавили защиты. Что делать разработчикам и игрокам.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/unity-raskryla-davnyuyu-uyazvimost-i-prosit-razrabotchikov-srochno-obnovit-igry">Unity раскрыла давнюю уязвимость и просит разработчиков срочно обновить игры</a>»</p>]]></description>
      <category><![CDATA[Безопасный код]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Уязвимость]]></category>
      <category><![CDATA[Кибербезопасность]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 06 Oct 2025 11:22:55 GMT</pubDate>
      <content:encoded><![CDATA[<p>Unity <a href="https://www.theverge.com/news/791609/unity-security-exploit-developers-update-games">объявила</a> о серьёзной уязвимости безопасности, которая затрагивает проекты, созданные на версиях движка начиная с Unity 2017.1 и выпущенные для Windows, Android и macOS (а также Linux, по данным профильной прессы). Компания призвала разработчиков принять немедленные меры и выпустить обновления. При этом Unity подчёркивает: признаков эксплуатации уязвимости нет, на пользователей и клиентов влияния не зафиксировано. Исправления уже доступны, партнёры по платформам включили дополнительные защиты.</p><p>Уязвимость <a href="https://www.pcgamer.com/hardware/unity-has-found-a-security-vulnerability-that-has-sat-dormant-for-almost-a-decade-take-immediate-action-to-protect-your-games-and-apps/">выявили</a> в июне, а устранили в октябре.</p><h2>Что случилось</h2><p>По данным Unity и СМИ, обнаруженная проблема позволяет злоумышленнику при определённых условиях выполнить код на машине пользователя и получить доступ к данным. Unity выпустила патчи и инструменты для разработчиков; тем, кто собирает проекты на старых редакторах, рекомендовано пересобрать и переиздать приложения на версиях редактора с исправлением (доступны через Unity Hub/Download Archive). Для тех, кто пока не готов к релизной пересборке, подготовлен пэтчер приложений для Android/Windows/macOS (ограничения: не работает с некоторыми сборками с античитами и tamper-защитой). Уязвимость получила высокий балл серьёзности (CVSS ~8.4) и связана с небезопасной загрузкой файлов/Local File Inclusion.</p><h2>Что предприняли платформы</h2><p>Партнёры Unity включили «надстройки безопасности» на своей стороне. Valve выпустила обновление Steam с мерами снижения риска, а Microsoft Defender получил сигнатуры для обнаружения и блокировки попыток эксплуатации. Google и Meta также добавили защитные механизмы. При этом нет признаков, что уязвимость затрагивает iOS, VisionOS, tvOS, Xbox, Nintendo Switch, PlayStation, UWP, Quest и WebGL.</p><h2>Как реагируют издатели и разработчики</h2><p>Ряд студий уже выпускают патчи или временно ограничивают доступность проектов, чтобы пройти проверку и обновление. В частности, из цифровых магазинов временно убирались некоторые игры Microsoft/Obsidian (например, Pentiment), а также проекты, получившие оперативные патчи, — Marvel Snap, No Rest for the Wicked, Ingress, Fate/Grand Order; Atlus сообщила об обновлении Persona 5: The Phantom X. В отдельных случаях под ограничения попадали даже нe-Unity-игры, если у них есть Unity-компоненты (цифровые артбуки, лончеры и пр.).</p><h2>Что делать разработчикам</h2><ul><li>Проверить, на каких версиях Unity Editor собраны релизные билды.</li><li>Пересобрать и переиздать приложения на версиях, содержащих исправления (или применить официальный пэтчер, если пересборка сейчас невозможна).</li><li>Сообщить игрокам о необходимости обновить игру/лаунчер и держать системы защиты в актуальном состоянии.</li></ul><p>Реальной эксплуатации уязвимости пока не зафиксировано, но уязвимость системная и давняя; чем быстрее разработчики выпустят обновления, тем меньше риск для игроков и партнёров по платформам.</p>]]></content:encoded>
    </item>
    <item>
      <title>Недельный геймдев: #246 — 5 октября, 2025</title>
      <link>https://tproger.ru/articles/nedelnyj-gejmdev---246---5-oktyabrya--2025</link>
      <comments>https://tproger.ru/articles/nedelnyj-gejmdev---246---5-oktyabrya--2025?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Андрей Апанасик]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/nedelnyj-gejmdev---246---5-oktyabrya--2025</guid>
      <description><![CDATA[<p>EA согласилась на продажу за 55 миллиардов, Unity раскрыла многолетнюю уязвимость, Bevy 0.17, Microsoft объявил о масштабных изменениях в Game Pass, на King подали в суд.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/nedelnyj-gejmdev---246---5-oktyabrya--2025">Недельный геймдев: #246 — 5 октября, 2025</a>»</p>]]></description>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 06 Oct 2025 07:23:28 GMT</pubDate>
      <content:encoded><![CDATA[<p>Из новостей: EA согласилась на продажу за 55 миллиардов, Unity  раскрыла многолетнюю уязвимость, Bevy 0.17, Microsoft объявил о  масштабных изменениях в Game Pass, на King подали в суд.</p><p>Из интересностей: посиделки с инди #5 The King is Watching и путь к  300к копиям, ведьма и её спектральные коты, анимация в Cronos: The New  Dawn.</p><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-10-06/70068614-2cf5-4319-99b2-89acb43a4015.jpg" alt="" /></figure><h2>Обновления/релизы/новости</h2><h2>EA согласилась на продажу за 55 миллиардов</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-10-06/73afa365-45f9-4132-87a9-a170fb5eb567.png" alt="" /></figure><p>Их <a href="https://www.ea.com/news/exciting-news-about-our-future">выкупят</a>  Silver Lake, Суверенный фонд Саудовской Аравии и Affinity Partners за  55 миллиардов. Снимутся с биржи, компания станет приватной.</p><p>Интересно будет посмотреть, как это скажется на структуре и проектах.</p><p>Но в контексте этой продажи будет к месту вспомнить похожую сделку  Ubisoft, и как там всё приняло не самый приятный оборот. А тут EA на  пике продаётся.</p><h2>Тираж Silent Hill f превысил миллион копий</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-10-06/9310dc86-9eda-4e9f-86d1-758ff5a96f3b.jpg" alt="" /></figure><p>Учтены <a href="https://x.com/silenthill_jp/status/1972577585558433936">как физические, так и цифровые копии</a>.</p><h2>В Unity нашлась уязвимость, которой подвержены версии движка, начиная с версии 2017.1</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-10-06/61d5a99c-bcc7-458e-9171-3a0ab2e37930.png" alt="" /></figure><p>Рейтинг у <a href="https://www.cve.org/CVERecord?id=CVE-2025-59489">CVE</a> 7.4 из 10, даже не смотря на то, что команда Unity <a href="https://unity.com/security/sept-2025-01/remediation">пишет</a>,  что нет никаких свидетельств эксплуатации этой уязвимости. Но,  например, Obsidian временно сняла с продажи кучу своих игр из-за этой  уязвимости. А Marvel Snap, No Rest for the Wicked, Ingress, Fate/Grand  Order уже выпустили обновление.</p><p>Уязвимость базируется на возможности передавать доп. аргументы  командной строки, позволяющие загружать и выполнять произвольный код.</p><p>Valve, в свою очередь, уже <a href="https://steamcommunity.com/games/593110/announcements/detail/507340830949770871">выпустила</a> обновление Steam’а. Windows Defender тоже получил обновление.</p><h2>Хоррор про слот-машину CloverPit купили 300к раз за 4 дня</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-10-06/c167d7b8-7e57-4822-aaf8-36cda90aa274.png" alt="" /></figure><p>Об этом авторы игры — два итальянских разработчика из студии Panik Arcade — <a href="https://store.steampowered.com/news/app/3314790/view/499459531596629424">объявили</a> на её странице в Steam.</p><h2>Bevy 0.17</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-10-06/583cafaf-9079-4b8d-9263-a0a13240f0dc.png" alt="" /></figure><p>В обновлении новый трассировщик лучей, поддержка DLSS и <a href="https://bevy.org/news/bevy-0-17/">многое другое</a>.</p><h2>Microsoft объявил о масштабных изменениях в Game Pass — Ultimate-подписка подорожала до 30 долларов в месяц</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-10-06/f200e089-43ae-48c2-ab23-5ec2fc12f48f.gif" alt="" /></figure><p>Компания <a href="https://news.xbox.com/en-us/2025/10/01/xbox-game-pass-ultimate-premium-essential-plans/">переименовала</a> тарифы и добавила новые возможности во все уровни подписки.</p><h2>В студии авторов «Клондайка» прошли увольнения</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-10-06/8d4f98e5-e265-440d-ba57-59c0752037d1.png" alt="" /></figure><p>Vizor Games <a href="https://app2top.ru/news/v-studii-avtorov-klondajka-proshli-uvol-neniya-234608.html">сократила</a>  часть сотрудников минского офиса. В беседе с порталом devby уволенные  специалисты рассказали, что всего работы лишились более двух десятков  человек, в основном — художники.</p><h2>Студия-разработчик Just Cause и Mad Max объявила о массовых увольнениях после отмены Contraband</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-10-06/252bf54b-8e8d-4dc7-af01-46cbdbf6ed07.jpg" alt="" /></figure><p>Шведская компания <a href="https://avalanchestudios.com/stories/studio-update">закрывает офис</a> в Ливерпуле и сокращает персонал в других подразделениях.</p><h2>На King подали в суд — её обвинили в сокрытии шансов на победу в турнире по Candy Crush Saga и вытягивании денег</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-10-06/ba9dae9b-30c2-41a2-a589-dafe606d7cc9.png" alt="" /></figure><p>Американский геймер Рубен Валенсуэла <a href="https://app2top.ru/news/na-king-podali-v-sud-ee-obvinili-v-sokry-tii-shansov-na-pobedu-v-turnire-po-candy-crush-saga-i-vy-tyagivanii-deneg-234668.html">направил иск к King</a>  и её материнской компании Activision Blizzard. Поводом стал турнир All  Stars по Candy Crush Saga — разработчики якобы создают у участников  впечатление, будто их шансы на победу выше, чем есть на самом деле.</p><h2>Ubisoft и Tencent создали компанию Vantage Studios — она будет отвечать за разработку Assassin’s Creed, Far Cry и Rainbow Six</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-10-06/45bb4c9e-2ea4-4de5-b417-5ad9a5fdcd14.jpg" alt="" /></figure><p>Подразделение <a href="https://www.eurogamer.net/ubisoft-and-tencent-announce-new-subsidiary-vantage-studios-to-lead-development-for-the-assassins-creed-far-cry-rainbow-six-franchises">объединит</a> 2300 разработчиков из крупнейших команд Ubisoft.</p><h2>Starbreeze отменила кооперативную экшен-RPG по D&amp;D, чтобы сфокусироваться на Payday</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-10-06/6957e581-5458-4254-a384-b9157d7f61fc.jpg" alt="" /></figure><p>В связи с этим студия <a href="https://corporate.starbreeze.com/en/press/press-releases/starbreeze-sharpens-focus-on-payday-franchise-baxter-discontinued-as-part-of-strategic-shift/">сократила 44 человека</a>.</p><h2>Экшен-«песочницу» Kingmakers о современном солдате в Средневековье отложили — за пять дней до выхода</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-10-06/9e6e33a2-af80-49ee-ade9-5219842b99c8.png" alt="" /></figure><p>Новой даты релиза пока нет — разработчикам <a href="https://x.com/Kingmakers_Game/status/1974144040942625003">нужно дополнительное время</a>, чтобы довести амбициозную игру до ума.</p><h2>Авторы Dune: Awakening решили провести увольнения, несмотря на успех игры</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-10-06/48adf54a-7195-498f-81f3-3180db743c08.png" alt="" /></figure><p>Хотя Dune: Awakening показала лучшие стартовые продажи в истории Funcom, это не спасло её разработчиков от увольнений. Студия <a href="https://www.gamesindustry.biz/dune-awakening-developer-funcom-announces-redundancies">объявила о реструктуризации</a>.</p><h2>Разработчики Helldivers 2 признали проблему объёма файлов на ПК и рассказали, как будут решать её</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-10-06/8901c821-68f1-41f3-bda3-0aecd8ee0686.jpg" alt="" /></figure><p>Просто отказаться от дублирования файлов <a href="https://store.steampowered.com/news/app/553850/view/543369627969783286">они пока не могут</a>.</p><h2>Халява/раздачи/бандлы/курсы</h2><h2>Обучающие материалы за сентябрь от Эпиков</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-10-06/39a6103f-cbf1-43bf-b685-9df93488d9f8.png" alt="" /></figure><p>Новая <a href="https://www.unrealengine.com/en-US/learning/september-learning-content-gameplay-ability-system-metahumans-and-more">пачка курсов и туториалов</a>.</p><h2>Интересные статьи/видео</h2><h2>[RU] Посиделки с инди #5: The King is Watching и путь к 300к копиям</h2><p>В гостях Семён (Гурий) Итманюк, основатель Hypnohead. Поговорили про  тернистый путь инди-разработчика и создание The King is Watching,  которая родилась на Ludum Dare!</p><h2>[EN] Как id Software использовала нейросетки и трассировку пути в DOOM: The Dark Ages</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-10-06/f55116fc-0890-4337-9206-874710de0558.png" alt="" /></figure><p>10 вопросов Билли Хану, <a href="https://developer.nvidia.com/blog/how-id-software-used-neural-rendering-and-path-tracing-in-doom-the-dark-ages/">директору по технологиям движков в id Software</a>.</p><h2>[RU] Бывший художник Rockstar рассказал о производстве Bully — под конец команда работала каждый день по 18 часов</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-10-06/df999d6c-e7a7-435a-8859-3f25c6f5937a.png" alt="" /></figure><p>По словам Вуда, <a href="https://dtf.ru/games/4062780-razrabotka-bully-hudojnik-rockstar">воспоминания</a>  о разработке варьируются от любви до ненависти. Художнику нравилось  работать с коллегами, и он называет те времена «веселыми, странными,  адскими, хаотичными и потрясающими». Однако серьёзным минусом был  постоянный стресс.</p><h2>[EN] Разбор: Ведьма и её спектральные коты — Часть 1</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-10-06/fff1ef59-9f89-4c26-b23f-4bb5cdab201f.jpg" alt="" /></figure><p>Фернандо Агилера Рейес <a href="https://80.lv/articles/breakdown-witch-her-spectral-cats-made-with-3d-tools-part-1">продемонстрировал</a> моделирование и текстурирование проекта Morning Witch, поделившись советами и приёмами работы с ZBrush.</p><h2>[EN] Разбор: Ведьма и её спектральные коты — Часть 2</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-10-06/95c9af45-193d-4d0e-8838-08c964ed6924.gif" alt="" /></figure><p>Во второй части Фернандо Агилера Рейес <a href="https://80.lv/articles/breakdown-witch-her-spectral-cats-made-with-3d-tools-part-2">рассказал</a>  о шейдерах в своём проекте Morning Witch, объяснил настройки освещения и  рендеринга, а также показал, как создать светящихся кошек.</p><h2>[EN] Как Discounty удалось достичь 100к продаж за неделю</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-10-06/95c4e41d-481d-4a44-bf41-1dc6d9166115.png" alt="" /></figure><p>При этом на Свиче 2/3 <a href="https://newsletter.gamediscover.co/p/how-discounty-rang-up-100k-sales">всех продаж</a>.</p><h2>[RU] Как продвигать Telegram-игры: главные особенности и подводные камни</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-10-06/9390c744-a892-4f0d-a94f-5ddfbd7ebe98.png" alt="" /></figure><p>О ключевых особенностях Telegram как площадки для игр и о том, как выстраивать в нем маркетинг, — в материале для App2Top <a href="https://app2top.ru/marketing/kak-prodvigat-telegram-igry-glavny-e-osobennosti-i-podvodny-e-kamni-234579.html">рассказали</a> Евгения Шпейт, маркетинг-лид PlayDeck, и Оксана Васильева, проджект-менеджер StepMania.</p><h2>[EN] Победитель последнего Rampage Rally — 3D Community Challenge разбирает свою работу</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-10-06/669ce289-66ca-42b1-bc0e-e4a1cd9d0cf3.jpg" alt="" /></figure><p>Тед Химскерк, занявший второе место в конкурсе, <a href="https://80.lv/articles/a-winner-of-pwnisher-s-latest-challenge-breaks-down-his-submission">поделился подробностями своего проекта</a>, рассказав о рабочих процессах моделирования, текстурирования и визуальных эффектов.</p><h2>[RU] Игра «Морской бой» через UDP на двух Raspberry Pi PICO-W</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-10-06/7751002b-30e2-4e56-b5b7-94b865b9c498.jpg" alt="" /></figure><p>Для проекта <a href="https://habr.com/ru/articles/944232/">разработан</a>  собственный протокол ходов на основе конечных автоматов и интегрирована  звуковая обратная связь на основе как DMA, так и прерываний.</p><h2>[EN] Анимация в Cronos: The New Dawn</h2><p>Один из аниматоров проекта поделился показал свою работу.</p><h2>[RU] Постмортем: один месяц из жизни пиксельного ассет пака на itch.io</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-10-06/8b190c29-e405-4244-ad20-ea9f646b9139.png" alt="" /></figure><p>С момента публикации он <a href="https://dtf.ru/gamedev/4066788-postmortem-pikselnogo-asset-paka-na-itch-io">выпустил несколько обновлений</a>, начал работу над первым расширением.</p><h2>[EN] Создание оживлённой торговой аллеи в 3D</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-10-06/01bd75b9-fe77-469d-ab63-55e6bd630226.jpeg" alt="" /></figure><p>Джина Воерде <a href="https://80.lv/articles/creating-vibrant-market-alley-in-3d">рассказала о проекте Merchant’s Alley</a>, объяснила, как создавалась текстура древесины в Substance 3D, и показала работу с листвой с помощью SpeedTree и TreeIt.</p><h2>[EN] Создание портативного магнитофона в Blender и Substance 3D</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-10-06/d342e4b2-9a90-4f13-8f27-8b9c0ff5328c.jpeg" alt="" /></figure><p>Шон Филлипс <a href="https://80.lv/articles/creating-weathered-portable-tape-player-in-blender-substance-3d">продемонстрировал рабочий процесс</a>,  лежащий в основе проекта Potify Deck, обсудив моделирование и  текстурирование портативного кассетного проигрывателя с различными  следами износа с помощью Blender, Substance 3D Painter и Marmoset  Toolbag.</p><h2>[EN] Shader Optimization — Game Optimization — Episode 10</h2><p>Новое видео посвящено методам оптимизации шейдеров.</p><h2>[EN] What if scope creep was actually a whole design strategy</h2><p>Обсуждается игровой дизайн карт. Автор поделился всей информацией,  которую смог собрать о своём опыте создания карты для Insignia.</p><h2>[EN] Миллиарды треугольников за минуты</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-10-06/0c8daf20-08a8-4e2d-8106-22cc0857871a.jpg" alt="" /></figure><p>Создатель meshoptimizer <a href="https://zeux.io/2025/09/30/billions-of-triangles-in-minutes/">решил потратить</a> немало времени на улучшение поддержки hierarchical clustered LOD.</p><h2>[EN] 4000$ всего за 5 дней в своей бесплатной игре</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-10-06/f4316182-c83c-47fd-b13d-a2d756e63059.jpg" alt="" /></figure><p>Никаких микротранзакций и прочего, просто небольшие DLC, которые <a href="https://www.reddit.com/r/IndieDev/comments/1nsq8jm/how_i_made_4000_in_just_5_days_with_my_f2p_game/">люди с радостью покупали</a>.</p><h2>[EN] Создание сцены на чердаке в стиле Resident Evil с помощью Substance 3D и UE5</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-10-06/54e09024-6d74-4c84-810b-b44adbcb27af.gif" alt="" /></figure><p>Байтонг Ли <a href="https://80.lv/articles/creating-resident-evil-inspired-attic-scene-with-substance-3d-ue5">продемонстрировал</a>  свой проект Attic Studio, рассказав о создании атмосферной мастерской  художника, вдохновлённой Resident Evil, с библиотекой уникальных ассетов  с использованием ZBrush, Maya, Substance 3D Painter и Unreal Engine 5.</p><h2>Разное</h2><h2>Персонаж Ходячего замка воссоздан в Блендере</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-10-06/0941b820-f201-4ff8-9764-2b000094256e.gif" alt="" /></figure><p>Из <a href="https://x.com/yuasayuu/status/1972944282245124350">Твиттера</a>.</p><h2>Прикольный UI в игре PLVS VLTRA</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-10-06/ec325748-b343-4d88-aa75-4b7b1cf9e58e.gif" alt="" /></figure><p>Игра <a href="https://www.reddit.com/r/godot/comments/1nuluvn/a_juicy_data_visualization_made_with_some_simple/">сделана на Godot</a>.</p><p>Если хотите поддержать выход дайджеста и других материалов, сделать это можно одним из способов.</p><ul><li><a href="https://www.patreon.com/suvitruf">На Патреоне</a></li><li><a href="https://boosty.to/apanasik">На Boosty</a></li><li><a href="https://www.paypal.com/paypalme/andreiapanasik">Через Paypal</a></li><li><a href="https://yoomoney.ru/to/41001674710054">Через Яндекс.Деньги</a></li></ul><p>Также вы можете подписаться на <a href="https://gamedevsuffering.substack.com/p/weekly-gamedev-246-05-october-2025">рассылку дайджеста</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как сеньоры документируют проекты: протокол архитектурных решений</title>
      <link>https://tproger.ru/articles/kak-senory-dokumentiruyut-proekty--protokol-arhitekturnyh-rewenij</link>
      <comments>https://tproger.ru/articles/kak-senory-dokumentiruyut-proekty--protokol-arhitekturnyh-rewenij?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Даровская Маша]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-senory-dokumentiruyut-proekty--protokol-arhitekturnyh-rewenij</guid>
      <description><![CDATA[<p>Как сеньоры документируют архитектуру без боли. Обзор подхода ADR: шаблоны, примеры из практики и комментарии экспертов. Ускорьте онбординг и перестаньте объяснять одно и то же.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-senory-dokumentiruyut-proekty--protokol-arhitekturnyh-rewenij">Как сеньоры документируют проекты: протокол архитектурных решений</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[Практика]]></category>
      <category><![CDATA[IDE]]></category>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Tor]]></category>
      <category><![CDATA[HTML]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[Scala]]></category>
      <category><![CDATA[Amazon]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[GitLab]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Финтех]]></category>
      <category><![CDATA[Фронтенд]]></category>
      <category><![CDATA[Lua]]></category>
      <category><![CDATA[Бэкенд]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[PostgreSQL]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 09 Sep 2025 10:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p><i>Это перевод <a href="https://dev.to/koladev/how-senior-software-engineers-document-their-project-1nf4">статьи</a> автора <a href="https://dev.to/koladev">Мангабо Колаволе</a> с портала DevTo с комментариями экспертов.</i></p><p>Есть одна задача, которую программисты терпеть не могут — но именно она отличает хорошего инженера от посредственного: как они документируют свой проект? Несколько лет назад я отвечал за запуск финтех-проекта. Мы выбрали стратегию быстрого старта, поэтому масштабируемость не стала для нас приоритетом. Главной целью было проверить гипотезу — и мы двигались вперёд, разрабатывая API, архитектуру и системы —  с упором на простоту, не особенно задумываясь о будущем.</p><p>Но я отвечал за бэкенд и инфраструктуру — и понимал: как бы хороша ни была моя память, через шесть месяцев я не смогу вспомнить все технические детали.</p><p>Во время работы я наткнулся на подход, который мне очень понравился: ADR — Architectural Decision Record, или «протокол архитектурных решений».</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-09-05/7d1206a7-6729-4bcb-ab55-63d59240df12.png" alt="" /></figure><p>По сути, это документ, в котором
фиксируются все изменения, внесённые в архитектуру: само решение, его влияние и
полученные уроки.</p><p>Проще говоря, это как личный дневник —
только для всей команды.</p><h2>Почему это важно?</h2><p><b>Память
— ненадёжна.</b> Мы часто забываем, почему выбрали одну
архитектурную модель, а не другую. Документирование изменений помогает
восстановить ход мыслей и избежать повторения одних и тех же ошибок.</p><p><b>Это
усиливает команду.</b> Представьте, что вы перепробовали
несколько вариантов решения проблемы и зафиксировали как удачные, так и
неудачные попытки. Это не просто ваш личный опыт — это знание, которым могут
воспользоваться все, включая тех, кто придёт после вас.</p><p><b>Будущие
разработчики скажут вам спасибо.</b> Подумайте о человеке,
который через пять лет будет разбираться в вашем коде. Если вы не оставили
объяснений, он, скорее всего, будет мучиться, пытаясь понять, зачем было
сделано то или иное изменение. А теперь представьте другого разработчика в
другой компании, который находит ADR-документ с чётким объяснением принятого
решения. Он, без сомнения, будет вам благодарен.</p><p>Синьор-фронтендер из ВК Маргарита Лукина, автор телеграм-канала <a href="https://t.me/frontend_kitchen">«Фронтенд кухня»</a>:</p><blockquote>Ценность ADR я впервые осознала в 2019 году. В команду, где работала, активно набирали новых ребят, и приблизительно раз в неделю кто-нибудь из новых разработчиков спрашивал "а почему это сделано так, а не иначе?" Приходилось постоянно давать ответы на одни и те же вопросы, и тогда-то я и поняла, насколько будет удобно записывать ответы где-нибудь в документацию в confluence и просто кидать ссылку новичкам. <br /><br />В 2019 году я еще не знала сам термин ADR и говорила "документация". С термином я познакомилась совсем недавно — этим летом, на курсе по архитектуре монолитных приложений. Тогда я поняла, насколько эффективно можно использовать ADR для ускорения разработки и уменьшения TTM. Дело в том, что начиная разрабатывать новый проект, разработчик первое время (от месяца до полугода! всё зависит от размера проекта) погружается в проект — разбирается, как всё устроено, чтобы вносить изменения соответственно архитектуре. В этот период разработчик, по сути, составляет собственные adr —  обычно в виде мыслеобразов в своей голове :) Если записать основные решения, разработчик сможет намного быстрее погрузиться в проект.</blockquote><h2>Как писать ADR?</h2><p>Существует несколько общепринятых правил, но
вы всегда можете адаптировать их под себя.</p><p>Вдохновившее меня соглашение можно найти на <a href="https://adr.github.io/madr/">GitHub</a>
. Вы также можете ознакомиться с процессом <a href="https://docs.aws.amazon.com/prescriptive-guidance/latest/architectural-decision-records/adr-process.html">ADR на Amazon</a>.</p><p>Вот пример шаблона, который вы можете
использовать.</p><p>Такой тип документа может находиться прямо в репозитории проекта, в Confluence или, например, в JIRA.</p><p>В моей последней компании, где я работал фронтенд-разработчиком, не существовало одного централизованного документа, фиксирующего все архитектурные изменения. Вместо этого мы использовали задачи GitLab и привязывали каждое архитектурное изменение к соответствующей ветке. Это позволяло отслеживать причины изменений даже спустя месяцы после их внедрения.</p><p>Практика спасала нас бесчисленное количество раз. Как я всегда говорю: не важно, насколько вы или ваши коллеги умны — будь то технический директор, менеджер или любой другой участник команды — никто не помнит каждое техническое решение, принятое два года назад.</p><p>Синьор-фронтендер из ВК Маргарита Лукина, автор телеграм-канала <a href="https://t.me/frontend_kitchen">«Фронтенд кухня»</a>:</p><blockquote>Многие руководители хотят видеть на своём проекте разработчиков, которые "сразу, без раскачки" начнут перформить. Совсем избежать периода погружения невозможно, но можно ускорить его в десятки раз за счёт ADR</blockquote>]]></content:encoded>
    </item>
    <item>
      <title>Недельный геймдев: #239 — 17 августа, 2025</title>
      <link>https://tproger.ru/articles/nedelnyj-gejmdev---239---17-avgusta--2025</link>
      <comments>https://tproger.ru/articles/nedelnyj-gejmdev---239---17-avgusta--2025?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Андрей Апанасик]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/nedelnyj-gejmdev---239---17-avgusta--2025</guid>
      <description><![CDATA[<p>Правительство США ведёт переговоры о покупке доли в Intel, Unity 6.2, Nvidia DLSS денойзер для Blender, цирк с участием Krafton и разработчиков Subnautica 2 продолжается.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/nedelnyj-gejmdev---239---17-avgusta--2025">Недельный геймдев: #239 — 17 августа, 2025</a>»</p>]]></description>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Новости]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 18 Aug 2025 07:49:06 GMT</pubDate>
      <content:encoded><![CDATA[<p>Из новостей: правительство США ведёт переговоры о покупке доли в  Intel, Unity 6.2, Nvidia DLSS денойзер для Blender, цирк с участием  Krafton и разработчиков Subnautica 2 продолжается.</p><p>Из интересностей: посиделки с инди с Владимиром Белецким, expression  Templates, GPT-5 в GitHub Copilot: как создать игру за 60 секунд,  визуализация нашей Галактики в Blender.</p><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-08-18/8ec27105-d2d4-41df-a72e-b266bbd54e4a.jpg" alt="" /></figure><h2>Обновления/релизы/новости</h2><h2>Bloomberg: правительство США ведёт переговоры о покупке доли в Intel</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-08-18/353b9dcc-fea9-45b6-80d2-d0f574b58da6.jpg" alt="" /></figure><p>Администрация президента США Дональда Трампа <a href="https://www.bloomberg.com/news/articles/2025-08-14/trump-administration-is-said-to-discuss-us-taking-stake-in-intel">ведёт переговоры</a> о покупке доли в производителе микросхем, что должно помочь компании в расширении внутреннего производства</p><h2>Krafton обвинила бывших разработчиков Subnautica 2 в «потере интереса к созданию игры»</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-08-18/4c82de52-bef1-44a9-9579-afc2806cbe8b.png" alt="" /></figure><p>В компании <a href="https://www.theverge.com/news/758265/subnautica-2-lawsuit-response-krafton-unknown-worlds">заявили</a>, что бывшие разработчики занимались чем угодно, но не проектом.</p><h2>СМИ: NVIDIA и AMD обяжут платить в бюджет США 15% выручки от продажи чипов для ИИ в Китае</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-08-18/5c079b72-dd82-4bdf-913e-26eb6d9ddfee.jpg" alt="" /></figure><p>Такая сделка <a href="https://www.nytimes.com/2025/08/10/technology/us-government-nvidia-amd-chips-china.html">стала условием</a> возобновления продаж процессоров на китайском рынке.</p><h2>Глава Take-Two заявил, что Civilization VII показывает себя «в рамках ожиданий»</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-08-18/f70c6b95-3ecd-4cb0-88ba-e3fee574e788.jpg" alt="" /></figure><p>Несмотря на <a href="https://www.ign.com/articles/take-two-ceo-strauss-zelnick-insists-projections-for-the-lifetime-value-of-civilization-7-are-very-consistent-with-our-initial-expectations-for-the-title-despite-slow-start">все проблемы</a>.</p><h2>Отчёт Remedy: пять миллионов копий Control, рост выручки и недовольство продажами FBC Firebreak</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-08-18/81f79486-fa30-4b5a-a0c5-95c5610b8038.jpg" alt="" /></figure><p>Положение никому ненужного шутера <a href="https://storage.googleapis.com/inderes-widgets-prod-assets/remedy/attachments/af5f37e3-0eb7-4d03-a2c6-0784a9bad6e8/remedy-h1-2025-half-year-financial-report.pdf">пока спасают</a> сделки с Microsoft и Sony.</p><h2>Исследование: создатели читов зарабатывают десятки миллионов долларов ежегодно</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-08-18/c5189990-d5b5-49ec-8762-464374514e44.jpg" alt="" /></figure><p>Их продукты <a href="https://www.wired.com/story/inside-the-multimillion-dollar-grey-market-for-video-game-cheats/">покупают тысячи человек</a>, а некоторые даже оформляют подписку, чтобы мошенническое ПО оперативно обновлялось.</p><h2>СМИ: AppsFlyer готовится к продаже. Компанию оценили в сумму до 4,5 млрд долларов</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-08-18/7618f938-ba57-4d15-bba2-ab81fd2f7ec2.png" alt="" /></figure><p>Руководство AppsFlyer <a href="https://app2top.ru/news/smi-appsflyer-gotovitsya-k-prodazhe-kompaniyu-otsenili-v-summu-do-4-5-mlrd-dollarov-233139.html">собирается продать компанию</a>,  сообщает Calcalist со ссылкой на источники. По информации портала,  менеджеры уже ведут переговоры с некой частной инвестиционной фирмой,  чьё название не раскрывается.</p><h2>Экс-глава PlayStation Шон Лейден заявил, что игровая индустрияподошла к «переломному моменту» — из-за роста стоимости разработки</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-08-18/2a8f33c0-d0ec-406f-ad7e-073f75c24ef8.png" alt="" /></figure><p>Увеличение цен неминуемо в том или ином формате, <a href="https://www.gamesindustry.biz/the-big-picture-part-one-i-dont-know-if-games-are-recession-proof">уверен специалист</a>.</p><h2>Valve начала тестировать крупное обновление Steam — с более широкими страницами</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-08-18/b98225a7-047a-4580-9665-3f10780976ab.jpg" alt="" /></figure><p>И с <a href="http://steamcommunity.com/groups/steamworks/announcements/detail/532106189043925406?l=russian">возможностью</a> встраивать видео в описание игр.</p><h2>Discord запускает social SDK для интеграции голосовух и обмена сообщениями в игре</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-08-18/47e926c2-dabc-4f41-b37a-9fb09a0a298e.png" alt="" /></figure><p>SDK <a href="https://www.pocketgamer.biz/discord-launches-social-sdk-for-in-game-voice-and-messaging-integration/">предоставляет</a> разработчикам доступ к 200 миллионам пользователей Discord.</p><h2>Sensor Tower: за пять дней с релиза Mafia The Old Country разошлась тиражом в 800 тысяч копий</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-08-18/141236ea-113d-4447-9399-91900750c25f.jpg" alt="" /></figure><p>Почти 50% из них <a href="https://www.linkedin.com/posts/vginsights_mafiatheoldcountry-hangar13-2k-activity-7361305503299186688-QyHf/">пришлись на PlayStation</a>.</p><h2>Обновленный Stack-O-Bot для Unreal Engine 5.6 — уже доступен</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-08-18/1be30a53-64e4-43bd-91dc-864916c73959.png" alt="" /></figure><p>В <a href="https://www.unrealengine.com/en-US/news/updated-stack-o-bot-for-unreal-engine-5-6-available-now">обновлении</a>  добавили множество новых игровых функций, включая динамические камеры и  NPC с ИИ, управляемым StateTree, а также расширили набор продвинутых  систем, таких как процедурная генерация контента (PCG) и физика.</p><h2>Вышел Unity 6.2</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-08-18/1e36c2f2-1fae-428f-8186-a4f83c3b0767.png" alt="" /></figure><p>Из основных изменений — Unity AI (слияние Unity Muse и Sentis). Среди  других новых функций Unity 6.2 — автоматическая генерация уровней  детализации, Graph Toolkit, несколько улучшений XR и <a href="https://discussions.unity.com/t/6-2-is-now-available/1677060">другое</a>.</p><h2>На Siggraph показали Nvidia DLSS денойзер для Blender</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-08-18/d8e67ea6-9eb5-4151-a5c7-27a428cb2e1c.png" alt="" /></figure><p>Cycles <a href="https://x.com/andrewpprice/status/1956455515120353505">теперь</a> работает практически в режиме реального времени🤯</p><h2>Халява/раздачи/бандлы/курсы</h2><h2>Scrutable Objects</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-08-18/1316b663-796d-44c9-bdef-27508cd10fa8.png" alt="" /></figure><p>Добавляет новое меню свойств, которое <a href="https://github.com/moonymachine/scrutable-objects/blob/main/README.md">может</a> отображать свойства ScriptableObject в месте, где назначена ссылка на объект.</p><h2>Интересные статьи/видео</h2><h2>[RU] Посиделки с инди #4: Владимир Белецкий, кузнец в овечьей шкуре и Лихо одноглазое</h2><p>После долгого перерыва подкаст возвращается к жизни. Сегодня в гостях  Владимир Белецкий, и поговорим с ним про Лихо одноглазое! Обсудим не  самый удачный запуск, отсутствие интереса у издателей. Заодно поговорим  про команду и прошлые проекты студии Мортёшка.</p><h2>[EN] Концепт интерьера бара в стиле дизельпанка с помощью Blender и Photoshop</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-08-18/e5f367a7-6863-4fcd-b193-a09df388077e.jpg" alt="" /></figure><p>Никита Грицун <a href="https://80.lv/articles/creating-a-dieselpunk-bar-interior-concept-with-blender-photoshop">продемонстрировал</a>  рабочий процесс создания интерьера бара в стиле дизельпанка, обсудив  проектирование высокого треугольного здания с системой подачи еды и  напитков и объединив быстрое 3D-моделирование с минимальным китбашингом,  пропсами и многослойным текстурированием в Blender и Photoshop.</p><h2>[RU] Expression Templates</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-08-18/4ac32aad-5e51-4a67-a722-67c3e511c4ef.png" alt="" /></figure><p>В статье автор <a href="https://habr.com/ru/articles/936468/">рассказывает</a> о технике «Expression Templates» и её применении в библиотеке simstr.</p><h2>[EN]  Graphic Design in New Games — Good Design, Bad Design 17</h2><p>В видео речь идёт о намеренно громоздких интерфейсах, магических  камерах, жёстко запрограммированных ошибках локализации и о многом  другом.</p><h2>[RU] Бутылка вина, 4 часа жизни и убитые нервы — как заставить ChatGPT-5 сделать игру</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-08-18/d3f6103a-6395-4d6f-8e11-f46030118807.png" alt="" /></figure><p>Не всё так просто <a href="https://dtf.ru/chatgpt/3955018-kak-ya-sozdal-igru-s-pomoshchyu-chatgpt-5-i-butylki-vina">оказалось</a>, даже для матёрого геймдизайнера.</p><h2>[EN] Что делать, если CPU не вывозит — Оптимизация игры — Эпизод 5</h2><p>В видео показаны возможные решениях, которые можно применить, если  ваш проект потребляет больше ресурсов проца, чем видеокарты. Большинство  из них направлены на сокращение количества вызовов отрисовки.</p><h2>[RU] Игровая экономика: на стыке геймдизайна и кода</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-08-18/dbfcc465-4632-43fb-a63b-f9ca0de0c4b1.jpg" alt="" /></figure><p>В статье автор <a href="https://habr.com/ru/articles/936058/">поделился</a>  опытом пересечения игровой и программной логики, который помогает  геймдизайнерам развиваться и лучше понимать как их идеи и документы  будут реализованы на практике.</p><h2>[EN] Inside Doom: The Dark Ages’ Path Tracing Upgrade — The id Software Interview</h2><p>Сразу после Quakecon Алекс Батталья из Digital Foundry получил  возможность поговорить с разработчиками об обновлении трассировки пути в  Doom: The Dark Ages.</p><h2>[RU] Как игре общаться с игроком</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-08-18/c8a0f733-1c61-4cc3-a780-841f42efb343.jpg" alt="" /></figure><p>Александр, разработчик, преподаватель геймдизайна и исследователь художественного языка видеоигр <a href="https://habr.com/ru/articles/936402/">коротко рассказал</a> про общение с игроком.</p><h2>[EN] Developing with DOTS — Custom Tools, Voxel Physics &amp; Massive Worlds in Dawn Apart</h2><p>Тони и Тило из Dawn Apart присоединяются к Лорену из Unity, чтобы  подробно изучить разработку с DOTS. Рассмотрели создание инструментов  пользовательского редактора, воксельные материалы и разрушение,  терраформинг и многое другое, реализованное на ECS.</p><h2>[RU] Почему мы до сих пор используем пиксели: графика в играх и UI</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-08-18/6931de2b-73ad-4038-8097-275591139391.png" alt="" /></figure><p>Пиксели пережили всё — от рассвета 8-битных приставок до эпохи  4K-мониторов. Их пытались заменить вектором, 3D-моделями и бесконечным  количеством сглаживающих фильтров, но они <a href="https://habr.com/ru/companies/ruvds/articles/936884/">всё ещё с нами</a> — в играх, иконках и даже модных UI-дизайнах.</p><h2>[EN] Raymarching для создания чёрной дыры</h2><p>От базы до реализации.</p><h2>[RU] От симуляции природы до обучения автопилотов: как Rockstar добились такой реалистичности в своих играх</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-08-18/b5c2fdf7-3d96-458d-8125-f18608a4810e.png" alt="" /></figure><p>Этот реализм не случайность и не маркетинговый трюк — это <a href="https://habr.com/ru/companies/ggsel/articles/937498/">результат</a> многолетнего наращивания симуляционных систем.</p><h2>[EN] GPT-5 в GitHub Copilot: как создать игру за 60 секунд</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-08-18/a91988a7-b422-4b8c-8967-cb4c10a54ab7.png" alt="" /></figure><p>Но это <a href="https://github.blog/ai-and-ml/generative-ai/gpt-5-in-github-copilot-how-i-built-a-game-in-60-seconds/">не точно</a>.</p><h2>[EN] Drip Fit for a King: реалистичный игровой персонаж, созданный в UE5.5</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-08-18/ffcfbeb8-9140-47a6-acdb-cd00fa7602e2.jpg" alt="" /></figure><p>Айтцибер Азкуе <a href="https://80.lv/articles/drip-fit-for-a-king-realistic-game-ready-character-made-with-ue5-5">рассказала</a>  о проекте Henry V – Drip Fit for a King, обсудив процесс создания  индивидуального MetaHuman с помощью Unreal Engine 5.5, достижение  реалистичного вида цифрового персонажа, а также скульптинг и  текстурирование тканей и доспехов с помощью ZBrush, Maya, Marvelous  Designer и Substance 3D Painter.</p><h2>[EN] Gnomes: Tower Defense 10 месяцев разработки, принесла $370к</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-08-18/bce2e114-41f3-408a-9e6b-0e89811a05fd.png" alt="" /></figure><p>Всего <a href="https://howtomarketagame.com/2025/08/13/gnomes-tower-defense-with-10-month-dev-time-hits-367484/">15к вишлистов на релизе</a> и только английский язык.</p><h2>[EN] Создание реалистичной текстуры состаренного винилового проигрывателя</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-08-18/ee23ab79-39b5-4d05-88ae-a4672580945a.jpg" alt="" /></figure><p>Андрей Череута <a href="https://80.lv/articles/learn-how-to-texture-realistic-aged-vinyl-record-player">рассказал о проекте Radiola</a>,  объяснив, как он использовал Substance 3D Painter для реалистичного  текстурирования 3D-версии старого винилового проигрывателя.</p><h2>[EN] Композитор Towerborne Остин Уинтори выбирает надежду</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-08-18/00e0d1ad-2bfc-4cb7-bf4c-279e8b177ff5.png" alt="" /></figure><p>Композитор, номинированный на премию «Грэмми», <a href="https://www.gamedeveloper.com/audio/towerborne-composer-austin-wintory-is-choosing-hope">объясняет</a>, как его музыка к Towerborne стала светом во тьме.</p><h2>[EN] История разработки пошаговой JRPG, вдохновлённой Hollow Knight</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-08-18/a201bd49-922c-42f6-b69e-1cb9e04bdff0.jpg" alt="" /></figure><p>Gawehold, один из разработчиков предстоящей пошаговой тактической JRPG Soul Dier, <a href="https://80.lv/articles/development-journey-of-a-turn-based-jrpg-inspired-by-hollow-knight">рассказал</a>  о том, как команда из двух человек создала сюжетно-ориентированную игру  с созданными вручную уровнями, пользовательскими инструментами,  созданными в Godot, и сложной боевой системой.</p><h2>[EN] Вишлисты в Steam: общее количество имеет значение, но «проверенная» играбельность важнее</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-08-18/b408f417-533b-40fb-a909-21f73508e829.jpg" alt="" /></figure><p>Анализ <a href="https://newsletter.gamediscover.co/p/steam-wishlists-total-matters-proven">на основе Топ-10 самых желаемых</a> невыпущенных игр Steam.</p><h2>[EN] Как в Blender была создана потрясающая сцена природы</h2><p>Макс Хей поделился подробным видео-разбором.</p><h2>[EN] Воссоздание горного святилища в 3D по мотивам путешествия по Японии</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-08-18/cdc9626c-7c28-4ba7-8447-df9fdbf6da24.jpg" alt="" /></figure><p>Дэвид Сцибер <a href="https://80.lv/articles/recreating-mountain-shrine-in-3d-inspired-by-journey-through-japan">подробно рассказал о проекте Mountain Shrine</a>, в рамках которого он воссоздал в 3D потрясающий реальный храм, вдохновлённый своей поездкой в Японию.</p><h2>[EN] 5 способов создать потрясающий скайбокс в Unity</h2><p>В видео рассмотрено, как отойти от скучного стандартного скайбокса  Unity и создать тут, что гармонично впишется в визуальный стиль вашей  игры и дополнит её.</p><h2>[EN] Создание портрета по мотивам фильма Тарковского с помощью Blender</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-08-18/5707c63d-94c3-45c6-99bf-9a8bccd8b29a.jpg" alt="" /></figure><p>VVXIE <a href="https://80.lv/articles/creating-a-poetic-portrait-inspired-by-tarkovsky-s-movie-using-blender">продемонстрировал</a>  рабочий процесс создания и текстурирования нежного и поэтичного  портрета с птицами и цветами, вдохновлённого фильмом Андрея Тарковского,  с использованием Blender, Substance 3D Painter и Marmoset Toolbag.</p><h2>Разное</h2><h2>Как вам механика для потенциальной игры?</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-08-18/ba108a2e-e1a8-402f-bfad-ce978e379b6c.gif" alt="" /></figure><p>А вообще просто люблю <a href="https://x.com/misato08280/status/1955233359531217243">такие</a> прикольные анимации🥰</p><h2>Комбухи</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-08-18/a638d685-78b9-40fd-bc62-5f3c2489210a.gif" alt="" /></figure><p>Из <a href="https://x.com/ZahidAliJeelani/status/1956040976532726264">Твиттера</a>.</p><h2>Визуализация нашей Галактики, созданная в Blender</h2><p>На создание <a href="https://www.reddit.com/r/blender/comments/1mp0ay2/i_spent_7_months_visualising_all_the_planets_in/">ушло 7 месяцев</a>.</p><p>Если хотите поддержать выход дайджеста и других материалов, сделать это можно одним из способов.</p><ul><li><a href="https://www.patreon.com/suvitruf">На Патреоне</a></li><li><a href="https://boosty.to/apanasik">На Boosty</a></li><li><a href="https://www.paypal.com/paypalme/andreiapanasik">Через Paypal</a></li><li><a href="https://yoomoney.ru/to/41001674710054">Через Яндекс.Деньги</a></li></ul><p>Также вы можете подписаться на <a href="https://gamedevsuffering.substack.com/p/weekly-gamedev-239-17-august-2025">рассылку дайджеста</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>10 способов заработать на искусственном интеллекте в 2025</title>
      <link>https://tproger.ru/articles/10-sposobov-zarabotat-na-iskusstvennom-intellekte-v-2025</link>
      <comments>https://tproger.ru/articles/10-sposobov-zarabotat-na-iskusstvennom-intellekte-v-2025?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Валерия Турчак]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/10-sposobov-zarabotat-na-iskusstvennom-intellekte-v-2025</guid>
      <description><![CDATA[<p>Топ-10 способов заработать на искусственном интеллекте. Как ИИ может приносить прибыль бизнесу и специалистам.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/10-sposobov-zarabotat-na-iskusstvennom-intellekte-v-2025">10 способов заработать на искусственном интеллекте в 2025</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Оптимизация]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[Яндекс]]></category>
      <category><![CDATA[JetBrains]]></category>
      <category><![CDATA[OpenAI]]></category>
      <category><![CDATA[Анализ данных]]></category>
      <category><![CDATA[QA]]></category>
      <category><![CDATA[PyCharm]]></category>
      <category><![CDATA[Мессенджер]]></category>
      <category><![CDATA[YouTube]]></category>
      <category><![CDATA[ARM]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Персональные данные]]></category>
      <category><![CDATA[TikTok]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Дизайн]]></category>
      <category><![CDATA[CMS]]></category>
      <category><![CDATA[Библиотеки]]></category>
      <category><![CDATA[Figma]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Notion]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 28 Mar 2025 10:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>С созданием продуктов и контента на основе ИИ все более-менее понятно, но с тем, как на этом зарабатывать самим разработчикам, вопросов больше. Поэтому мы изучили рынок и нашли конкретные направления, где прямо сейчас можно получать доход от своих навыков.</p><p>В статье — 10 актуальных направлений, которые уже работают. Если у вас есть опыт в разработке, автоматизации или работе с данными, вы сможете найти здесь идеи, как использовать свои знания и монетизировать их с помощью ИИ.</p><h2>Разработка персонализированных ИИ-ассистентов</h2><p>Готовые нейросети умеют много, но работают стандартно. Бизнесу и частным пользователям нужны ИИ-помощники, которые решают проблемы быстрее, чем человек, и точнее, чем универсальные решения.</p><h3>Для кого это актуально</h3><ul><li><b>Частные специалисты. </b>Врачи, юристы, бухгалтеры, маркетологи — все, кому нужен персональный помощник для работы с клиентами и документами.</li><li><b>Бизнес.</b> Компании хотят автоматизировать поддержку клиентов, ведение заказов, анализ рынка.</li><li><b>Образовательные платформы.</b> ИИ-ассистенты помогают отвечать на вопросы студентов, генерировать тесты, проверять задания.</li></ul><h3>Что можно делать</h3><ol><li><b>ИИ-секретарь.</b> Принимает заявки, записывает клиентов, напоминает о встречах. Подойдет для стоматологий, салонов красоты, частных консультантов.</li><li><b>Финансовый помощник.</b> Считает расходы, прогнозирует бюджет, напоминает о платежах. Полезен для ИП, фрилансеров и небольших компаний.</li><li><b>HR-бот.</b> Проводит первичный отбор резюме, задает вопросы кандидатам, помогает составлять вакансии. Актуально для кадровых агентств и больших компаний.</li><li><b>Юридический помощник.</b> Автоматически проверяет договоры, ищет ошибки, консультирует по типовым вопросам. Удобно для юристов и бухгалтеров.</li><li><b>AI для интернет-магазинов. </b>Рекомендует товары, помогает выбрать размер, отвечает на вопросы клиентов.</li></ol><h3>Какие инструменты использовать</h3><ul><li><b>GPT-4, YaLM 2</b> — для текстовых ассистентов. GPT-4 доступен через OpenAI API, YaLM 2 — российская разработка, можно скачать бесплатно.</li><li><b>Rasa, BotPress</b> — платформы для создания AI-чатботов. У Rasa есть open-source версия, BotPress прост в настройке.</li><li><b>Speech-to-Text API от Google, Яндекс SpeechKit</b> — если нужен голосовой помощник.</li><li><b>LangChain</b> — библиотека для сложных ИИ-ассистентов, которые работают с базами данных и API.</li></ul><h3>Как зарабатывать</h3><ol><li><b>Фриланс.</b> Создавать AI-ассистентов под заказ через Kwork, Upwork, FL.ru.</li><li><b>Подписка.</b> Разрабатывать SaaS-решения, где пользователи платят за доступ.</li><li><b>Готовые решения.</b> Продавать ассистентов для популярных ниш (например, AI-бот для кафе).</li><li><b>Консалтинг.</b> Настраивать AI для бизнеса, обучать сотрудников.</li></ol><h2>Создание ИИ-плагинов для популярных платформ</h2><p>Люди работают в привычных инструментах. Разработчики пишут код в VS Code и PyCharm, дизайнеры — в Figma, контентщики — в Notion. Они не хотят менять свои приложения, но хотят больше удобства. Все, что помогает работать быстрее и качественнее. В коде, дизайне, контенте, аналитике. Например:</p><ul><li><b>Для разработчиков</b> — автогенерация комментариев к коду, поиск ошибок, оптимизация функций.</li><li><b>Для дизайнеров</b> — генерация UI-компонентов, адаптация интерфейса под мобильные устройства.</li><li><b>Для копирайтеров </b>— улучшение текстов, анализ стиля, сокращение длинных фраз.</li><li><b>Для маркетологов</b> — анализ трендов, поиск лучших заголовков, генерация A/B-тестов.</li></ul><h3>Где размещать плагины</h3><p>Каждая крупная платформа имеет свой маркетплейс. У Figma — Figma Community, у VS Code — Marketplace, у Notion — интеграции через API. Для российских пользователей доступны плагины в маркетах JetBrains и Tilda. Если продукт полезен, его заметят и начнут скачивать.</p><h3>Как монетизировать</h3><p>Есть три варианта. Можно сделать плагин бесплатным, но продавать PRO-функции. Можно продавать подписку, если у плагина есть постоянные пользователи. А можно зарабатывать на кастомных версиях, когда бизнесу нужен ИИ-инструмент под конкретные задачи.</p><p>Все дело в том, что люди готовы платить за удобство. Они уже привыкли к ИИ, но не хотят тратить время на сложные настройки. Поэтому если плагин реально экономит часы работы — его будут часто устанавливать и использовать, если более сложная разработка, а точнее решение проблемы — тогда дополнительно нужно будет подключить продвижение среди профессионального сообщества.</p><h2>Консультирование бизнеса по внедрению ИИ-инструментов</h2><p>Бизнес тоже хочет использовать ИИ-инструменты, но не всегда понимает как. Руководители слышали про ChatGPT, нейросети для генерации контента и автоматизацию процессов, но не знают, с чего начать. Это и создает спрос на ИИ-консультантов.</p><p>Компаниям не нужны сложные теории, им нужны конкретные решения. Например, в интернет-магазине можно внедрить чат-бота, который отвечает на вопросы клиентов и рекомендует товары. В логистике — ИИ, который прогнозирует задержки поставок. В HR — сервис, который анализирует резюме и находит лучших кандидатов. Но бизнесу нужен специалист, который расскажет, какие технологии выбрать, как их адаптировать и сколько это стоит.</p><h3>Кто может зарабатывать на AI-консалтинге</h3><p>Разработчики, аналитики, ИИ-специалисты. Главное — не просто разбираться в технологиях, а уметь объяснять их бизнесу. Если человек работал с нейросетями, настраивал ML-модели или интегрировал ИИ в проекты, он уже может предлагать услуги консультирования.</p><h3>Как искать клиентов</h3><p>Есть три варианта. Первый — через фриланс-биржи (Kwork, FL.ru). Второй — через личные связи и нетворкинг. Третий — через выступления и статьи. Если эксперт показывает, как ИИ решает бизнес-задачи, к нему приходят клиенты.</p><h3>Форматы работы</h3><p>Можно делать разовые консультации: разбирать задачи бизнеса и предлагать решения. Можно вести проект: помогать внедрять ИИ, настраивать инструменты, обучать сотрудников. Можно продавать готовые гайды и обучающие материалы для компаний.</p><p>Все дело в том, что бизнесу не нужны просто ИИ-модели. Им нужны работающие решения, которые экономят деньги и время. И если разработчик может объяснить, как это сделать, значит первый миллион не за горами.</p><h2>Фриланс на кастомизации популярных нейросетей</h2><p>Готовые нейросети работают хорошо, но не идеально. Компании хотят, чтобы ИИ понимал их задачи, работал точнее и выдавал лучшие результаты. Для этого нейросети кастомизируют: дообучают, настраивают под конкретные данные, добавляют нужные функции.</p><h3>Что именно можно делать?</h3><p>Если клиенту нужен ИИ для обработки юридических документов, обычный GPT-4 не подойдет. Он слишком общий. Но если загрузить в него базу данных по российскому законодательству и дообучить, он начнет давать точные ответы. Или, например, компания хочет, чтобы Stable Diffusion генерировала изображения в их фирменном стиле. Это тоже делается через дообучение.</p><p>Многие заказывают кастомизацию напрямую, если специалист показывает примеры работ в ТГ или на GitHub.</p><p>Дообучение можно делать через LoRA, Dreambooth (для изображений) или Fine-tuning API OpenAI (для текста). Например, в 2024 году российская компания «Самолет» <a href="https://t.me/smlttech/579">использовала LoRA</a> для дообучения модели Stable Diffusion XL. Задача была необычная — генерация реалистичных интерьеров квартир по фотографиям помещений с голыми стенами. Компания обучила нейросеть на мудборде фирменного стиля от дизайнеров, после чего последняя начала создавать качественные и детализированные изображения в нужной стилистике. Результат — свыше 15 000 генераций с высоким качеством за несколько месяцев. Среднее время на создание одного изображения — около минуты.</p><figure><img src="https://media.tproger.ru/user-uploads/101078/2025-03-21/a6e5c05c-2bd9-4659-808c-6f1b80d4aeab.png" alt="" /></figure><p>Если работать с открытыми моделями, подойдут Hugging Face, TensorFlow, PyTorch. Также часто используют DeepPavlov и SpeechKit от Яндекса.</p><h2>ИИ и обработка данных: сервисы и микрозадачи</h2><p>Данные есть везде. Компании собирают их тоннами, но не знают, что с ними делать. ИИ помогает сортировать, анализировать и превращать их в полезные решения. И здесь разработчики могут зарабатывать, создавая сервисы или выполняя микрозадачи.</p><p>Пример. У интернет-магазинов есть отзывы клиентов, но в сыром виде они бесполезны. ИИ-сервис может анализировать тональность, находить жалобы и предлагать улучшения. Или у компании есть база с тысячами заявок, но их надо разбирать вручную. ИИ может автоматически классифицировать их по темам и срочности.</p><p>Если говорить о реальных инструментах, то вот что доступно в России:</p><ul><li><b>Yandex DataSphere</b> — облачная платформа для анализа данных, которая работает даже без мощного сервера.</li><li><b>SberCloud ML Space</b> — среда для работы с моделями, подходит для обработки больших массивов.</li><li><b>Toloka, Kaggle, HFLabs</b> — площадки, где можно находить небольшие задачи по обработке данных и зарабатывать на их решении.</li></ul><p>Микрозадачи подходят тем, кто хочет попробовать ИИ на практике, но не готов делать сложные проекты. Компании выкладывают заказы на разметку данных, проверку моделей, улучшение работы алгоритмов. Это может быть что-то простое — например, оценить, правильно ли ИИ распознал текст, или классифицировать изображения.</p><h2>Разработка ИИ-инструментов для генерации контента</h2><p>Контент нужен всем. Бизнесу — для рекламы, блогерам — для постов, компаниям — для сайтов. ИИ научился писать тексты, создавать изображения и даже генерировать видео. Значит, можно зарабатывать на инструментах, которые помогают пользователям делать это проще и быстрее.</p><h3>Что можно разрабатывать</h3><p><b>— ИИ-копирайтеры.</b> Люди хотят тексты, но не все умеют писать. ИИ может создавать статьи, объявления, описания товаров. Но универсальные решения вроде ChatGPT часто дают скучные или шаблонные тексты. Поэтому востребованы узкоспециализированные инструменты. Например, генератор объявлений для интернет-магазинов, помощник для создания постов в соцсетях или ИИ-редактор, который чистит текст и делает его понятнее.</p><p><b>— Генераторы изображений. </b>Stable Diffusion и Kandinsky умеют рисовать, но не все пользователи могут ими пользоваться. У кого-то нет мощного компьютера, кто-то не понимает, как писать промты. Решение — сервис, который генерирует картинки по понятным настройкам. Например, инструмент для создания обложек книг, логотипов или картинок в стиле акварели.</p><p><b>— ИИ для видео.</b> Видео — самый сложный контент, но именно его сейчас массово автоматизируют. Можно сделать инструмент, который превращает текст в видео. Или сервис, который создает анимации по фотографиям. Еще один вариант — автоматический монтаж для TikTok и YouTube Shorts. Это уже работает в CapCut, но нишевых решений пока мало.</p><h3>Как продавать</h3><p>Если инструмент решает конкретную задачу, можно продавать подписку или лицензии. Например, сервис для генерации статей может работать по модели Freemium — часть функций бесплатна, но за расширенные возможности нужно платить.</p><p>Другой вариант — интеграция с существующими платформами. Например, добавить ИИ-генерацию изображений в маркетплейсы, чтобы продавцы могли делать красивые карточки товаров. Или встроить инструмент в CMS, чтобы владельцы сайтов генерировали тексты прямо в админке.</p><h2>Заработок на открытых ИИ-моделях</h2><p>ИИ-модели — инструмент, который можно дорабатывать и продавать. Разработчики не обязаны строить нейросеть с нуля, если есть открытые решения, которые можно адаптировать под нужды клиентов.</p><h3>Что можно делать?</h3><p>— <b>Дообучать существующие модели для конкретных задач. </b>Например, взять текстовую модель (YaLM, YandexGPT), загрузить в нее данные из банковского сектора и получить ИИ-консультанта для клиентов. Компании готовы платить за такие точные модели, потому что стандартные решения не всегда подходят под их специфику.</p><p>— <b>Создавать удобные сервисы на базе моделей. </b>Разработчику не обязательно продавать саму нейросеть — можно сделать веб-приложение, чат-бот или плагин, который использует ее возможности. Например, сервис для генерации юридических документов, инструмент для проверки SEO-текстов или нейросеть, которая находит ошибки в коде.</p><p>— <b>Продавать доступ к мощностям для работы с моделями.</b> Многие хотят использовать ИИ, но не имеют ресурсов. Если у вас есть сервер с видеокартами, можно сдавать его в аренду через облачные платформы, например, через Yandex DataSphere или SberCloud ML Space.</p><p>—<b> Продавать доработанные модели на маркетплейсах. </b>Если модель улучшена и решает конкретные задачи, ее можно разместить на Hugging Face, AI Hub, Replicate. Компании и частные пользователи готовы платить за доступ к таким моделям.</p><p>Можно работать напрямую с бизнесом, создавая кастомизированные модели. Или выкладывать доработанные решения на маркетплейсы, где их будут использовать за подписку или разовые платежи. Хороший вариант — продвигать свои разработки через ТГ-каналы, GitHub и тематические форумы.</p><h2>Разработка ИИ-решений для EdTech</h2><p>Законодательство по ИИ в образовании в России только формируется. Есть требования к хранению персональных данных на российских серверах, но использование генеративных нейросетей официально не запрещается. С 2025 года вводится ГОСТ на использование нейросетей в учебных публикациях.</p><p>Разработка образовательных ИИ-продуктов начинается с Python. Для машинного обучения чаще выбирают TensorFlow, PyTorch и scikit-learn. Также используются NLP-библиотеки и модели от Hugging Face, например, GPT или BERT. Для анализа изображений и рукописного текста используют OpenCV и OCR-технологии.</p><h3>Популярные решения</h3><ol><li><b>Персонализация обучения</b> — ИИ подстраивает задания под уровень ученика.</li><li><b>Автоматическая проверка</b> — оценка тестов, эссе, программного кода.</li><li><b>Генерация контента</b> — тестов, конспектов, видео, анимаций.</li><li><b>ИИ-наставники и чат-боты</b> — круглосуточные помощники для студентов.</li><li><b>Прогнозирование успеваемости</b> — анализ данных и раннее выявление проблем.</li></ol><p>Те, кто создают удобные инструменты, получают продукт, за который готовы платить.</p><p>В EdTech чаще всего зарабатывают по модели freemium. Это значит, что основные функции бесплатные, а за расширенные — пользователи платят. Так работают российские платформы Stepik и Учи.ру.</p><p>Другой вариант — продавать лицензии школам и университетам. Например, школа или вуз покупает доступ ко всей платформе сразу, а студенты получают ее бесплатно.</p><p>Очень популярный формат маркетплейсов, когда платформа соединяет авторов курсов и учеников, забирая процент от продаж. Пример — Udemy.</p><p>Российские компании (Skyeng, Puzzle English) часто комбинируют несколько моделей сразу. Они продают подписки, предлагают бесплатный доступ с рекламой и отдельно монетизируют корпоративных клиентов.</p><h2>Разработка нейросетевых ботов для мессенджеров и соцсетей</h2><p>Кроме очевидного клиентского сервиса, нейроботы нужны для внутренней работы компаний. Допустим, сотрудник хочет оформить отпуск. Вместо заполнения формы он пишет чат-боту. Тот распознает текст запроса, проверяет даты по корпоративному календарю и отправляет заявку начальнику. Сотрудник экономит время, а HR не завален бумагами.</p><p>Самым простым способом подключения нейросетей к мессенджерам остаются специальные платформы и библиотеки. Например, для ТГ подходит библиотека aiogram, для VK есть официальное API и готовые SDK. Есть универсальные решения — Dialogflow и Rasa, которые можно подключать сразу к нескольким мессенджерам одновременно.</p><p>Нужно учитывать технические и правовые моменты. Например, все персональные данные, которые собирает и обрабатывает бот, должны храниться на серверах в России. Это требование закона о персональных данных (152-ФЗ). Если бот записывает голосовые сообщения пользователей, нужно предупредить их об этом и получить согласие на обработку.</p><p>Популярные задачи:</p><ul><li>Автоматизация клиентского сервиса в соцсетях (прием заказов, консультации).</li><li>HR-помощники (отвечают на типовые вопросы сотрудников).</li><li>Информационные и новостные боты (генерируют персонализированные подборки новостей и статей на основе предпочтений пользователя).</li><li>Боты для образовательных и корпоративных целей (отвечают на частые вопросы, проверяют знания сотрудников и учеников).</li></ul><p>Зарабатывать на нейросетевых ботах можно по-разному:</p><ul><li>Создание бота под заказ конкретной компании с оплатой за разработку и ежемесячную поддержку.</li><li>Разработка готового продукта, который компания приобретает по лицензии с ежемесячной платой за доступ.</li><li>Подписная модель для небольших бизнесов, когда бот размещается на сервере разработчика, а компании платят ежемесячно за его использование.</li></ul><p>Бизнесу и пользователям нужен удобный сервис, который решает задачи прямо в любимом мессенджере. Чем проще и понятнее он работает, тем больше за него платят.</p><h2>Создание собственных ИИ-курсов и менторство</h2><p>Сейчас рынок образования в ИИ переполнен общей теорией. Людям не хватает конкретики, практических заданий и личного подхода. Поэтому специалисты начинают зарабатывать не только на разработке ИИ, но и на обучении других.</p><h3>Форматы обучения</h3><p>Можно делать записанные курсы с видеоуроками, разбирать задачи в закрытых ТГ-группах, проводить живые воркшопы или консультировать индивидуально. В каждом формате важно давать ученикам не только информацию, но и практику: реальные кейсы, проверку заданий, разбор ошибок.</p><h3>Как выбрать тему</h3><p>Самый выгодный вариант — узкоспециализированные направления. Например, внедрение ИИ в бизнес-процессы, автоматизация работы с данными, настройка нейросетей для определенных задач. Компании и специалисты ищут не общие знания, а конкретные решения, которые можно сразу применить в работе.</p><h3>Как монетизировать обучение</h3><p>Можно продавать доступ к курсам по подписке или разово, делать бесплатную базу и платные продвинутые модули. Персональное менторство ценится выше, потому что дает быстрые и точные ответы на вопросы учеников. Популярный вариант — запуск курса с ограниченным набором учеников и дополнительной возможностью индивидуального сопровождения.</p><p>Главное — качественный контент. Нужно записать видеоуроки, подготовить задания, создать удобную платформу для обучения. Если нет желания разрабатывать сайт с нуля, подойдут готовые платформы. Давайте ученикам реальную пользу и готовые решения, которые можно сразу применять. Тогда обучение станет стабильным источником дохода.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как использовать ИИ в разработке игр: топовые технологии</title>
      <link>https://tproger.ru/articles/kak-ispolzovat-ii-v-razrabotke-igr--topovye-tehnologii</link>
      <comments>https://tproger.ru/articles/kak-ispolzovat-ii-v-razrabotke-igr--topovye-tehnologii?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Виктория Эберт]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-ispolzovat-ii-v-razrabotke-igr--topovye-tehnologii</guid>
      <description><![CDATA[<p>Использование ИИ в разработке игр. Показываем основные преимущества использования нейросетей для игр. Рассматриваем пошаговую инструкцию и практические примеры ✔ Tproger</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-ispolzovat-ii-v-razrabotke-igr--topovye-tehnologii">Как использовать ИИ в разработке игр: топовые технологии</a>»</p>]]></description>
      <category><![CDATA[Оптимизация]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Производительность]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Практика]]></category>
      <category><![CDATA[Машинное обучение]]></category>
      <category><![CDATA[Распознавание]]></category>
      <category><![CDATA[OpenAI]]></category>
      <category><![CDATA[NVIDIA]]></category>
      <category><![CDATA[Игра]]></category>
      <category><![CDATA[Steam]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 04 Mar 2025 10:00:05 GMT</pubDate>
      <content:encoded><![CDATA[<p>Использование ИИ в процессе разработки игр — это чит-код на автоматизацию. В последние годы появилось много топовых разработок в области игровых ИИ-систем. То, на что раньше уходили недели, теперь решается в пару кликов. Особенно это важно для требовательных игр, где критична оптимизация ресурсов. Сегодня рассмотрим, как ИИ помогает сбалансировать производительность и качество, позволяя создавать живые миры без затрат на ручной труд.</p><h2>Примеры использования ИИ в играх</h2><h3>Генерация контента</h3><p>Один из наиболее ярких примеров использования технологий ИИ в игровой индустрии — процедурная генерация контента. Нейросети уже умеют создавать уровни, карты, текстуры и даже целые миры. Хотя традиционная процедурная генерация основывается на алгоритмах, не использующих машинное обучение, с развитием нейросетей границы между генерацией и ИИ в играх становятся размытыми.</p><h4>Oasis</h4><p>В 2024 году компания <a href="https://www.decart.ai/">Decart</a> показала <a href="https://oasisaiminecraft.com/">Oasis</a> — нейросеть, генерирующую целые игры в стиле Minecraft. Модель обучалась на видео реального геймплея, использовались архитектура трансформера и диффузионные методы. Технология упрощает разработку, динамически воспроизводя физику, механики и визуальный стиль, присущие оригинальной игре. Причем окружение меняется в реальном времени в ответ на действия игрока. AI Minecraft Online также использует ИИ для преобразования изображения в игровой мир.</p><figure><img src="https://media.tproger.ru/user-uploads/111449/2025-02-25/3946ed84-e4cd-4f2e-ac3f-d0562c8c7732.png" alt="" /><figcaption>Источник: Oasis AI Minecraft</figcaption></figure><h4>inZOI</h4><p>Фишкой симулятора жизни inZOI от Krafton, уже вошедшего в число топ-10 самых ожидаемых игр на Steam, станет <a href="https://x.com/PlayinZOI/status/1833030670219903067">встроенная нейросеть</a>, позволяющая кастомизировать текстуры. Так, загружаете пикчу с любимым принтом или задаёте текстовый промпт для нейросети, а ИИ в игре сам преобразует его в текстуру для шмота. Кроме того, можно создавать 3D-модели: загружаете фото реального предмета, а нейросети превращают его в in-game объект.</p><figure><img src="https://media.tproger.ru/user-uploads/111449/2025-02-25/0b46b125-8fd3-46be-bfa1-03e3711acdad.png" alt="" /><figcaption>Источник: Reddit r/inZOI</figcaption></figure><h3>Реалистичное поведение NPC (неигровых персонажей)</h3><p>Ещё один тренд в разработке кооперативных игр — алгоритмы обучения с подкреплением, которые помогают неигровым персонажам менять свое поведение в зависимости от того, как действует игрок. И это круто, потому что мы больше не знаем, что от них ожидать (ведь часто NPC — просто набор скриптов бесцельного существования).</p><h3>inZOI</h3><p>В inZOI, благодаря NVIDIA ACE, в игру врываются <a href="https://www.dsogaming.com/news/inzoi-is-the-first-game-with-ai-powered-npcs-using-nvidia-ace/">умные NPC</a> — Smart ZOI и Co-Playable Characters. Эти чуваки больше не просто статисты, они реально живут своей жизнью: принимают решения, исходя из своих целей, могут влиять на события и генерировать неожиданные повороты в геймплее. Всё это возможно благодаря языковым моделям.</p><figure><img src="https://media.tproger.ru/user-uploads/111449/2025-02-25/99d8f7d3-fcc9-4e27-8b9c-210d38f2f8e2.png" alt="" /><figcaption>Источник: Nvidia</figcaption></figure><h4>Minecraft</h4><p>Хотите, чтобы в вашем Minecraft-мире были не только мобы, но и умные NPC, которые сами добывают ресурсы, строят города и выполняют команды? Есть целая куча нейросетевых модов для популярной песочницы. Например, <a href="https://modrinth.com/mod/ai-player">AI Player</a> добавляет бота, который может чатиться через локальную языковую модель прямо на вашем ПК. <a href="https://modrinth.com/mod/ai-npc">AI NPCs</a> — аналогичная технология, но использует OpenAI API. Если хотите чего-то масштабного, то <a href="https://minecolonies.com/">Minecolonies</a> — мод для создания целых городов, где AI-NPC-работники (строители, фермеры, охранники и другие) будут развивать вашу колонию.</p><h3>Динамическая адаптация сложности</h3><p>Если вы опытный игрок и уже забрали все ачивки, игра не должна становиться скучной. Тут в помощь приходит динамическая настройка сложности, добавляющая новые испытания. Придётся адаптироваться, а не просто повторять заученные тактики атак.</p><h4>MIR5</h4><p>Например, <a href="https://www.nvidia.com/en-us/geforce/news/nvidia-ace-autonomous-ai-companions-pubg-naraka-bladepoint/">в MIR5</a> боссы учатся на действиях игрока, оценивая их экипировку и настройки. Если убили один раз — следующий бой будет другим, потому что ИИ уже знает, как персонажа «загасили». Когда сложность не меняется с прогрессом, игроку становится скучно, а так — всегда появляется новый челлендж.</p><h4>Civilization VI</h4><p>В Civilization VI ИИ прокачивает свои скиллы с уровнями сложности. На хардкоре он получает кучу бонусов, типа дополнительных ресурсов и улучшений. Это добавляет хаоса и заставляет юзать новые тактики, чтобы победить. Чем выше уровень — тем сложнее и интереснее! Такой подход часто критикуют за нечестность, потому что ИИ-противник получает неравные преимущества, типа идеальной точности или знания позиций игрока.</p><h3>Распознавание речи и текстового ввода для взаимодействия</h3><p>Современные нейросети для преобразования речи в текст способны мгновенно транскрибировать произнесенные игроком слова. В разработке игр это можно подкрутить под любую специфическую терминологию, чтобы система точно понимала контекст и уникальные фразы, характерные для игр такого жанра.</p><p>Технология <a href="https://developer.nvidia.com/blog/bring-nvidia-ace-ai-characters-to-games-with-the-new-in-game-inference-sdk/">SDK от Nvidia</a> прокачивает диалоги с неигровыми персонажами: NPC слушает игрока через автораспознавание речи, превращает её в текст. Затем модель генерирует ответ с учетом контекста, а потом с помощью синтеза речи превращает его в реальный голос персонажа.</p><figure><img src="https://media.tproger.ru/user-uploads/111449/2025-02-25/4a7777d2-d885-4967-bffd-c7f3f5dade01.png" alt="" /><figcaption>Источник: Nvidia</figcaption></figure><h4>Starship Commander:Arcade</h4><p>В Starship Commander нет никаких заготовленных диалогов — просто говорите в микрофон, а NPC отвечают вам в реальном времени. Можете быть строгим и серьезным капитаном или, наоборот, устраивать трэш и спорить — разницы нет. Всё это благодаря Microsoft Cognitive Services, которые <a href="https://www.tomshardware.com/news/starship-command-leverages-cognitive-services,33606.html">используют ИИ</a> для понимания речи и намерений игроков.</p><h2>Топовые технологии ИИ в разработке игр</h2><h3>Machine Learning (ML): создание моделей поведения NPC и оптимизация игровых механик</h3><p>Машинное обучение внедряется в разработку игр, чтобы научить NPC вести себя по-настоящему умно, а не просто бегать туда-сюда. ML помогает создавать адаптивное поведение персонажей, которое меняется в зависимости от действий игрока. Плюс оптимизация механик, чтобы игра работала быстро и плавно.</p><h3>Neural Networks: применение для процедурной генерации текстур, анимаций и уровней</h3><p>Технология нейронных сетей уже создает текстуры, анимации и уровни без участия художников и дизайнеров. Она способна генерировать артефакты или даже целые уровни, экономя время и усилия, но при этом выдавая что-то крутое. Но помните, что нейросетки используют огромное количество данных для обучения. Поэтому иногда сгенерированный контент может быть похожим на уже существующий. Об этом стоит помнить, чтобы не нарваться на проблемы с авторскими правами.</p><h3>Pathfinding Algorithms: классические подходы (A*, Dijkstra) и их улучшение с ИИ</h3><p>Одна из распространенных проблем в разработке игр — поиск пути для NPC. Сейчас всё больше заморачиваются над тем, чтобы <a href="https://arxiv.org/abs/2204.08938">натренировать</a> эвристики (правила принятия решений) для A* через ML, чтобы можно было адаптироваться к разным ситуациям и быстрее находить путь. Рисерчеры также <a href="https://arxiv.org/abs/2407.02511">используют</a> большие языковые модели (LLM) с A*, чтобы улучшить планирование пути в сложных и изменяющихся условиях, так как способности LLM делают поиск быстрее и умнее. Для Dijkstra <a href="https://informatika.stei.itb.ac.id/~rinaldi.munir/Matdis/2022-2023/Makalah2022/Makalah-Matdis-2022%20(96).pdf">внедрение ИИ</a> оптимизирует скорость работы, что привычно для алгоритма, который может страдать от высокой вычислительной нагрузки.</p><h3>Natural Language Processing (NLP): диалоги, чат-боты, взаимодействие с игроками</h3><p>AI-NPC от <a href="https://www.nvidia.com/en-us/geforce/news/nvidia-ace-autonomous-ai-companions-pubg-naraka-bladepoint/">NVIDIA ACE</a> скоро появятся в PUBG: Battlegrounds и Naraka: Bladepoint. Используя технологии ИИ, натренированного на триллионах данных о человеческих реакциях на мир, они смогут имитировать процесс принятия решений. Так, планируется использовать машинное обучение для создания агентов, которые думают, чувствуют и действуют, как настоящие люди.</p><p>Для восприятия мира же используются технологии обработки аудио, изображений и состояний игры. Нейросети помогают NPC принимать микро-решения в реальном времени; text-to-speech переводит результат в диалоги, а затем всё фиксируется в систему стратегического планирования, которая хранит контекст. Короче, все как у людей, только в играх!</p><p>Моддеры в Skyrim и Stardew Valley тоже не отстают — они <a href="https://www.theverge.com/2024/10/17/24268007/modders-ai-companions-stardew-valley-skyrim">используют нейросети</a>, чтобы NPC стали полноценными собеседниками, которые могут вести нормальные диалоги и реагировать на ваши действия.</p><h3>Reinforcement Learning (RL): обучение агентов для сложных игровых сценариев</h3><p>Обучение с подкреплением —  технология ML, при которой агенты обучаются через взаимодействие с окружающей средой, получая награды или штрафы за свои действия. В контексте сложных игровых сценариев RL позволяет создавать агентов, способных адаптироваться к динамичным условиям игры, разрабатывать стратегии и принимать решения, которые невозможно заранее запрограммировать. <a href="https://link.springer.com/article/10.1007/s10489-024-06220-4">Недавнее исследование</a> показало, что с использованием определённых архитектур RL можно добиваться крутых результатов как в микро-, так и в макроуправлении в RTS-играх, где нужно адаптироваться к реальному времени.</p><h2>Инструменты и платформы для внедрения ИИ в игры</h2><p>Для интеграции ИИ в игровую разработку можно использовать следующие фичи:</p><ul><li><a href="https://github.com/Unity-Technologies/ml-agents">Unity ML-Agents Toolkit</a> — open-source проект для тех, кто хочет обучать умных агентов в играх (от 2D до VR/AR). Есть всё: обучение с подкреплением, имитация поведения и даже мультиагентные сражения. Можно делать сложные сценарии и рандомизировать среду, тестировать алгоритмы в реальных условиях и интегрировать всё в Unity.</li><li><a href="https://dev.epicgames.com/documentation/en-us/unreal-engine/artificial-intelligence-in-unreal-engine">Unreal Engine AI Framework</a> — Unreal Engine даёт кучу крутых фич для использования ИИ в разработке игр. Среди них — Behavior Trees для сложного поведения NPC, а также MassEntity для управления массой объектов.</li><li>Neural Network Engine (NNE) — удобный API для работы с нейросетями: шумоподавление для улучшения рендеринга, нейронная постобработка для красоты и т.д.. Ещё можно обучать модели для деформации персонажей и симуляции ткани.</li><li>PyTorch и TensorFlow — два самых популярных фреймворка для обучения моделей искусственного интеллекта, которые активно используются в разработке игр. В сочетании с игровыми движками и технологиями (например, Unity или Unreal Engine), они станут мощными инструментами для разработки умных агентов.</li><li>IBM Watson или OpenAI API для работы с NLP — позволяют прокачивать NPC, чтобы они не просто повторяли заскриптованные фразы, а реально понимали, что говорит игрок. Разработка диалогов становится проще, а персонажи — умнее. OpenAI API поможет генерить уникальные реплики на лету, а IBM Watson шарит в анализе текста и умеет распознавать голос.</li></ul><h2>Примеры игр с продвинутым использованием ИИ</h2><h3>The Last of Us: поведение NPC и адаптация под стиль игрока</h3><p>Изначально разработчики использовали конус видимости, который часто применялся в других играх (Uncharted и Alien: Isolation), для отображения поля зрения вражеского NPC. Эта система хорошо показывала себя на дистанции, но не срабатывала, если игрок был слишком близко к вражескому NPC. Чтобы исправить это, разработчики <a href="https://arxiv.org/pdf/2207.00682">создали</a> более сложную систему, где угол обзора врага зависел от того, как далеко игрок от него.</p><p>Чтобы проверить, замечает ли противник героя, используется система ИИ-рейкастов: из головы NPC проецируется невидимый луч, направленный на игрока. Если на пути луча нет препятствий, у противника постепенно заполняется индикатор обнаружения. Так что ещё один важный элемент — ИИ-сопровождение, особенно с Элли, которая должна всегда быть рядом с игроком, не привлекая внимания врагов. Для этого была разработана система следования, которая генерирует несколько возможных позиций для Элли и оценивает их с помощью рейкастов. Это позволяет следовать за героем, оставаясь достаточно близко, чтобы избежать обнаружения, но не настолько, чтобы создать проблемы.</p><figure><img src="https://media.tproger.ru/user-uploads/111449/2025-02-25/58ef2c33-02d7-4ff9-87b4-321a556868db.png" alt="" /><figcaption>Источник: The NPC AI of The Last of Us: a case study</figcaption></figure><h3>Minecraft: генерация контента с использованием ИИ</h3><p>Существуют даже целые соревнования по генеративным технологиям. Одно из них — <a href="https://gendesignmc.wikidot.com/">Generative Design in Minecraft</a>, где участники создают ИИ-алгоритмы для постройки поселений. Организаторы — не просто энтузиасты, а люди из науки и геймдева, оценивают работы по функциональности, адаптивности и эстетике.</p><p>Нейросеть <a href="https://github.com/Mawiszus/World-GAN">World-GAN</a> — проект, который использует генеративные состязательные сети (GAN) для создания чанков мира из небольших образцов. World-GAN применяет технику block2vec, вдохновлённую word2vec. В тестах нейросеть легко меняет визуальный стиль биомов, так что если не повезло со спавном, скоро можно будет просто сказать: «переделай в джунгли» — и вуаля.</p><figure><img src="https://media.tproger.ru/user-uploads/111449/2025-02-25/cdf86bf5-7b09-409f-864e-672632bec47b.png" alt="" /><figcaption>Источник: Adaptive Procedural Generation in Minecraft</figcaption></figure><h3>Dota 2: обучение ИИ-агентов</h3><p>Сейчас мы знаем OpenAI из-за популярнейшей нейросети ChatGPT, но вот в 2017 году они создавали ИИ-бота для соревнований с профессиональными игроками в Dota 2 — <a href="https://arxiv.org/abs/1912.06680">OpenAI Five</a>. В 2018 он уже <a href="https://tproger.ru/news/openai-five-dota-2">обыгрывал</a> полупрофессионалов, а в 2019 — <a href="https://arxiv.org/abs/1912.06680">победил</a> команду OG, чемпионов мира по Dota 2, став первым ИИ, который смог одержать победу над профессиональными игроками в такой сложной игре. Для этого использовались методы подкрепляющего обучения с миллионами кадров, что помогло ИИ достичь человеческого уровня в сложной задаче с неполной информацией и долгосрочными целями.</p><h2>Преимущества и ограничения использования ИИ в разработке игр</h2><p>Преимущества:</p><ul><li><b>Автоматизация и генерация контента на лету.</b> Можно генерить уровни и миры, и это реально круто ускоряет процесс разработки.</li><li><b>Более реалистичный и захватывающий игровой опыт.</b> ИИ может помочь создать персонализированных NPC с уникальными реакциями и диалогами, адаптированными к действиям игрока.</li><li><b>Чем дольше играешь, тем более сложными становятся противники и задачи.</b> ИИ настраивает сложность так, чтобы интерес поддерживался на протяжении всей игры.</li><li><b>Умные боты.</b> Они учатся на действиях игрока, улучшая свои тактики и внося элемент неожиданности.</li></ul><p>Ограничения:</p><ul><li><b>Сложные алгоритмы потребуют не только кучи вычислительных мощностей, но и времени на настройку.</b> На старте разработки это может быть дороговато.</li><li><b>Данные — всё!</b> ИИ обучается на данных, но их нужно где-то брать. Если это делать с нуля — появятся проблемы.</li><li><b>Этика и закон.</b> ИИ в играх — не только круто, но и немного страшно. Авторские права, данные игроков, ответственность, если NPC ляпнет что-нибудь не то. Тут могут быть вопросики.</li><li><b>ИИ может круто улучшить геймплей, но он не заменит креативный подход, который привносят разработчики.</b> Большинство решений всё равно требуют человеческого вмешательства.</li><li><b>Настройка ИИ-систем и обучение моделей — совсем не дешёвая вещь.</b> Сложные ИИ-алгоритмы требуют значительных вложений на стадии разработки и даже на пост-продакшене.</li></ul><h2>Как начать использовать ИИ в игровой разработке?</h2><p>Вот, что может вам понадобиться, чтобы начать использовать ИИ в игровой разработке:</p><ol><li><b>Основы ML и алгоритмов ИИ.</b> сначала надо разобраться с основами машинного обучения, нейронок, и всяких таких штуковин.</li><li><b>Онлайн-курсы, которые помогают разобраться в ИИ и его применении в играх.</b> <a href="https://www.udemy.com/course/artificial-intelligence-for-simple-games/">Artificial Intelligence for Simple Games</a> на Udemy — курс по ИИ для простых игр, <a href="https://www.classcentral.com/course/computer-science-hp-generative-ai-mastery-revolut-302589">Generative AI Mastery: Revolutionizing Game Development</a> — бесплатный курс по генеративному ИИ от Карлоса Ботта, который в индустрии уже 35+ лет.</li><li><b>Полезные туториалы.</b> Например, видео, где человек <a href="https://www.youtube.com/watch?v=ySqLAayNmaM&amp;pp=ygUOYWkgaW4gZ2FtZSBkZXY%3D">разрабатывает игру</a> с нуля только с помощью ИИ. Также есть вводные ролики <a href="https://www.youtube.com/watch?v=9g0UMFUp4ys&amp;pp=ygUMI2FpaW5paWNzaWNz">по ИИ в Unity</a>. Не менее интересен <a href="https://www.youtube.com/watch?v=1ST0T0weysM&amp;pp=ygUOYWkgaW4gZ2FtZSBkZXY%3D">TED-talk</a> от инженера по поддержке разработчиков игр в Hugging Face. Таких видео море на YouTube, и они реально полезные.</li><li><b>Книга «<a href="https://www.amazon.com/Artificial-Intelligence-Games-Ian-Millington/dp/0123747317">Artificial Intelligence for Games</a>» от Ian Millington и John Funge</b>. Это уже классика, да и вообще фундаментальный источник для геймдева.</li><li><b>Документация от ИИ-геймдев-фреймворков (например, <a href="https://github.com/Unity-Technologies/ml-agents">Unity ML-Agents</a>).</b> Там точно всё по полочкам.</li><li><b>Рассылки от экспертов в геймдеве</b>. Например, <a href="https://thomassimonini.substack.com/">Thomas Simonini</a>. Так вы будете в курсе крутых инсайтов.</li><li><b>Актуальные материалы конференций.</b> Например, <a href="https://cog2025.inesc-id.pt/">IEEE Conference on Games</a>. Это даст вам взгляд на будущее трендовых технологий в играх.</li><li><b>Практика.</b> Найдите репозитории на GitHub с открытым исходным кодом и попробуйте Reinforcement Learning для умных NPC, например, чтобы улучшить их поведение в open-world играх.</li></ol><h2>Будущее в игровой ИИ индустрии</h2><p>ИИ в игровой индустрии уже начинает менять правила игры. Мы на пороге того, чтобы увидеть, как улучшаются устаревшие алгоритмы, но и создаются игры с нуля: от геймплейных механик до сложных сюжетных линий. С метавселенными, интегрированными с ИИ, мы получим совершенно новые, адаптирующиеся пространства, где каждый игрок будет переживать свой персонализированный опыт.  Всё это — шаги в будущее, которое не заставит себя долго ждать.</p>]]></content:encoded>
    </item>
    <item>
      <title>Разработка игр для начинающих: с чего начать?</title>
      <link>https://tproger.ru/articles/razrabotka-igr-dlya-nachinayushhih--s-chego-nachat-</link>
      <comments>https://tproger.ru/articles/razrabotka-igr-dlya-nachinayushhih--s-chego-nachat-?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Ксения Андреева]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/razrabotka-igr-dlya-nachinayushhih--s-chego-nachat-</guid>
      <description><![CDATA[<p>В этой статье рассмотрим основные шаги и этапы в разработке игр, независимо от того, хотите вы создать игру «для себя» для монетизации.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/razrabotka-igr-dlya-nachinayushhih--s-chego-nachat-">Разработка игр для начинающих: с чего начать?</a>»</p>]]></description>
      <category><![CDATA[Тестирование]]></category>
      <category><![CDATA[C++]]></category>
      <category><![CDATA[Для начинающих]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[C#]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[Работа со звуком]]></category>
      <category><![CDATA[Советы]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Навыки]]></category>
      <category><![CDATA[Epic Games]]></category>
      <category><![CDATA[Игра]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Бета]]></category>
      <category><![CDATA[Дизайн]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 06 Feb 2025 10:00:04 GMT</pubDate>
      <content:encoded><![CDATA[<p>Сегодня создать свою игру может почти каждый, но у новичков в геймдеве неизбежно возникает множество вопросов. Какие инструменты использовать? Какую платформу выбрать? Какие навыки развивать в первую очередь? И, самое главное, как сделать игру, которая действительно понравится многим?</p><p>В этой статье рассмотрим основные шаги и этапы в разработке, независимо от того, хотите вы создать игру «для себя» или  для монетизации.</p><h2>Выбор платформы и инструментов</h2><p>Это первый и, пожалуй, самый важный шаг. Всё зависит от выбранного типа игры, ваших навыков, и платформы, на которой игра будет размещена.</p><ol><li><b>Unity</b> — самый популярный движок, известный своей гибкостью и возможностью создавать как 2D и 3D игры. На Unity можно клипать игры для ПК, консолей и мобильных устройств. Более половины всех игр созданы с этим движком.</li><li><a href="https://www.unrealengine.com">Unreal Engine</a> — движок от Epic Games, известный своей классной графикой и детализацией. Unreal Engine используют для создания ААА-игр за счёт работы на Blueprints. Кстати, многие крупные геймдев-компании предпочитают именно Unreal Engine.</li><li><a href="https://godotengine.org/">Godot</a> — открытый исходный код движка, который набирает популярность благодаря лёгкости освоения. У Godot есть свой язык, GDScript, который даёт возможность перейти к созданию игр без сложных настроек.</li></ol><p><b>Есть два способа создания игр:</b> программирование и визуальное программирование. И если с «обычным» программированием всё понятно, то с помощью Blueprints в Unreal Engine можно создавать сложные логические структуры; а GDScript — более традиционный способ программирования, но с упрощённым синтаксисом.</p><figure><img src="https://media.tproger.ru/user-uploads/106063/2025-01-23/64f771ee-c98f-4b36-9826-abe26749fc87.jpg" alt="" /><figcaption>Игра Into the Stars была создана полностью на базе Unreal Blueprints, вообще без кода.</figcaption></figure><p>Сообщество геймдева, кстати, активно поддерживает разработчиков через форумы (например,<a href="https://gamedev.ru/"> gamedev.ru</a>). Там вы сможете найти советы и истории разработки от профессионалов сферы.</p><h2>Основы игрового дизайна</h2><p><b>Первый шаг — идея. </b>А именно: мозговой штурм, анализ трендов и оценка ваших интересов и навыков. В первую очередь должна быть реализуемой, а не уникальной. Здесь на помощь придут сайты по типу<a href="https://www.gamasutra.com/"> Gamasutra</a> для поиска «вдохновения» и анализа тенденций.</p><p><b>Второй шаг — разработка простого геймплея и механик. </b>Геймплей — буквально сердце вашей игры, именно он определяет, как пользователь будет взаимодействовать с приложением. Основные элементы здесь — определение целей игры, правил и системы вознаграждений. Классно разработанный геймплей будет удерживать игроков.</p><p><b>Третий шаг — тестирование MVP. </b>Это тестирование идей и механик ещё до публикации игры. С помощью простых прототипов вы сможете проверить, как работает геймплей без необходимости полного погружения в разработку.</p><p>Кстати, с помощью Unity или Godot Engine можно быстро создавать базовые версии игр и проводить альфа/бета-тесты с небольшой группой пользователей. Так вы получите фидбек от пользователей и сэкономите время на поиске багов вручную.</p><h2>Базовые навыки в геймдеве</h2><p>Сюда относится <b>программирование, работа с визуалом и звуком, основы физики и анимации.</b></p><p>Без кода игра не будет работать так, как задумывалось (<i>спасибо, кэп</i>). <b>Самыми популярными языками программирования для разработки игр считаются C#, Python и C++.</b></p><p>C# широко используется благодаря движку Unity, который стал де-факто стандартом в геймдеве для инди-разработчиков и больших студий. Простота синтаксиса и широкая поддержка сообщества — вот за что выбирают C#.</p><p>Python обычно не используется для больших коммерческих проектов из-за ограничений по производительности. Но всё-таки он идеально подходит для обучения и создания простых прототипов. Всё благодаря его (относительной) лёгкости в теории и на практике.</p><p>C++ — ещё один популярный язык в индустрии геймдева, особенно когда речь идёт о проектах, которые требуют высокой производительности. Используется на базе Unreal Engine.</p><figure><img src="https://media.tproger.ru/user-uploads/106063/2025-01-23/69ca0d41-1a11-485c-8491-c0ed01d415ee.png" alt="" /></figure><p><b>Графика и звук очень важны в создании «атмосферности».</b> Именно с помощью них пользователи полностью погружаются в процесс игры.</p><ul><li>Начните с освоения базовых инструментов работы с графикой по типу Фотошопа или GIMP для 2D-графики и Blender или Maya для 3D-моделирования. Не забывайте про основы текстурирования и освещения — так сцены будут более реалистичными.</li><li>Работа со звуком — создание и поиск подходящей музыки и звуковых эффектов. С этим помогут программы по типу Audacity или FL Studio, а ещё сайт <a href="https://www.looperman.com/">Looperman</a>, где можно найти бесплатные сэмплы. Звук существенно влияет на восприятие игры пользователями — от тревожной музыки до ярких звуков во время победы.</li></ul><p><b>Начните изучение физики в играх с простых законов Ньютона</b>, чтобы понять, как объекты должны двигаться в игре.</p><figure><img src="https://media.tproger.ru/user-uploads/106063/2025-01-23/63e793f2-7ede-49c1-b4a3-8cab7af61b54.jpeg" alt="" /></figure><p><b>Анимация тоже важна.</b> Здесь имеется в виду движение персонажей и объектов в самой игре. С этим поможет Spine для 2D-анимации и Adobe After Effects.</p><h2>Что ещё важно</h2><p><b>На первых порах важно выбрать простую и реализуемую концепцию без сложных механик. </b>Попробуйте начать с разработки платформеров и пазлов, они отлично подходят для новичков. Так вы сможете сконцентрироваться на базовых механиках игрового процесса без сложной графики.</p><p>Платформеры хороши своей лёгкостью в реализации базовых механик прыжка и бега. К платформам можно отнести всем известный Super Mario или Terraria. Начать можно с создания простых уровней и изучения основ физики.</p><figure><img src="https://media.tproger.ru/user-uploads/106063/2025-01-23/eea7e6be-bdc1-4b11-8cd6-42e069ffd326.jpg" alt="" /><figcaption>Игра Life Goes On: Done to Death</figcaption></figure><p>А создание игр в жанре пазлов и головоломок помогут разработчикам сосредоточиться на логических задачах и интерактиве игры. А после публикации игры вы получите первые отзывы и поймёте, чего реально хочет аудитория.</p><figure><img src="https://media.tproger.ru/user-uploads/106063/2025-01-23/87008ac5-0053-4d66-8bea-ac8d9cbe66e7.jpg" alt="" /><figcaption>Сложная в реализации, но всё-таки головоломка и просто классная игра — Portal 2.</figcaption></figure><p><b>Прототипирование — критически важный этап,</b> на котором вы проверяете ваши идеи на жизнеспособность и получаете первые результаты:</p><ol><li><b>Определите ключевые элементы вашей игры.</b> Например, если вы делаете платформер, сосредоточьтесь на механике прыжков и взаимодействии с препятствиями.</li><li><b>Используйте Photoshop или GIMP для создания спрайтов </b>вашего персонажа и окружения.</li><li><b>Для программирования выбирайте игровые движки: Unity, Unreal Engine или Godot.</b> У каждого из этих движков большой набор инструментов для начинающих. А в интернете можно найти подробную документацию и руководства по созданию игры.</li><li><b>Создайте тестовый игровой уровень, </b>на котором вы и протестируете основные механики.</li></ol><p><b>Далее наступает время тестирования.</b> Это может быть либо самостоятельное тестирование, либо альфа/бета-тесты с привлечением небольшого пула игроков — так вы буквально сможете увидеть игру глазами ваших пользователя. А они укажут на элементы в игре, которые вы могли не заметить во время разработки.</p><p>После того, как получили первые отзывы на этапе тестов, <b>важно доработать игру:</b></p><ul><li>Исправьте выявленные ошибки;</li><li>Усильте графику, анимацию и звуковое сопровождение;</li><li>Добавьте новые уровни или усложните уже существующие.</li></ul><h2>Рекомендации</h2><p>Геймджемы и хакатоны — классная возможность прокачать свои геймдев-навыки в короткие сроки. На таких мероприятиях участники объединяются в команды и за короткое время создают игру на заданную тему. Так вы не только прокачаете навык быстрого и эффективного прототипирования, но и сможете завести полезные знакомства.</p><p>Среди самых известных геймджемов — Ludum Dare, который проводится с 2002 года. Многие игры, впервые созданные на LD, далее превращались в полноценные коммерческие проекты: например, игра <a href="https://partnerkin.com/blog/kejsy/history-of-two-developers">Druid</a>, <a href="https://stopgame.ru/game/broforce">Broforce</a>, <a href="https://www.pony-island.com/">Pony Island</a> (от создателей <a href="https://www.inscryption.com/">Inscription</a>).</p><p>А с помощью открытого исходного кода вы, как создатель игры, сможете изучить лучшие практики от опытных разработчиков и «забрать» их себе. На GitHub можно запросто найти много игр с открытым исходным кодом: от простых 2D-головоломок до сложных 3D-приключений.</p><p>Не забывайте и о постоянном самообразовании. В этом вам помогут специализированные курсы как на русском языке, так и на английском. С помощью них вы сможете набить руку и лучше понимать, какие практики стоит добавлять в игру, а какие нет.</p><p>И помните: многие игры создавались в одиночку. И при этом достигали большого успеха: Sally Face, Plague Inc, Papers, Please. И, конечно же, любимый многими разрабами Stardew Valley :)</p><p>Ручки чешутся, чтобы создать игру, а мозг пока не совсем готов? Заходите в наш <a href="https://t.me/+JR4NEBk3UWFiOTYy">тг по геймдеву</a>, обязательно поможем!</p>]]></content:encoded>
    </item>
    <item>
      <title>Топ 11 трендов, которые нужны айтишнику в 2025 году</title>
      <link>https://tproger.ru/articles/top-11-trendov--kotorye-nuzhny-ajtiwniku-v-2025-godu</link>
      <comments>https://tproger.ru/articles/top-11-trendov--kotorye-nuzhny-ajtiwniku-v-2025-godu?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Валерия Турчак]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/top-11-trendov--kotorye-nuzhny-ajtiwniku-v-2025-godu</guid>
      <description><![CDATA[<p>ИИ, кибербезопасность, облако, DevOps, блокчейн и AR/VR — 11 ключевых IT-трендов 2025. Узнайте, какие навыки прокачать, чтобы оставаться востребованным!</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/top-11-trendov--kotorye-nuzhny-ajtiwniku-v-2025-godu">Топ 11 трендов, которые нужны айтишнику в 2025 году</a>»</p>]]></description>
      <category><![CDATA[Тестирование]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[Компьютерное зрение]]></category>
      <category><![CDATA[Машинное обучение]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[DevOps]]></category>
      <category><![CDATA[Agile]]></category>
      <category><![CDATA[Docker]]></category>
      <category><![CDATA[Блокчейн]]></category>
      <category><![CDATA[Библиотеки]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Кибербезопасность]]></category>
      <category><![CDATA[DevSecOps]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 26 Dec 2024 14:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Только вы выучили очередной стэк, как появляются новые фреймворки, инструменты и подходы. IT — одно из немногих направлений, где кризисы могут приходить и уходить, а спрос на классных специалистов остается стабильно высоким.</p><p>Все чаще мы сталкиваемся с автоматизацией процессов, анализом огромных массивов данных и вопросами кибербезопасности. Именно эти потребности бизнеса превращаются в тренды: если не хватает специалистов по защите данных или нет экспертов по облаку, значит спрос на них будет только расти.</p><p>Следить за трендами — не просто «быть в курсе». Это умение смотреть в будущее, вовремя прокачивать навыки и браться за новые проекты. В этой статье мы собрали 11 ключевых трендов на 2025 год — рассмотрим их подробнее, а помогут в этом — <a href="https://solvery.io/ru/mentor/sergey_menshov?utm_source=article&amp;utm_medium=partner&amp;utm_campaign=sergey_menshov&amp;utm_content=trends&amp;utm_term=tproger">Сергей Меньшов</a>, ведущий специалист по Computer Vision (Nexign.com), ментор <a href="https://solvery.io/?utm_source=article&amp;utm_medium=partner&amp;utm_campaign=main_page&amp;utm_content=trends&amp;utm_term=tproger">Solvery</a>, и <a href="https://solvery.io/ru/mentor/anthony_shirshakov?utm_source=article&amp;utm_medium=partner&amp;utm_term=tproger&amp;utm_content=trends&amp;utm_campaign=anthony_shirshakov">Антон Ширшаков</a>, Product owner (Райффайзенбанк), ментор Solvery.</p><h2>Глобальные тренды и направления</h2><h3>Взрывной рост данных и их обработка</h3><p>К 2025 году объем данных, которые мы будем генерировать, обещает безумные масштабы. <a href="https://www.statista.com/statistics/471264/iot-number-of-connected-devices-worldwide/">По прогнозам</a>, в интернете окажется более 75 ммлрд IoT-устройств.</p><ul><li><b>Основы аналитики данных</b>: SQL и Python с библиотеками Pandas, NumPy, Scikit-learn;</li><li><b>Инструменты больших данных</b>: Apache Spark, Hadoop, Google BigQuery;</li><li><b>Базы данных</b>: PostgreSQL, MongoDB, Cassandra;</li><li><b>Визуализация</b>: Tableau, Power BI, Matplotlib, Seaborn;</li><li><b>Обработка потоковых данных</b>: Kafka и облачные платформы для real-time обработки.</li></ul><h3>Автоматизация и ИИ</h3><p>ИИ меняет все подряд: от производства автомобилей до обслуживания клиентов в чат-ботах. <a href="https://www.itsec.ru/news/k-2025godu-rinok-it-budet-ozenivatsia-v-190-mlrd">По прогнозам</a>, к 2025 году объем рынка ИИ вырастет до 190 млрд долларов.</p><ul><li><b>Алгоритмы ML</b>: от линейной регрессии до нейронных сетей;</li><li><b>TensorFlow, PyTorch</b>: библиотеки для быстрого обучения моделей;</li><li><b>MLOps</b>: интеграция и поддержка моделей в продакшне.</li><li><b>OpenCV</b>: компьютерное зрение и анализ видео;</li><li><b>Hugging Face</b>: NLP-модели для текста и чат-ботов.</li></ul><blockquote>Сейчас активно развивается технология OpenVINO от Интела. Она позволяет запускать нейросети на процессоре с высоким FPS — например, YOLOv8 дает 200 кадров в секунду.</blockquote><h2>Топовые технологии и навыки в 2025 году</h2><h3>Кибербезопасность</h3><p>По данным <a href="https://cybersecurityventures.com/cybercrime-damage-costs-10-trillion-by-2025/">исследования</a> Cybersecurity Ventures, к 2025 году глобальный ущерб от киберпреступлений может превысить 10,5 трлн долларов в год.</p><ol><li><b>Этичное хакерство</b> (Penetration Testing): Kali Linux, Metasploit, Burp Suite, Nmap. Сертификат CEH.</li><li><b>Криптография</b>: AES, RSA, SHA, OpenSSL, PGP.</li><li><b>Администрирование сетей</b>: Wireshark, Snort, Splunk.</li><li><b>SIEM</b>: Splunk, IBM QRadar, ArcSight.</li><li><b>Incident Response</b> и Compliance (ISO 27001, GDPR, PCI DSS).</li></ol><h3>Облачные вычисления и архитектура</h3><p>По данным <a href="https://www.gartner.com/en/newsroom/press-releases/2021-11-10-gartner-says-cloud-will-be-the-centerpiece-of-new-digital-experiences">Gartner</a>, к 2025 году 95% новых цифровых рабочих нагрузок будут развернуты в облаках.</p><ul><li><b>Terraform</b>: Infrastructure as Code;</li><li><b>Ansible</b>: автоматизация развертывания;</li><li><b>Docker и Kubernetes</b>: контейнеризация и оркестрация.</li></ul><h3>Full-Stack разработка</h3><p>В 2025 году от Full-Stack разработчиков ожидается еще более широкий спектр навыков: от интеграции с блокчейн до девелопмента микросервисной архитектуры.</p><h3>DevOps</h3><p>В 2025 году DevOps продолжает расширять инструментарий, интегрируясь с AI/ML, облачными технологиями и DevSecOps.</p><h3>Работа с блокчейн</h3><p>Блокчейн выйдет далеко за пределы криптовалют и станет элементом в управлении цепочками поставок, здравоохранении и безопасных транзакциях.</p><ul><li><b>Solidity</b>: язык для смарт-контрактов Ethereum;</li><li><b>dApps</b>: децентрализованные приложения;</li><li><b>Основы криптографии</b>: цифровые подписи, хеш-функции.</li><li><b>Распределенные вычисления</b>: системы без единой точки отказа.</li></ul><h2>Продвинутое управление продуктом</h2><blockquote>На самом деле большинство компаний уже освоили и внедрили Agile-практики. Сейчас гораздо важнее инвестировать в непрерывное обучение и формирование насмотренности.</blockquote><ol><li><b>Непрерывное обучение и насмотренность</b>: конференции, кейсы, смежные области.</li><li><b>Customer-centric</b>: CJM, Jobs to Be Done.</li><li><b>Петли обратной связи</b>: ретроспективы, 1-на-1, обзоры спринтов.</li><li><b>User story mapping, SPIDR, INVEST</b>: декомпозиция задач.</li><li><b>Работа с данными</b>: метрики, A/B-тестирование.</li></ol><h2>Работа с AR/VR технологиями</h2><p>В 2025 году AR/VR продолжат находить применение в образовании, здравоохранении, маркетинге и игровой индустрии.</p><ul><li><b>Unity</b> (C#) и <b>Unreal Engine</b> (C++) — основные движки;</li><li><b>Blender, Maya</b> — 3D-моделирование;</li><li><b>ARKit (iOS), ARCore (Android)</b> — AR для мобильных приложений;</li><li><b>VR-гарнитуры</b>: Oculus Quest, HTC Vive, PlayStation VR.</li></ul><p>2025 год станет временем быстрых перемен в IT. Главные тренды: ИИ, облака, кибербезопасность, аналитика данных, блокчейн. Участвуйте в проектах, создавайте что-то свое и постоянно учитесь новому.</p><p>Читайте также: <a href="https://tproger.ru/articles/kak-stat-programmistom">Как стать программистом с нуля — полный гайд</a>, <a href="https://tproger.ru/articles/kak-stat-ai-inzhenerom-v-2024-godu---powagovyj-gajd">Как стать AI-инженером в 2024 году</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>ТОП-34 курса по Unity 2D и 3D: онлайн-обучение разработчиков игр</title>
      <link>https://tproger.ru/articles/kursy-po-unity-2d-i-3d-253345</link>
      <comments>https://tproger.ru/articles/kursy-po-unity-2d-i-3d-253345?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Анастасия Шишкина]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kursy-po-unity-2d-i-3d-253345</guid>
      <description><![CDATA[<p>Лучшие онлайн-курсы по разработке мобильных и компьютерных игр. Список школ, осуществляющих обучение на бесплатной или платной основе, а также цены на курсы по созданию игр</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kursy-po-unity-2d-i-3d-253345">ТОП-34 курса по Unity 2D и 3D: онлайн-обучение разработчиков игр</a>»</p>]]></description>
      <category><![CDATA[Для начинающих]]></category>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Обучающие курсы]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sun, 08 Dec 2024 05:00:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Научиться создавать двухмерные и трехмерные шутеры, бродилки и не только возможно на курсах по Unity. Этот движок является одним из наиболее востребованным для создания межплатформенных игр. Его активно применяют в разработке мобильного контента из-за простоты подключения монетизации. С его помощью в геймплей добавляется использование технологий, которые есть практически в любом современном смартфоне, например, гироскопов и акселерометров. Для работы с Unity довольно низкий порог вхождения, поэтому освоить разработку на нем легче, чем на других движках.</p><p>С экспертами <a href="https://kursfinder.ru/">Kursfinder</a> я рассмотрела более 50 курсов обучения разработке игр на Unity и собрала 34 лучших программы обучения, платных и бесплатных, а также ответы на самые частые вопросы по этому движку. Еще больше <a href="https://kursfinder.ru/unity/">курсов для Unity-разработчиков</a> вы найдете в каталоге сервиса.</p><h2>ТОП-10 лучших курсов по Unity в 2026 году</h2><ol><li><a href="https://experts2.ru/VoezQh?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=1">Разработчик игр на Unity</a> от «Нетологии» — универсальная программа для погружения в геймдев.</li><li><a href="https://experts1.ru/VpzKhu?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=2">Профессия Разработчик игр на Unity</a> от Skillbox — программа, на которой вы научитесь работать с технологиями Unity.</li><li><a href="https://experts2.ru/bmkUBs?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=3">Разработчик игр на Unity с нуля до Middle</a> от GeekBrains — курс, охватывающий сферы создания 2D- и 3D-игр.</li><li><a href="https://experts2.ru/CzdGaf?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=4">Middle-разработчик игр на Unity</a> от Skillbox — программа, открывающая возможности для стажировки в игровой студии.</li><li><a href="https://experts2.ru/qwKoRk?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=5">Разработчик игр на Unity</a> от Skillfactory — углубленный курс по работе с игровым движком.</li><li><a href="https://experts2.ru/LijlSs?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=6">Курс Разработчик игр на Unity. Базовый уровень</a> от Otus — курс для начинающих, в рамках которого можно создать игру и выложить ее в магазин приложений.</li><li><a href="https://experts2.ru/cRBswi?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=7">Unity-разработчик</a> от XYZ School — курс, созданный для новичков без опыта.</li><li><a href="https://experts2.ru/YmEorv?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=8">Курс Разработчик игр на Unity. Продвинутый уровень</a> от Otus — программа, результатом которой станет проектная работа на тему по выбору.</li><li><a href="https://experts2.ru/RtcQpd?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=9">Разработка игр на Unity</a> от XYZ School — продвинутый курс от экспертов-практиков.</li><li><a href="https://experts2.ru/wbRtSm?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=10">Разработка игр на Unity</a> от «Компьютерной Академии TOP» — программа, доступная для подростков от 15 лет и взрослых.</li></ol><p>Программы, представленные в подборке, позволят изучить как основы Unity, так и прокачать свои навыки до продвинутого уровня. Большая их часть не требует знаний в программировании, позволяет войти в IT с нуля.</p><h2>Онлайн-курсы по разработке игр на Unity2</h2><p><b>1.</b> <a href="https://experts2.ru/VoezQh?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=1">Разработчик игр на Unity</a> | <b>Нетология</b></p><p><i><b>🎁Используйте эксклюзивный промокод «kursfinder», чтобы получить скидку 7% на все профессии и курсы школы.</b></i></p><p>Онлайн-курс, с которым студенты смогут стартовать в индустрии геймдев уже через несколько месяцев. Программа поможет научиться основным инструментам и механикам Unity, элементам программирования. Также студенты научатся работать с ПО Blender.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2024-12-05/73d8f2d3-3f1d-4720-ac78-0650325926d7.png" alt="" /></figure><ul><li>Стоимость: от 3 143 р./мес. в рассрочку на 3 года.</li><li>Длительность: 13 месяцев.</li><li>Формат обучения: записанные уроки, воркшопы, задания на отработку практических навыков.</li><li>Сертификат: диплом о переподготовке.</li></ul><p><b>Кому подойдет: </b>начинающим, которые хотят с нуля освоить особенности разработки на Unity.</p><p><b>Преимущества:</b></p><ul><li>поддержка при трудоустройстве;</li><li>5 бонусных модулей;</li><li>курсы по деловому английскому, поиску заказов на фрилансе и нейросетям в подарок;</li><li>активное комьюнити;</li><li>можно учиться со смартфона;</li><li>особые условия для корпоративных клиентов.</li></ul><p><b>Недостатки:</b></p><ul><li>длительное обучение;</li><li>большое количество материалов для самостоятельного освоения.</li></ul><p><b>Программа обучения:</b></p><ul><li>Работа с редактором.</li><li>C#.</li><li>Разработка игр и прототипирование.</li><li>Мобильные игры.</li></ul><p><a href="https://experts2.ru/VoezQh?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=1">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><p><b>2.</b> <a href="https://experts2.ru/VpzKhu?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=2">Профессия Разработчик игр на Unity</a> | <b>Skillbox</b></p><p><b><i>🎁Используйте промокод «kursfinder», чтобы получить скидку 60% на профессии из категории «Игры» и 50% на другие курсы школы.</i></b></p><p>Онлайн-курс, разработанный для начинающих программистов. Преподаватели научат программировать на C#, поговорят о ведении дизайн-документа, особенностях трехмерных моделей и анимации. Кроме того, студенты узнают о применении ассетов, внедрения технологий ИИ и др.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2024-12-05/986ad5e7-e53b-480b-8bf3-c3e8e97677cf.png" alt="" /></figure><ul><li>Стоимость: от 5 486 р./мес. в рассрочку на 2 года.</li><li>Длительность: 4 или 10 месяцев (в зависимости от выбранного трека обучения).</li><li>Формат обучения: записанная теория, работа над играми, тесты, проекты.</li><li>Сертификат: есть.</li></ul><p><b>Кому подойдет: </b>новичкам без опыта, начинающим программистам, опытным разработчикам, желающим сменить направление деятельности и перейти в разработку игр.</p><p><b>Преимущества:</b></p><ul><li>5 проектов для портфолио;</li><li>доступ к курсу и обновлениям без ограничений по времени;</li><li>возможность участвовать в создании игр в студии GameBox;</li><li>доступ к обучению английскому от Skillbox на год;</li><li>2 тарифа обучения на выбор;</li><li>общение с кураторами, быстрая помощь от технической поддержки.</li></ul><p><b>Недостатки:</b></p><ul><li>гарантия трудоустройства, вебинары только в расширенном тарифе;</li><li>небольшая часть обучения предполагает общение с экспертами.</li></ul><p><b>Программа обучения:</b></p><ul><li>Введение в разработку.</li><li>Unity.</li><li>Blender.</li></ul><p><a href="https://experts2.ru/VpzKhu?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=2">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><p><b>3.</b> <a href="https://experts2.ru/bmkUBs?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=3">Разработчик игр на Unity с нуля до Middle</a> | <b>GeekBrains</b></p><p><b><i>🎁Используйте эксклюзивный промокод «kursfinder», чтобы получить скидку 7% на все профессии и курсы школы.</i></b></p><p>Онлайн-курс, с помощью которого можно погрузиться в сферу геймдев и создавать игры в различных жанрах на Unity. Студенты освоят разработку двухмерных и трехмерных игр, познакомятся с игровыми механиками на C# интеграцией проектов и др.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2024-12-05/a6fef2b5-f520-4efd-baf2-c183df74e2b9.png" alt="" /></figure><ul><li>Стоимость: от 3 746 р./мес. в рассрочку на 3 года.</li><li>Длительность: 400 часов.</li><li>Формат обучения: записанные уроки, общение с преподавателями онлайн, практика по созданию игр.</li><li>Сертификат: есть.</li></ul><p><b>Кому подойдет:</b> новичкам без опыта в разработке.</p><p><b>Преимущества:</b></p><ul><li>от 6 проектов для портфолио;</li><li>занятия в мини-группах;</li><li>помощь с поиском работы или возврат денег;</li><li>отбор среди студентов для работы над реальными заказами;</li><li>программа регулярно обновляется.</li></ul><p><b>Недостатки:</b></p><ul><li>время проведения вебинаров может не всегда быть удобным;</li><li>ограниченное количество мест в потоке.</li></ul><p><b>Программа обучения:</b></p><ul><li>Разработка игр.</li><li>Unity.</li><li>Продвинутый Unity.</li><li>C#</li><li>Blender.</li></ul><p><a href="https://experts2.ru/bmkUBs?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=3">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><p><b>4. </b><a href="https://experts2.ru/CzdGaf?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=4">Middle-разработчик игр на Unity</a> | <b>Skillbox</b></p><p><b><i>🎁Используйте промокод «kursfinder», чтобы получить скидку 60% на профессии из категории «Игры» и 50% на другие курсы школы.</i></b></p><p>Курс для разработчиков игр с опытом, он позволит прокачать навык владения движком. Преподаватели расскажут, как прорабатывать структуру игры с помощью C#, научат создавать собственные шейдеры, создавать впечатляющие визуальные эффекты с применением VFX Graph и др.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2024-12-05/19417684-5128-4174-8e1e-6f04950e3f5b.png" alt="" /></figure><ul><li>Стоимость: от 7 661 р./мес. в рассрочку на 1 год.</li><li>Длительность: 3 месяца.</li><li>Формат обучения: записанные учебные материалы, отработка навыков на практике.</li><li>Сертификат: есть.</li></ul><p><b>Кому подойдет: </b>действующим разработчикам на Unity, программистам на C#, которые хотят начать работать в геймдеве.</p><p><b>Преимущества:</b></p><ul><li>1 год доступа к курсам английского бесплатно;</li><li>возможность работать над играми в студии GameBox;</li><li>доступ без ограничений по времени;</li><li>общение с единомышленниками в чате;</li><li>оперативная служба поддержки.</li></ul><p><b>Недостатки:</b></p><ul><li>нет информации о требованиях для поступления;</li><li>короткий срок рассрочки.</li></ul><p><b>Программа обучения:</b></p><ul><li>Введение в DOTS и ECS.</li><li>Объекты в Юнити.</li><li>Статичные данные.</li><li>Паттерны программирования.</li><li>Разработка графики, работа с анимацией.</li><li>Асинхронные процессы.</li><li>Оптимизация, монетизация игр.</li><li>Сборка и публикация игр.</li><li>Тестирование игр.</li><li>Командная разработка.</li></ul><p><a href="https://experts2.ru/CzdGaf?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=4">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><p><b>5. </b><a href="https://experts2.ru/qwKoRk?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=5">Разработчик игр на Unity</a> | <b>Skillfactory </b></p><p>Насыщенный онлайн-курс, с которым можно освоить принципы геймдизайна. Преподаватели углубятся в программирование на C#, основы ООП. Кроме того, студенты смогут попробовать себя в игровом дизайне, начиная с процессов проектирования и заканчивая разработкой дизайн-документа для проекта.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2024-12-05/669dc84a-34f5-48cf-b3ed-5c925bd7fa55.png" alt="" /></figure><ul><li>Стоимость: от 9 533 р./мес. в рассрочку на 3 года.</li><li>Длительность: 1,5 года.</li><li>Формат обучения: записанные уроки, практическая разработка, работа над проектом.</li><li>Сертификат: есть.</li></ul><p><b>Кому подойдет:</b> начинающим и опытным разработчикам, которые хотят перейти в геймдев.</p><p><b>Преимущества:</b></p><ul><li>7 игр для портфолио;</li><li>занятия в своем темпе;</li><li>80% обучения — практика;</li><li>возврат денег, если не удалось найти работу;</li><li>3 тарифа на выбор.</li></ul><p><b>Недостатки:</b></p><ul><li>дорогое обучение, особенно VIP-тариф (от 27 467 р./мес. в рассрочку на 3 года);</li><li>программа обучения обновляется не очень часто.</li></ul><p><b>Программа обучения:</b></p><ul><li>Геймдев.</li><li>C#.</li><li>Геймдизайн.</li><li>Командная разработка.</li><li>Продвинутый Unity.</li><li>Архитектура игр.</li></ul><p><a href="https://experts2.ru/qwKoRk?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=5">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><p><b>6. </b><a href="https://experts2.ru/LijlSs?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=6">Курс Разработчик игр на Unity. Базовый уровень</a> | <b>Otus </b></p><p>Курс, который может заинтересовать всех, кто любит и хочет научиться создавать игры. Преподаватели дадут навык работы с инструментами и механиками популярного движка, научат основам программирования на C#. Также курс позволит получить навыки разработки игровых уровней, интерфейса и др.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2024-12-05/aeb6b88d-5968-4fc3-97c5-8ff5dfdc5d13.png" alt="" /></figure><ul><li>Стоимость: от 8 600 р./мес. в рассрочку на 10 месяцев.</li><li>Длительность: 5 месяцев.</li><li>Формат обучения: вебинары, практика и проектная работа.</li><li>Сертификат: есть.</li></ul><p><b>Кому подойдет: </b>новичкам, которые хотят начать делать игры на Unity.</p><p><b>Преимущества:</b></p><ul><li>помощь с поиском работы;</li><li>проектная работа;</li><li>«живое» общение с экспертами;</li><li>активное сообщество;</li><li>создание собственной игры с нуля и публикация в Google Play.</li></ul><p><b>Недостатки:</b></p><ul><li>требуются базовые навыки математики, геометрии, информатики, представления о разработке игр;</li><li>вебинары проводятся по понедельникам и средам в вечернее время, что может быть удобно не всем.</li></ul><p><b>Программа обучения:</b></p><ul><li>Персонаж и оружие.</li><li>Игровой интерфейс.</li><li>Прототипирование.</li><li>Разработка игры.</li></ul><p><a href="https://experts2.ru/LijlSs?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=6">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><p><b>7. </b><a href="https://experts2.ru/cRBswi?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=7">Unity-разработчик</a> | X<b>YZ School</b></p><p>Курс обучения Unity, разработанный для новичков. Преподаватели дадут навыки программирования на C#, дадут необходимый уровень знаний для разработки 2D игр. Также у слушателей есть возможность основные инструменты и познакомиться с принципами C#. Кроме того, обучение дает возможность собрать сильные работы для портфолио.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2024-12-05/99046b78-b998-4d90-9b07-16341a92740a.png" alt="" /></figure><ul><li>Стоимость: от 11 000 р./мес. в рассрочку на год.</li><li>Длительность: 10 месяцев.</li><li>Формат обучения: записанные материалы, общение с экспертами, практическая разработка и проектная работа.</li><li>Сертификат: есть.</li></ul><p><b>Кому подойдет: </b>начинающим без опыта, кто хочет начать разрабатывать игры.</p><p><b>Преимущества:</b></p><ul><li>доступ без ограничений по времени;</li><li>возможность заморозить обучение при необходимости;</li><li>помощь с поиском работы;</li><li>2 тарифа на выбор;</li><li>10% скидка при единовременной оплате;</li><li>активная работа над портфолио.</li></ul><p><b>Недостатки:</b></p><ul><li>ограниченное количество мест на потоке;</li><li>редкий набор групп.</li></ul><p><b>Программа обучения:</b></p><ul><li>C# для разработки.</li><li>Разработка игр на Юнити.</li></ul><p><a href="https://experts2.ru/cRBswi?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=7">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><p><b>8. </b><a href="https://experts2.ru/YmEorv?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=8">Курс Разработчик игр на Unity. Продвинутый уровень</a> | <b>Otus </b></p><p>Профессиональный курс, в рамках которого студенты смогут спроектировать прототип игры. Преподаватели дадут навыки применения принципов SOLID, использования паттернов GRASP. Кроме того, слушатели научатся выявлять антипаттерны в коде, разрабатывать архитектуру ИИ и др.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2024-12-05/fd15301f-0b9d-4db2-b340-6dd54e8a92d8.png" alt="" /></figure><ul><li>Стоимость: от 8 640 р./мес. в рассрочку на 10 месяцев.</li><li>Длительность: 5 месяцев.</li><li>Формат обучения: вебинары, отработка навыков на практике, работа над проектами.</li><li>Сертификат: есть.</li></ul><p><b>Кому подойдет: </b>действующим разработчикам, которые нацелены на карьерный рост.</p><p><b>Преимущества:</b></p><ul><li>«живое» общение с экспертами;</li><li>углубленное изучение Unity;</li><li>помощь в карьерном развитии;</li><li>можно посетить бесплатный вебинар, чтобы посмотреть особенности обучения на платформе.</li></ul><p><b>Недостатки:</b></p><ul><li>нужно пройти вступительное тестирование;</li><li>время проведения вебинаров может быть не очень удобным;</li><li>редкий набор групп.</li></ul><p><b>Программа обучения:</b></p><ul><li>Архитектура.</li><li>Кормеханики.</li><li>Метаигры.</li><li>ИИ.</li><li>Плагины.</li></ul><p><a href="https://experts2.ru/YmEorv?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=8">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><p><b>9.</b> <a href="https://experts2ru/RtcQpd?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=9">Разработка игр на Unity</a> | <b>XYZ School</b></p><p>Продвинутый курс, подготовленный экспертом-практиком. Начиная с простых платформеров, шаг за шагом пользователи смогут создавать более сложные и эффектные проекты. Преподаватели расскажут, как добавлять NPC, мобов, разберут продвинутые игровые механики.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2024-12-06/19f45c29-e694-48cf-be94-b2c3bfac0003.png" alt="" /></figure><ul><li>Стоимость: от 4 138 р./мес. в рассрочку на полтора года.</li><li>Длительность: 5 месяцев.</li><li>Формат обучения: теория в записи, домашние работы с проверкой, проектная работа.</li><li>Сертификат: есть.</li></ul><p><b>Кому подойдет: </b>новичкам, которые хотят освоить движок на продвинутом уровне.</p><p><b>Преимущества:</b></p><ul><li>обратная связь и рекоммендации от экспертов;</li><li>доступ без ограничений по времени;</li><li>обучение в комфортном темпе;</li><li>возможность заморозить обучение;</li><li>помощь с поиском работы;</li><li>10% скидка при единовременной оплате.</li></ul><p><b>Недостатки:</b></p><ul><li>достаточно короткий курс;</li><li>большая часть материалов в записи.</li></ul><p><b>Программа обучения:</b></p><ul><li>Вводный блок.</li><li>Платформер.</li><li>Бой и NPC.</li><li>Игровые механики и пользовательский интерфейс.</li><li>Оптимизация игр.</li></ul><p><a href="https://experts2.ru/RtcQpd?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=9">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><p><b>10.</b> <a href="https://experts2.ru/wbRtSm?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=10">Разработка игр на Unity</a> | <b>Компьютерная Академия TOP</b></p><p>Курс разработки игр на Unity, построенный на основе актуальных данных и требований. Преподаватели углубятся в изучение платформы Microsoft.NET, дадут навыки языка программирования C#. Кроме того, студенты смогут изучить паттерны проектирования, научатся применять знания о двухмерной и трехмерной графике и др.</p><figure><img src="https://media.tproger.ru/user-uploads/108137/2024-12-06/864121a7-92c1-418b-9711-5dedee6b0816.png" alt="" /></figure><ul><li>Стоимость: от 2 760 р./мес. в рассрочку.</li><li>Длительность: 1 год.</li><li>Формат обучения: очно или онлайн.</li><li>Сертификат: диплом о переподготовке.</li></ul><p><b>Кому подойдет: </b>всем, кто хочет начать свой путь в IT с разработки игр.</p><p><b>Преимущества:</b></p><ul><li>можно учиться очно или онлайн;</li><li>большой набор тем;</li><li>небольшие платежи по рассрочке;</li><li>постоянные обновления курса.</li></ul><p><b>Недостатки:</b></p><ul><li>время проведения занятий может подойти не всем;</li><li>поддержка работает не круглосуточно.</li></ul><p><b>Программа обучения:</b></p><ul><li>C#.</li><li>Основы XML.</li><li>Паттерны проектирования.</li><li>Unity.</li><li>Кроссплатформенная разработка.</li><li>Системы контроля версий.</li><li>Тестирование.</li><li>Командная разработка.</li></ul><p><a href="https://experts2.ru/wbRtSm?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=10">Ознакомиться с полной программой &gt;&gt;&gt;</a></p><h2>Еще 11 курсов по Unity</h2><p>Unity — одна из самых востребованных платформ в геймдев. В этой подборке можно найти дополнительные курсы по изучению работы с движком.</p><ol><li><a href="https://experts2.ru/kexIMv?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=netop">Курс Разработчик игр на Unity с нуля</a> от Skillbox — программа, позволяющая всего за 3 месяца получить навыки работы с Unity. Результатом обучения станут 5 проектов в портфолио.</li><li><a href="https://experts2.ru/hIHtaj?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=netop">Онлайн-курс по Unity</a> от HEDU (irs.academy) — курс, который подойдет для новичков и даже школьников. В рамках изучения слушатели научатся создавать свои проекты, познакомятся с C#. Кроме того, преподаватели расскажут, как находит баги и ошибки в коде.</li><li><a href="https://experts2.ru/pFxjoR?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=netop">Профессия Разработчик игр на Unity с нуля до Middle</a> от Skillbox — обучение работе с Unity на русском с нуля, в рамках которого можно поработать над проектами разного жанра для пополнения портфолио. В курсе представлена насыщенная теория от экспертов-практиков, а также делается большой упор на практический формат обучения.</li><li><a href="https://experts2.ru/xACwjf?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=netop">Создание игр в Unity и программирование на языке C#</a> от Школы программирования Pixel — программа, разработанная для слушателей в возрасте от 10 до 14 лет. Обучаться можно как очно, так и онлайн. Преподаватели расскажут, как работать с платформой Unity, а также познакомят с C#.</li><li><a href="https://experts2.ru/glVyrM?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=netop">Создание простой 3D игры в Unity</a> от itProger — программа, посвященная изучению Unity 3D. Слушателей познакомят с концепциями работы с движком, его функциями. Результатом обучения станет создание собственной игры.</li><li><a href="https://experts2.ru/XaMpqt?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=netop">Онлайн-курс Разработка игр на Unity</a> от «Брунояма» — курс, который за 3 месяца позволит окунуться в работу с движком и программирование на C#. Программа подготовлена для новичков, а также разработчиков, которые не работали с этим инструментом для создания игр.</li><li><a href="https://experts2.ru/NtwiYe?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=netop">Создание игры под платформу iOS на Unity</a> от itProger — образовательная программа познакомит с особенностями движка и позволит закрепить полученные навыки на практике. Преподаватели поговорят о предварительных настройках, обработке главных сцен, анимации и др. Предусмотрена выдача сертификата.</li><li><a href="https://experts2.ru/oPhcfO?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=netop">Unity разработчик</a> от ГЦДПО — курс по Unity 2D и 3D, позволяющий научиться создавать разные типы игр от простейших платформеров до более сложных жанров. Преподаватели углубятся во все аспекты от установки движка до проработки физики и импорта моделей в Blender.</li><li><a href="https://experts2.ru/AthQge?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=netop">Создание Андроид игры на движке Unity</a> от itProger — курс, позволяющий рассмотреть все особенности создания игр для мобильных устройств. Преподаватели познакомят со всеми этапами, от создания проекта до проработки механики. Кроме того, слушатели узнают, как загружать готовые игры на Google Play и App Store.</li><li><a href="https://experts2.ru/EpbYvh?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=netop">Unity 3D. Продвинутый курс</a> от Realtime School — курс по Unity 3D, разработанный для слушателей, знакомых с движком и C#. Преподаватель рассмотрит лучшие ассеты, проведет обзор материалов и настройки шейдеров, научит создавать фотореалистичный рендер и др.</li><li><a href="https://experts2.ru/gSdomG?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=netop">Создание игр на Unity</a> от школы «ЯЮниор» — образовательная программа, подготовленная экспертами игровой студии. Ученики узнают больше о тонкостях написания кода на C#, разработке персонажей и графики на Unity, программировании игровых механик и др.</li></ol><h2>Еще 4 курса по Unity для детей</h2><ul><li><a href="https://experts2.ru/lOzXfe?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=netop">Разработка игр на Unity для детей</a> от BKC.ru — программа для учеников в возрасте от 13 до 16 лет. Слушатели познакомятся с программированием на C#, а также освоят основные инструменты и механики движка.</li><li><a href="https://experts2.ru/hHvfoU?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=netop">Разработка игр на Unity</a> от GeekBrains — перед прохождением курса дети смогут пройти бесплатное вводное занятие, это поможет определиться, хочется ли ему создавать видеоигры. В рамках обучения юные студенты смогут освоить основы программирования на C#, научатся создавать проекты, работая в команде.</li><li><a href="https://experts2.ru/ztTIqi?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=netop">Разработка игр в Unity для детей</a> от «Айтигенио» — программа, подготовленная для слушателей от 10 лет. В рамках курса к каждому ученику обеспечивается индивидуальный подход. Обучаясь на платформе, слушатели смогут познакомиться с C#, научатся основам создания игр для ПК и мобильных устройств.</li><li><a href="https://experts2.ru/ZUnuxr?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=netop">Разработка 2D-игр на Unity</a> от «Кодабры» — программа, подготовленная для слушателей в возрасте от 10 до 14 лет. Курс позволит узнать больше об интерфейс движка, основных механиках, работе с цветом. Кроме того, юные студенты смогут познакомиться с C#.</li></ul><h2>Бесплатные курсы по разработке на Unity</h2><p>Разработчики игр — востребованные специалисты, зачастую они работают именно с движком Unity. Бесплатные курсы по Unity дают возможность получить навыки, необходимые для работы с ПО.</p><p><b>1.</b> <a href="https://experts2.ru/tIdoqT?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=netop">Первая игра на Unity</a> — <b>Нетология</b></p><p>Онлайн-курс, направленный на новичков. Всего за несколько дней слушатели смогут погрузиться в работу с Unity. Преподаватели научат создавать различные уровни, прорабатывать головоломки и др. Также курс дает возможность познакомиться с C#.</p><p><b>Главное о курсе: </b></p><ul><li>подходит для новичков;</li><li>упор на практику.</li></ul><p><b>2.</b> <a href="https://experts2.ru/kwDyxS?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=netop">Intro Hyper Casual</a> — <b>XYZ School</b></p><p>На образовательной платформе представлен большой набор профессиональных курсов для погружения в геймдев. Программа Intro Hyper Casual одна из множества бесплатны, она посвящена работе с Unity и Bolt. Всего за несколько дней студенты смогут создать гиперказуальную игру без навыков кодирования.</p><p><b>Главное о курсе:  </b></p><ul><li>Погружение в сферу геймдизайна;</li><li>Возможность создать свою мобильную игру за 3 дня.</li></ul><p><b>3. </b><a href="https://experts2.ru/dpnCTa?sub1=tproger-kf&amp;sub2=unity-kursy&amp;sub4=netop">Делаем игру на Unity</a> —<b> Loftschool</b></p><p>Подборка видеоуроков, с которой можно научиться создавать игры-платформеры. В программе представлено 11 видеолекций, объясняющих, как создавать уровни, управлять персонажем, работать с анимированием и физикой и др.</p><p><b>Главное о курсе:  </b></p><ul><li>для старта обучения необходимо зарегистрироваться на платформе;</li><li>длительность каждого урока не превышает 20 минут.</li></ul><p><b>4.</b> <a href="https://www.youtube.com/playlist?list=PL6ahatRrxl16DPAeHGoMsVcBY8WQwRivM">Уроки разработки на Unity</a> — <b>Noob Game Dev</b></p><p>Программа видеоуроков по Unity 2D для начинающих. Автор расскажет обо всех моментах от создания проекта до особенностей движения персонажа в разных условиях.</p><p><b>Главное о курсе: </b></p><ul><li>Автор веет трансляцию с экрана и комментирует все моменты работы;</li><li>В программе изучается движок Unity 2D.</li></ul><p><b>5. </b><a href="https://www.youtube.com/playlist?list=PL8C4SmiVZY0wUFQrUXKQCS3BhRk2MIs8v">Физика в Unity</a> —<b> Eccentric Games</b></p><p>Небольшие, но емкие видеоуроки, подготовленные опытным разработчиком. Автор расскажет о параметрах компонентов, основных функциях. Кроме того, слушатели узнают о секретах увеличения точности расчета физики в играх и др.</p><p><b>Главное о курсе:  </b></p><ul><li>материалы с подробным изложением;</li><li>емкие видеолекции.</li></ul><p><b>6. </b><a href="https://www.youtube.com/playlist?list=PLX2vGYjWbI0RQ3O-nAuJd2LWm7lH5htrL">Tutorials for Beginners</a> — <b>Unity </b></p><p>Небольшие видеоуроки, представленные на официальном канале Unity. Тьюториалы для начинающих помогут разобраться в основных функциях и инструментах движка.</p><p><b>Главное о курсе:  </b></p><ul><li>видеоуроки непосредственно от компании-разработчика движка;</li><li>все материалы доступны только на английском языке.</li></ul><p><b>7. </b><a href="https://yandex.ru/project/games/education/unity-course">Создание игры на Unity</a> — <b>Яндекс Игры</b></p><p>Программа, подготовленная как для начинающих, так и для более опытных разработчиков. Эксперты Яндекса расскажут, как работать с движком, писать скрипты с использованием C#. Кроме того, преподаватели углубятся в особенности анимирования, разработки эффектов, работы со звуком и др.</p><p><b>Главное о курсе: </b></p><ul><li>в рамках курса можно создать собственную игру;</li><li>в качестве дополнения эксперты научат работать с платформой Яндекс Игры.</li></ul><p><b>8. </b><a href="https://youtu.be/b5HHORkkp5g?si=dkij3YPV4-qyAdd9">Обучение Unity</a> — <b>CraftPix-Game Assets</b></p><p>На канале автора представлены качественные переводы роликов по работе с движком Unity. Изучая видеоуроки, слушатели познакомятся с основной терминологией, узнают о скриптах, циклах, различных функциях. Также на канале представлены и другие материалы, которые будут полезны специалистам из сферы геймдев.</p><p><b>Главное о курсе: </b></p><ul><li>подходит для новичков и более опытных специалистов;</li><li>автор комментирует все моменты работы с движком.</li></ul><p><b>9.</b> <a href="https://youtu.be/Dm2LyivyWbU?si=b0K4nD6TRGLnkGso">Программирование шейдеров в Unity</a> — <b>Николай Рассулин</b></p><p>Видеокурс, размещенный на платформе YouTube. В рамках программы автор расскажет, подробнее о программировании шейдеров в Unity. В качестве дополнения слушатели смогут рассмотреть обработку в Photoshop и 3DS MAX.</p><p><b>Главное о курсе:</b></p><ul><li>подробное изложение;</li><li>автор ведет запись с экрана и объясняет все моменты.</li></ul><h2>FAQ. Часто задаваемые вопросы</h2><h2>Что такое Unity?</h2><p>Unity — кроссплатформенный движок для создания игр. Порядка 49% всех мобильных игр создано с использованием этого движка, так как он обеспечивает простое внедрение инструментов для монетизации, использование технологий, которые используются в смартфонах, например, акселерометров, гироскопов, GPS.</p><h2>Где используется Unity?</h2><p>Этот движок позволяет создавать игры с современной двухмерной и трехмерной графикой для ПК, игровых консолей, мобильных устройств и браузеров. Он используется совместно с технологиями AR и VR, в компьютерной анимации. Примерами игр с использованием этого движка являются Genshin Impact, Pokemon GO, Hearthstone.</p><h2>Где лучше изучать Unity с нуля?</h2><p>Освоить движок с нуля проще и быстрее всего на специализированных онлайн-курсах. Они дадут не только необходимый багаж знаний, но и позволят получить практический опыт разработки. Часть школ предлагают помощь с поиском потенциальных работодателей или даже гарантию трудоустройства, поэтому обучение быстро окупится.</p><h2>Какой язык программирования нужен для работы с Unity?</h2><p>В Unity предусмотрен инструмент визуального программирования, но создание уникальных игр сложно обеспечить без использования кода. Движок позволяет писать игры на простом языке программирования C#.</p><h2>Чем занимается программист Unity?</h2><p>Задачи разработчиков могут значительно отличаться в зависимости от проекта. Например, в небольших инди-командах специалист будет заниматься всем и сразу: от проработки общей логики до верстки интерфейсов, написания шейдеров.</p><p>В крупных ААА-проектах, специалисты по Unity, как правило, работают каждый над своим узким набором задач. Например, один разработчик будет заниматься исключительно ИИ, а другой — сетевым взаимодействием, созданием интерфейса и т. д.</p><p>Универсальными навыками разработчика на Unity являются:</p><ul><li>английский язык;</li><li>C# и C++;</li><li>прототипирование;</li><li>работа в команде;</li><li>тестирование.</li></ul><h2>Сколько зарабатывает разработчик на Unity?</h2><p>В компании на полный рабочий день или на удаленку требуются разработчики, владеющие Unity. По данным <a href="https://hh.ru/search/vacancy?area=113&amp;hhtmFrom=main&amp;hhtmFromLabel=vacancy_search_line&amp;search_field=name&amp;search_field=company_name&amp;search_field=description&amp;text=unity&amp;enable_snippets=false&amp;L_save_area=true">hh.ru</a>, в России открыто более 600 вакансий разработчиков со средней зарплатой 70 тысяч рублей. Специалисты уровня Senior могут рассчитывать на оклад от 290 тысяч рублей.</p><h2>Заключение</h2><p>Курсы Unity позволят вам быстро войти в профессию разработчика игр, приобрести набор необходимых навыков и создать конкурентноспособное резюме. Умело владея инструментами этого мощного и востребованного игрового движка, вы не только найдете интересную работу в геймдеве за короткий срок, но и сможете монетизировать создание цифрового контента самостоятельно в качестве фрилансера. Большое количество казуальных игр, созданных для смартфонов с помощью Unity, приносят солидный доход, так как они отличаются качественной графикой и анимацией, завораживающими спецэффектами и реалистичным взаимодействием героев.</p><p><i>Если вы обнаружили неточности в тексте, или информация о курсах в рейтинге больше не актуальна — расскажите об этом в комментариях. Также поделитесь мнением о программе, на которой вы обучались. Если ее нет в подборке, я проверю ее и добавлю в ТОП. </i></p>]]></content:encoded>
    </item>
    <item>
      <title>Как создать видеоигру с нуля</title>
      <link>https://tproger.ru/articles/kak-sozdat-videoigru-s-nulya</link>
      <comments>https://tproger.ru/articles/kak-sozdat-videoigru-s-nulya?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Влад Попов]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-sozdat-videoigru-s-nulya</guid>
      <description><![CDATA[<p>Создание видеоигры с нуля может показаться сложной задачей, но при правильном подходе и упорстве это достижимая цель. Вот пошаговое руководство, которое проведет вас через процесс создания собственной видеоигры.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-sozdat-videoigru-s-nulya">Как создать видеоигру с нуля</a>»</p>]]></description>
      <category><![CDATA[C#]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Советы]]></category>
      <category><![CDATA[Навыки]]></category>
      <category><![CDATA[Игра]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 04 Apr 2024 08:20:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Прежде чем погрузиться в мир создания игр, подумайте о новых карьерных возможностях. Если вы опытный тестировщик с полным стеком навыков, посмотрите <a href="https://tproger.ru/jobs/fullstack-qa-sberdrug-2?utm_source=site&amp;utm_medium=blog&amp;utm_campaign=jobs-sber&amp;utm_content=6">на вакансию Fullstack QA в Сбер</a>.</p><h2>1. Определите концепцию и дизайн игры</h2><ul><li>Определите жанр вашей игры (головоломка, экшен, приключение и т. д.).</li><li>Придумайте уникальную концепцию: основную механику, персонажей и сюжет игры.</li><li>Создайте дизайн-документ, описывающий особенности игры, уровни и игровую механику.</li></ul><h2>2. Выбор игрового движка</h2><ul><li>Игровой движок – это программное обеспечение, которое предоставляет<br />основу для создания вашей игры: графику, физику, звук и т. д.</li><li>Выберите игровой движок, соответствующий вашим потребностям и уровню навыков (например, Unity, Unreal Engine, Godot).</li></ul><h2>3. Разработка персонажей и окружения</h2><ul><li>Создайте привлекательных персонажей и детализированное окружение, которое оживит вашу игру.</li><li>Используйте программное обеспечение для 3D-моделирования (например, Blender, Maya) или наймите художников для создания ассетов.</li></ul><h2>4. Программирование игровой логики</h2><ul><li>Напишите код для игровой логики, включая движение, столкновения, искусственный интеллект и т. д.</li><li>Изучите язык программирования, используемый вашим игровым движком (например, C#, C++, GDScript).</li></ul><h2>5. Создание уровней и дизайна окружения</h2><ul><li>Создайте увлекательные уровни, используя игровые средства вашего движка.</li><li>Используйте текстуры, освещение и эффекты для улучшения визуального качества.</li></ul><h2>6. Добавление графики, звука и музыки</h2><ul><li>Импортируйте и оптимизируйте графические ресурсы, такие как текстуры, модели и анимации.</li><li>Запишите или найдите звуковые эффекты, музыку и озвучку для создания иммерсивного игрового окружения.</li></ul><h2>7. Тестирование и отладка игры</h2><ul><li>Тщательно тестируйте свою игру на наличие ошибок и проблем с производительностью.</li><li>Соберите отзывы от тестеров или игроков и внесите необходимые улучшения.</li></ul><h2>8. Публикация и маркетинг игры</h2><ul><li>Выберите платформу для публикации вашей игры (например, Steam, мобильные приложения).</li><li>Продвигайте свою игру через социальные сети, обзоры и маркетинговые кампании.</li></ul><h2>Дополнительные советы</h2><ul><li>Начните с небольших проектов: создавайте простые прототипы и постепенно расширяйте свою игру.</li><li>Найдите сообщество или наставника, который сможет поддержать вас и предоставить отзывы.</li><li>Изучайте игровой дизайн, программирование и 3D-моделирование, чтобы улучшить свои навыки.</li><li>Будьте терпеливы и настойчивы: создание видеоигр – это длительный процесс, требующий времени и усилий.</li></ul><p>Помните, создание видеоигр – это увлекательный и полезный опыт,  который не только развлекает, но и развивает ваши технические навыки и  творческий потенциал. Следуя этим шагам и прилагая упорные усилия, вы  сможете превратить свою игровую концепцию в увлекательную и  захватывающую игру.</p>]]></content:encoded>
    </item>
    <item>
      <title>Unity и Unreal Engine</title>
      <link>https://tproger.ru/articles/unity-i-unreal-engine</link>
      <comments>https://tproger.ru/articles/unity-i-unreal-engine?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Иван Белов]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/unity-i-unreal-engine</guid>
      <description><![CDATA[<p>Рассказываем о двух топовых движках для игр: Unity и Unreal Engine, для чего они нужны и как освоить любой из них.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/unity-i-unreal-engine">Unity и Unreal Engine</a>»</p>]]></description>
      <category><![CDATA[Для начинающих]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 01 Feb 2024 09:57:30 GMT</pubDate>
      <content:encoded><![CDATA[<p>Для начала обозначим: что на Unity, что на Unreal Engine (UE) создаются крутые, прибыльные проекты. Движки не сказать, что кардинально различаются между собой.</p><p>Но если уже сейчас нужно сделать окончательный выбор — материал для вас. Постарались ёмко подчеркнуть сильные и слабые стороны движков, а ещё приложить полезные материалы по тому, как создать свою первую игру.</p><h2>Unity</h2><p>В Unity можно создавать браузерные игры (используя WebGL). Почему это важно для начинающего специалиста? Один из способов набить руку и собрать живое портфолио — это участвовать в <a href="https://tproger.ru/articles/gejmdzhem-hakaton-v-mire-gejmdeva">геймджемах</a>. Веб-проект в таком случае соберёт больше комментариев и голосов, а вы получите обратную связь.</p><figure><img src="https://media.tproger.ru/user-uploads/88534/2024-02-01/44ec64e6-97f5-4a00-b130-937432fd6cfe.png" alt="" /><figcaption>На itch.io это будет выглядеть примерно так. За счёт того, что игра сделана на Unity, разработчики и приложили билды, и залили игру на сайт.</figcaption></figure><p>Игра на скриншоте: <a href="https://teambeanloop.itch.io/six-cats-under">Six Cats Under</a>.</p><p>Выбирают Unity, когда:</p><ul><li>игра казуальная или стилизованная;</li><li>игра делается под мобильные и веб-платформы;</li><li>игра в 2D.</li></ul><p>Исторически сложилось, что этот движок более популярен в России и странах СНГ: на момент написания статьи по запросу «Unity Developer» нашлось 234 вакансии, а «UE/Unreal Engine Developer — 101».</p><p>Минусы движка: в Unity хуже оптимизация и сжатие 3D-моделей, если сравнивать с Unreal. Но в защиту хочу сказать, что на маленьких играх это «отставание» движка не сильно скажется, а опытные разработчики умеют решать проблемы производительности и оптимизации.</p><h3>Как сделать игру на Unity?</h3><p>При желании разработку можно переместить в Visual Studio — для этого нужно будет установить <a href="https://docs.unity3d.com/Manual/ManagedCodeDebugging.html">расширение</a> в самой VS. Движок по умолчанию работает на C#, но есть подключаемые библиотеки с Java, C++, Lua и прочими языками (правда, это скорее костыли — надежно будет работать только C#). Научиться работать со скриптами в Unity можно в <a href="https://learn.unity.com/course/beginner-scripting">официальном курсе</a>.</p><p>Но если вам претит мысль писать код, полноценную игру можно собрать и во внутреннем редакторе. Это называется «визуальным скриптингом» — вот <a href="https://learn.unity.com/project/introduction-to-visual-scripting">курс</a> для начинающих.</p><p>И большой мануал по всему Unity вообще.</p><h2>Unreal Engine (UE)</h2><p>Моего знакомого 3D-художника UE в своё время покорил удобством. Просто перетаскиваешь в проводник движка нужные модели и сразу используешь. Пытаешься добавить модель, у которой совпадает нейминг с существующей? UE при пользовательском «да» заменяет её и обновляет сцены, где та используется. Да и начать работу в UE проще — в движке доступны несколько заготовок, на которых можно потренироваться.</p><p>Я к тому, что UE выглядит и ощущается более юзер-френдли. Это субъективное мнение автора, если вы не согласны с ним — пишите в комментариях.</p><p>UE используют, если:</p><ul><li>игра «серьёзная», с упором на красивую графику;</li><li>игра делается под ПК;</li><li>нужны реалистичные синематики.</li></ul><p>Главный плюс UE в том, что он способен поддерживать высокополигональные модели и ренедерить их в режиме реального времени (что очень удобно для художников). Движок в принципе ориентирован на реалистичный 3D и оснащён мощными редакторами для моделей, анимаций и текстур. Поэтому ещё одно применение UE нашли в кинематографе.</p><figure><img src="https://media.tproger.ru/user-uploads/88534/2024-02-01/75527dbd-478c-4269-be00-8c69a93dba91.png" alt="" /><figcaption>В фильме «Воздух» (2023) некоторые боевые сцены и пейзажи были сделаны в Unreal Engine.</figcaption></figure><p>Источник скриншота: страница фильма на <a href="https://www.kinopoisk.ru/film/1311129/?utm_referrer=yandex.ru">Кинопоиске</a>.</p><p>А вот небольшой синематик с туториалом:</p><p>Также из плюсов движка  — система освещения и отражений Lumen, которая является менее требовательным аналогом технологии трассировки лучей.</p><p>Из вышеперечисленного вытекает логичный недостаток: UE слишком мощный движок для маленьких игр. И он более требователен к железу, нежели Unity.</p><p>Я говорю не о том, что UE «не подходит» мобилкам — взгляните на тот же Fortnite, который что на компьютере, что на смартфоне выглядит и работает замечательно. Просто не имеет смысла изучать такой мощный инструмент, чтобы всю жизнь работать над 2D-головоломками.</p><h2>Как сделать игру на Unreal Engine?</h2><p>Язык программирования UE — С++ (в интернете можно найти мануалы, как прикрутить С# и Python, но авторы плагинов не ручаются за стабильность проекта). Знакомство с движком можно начать с <a href="https://docs.unrealengine.com/4.26/en-US/Basics/">официальной документации</a>.</p><p>Аналогично Unity, в UE есть визуальное программирование — Blueprints (которое, к слову, появилось раньше чем редактор Bolt в Unity). Правда, «уроки» по конкретным блюпринтам придётся искать самостоятельно: разработчики прикладывают лишь <a href="https://docs.unrealengine.com/4.26/en-US/Resources/ContentExamples/Blueprints/">документацию</a> к тому, какие бывают блюпринты. Но зато на обучающей платформе можно найти <a href="https://dev.epicgames.com/community/learning/tutorials/OR8/beginners-intro-to-ue5-create-a-game-in-3-hours-in-unreal-engine-5">пошаговый гайд</a> по созданию своей первой игры. Или обратиться к туториалам на ютьюбе:</p><h2>Резюмируем</h2><p>На архитектурные различия движков можно посмотреть в <a href="https://docs.unrealengine.com/4.26/en-US/Basics/UnrealEngineForUnityDevs/">материале</a> на странице UE, чтобы ещё раз убедиться: движки похожи. С чего бы вы ни начали — в интернете под вашу задачу найдется туториал или ветка на форуме. Главное начать.</p><p>Был ли у вас опыт работы с игровыми движками? Расскажите в комментариях.</p>]]></content:encoded>
    </item>
    <item>
      <title>Зеки обучают языковые модели, а разработчики бойкотируют Unity — IT-новости</title>
      <link>https://tproger.ru/news/zeki-obuchayut-yazykovye-modeli-it-kompanii-v-rf-nadeyutsya-na-luchwee-it-novosti</link>
      <comments>https://tproger.ru/news/zeki-obuchayut-yazykovye-modeli-it-kompanii-v-rf-nadeyutsya-na-luchwee-it-novosti?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Рафаил Агазода]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/zeki-obuchayut-yazykovye-modeli-it-kompanii-v-rf-nadeyutsya-na-luchwee-it-novosti</guid>
      <description><![CDATA[<p>Составили подборку IT-новостей с 11 по 17 сентября. Рассказали о бойкоте Unity, блокировке YouTube и WhatsApp и новой IDE для Rust.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/zeki-obuchayut-yazykovye-modeli-it-kompanii-v-rf-nadeyutsya-na-luchwee-it-novosti">Зеки обучают языковые модели, а разработчики бойкотируют Unity — IT-новости</a>»</p>]]></description>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[IDE]]></category>
      <category><![CDATA[Нейронные сети]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Rust]]></category>
      <category><![CDATA[Мессенджер]]></category>
      <category><![CDATA[YouTube]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 18 Sep 2023 11:45:11 GMT</pubDate>
      <content:encoded><![CDATA[<p>Составили подборку самых значимых новостей из мира IT за прошедшую неделю с 11 по 17 сентября.</p><p>В этом дайджесте рассказываем о новой IDE для разработчиков на Rust, о том, как финские заключенные обучают языковые модели, о бойкоте разработчиками игр компании Unity и о том, могут ли в России заблокировать YouTube и WhatsApp.</p><h2>JetBrains выпустила IDE для разработки на Rust</h2><p>JetBrains сообщила о выпуске новой IDE под названием RustRover. IDE поддерживает автодополнение кода и его генерацию по типу GitHub Copilot, проводит “умный” рефакторинг кода.</p><p>Также в RustRover есть отладчик кода, инструменты для написания автотестов, поддержка различных конфигураций и таргетов запуска кода. IDE интегрирует Cargo и предлагает быстрые исправления для TOML-файлов. Использовать Cargo можно прямо в окне с кодом на Rust или использовать отдельное окно.</p><p>Еще в RustRover можно отправлять HTTP-запросы и анализировать ответы во встроенном HTTP-клиенте, выполнять SQL-запросы и использовать встроенные инструменты Docker.</p><h2>Компания Metroc привлекла финских заключенных для обучения языковых моделей</h2><p>Metroc занимается разработкой “умной” поисковой системы для строительства, которую должны использовать финские компании. Однако компания столкнулась с проблемой: чтобы обучить языковую модель давать правильные ответы на финском, нужны носители языка.</p><p>Сперва Metroc пыталась найти “кликеров” на площадках по поиску работы. Так поступают другие крупные AI-компании. К примеру, OpenAI нанимает кликеров из Кении, Уганды и Индии, поскольку в этих странах уровень жизни ниже, чем в Европе, и платить сотрудникам, которые проверяли бы работу языковой модели, можно меньше.</p><p>Однако Metroc обнаружила, что даже в интернете сложно найти сотрудников, которые говорили бы на финском. Большинство финноязычных людей живут в Финляндии, где высокий уровень жизни, а значит, выше и заработная плата.</p><p>Тогда в компании решили привлечь к обучению ИИ заключенных. Так Metroc нашла дешевую рабочую силу, а исправительные учреждения Финляндии реализовали проект как подготовку заключенных к цифровизации общества, с которой те должны столкнуться после освобождения.</p><p>При этом платят обучающим ИИ заключенным больше, чем остальным: в час они получают 1,54 евро, когда как другие заключенные получают 1 евро в час. Правда, они меньше работают: три часа в день против обычных для заключенных шести часов.</p><p>В течение трех часов в день заключенным нужно отвечать на вопросы, связанные со строительством, выбирая ответы “Да” или “Нет”.</p><h2>Unity ввела новую комиссию для разработчиков игр. Разработчики объявили бойкот</h2><p>Компания Unity сообщила о запуске новой комиссии для разработчиков игр, которая получила название Unity Runtime Fee и должна заработать с 2024 года.</p><p>Суть комиссии заключается в том, что при превышении некоторого числа установок готовой игры Unity станет взимать часть прибыли компании. Цена комиссии варьируется от 0.005 до 0.6 долларов США за установку.</p><p>Введение Unity Runtime Fee вызвало негодование со стороны комьюнити разработчиков на Unity. Компанию стали резко критиковать в соцсетях, а разработчиков призывали отказаться от Unity.</p><p>Тогда компания решила пойти на компромисс, освободив некоторые компании от оплаты комиссии, однако студии продолжили массово отказываться от всех систем монетизации Unity.</p><h2>YouTube не будут блокировать в РФ. Но могут заблокировать WhatsApp</h2><p>Заместитель главы комитета Госдумы РФ по информационной политике, информационным технологиям и связи Антон Горелкин <a href="https://tass.ru/obschestvo/18770417">заявил</a>, что YouTube в России не будет заблокирован до тех пор, пока в стране не появится альтернативный сервис, который будет так же стабильно работать.</p><p>Также Горелкин добавил, что в целом блокировка YouTube скорее принесет вред, чем пользу. При этом он отметил, что России стоит продолжить развивать собственные медиаресурсы, поскольку у авторов на YouTube, по словам политика, нет будущего.</p><p>Ранее некоторые пользователи операторов мобильной связи не могли получить доступа к YouTube и другим сервисам Google. “Блокировка” была временной, но ее связывали с возможным запретом YouTube в России.</p><p>Глава комитета Госдумы РФ по информационной политике Александр Хинштейн согласился с Горелкиным, <a href="https://rb.ru/news/youtube-block-future/">добавив</a>, что заблокировать могут WhatsApp, если в мессенджере появятся каналы. WhatsApp принадлежит компании Meta, которая является экстремистской в России, а ее деятельность запрещена на территории страны.</p><h2>Заключение</h2><p>Это — наш новый формат: еженедельная подборка новостей.</p><p>Если она вышла удачной, напишите в комментариях, что вы думаете об этих инфоповодах: этично ли использовать заключенных для обучения ИИ, заблокируют ли YouTube и WhatsApp и какая судьба ждет Unity после скандала с введением новой комиссии.</p><p>Также расскажите, какие новости, по вашему мнению, несправедливо не попали в подборку, почему они важны и какие последствия несут для IT-рынка.</p>]]></content:encoded>
    </item>
    <item>
      <title>5 шагов к созданию клона BomberMan</title>
      <link>https://tproger.ru/articles/sozdaem-klona-bomberman-5-wagov</link>
      <comments>https://tproger.ru/articles/sozdaem-klona-bomberman-5-wagov?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Daria R]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/sozdaem-klona-bomberman-5-wagov</guid>
      <description><![CDATA[<p>Рассказываем, как разработать клон игры BomberMan, которая запомнилась очень многим. Работать будем в Unity.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/sozdaem-klona-bomberman-5-wagov">5 шагов к созданию клона BomberMan</a>»</p>]]></description>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 21 Jul 2023 11:20:38 GMT</pubDate>
      <content:encoded><![CDATA[<p>Всем привет! Меня зовут Александр Ватолин, я геймдизайнер и преподаватель Московской школы программистов (МШП).</p><p>Сегодня мы вспомним классику и повторим основной геймплей игры BomberMan, которая запомнилась очень многим. Работать будем в Unity, необходимые спрайты я предоставлю.</p><figure><img src="https://media.tproger.ru/uploads/2023/07/e98f7f75-cc28-4b3e-b8eb-a1ac0c9278e8.jpg" alt="" /></figure><p>Очень простая система: вы закладываете бомбы, которые взрываются через некоторое время. После взрыва также разрушаются некоторые клетки. Главное при этом не напороться на взрыв своей бомбы или противника. В общем, очень просто, но со вкусом. Для создания проекта подойдет обычный 2D-шаблон.</p><figure><img src="https://media.tproger.ru/uploads/2023/07/7522a5e0-3f47-4410-bb70-2112027629a7.png" alt="" /></figure><p>И вот, у нас есть пустой проект и огромное желание разработать что-то действительно интересное.</p><h2>Этап 1. Подключение спрайтов</h2><p>Поскольку мы делаем ремейк известной игры, проблем с поиском графики нету. Исходные материалы лежат на множестве порталов, и я прикрепляю ссылку на спрайты, которые понадобятся. Смело качаем их <a href="https://drive.google.com/drive/folders/1m7KO-vS96I8AVxY74-ipOghKz385Iraj?usp=sharing">здесь</a>. После этого создаем папку для них в проекте.</p><figure><img src="https://media.tproger.ru/uploads/2023/07/9f21cb7e-db6d-4f93-9343-8b70b056b88e.png" alt="" /></figure><p>Теперь рассмотрим стандартные настройки для них. Поскольку мы используем изображения пиксель-арт, тут крайне важно отключить фильтрацию и выставить корректные размеры. Данные настройки я применю к большинству изображений.</p><figure><img src="https://media.tproger.ru/uploads/2023/07/45766239-b61f-4b44-af49-90e2d82e66d8.png" alt="" /></figure><p>Часть изображений содержит несколько спрайтов в себе. Для них мы выберем мульти режим и нарежем их.</p><figure><img src="https://media.tproger.ru/uploads/2023/07/89fb7c17-2696-4389-9907-5e03a061330b.png" alt="" /></figure><p>После выбора Miltiple-режима переходим в Sprite Editor. Здесь нам предстоит нарезать спрайты. Нарезать можно как вручную, так и при помощи средств нарезки. Выбирайте то, что вам удобнее.</p><figure><img src="https://media.tproger.ru/uploads/2023/07/0421f387-afd0-4799-9264-fb3ce6559cf7.png" alt="" /></figure><p>К примеру, вот так будет выглядеть нарезанная анимация бомбочки. Если вы все сделали верно, то в спрайте появятся каждый из кадров в виде отдельного изображения.</p><figure><img src="https://media.tproger.ru/uploads/2023/07/4c2ff916-5e33-4097-933c-9b79d3459187.png" alt="" /></figure><p>Этот этап покажется коротким. Но это иллюзия! Не забывайте, вам предстоит обработать так еще около 30 спрайтов. Удачи в настройке!</p><h2>Этап 2. Строим основную сцену</h2><p>Итак, спрайты подготовлены, но перед их нанесением нужно построить сцену. Для этого мы воспользуемся системой тайлов, достаточно стандартной для построения 2D-игр. Прежде всего подготовим сетку для тайлов. Добавим прямоугольную.</p><figure><img src="https://media.tproger.ru/uploads/2023/07/2822bfcd-e5ea-41c0-a855-1b633241112f.png" alt="" /></figure><p>Теперь мы можем заняться построением остальной структуры. Добавим еще одну прямоугольную сетку внутрь первой. Это будет второй слой. То есть, мы создадим одну сетку с двумя слоями. Для разрушаемых и не разрушаемых препятствий.</p><figure><img src="https://media.tproger.ru/uploads/2023/07/7f5f0628-5af9-4d4a-85cb-2efb9e567ff5.png" alt="" /></figure><p>После этого добавим наши тайлы на палитру. Открыть ее можно через меню Window-&gt;2D. Просто добавляем тайлы в палитру и сохраняем их в отдельную папку. После этого мы их настроим.</p><figure><img src="https://media.tproger.ru/uploads/2023/07/16c06de1-4835-47b1-af8d-c6116e15eac4.png" alt="" /></figure><p>Получив такую палитру, переходим в тайлы и настраиваем зеленые тайлы в режим игнорирования коллайдеров.</p><figure><img src="https://media.tproger.ru/uploads/2023/07/c011b06f-03a6-4c3b-a76f-36906d8f2f4e.png" alt="" /></figure><p>А вот так будет выглядеть тайл стены:</p><figure><img src="https://media.tproger.ru/uploads/2023/07/a002a305-add9-4da9-af2f-854fd805b82f.png" alt="" /></figure><p>Теперь начинаем рисовать уровень. На слой неразрушаемых объектов размещаем все объекты, которые никак не будут взаимодействовать с миром. Вот так будет выглядеть уровень из оригинальной игры.</p><figure><img src="https://media.tproger.ru/uploads/2023/07/388558f6-2ff9-40a2-9b96-d99d1f43e5a1.png" alt="" /></figure><p>Теперь построим уже разрушаемые объекты – кирпичи.</p><figure><img src="https://media.tproger.ru/uploads/2023/07/e0e8273c-8968-4d1f-a0fe-20518bb14bcd.png" alt="" /></figure><p>С данным уровнем уже можно будет играть в игру. Осталось только добавить игроков. А это значит, пришло время начать писать скрипты.</p><h2>Этап 3. Основа игрока</h2><p>Для создания игрока нам понадобятся физические материалы. Создадим два: материал без отскоков и трения и с отскоком.</p><figure><img src="https://media.tproger.ru/uploads/2023/07/d413626a-4bba-4f6c-a42c-1a4ff0851866.png" alt="" /></figure><figure><img src="https://media.tproger.ru/uploads/2023/07/50d54a88-5c52-41b9-a0b2-4b12b363640f.png" alt="" /></figure><figure><img src="https://media.tproger.ru/uploads/2023/07/a2e37378-599b-41a4-8eeb-5615f133a9cb.png" alt="" /></figure><p>А теперь создадим уже саму основу игрока. Его основная часть хранит в себе  только физический компонент и компоненты круглого коллайдера. Все достаточно просто, но нужно быть внимательным с настройками.</p><figure><img src="https://media.tproger.ru/uploads/2023/07/35660c79-54a8-4e63-886b-f4cc6e786a0d.png" alt="" /></figure><p>К примеру, важно не забыть установить материалы без трения. Далее мы добавляем в игрока 5 пустышек – состояний, 4 на каждое из направлений, а пятое на состояние проигрыша. Выглядит это примерно так:</p><figure><img src="https://media.tproger.ru/uploads/2023/07/331c0127-438f-4552-bd45-e547a5541236.png" alt="" /></figure><p>Каждому из объектов добавляем компонент-спрайт. Устанавливаем нужное изображение. Отключаем все компоненты изображения кроме состояния вниз – это наше стартовое состояние. Выглядит это следующим образом:</p><figure><img src="https://media.tproger.ru/uploads/2023/07/54611f79-77dd-4c93-921d-7cda785bab32.png" alt="" /><figcaption>Заметка по слоям, как устанавливал их я : задний слой и стены – 5, основной слой с разрушаемыми объектами на слое 0, а игроки на слое +5.</figcaption></figure><p>Мы готовы к реализации управления и анимаций. Вперед!</p><h2>Этап 4. Управления и анимации</h2><p>Для реализации управления и анимации понадобится по одному отдельному скрипту. Начнем с логики управления.</p><p>Прежде всего, этот скрипт должен быть легко настраиваемым. Поэтому в начале скрипта выделим несколько секций для указания переменных. Здесь будут клавиши управления, а также указания на анимации. То есть, при нажатии на клавишу мы будем включать соответствующую анимацию и двигать объект в нужном направлении.</p><p>Сама логика управления примитивна, в цикле Update будем проверять нажатие на клавишу управления, и в случае нажатия будет активироваться специальная функция установки направления.</p><p>Функция установки направления SetDirection: будем указывать нужную анимацию, а также указывать вектор направления.</p><p>Забежим немного вперед и подумаем о смерти. Будем проверять столкновение со взрывом, и если он произойдет, то мы используем специальную функцию (Death Sequence), активирующую анимацию смерти и запускающую функцию на проверку окончания игры (OnDeathSequenceEnded).</p><p>Звучит достаточно сложно, но в реализации куда проще, взгляните сами:</p><figure><img src="https://media.tproger.ru/uploads/2023/07/7b0b7c8a-041b-49c2-ba5d-c0371207ab90.png" alt="" /></figure><p>Этот скрипт имеет крайне симпатичный интерфейс настройки. Все можно настроить прямо из интерфейса</p><figure><img src="https://media.tproger.ru/uploads/2023/07/bd8575fe-7f31-4c99-be2d-aa5d21a36683.png" alt="" /></figure><p>Переходим к следующему этапу: скрипту управления анимацией. По своей сути это кастомный контроллер анимаций Юнити. Зачем писать свой, когда есть существующий? Вопрос, на самом деле, непростой. Но главная причина в банальном удобстве в дальнейшем обращении в скриптах. Второй скрипт будет содержать набор переменных, хранящих различные параметры (длительность, скорость перехода кадров, зацикленность анимации), а также список хранящихся кадров анимации.</p><p>Далее логика простейшая: две функции выключателя, что включают и отключают изображение. Функция запуска, которая при старте запускает цикл работы анимации при помощи отдельной функции. А функция, учитывая системные параметры, управляет анимацией, то есть переключает кадры. При зацикленности функция повторяет кадры по новому кругу. Вот и вся логика работы. Организовать это можно следующим образом.</p><figure><img src="https://media.tproger.ru/uploads/2023/07/c351fc37-0120-4822-a48a-bd3f54f89ff3.png" alt="" /></figure><p>Опять же, большое количество переменных нам позволяет гибко настраивать скрипт прямо из Юнити в достаточно гибком режиме.</p><figure><img src="https://media.tproger.ru/uploads/2023/07/c88f5b02-f4c6-4da2-bf3f-d03036480753.png" alt="" /></figure><p>Вот и базовые системы готовы. Теперь нас ждут системы бомб, взрывов бонусов и прочего.</p><h2>Этап 5. Игровые механики</h2><p>Продолжаем активно писать скрипты. Но перед этим позаботимся о себе и подготовим несколько префабов, которые будем использовать в игре. Пока это могут быть просто болванки.</p><figure><img src="https://media.tproger.ru/uploads/2023/07/71f39fe2-2141-44f1-b6d7-3acc1a7af968.png" alt="" /></figure><p>Для бомбы и стены уже можно добавлять анимации, ведь специальный скрипт у нас уже есть. Разберемся с общей логикой.</p><p>Бомбы: их можно оставлять при помощи игрока на определенную клавишу, они лежат некоторое время, после чего взрываются, оставляя взрыв некого радиуса. Если взрыв сталкивается с разрушаемой стеной, стена разрушается.</p><p>Также на карте присутствуют бонусы, которые могут появиться при взрыве стены. В нашей версии будут 3 бонуса: на дополнительную бомбу, на радиус взрыва и на скорость передвижения.</p><p>Для контроллера взрывов понадобится множество переменных, хранящих различные данные о взрыве, разрушаемых объектах и так далее.</p><p>Помимо этого будут работать отдельные функции:</p><ul><li>Explode – функция расчета направлений взрыва и создания взрыва в направлениях.</li><li>ClearDestructible – функция уничтожения всех препятствий посредством уничтожения их и создания анимированного клона, который уничтожается (функция работает со стенами.</li><li>AddBomb – функция, добавляющая в наш багаж бомб дополнительную бомбу. Нужна для работы бонуса с доп. бомбой.</li><li>OnTriggerExit – функция, работающая со столкновениями с другими бомбами.</li><li>IEnumerator – основной мозговой центр системы. Принимает решения о взрывах и разрушениях.</li></ul><p>Звучит невероятно сложно, но взгляните, но попробуйте. Все возможно!</p><figure><img src="https://media.tproger.ru/uploads/2023/07/8916e83b-456d-47c3-872e-a2045ff44717.png" alt="" /></figure><p>Интерфейс управления скриптом тоже крайне прост. Сам скрипт прикрепляется к игроку, все элементы можно прикрепить после написания следующих скриптов.</p><figure><img src="https://media.tproger.ru/uploads/2023/07/d5f924e1-72e8-4c35-a277-1c387834e144.png" alt="" /></figure><p>Перейдем к префабу взрыва. Он представляет из себя простой сборный модуль из трех частей.</p><figure><img src="https://media.tproger.ru/uploads/2023/07/b170fe50-02ab-49c7-b096-7118819bf256.png" alt="" /></figure><p>Каждая из этих частей содержит анимацию соответствующей части взрыва</p><figure><img src="https://media.tproger.ru/uploads/2023/07/e0f18c40-f4c3-40fe-9e14-e5bfaee77093.jpg" alt="" /></figure><p>Сам скрипт из себя представляет переключатель. Он чисто технический, весь мозг взрыва находится в контроллере бомбы выше.</p><p>А выбор спрайт происходит легко при помощи установки значений и трех публичных переменных. Выглядит это так:</p><figure><img src="https://media.tproger.ru/uploads/2023/07/535f5c8d-1383-45c7-ae68-c241b1f9dafb.png" alt="" /></figure><p>И главное – не забыть настроить секторы внутри головного модуля. К слову, все эти элементы также можно анимировать.</p><figure><img src="https://media.tproger.ru/uploads/2023/07/97ef4e84-ee77-44d2-943f-d71afdd1d049.png" alt="" /></figure><p>Полученный взрыв помещаем в контроллер бомб. Это же касается и префаба бомбы, который представляет из себя анимационный спрайт.</p><p>Займемся еще одним декоративным элементом, спрайтом разрушаемой стены.</p><p>Логика очень простая: при появлении запускаем анимацию, после чего сразу ставим таймер на уничтожение. А также при уничтожении подкидываем монетку на появление бонуса на месте стены. Все эти параметры делаем переменными, чтобы было легко настроить. И получаем такую красоту!</p><figure><img src="https://media.tproger.ru/uploads/2023/07/cfc6bf44-c64e-4858-b2e1-79e9b7f59b58.png" alt="" /></figure><p>Устанавливаем все переменные внутри префаба стены и помещаем префабы бонусов.</p><figure><img src="https://media.tproger.ru/uploads/2023/07/3798bf5d-24f5-4884-94ed-a02fa409ef12.png" alt="" /></figure><p>Осталась система бонусов. Для нее немного поэкспериментируем. Создадим enum для видов наших бонусов. В данный момент у нас три бонуса. При подборе бонуса в зависимости от его вида мы вызываем разные функции. При подборе бомбы вызываем функцию увеличения бомб, при подборе радиуса или скорости изменяем данные переменные.</p><p>Вот и вся рабочая логика. Выглядит она следующим образом:</p><figure><img src="https://media.tproger.ru/uploads/2023/07/d29f9b68-a7bc-47fb-8c21-72e5aa9e43ef.png" alt="" /></figure><p>Интерфейс скрипта минималистичен, вот так будут выглядеть настройки для бонуса доп. бомбы.</p><figure><img src="https://media.tproger.ru/uploads/2023/07/58cfa31d-9633-498f-82c4-cf86ce01f5af.png" alt="" /></figure><p>Проект почти готов. Уже многое работает, но в игре пока что нельзя проиграть! Но сам функционал уже работоспособен.</p><p>Для добавления общей игровой логики нам понадобится игровой менеджер, его построим отдельной пустышкой на сцене. Этот скрипт будет считать количество игроков, а после проверять, все ли из них живы. Если все погибли, то игра будет перезапускаться. То есть, при количестве выживших менее 1 мы загружаем сцену обратно. Вот так выглядит следующая логика.</p><figure><img src="https://media.tproger.ru/uploads/2023/07/fe30f619-8dea-4da8-9b14-9420931297aa.png" alt="" /></figure><p>Самое время превратить игрока в префаб и использовать его.</p><figure><img src="https://media.tproger.ru/uploads/2023/07/51492483-4309-4c3a-aa69-9de98722aee1.png" alt="" /></figure><p>К слову, в пакете есть несколько скинов для игры. Можно использовать их. По итогу получается вот такой вот интересный клон старины.</p><figure><img src="https://media.tproger.ru/uploads/2023/07/640e1f83-3360-4c2f-baf0-ce72673e8270.jpg" alt="" /></figure><p>Создать его, как можно было увидеть, не так уж и сложно. Зачем он нужен? Вот тут уже есть вопросы. Кому-то эта игра приглянется для души, просто поиграть. Кто-то возьмет ее в свое портфолио, а кто-то, возможно, адаптирует ее для своего собственного аркадного автомата ( к слову, если не знаете, как сделать свой автомат, можете прочитать это<a href="https://tproger.ru/articles/nazad-v-80-e-kak-my-sobrali-arkadnye-avtomaty-i-napisali-igru-8-bit"> здесь</a>).</p><p>Надеюсь, статья оказалась полезной. До встречи!</p>]]></content:encoded>
    </item>
    <item>
      <title>Какие языки учить в 2023 году, если собираетесь в геймдев</title>
      <link>https://tproger.ru/articles/kakie-yazyki-uchit-v-2023-godu-esli-sobiraetes-v-gejmdev</link>
      <comments>https://tproger.ru/articles/kakie-yazyki-uchit-v-2023-godu-esli-sobiraetes-v-gejmdev?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[МТС]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kakie-yazyki-uchit-v-2023-godu-esli-sobiraetes-v-gejmdev</guid>
      <description><![CDATA[<p>На чём разрабатывают игры для браузеров, мобильных телефонов, консолей и ПК. Вспоминаем самые популярные языки для геймдева.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kakie-yazyki-uchit-v-2023-godu-esli-sobiraetes-v-gejmdev">Какие языки учить в 2023 году, если собираетесь в геймдев</a>»</p>]]></description>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Java]]></category>
      <category><![CDATA[C++]]></category>
      <category><![CDATA[Для начинающих]]></category>
      <category><![CDATA[Языки программирования]]></category>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[C#]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[PHP]]></category>
      <category><![CDATA[Swift]]></category>
      <category><![CDATA[HTML]]></category>
      <category><![CDATA[Kotlin]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 19 Jun 2023 14:49:04 GMT</pubDate>
      <content:encoded><![CDATA[<p>Если любите компьютерные игры, наверняка задумывались о том, чтобы попробовать себя в разработке. И это хорошая мысль, ведь, по данным <a href="https://disk.yandex.ru/d/2K-qNZjaiNbI_w?roistat_visit=939804">исследования</a> Moscow Digital School, средняя зарплата разработчика в геймдеве превышает 280 000 рублей.</p><p>Сегодня расскажем, какие языки программирования нужно знать, чтобы стать новыми Джоном Кармаком или Гейбом Ньюэллом.</p><h2>Языки для программирования браузерных игр</h2><p>Большинство веб-игр работает на комбинации HTML, CSS и JavaScript. HTML формирует структуру и содержимое веб-страницы, CSS определяет внешний вид и стиль элементов, а JavaScript управляет игровой логикой, анимациями и интерактивными элементами. Если добавить сюда PHP, можно прописать бэкенд, настроить взаимодействие с серверной частью и сделать игру многопользовательской.</p><h3>Примеры браузерных игр</h3><p>Браузерные игры могут быть как довольно примитивными (головоломки, загадки, ребусы), так и детализированными (с разными персонажами, экипировкой, сюжетом). Вот примеры некоторых из них.</p><figure><img src="https://media.tproger.ru/uploads/2023/06/a84beeda-af9c-4ae5-902f-e471b54a44cc.png" alt="" /><figcaption>Quick, Draw! — игра, в которой за 20 секунд надо нарисовать загаданный предмет, а нейросеть попробует его угадать</figcaption></figure><figure><img src="https://media.tproger.ru/uploads/2023/06/298e4428-1100-499c-bc54-41403a882158.png" alt="" /><figcaption>Paс-Man — легендарная игра, адаптированная для браузеров. Игроку в роли колобка нужно съесть все белые точки в лабиринте, избегая встречи с призраками</figcaption></figure><h2>Языки для программирования мобильных игр</h2><p>Игры для смартфонов и планшетов обычно сложнее и интереснее браузерных, однако до компьютерных они не дотягивают из-за ограничений мобильных устройств: небольшого экрана и низкой производительности.</p><p>Но в этом есть и плюс — простота разработки. Можно использовать один из движков (например, Unity) и за несколько недель собрать свою игру, добавив только спрайты и модели и прописав логику на одном из поддерживаемых языков программирования (для Unity это C#).</p><p>Другой вариант — написать мобильную игру с нуля, не ограничивая себя готовыми движками.</p><p>Тогда для геймдева понадобятся следующие языки:</p><h3>● Java</h3><p>Язык для разработки нативных мобильных игр под платформу Android. Программы обычно преобразуются в байт-код, который выполняется на любой виртуальной машине Java (JVM), независимо от характеристик процессора. Для Java также разработаны библиотеки и фреймворки, которые помогают в создании игр, например LibGDX.</p><h3>● Kotlin</h3><p>Ещё один язык для геймдева на Java, который появился не так давно. Он полностью совместим с Java, поэтому эти языки можно использовать в проекте одновременно или быстро переписать код с одного на другой. С помощью SDK Kotlin Multiplatform Mobile на этом языке можно создавать кроссплатформенные игры для iOS и Android.</p><h3>● Objective-C и Swift</h3><p>Objective-C — первый язык программирования приложений и игр для устройств Apple. Он был создан в 80-х годах XX века как объектно-ориентированное расширение языка C.</p><p>Objective-C активно использовался Apple на протяжении многих лет, но всё же с годами его синтаксис и другие особенности устарели. Поэтому в 2014 году в компании создали новый язык программирования Swift. Он имеет более современный и интуитивно понятный синтаксис, обеспечивает статическую типизацию и автоматическое управление памятью, что помогает устранить некоторые ошибки Objective-C и упростить отладку.</p><h4>Примеры мобильных игр</h4><figure><img src="https://media.tproger.ru/uploads/2023/06/0e06d279-a090-4ea5-95f5-e721ee27d84f.jpg" alt="" /><figcaption>Genshin Impact — экшн-RPG с большим открытым миром, разнообразными игровыми механиками и головоломками. Разработана на игровом движке Unity</figcaption></figure><figure><img src="https://media.tproger.ru/uploads/2023/06/f64dd41e-a7c6-4b6a-a287-964a9107e581.jpg" alt="" /><figcaption>Diablo Immortal — многопользовательская игра в жанрах Action/RPG и hack and slash, разработанная для мобильных устройств на движке Messiah</figcaption></figure><h2>Коммерческие движки и языки программирования</h2><p>Коммерческие движки произвели революцию в сфере создания игр. Теперь, чтобы выпустить сложный игровой продукт для консоли или ПК, необязательно нанимать огромный штат программистов и тратить годы на разработку.</p><h3>Unity</h3><p>Кроссплатформенный игровой движок, популярный у независимых игровых студий. По сути это не просто движок, а среда разработки, под капотом которой находятся текстовый редактор, компилятор, отладчик и другие полезные инструменты.</p><p>Unity легко освоить даже новичку в геймдеве, но для создания сценариев взаимодействия с сервером понадобится знание <b>C#</b>. Это объектно-ориентированный язык, созданный компанией Microsoft в 2000 году для работы с платформой .NET. Он не такой сложный, как C++, и на нём не нужно писать много шаблонного кода, как на Java.</p><h4>Примеры игр, созданных на Unity</h4><figure><img src="https://media.tproger.ru/uploads/2023/06/8a8d54b2-6c96-429f-9474-e13f4317e174.png" alt="" /><figcaption>Among Us — многопользовательская игра, вдохновлённая настолкой «Мафия». Задача игроков — вычислить двух предателей на борту космического корабля, пока они не убили всю команду</figcaption></figure><figure><img src="https://media.tproger.ru/uploads/2023/06/69d20591-a815-44e7-bb7f-a26372a6fd22.jpg" alt="" /><figcaption>Outer Wilds — игра про космос, в которой главный герой исследует маленькую планету, погибающую каждые 22 минуты</figcaption></figure><h3>Unreal Engine</h3><p>Движок от известной игровой компании Epic Games, выпущенный в 1998 году. Уже больше двух десятков лет его используют в геймдеве для создания сложных игр категории AAA разных жанров — от MMORPG до шутеров от первого лица.</p><p>Unreal Engine ценят за шикарные визуальные эффекты, но освоить этот движок сложнее, чем Unity. Для создания сценариев в нём используется <b>C++</b>, правда с определёнными отличиями (без низкоуровневого управления памятью и библиотеки шаблонов).</p><p>Это довольно старый и сложный язык, но благодаря визуальному редактору Blueprints создавать скрипты и размещать объекты в Unreal Engine можно и без C++.</p><h4>Примеры игр, созданных на Unreal Engine</h4><figure><img src="https://media.tproger.ru/uploads/2023/06/67b74bcf-403c-40b7-bc4e-f017051f7dbe.jpg" alt="" /><figcaption>Fortnite — онлайн-игра, которая сочетает в себе королевскую битву, песочницу и кооперативный симулятор выживания в открытом мире</figcaption></figure><figure><img src="https://media.tproger.ru/uploads/2023/06/4df3d929-4a1f-4606-be62-92c4643c7fa2.jpg" alt="" /><figcaption>Hogwarts Legacy — RPG во вселенной Гарри Поттера со множеством квестов, интересным геймплеем и, конечно же, полётами на мётлах</figcaption></figure><h2>Итоги</h2><p>Если собираетесь работать в геймдеве и хотите выбрать язык программирования, лучше заранее понять, какие игры вы хотите создавать:</p><ol><li>для браузерных игр понадобится знание JavaScript и PHP;</li><li>мобильных — Java, Kotlin и Swift;</li><li>консольных и ПК-игр — C++ и C#, а ещё опыт работы с коммерческими движками.</li></ol>]]></content:encoded>
    </item>
    <item>
      <title>Вдохновляясь The Legend of Zeldа: создаем рабочий прототип игры</title>
      <link>https://tproger.ru/articles/vdohnovljajas-the-legend-of-zelda-sozdaem-rabochij-prototip-igry</link>
      <comments>https://tproger.ru/articles/vdohnovljajas-the-legend-of-zelda-sozdaem-rabochij-prototip-igry?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Daria R]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/vdohnovljajas-the-legend-of-zelda-sozdaem-rabochij-prototip-igry</guid>
      <description><![CDATA[<p>Сегодня мы создадим рабочий прототип игры для портфолио, вдохновившись The Legend of Zelda. В качестве движка выбран Unity.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/vdohnovljajas-the-legend-of-zelda-sozdaem-rabochij-prototip-igry">Вдохновляясь The Legend of Zeldа: создаем рабочий прототип игры</a>»</p>]]></description>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Гостевая публикация]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 16 Aug 2022 12:00:00 GMT</pubDate>
      <content:encoded><![CDATA[<p>Всем привет! Нам предстоит поработать с 2D и немного поностальгировать. Мы создадим рабочий прототип игры, вдохновившись The Legend of Zelda.</p><p><b>А зачем это?</b> Резонный вопрос. Давайте разберемся с этим сразу:</p><ul><li>Проект в портфолио. Если для вас это новый жанр, с которым вы мало работали, проект раскроет для вас новые ниши и познакомит с новыми приемами разработки.</li><li>Тайлы. Оказывается, далеко не все знакомы с технологией тайлов. Или у многих она оставляет вопросы, на которые мы сегодня ответим.</li><li>Большие перспективы. Статья познакомит вас с центральной идеей игры, оставив простор для ее улучшения и развития. Возможно, именно этот прототип станет вашим шедевром.</li></ul><p><b>Что мы затронем</b>:</p><ul><li>Тайлы. Научимся нарезать их и работать с ними.</li></ul><ul><li>2D-анимации. Поговорим о них на базовом уровне.</li><li>Управление для игрока, врагов. Базовые системы управления, которые сможем улучшить в будущем.</li><li>Работа с тегами и их использование на практике. Теги — инструмент, о котором частенько забывают. Лишним точно не будет.</li><li>Обработка триггеров.</li></ul><h2>Графика</h2><p>Лучший вариант графики — нарисовать самим. Но если время поджимает или искусство рисования не для вас, то ищите ассеты. В данном случае готов посоветовать itch.io , тут всегда много полезных ассетов в зоне бесплатных или совсем недорогих закупок.</p><p>Мою статью не стоит считать классическим пошаговым руководством, поэтому выбор Версии Юнити оставлю за вами. Но советую 2019+, ввиду того, что все инструменты здесь будут присутствовать, а в более старых версиях возможны расхождения.</p><p>Итак, проект создан, графика импортирована, что делать далее?</p><p>Прежде всего начнем с настройки системы тайлов. Тайлы — элементарные части сцены, обычно имеющие невысокое разрешение. Они используются для сборки уровней, как из конструктора лего. При тайлах активно используется система слоев для разделения деталей переднего и заднего плана на разные уровни. Это все мы увидим при создании собственного тайлсета.</p><p>Итак. Мы нашли тайлсет, который необходимо нарезать. Проведем первичную настройку изображения.</p><figure><img src="https://media.tproger.ru/uploads/2022/08/photo_2022-08-15_15-10-56.jpg" alt="" /></figure><p>Важно обратить внимание на несколько параметров:</p><p>— Переключить режим спрайтов в мульти режим. Это позволит создать атлас слайдов, в котором можно будет хранить несколько спрайтов сразу.</p><p>— Режим фильтрации. Его стоит установить в точечный режим (без фильтрации), если у вас ассеты низкого разрешения. Это избавит от замыливания картинки.</p><p>Переходим к нарезке.</p><figure><img src="https://media.tproger.ru/uploads/2022/08/photo_2022-08-15_15-13-19.jpg" alt="" /></figure><p>Здесь тоже стоит ответственно подойти к выбору способа нарезки. В моем случае все тайлы 16*16 пикселей, без зазоров на картинке. Таким образом я расставил сетку и нарезал, после чего подтвердил выбор и получил атлас спрайтов с кучей элементов.</p><p>Здесь мы приходим к следующей загвоздке: как аккуратно расставить элементы. Можно конечно аккуратно подравнять все размеры, но это очень долго.</p><p>Небольшой лайфхак, который сэкономит кучу времени: в спрайт-листах ставьте разрешение пикселей на юнит согласно разрешению вашего тайллиста. Я устанавливаю 16 пикселей на юнит, благодаря чему у меня все спрайты в Юнити 1*1 единицу, что очень удобно в будущем. У вас может быть другое разрешение, не забывайте об этом ?</p><p>Пришло время познакомиться с системой тайл-палитры, которую нам предстоит создать. Откроем окно с системой.</p><figure><img src="https://media.tproger.ru/uploads/2022/08/photo_2022-08-15_15-18-45.jpg" alt="" /></figure><p>После открытия окна советую сразу же его расположить в каком-то удобном месте, после чего создать собственную палитру, следуя меню create new palette. К слову, размер ячеек стоит установить 1 1, если вы последовали совету с разрешением на Юнит.</p><figure><img src="https://media.tproger.ru/uploads/2022/08/photo_2022-08-15_15-20-25.jpg" alt="" /></figure><p>Несложно заметить, что я выбрал квадратные тайлы. Но в Юните есть доступ к изометрии и гексагональным тайлам, что открывает доступ к разным жанрам.</p><p>После этого в появившуюся область достаточно перетащить атлас с набором спрайтов. Они отобразятся здесь, их можно использовать.</p><figure><img src="https://media.tproger.ru/uploads/2022/08/photo_2022-08-15_15-29-24.jpg" alt="" /></figure><p>Разберем инструменты слева направо:</p><ul><li>Первые два инструмента отвечают за работу со сценой без использования паллеты. Используйте их, когда нужно просто поработать со сценой.</li><li>Кисть. Зажимая ЛКМ на паллете, выбирайте область, которая станет вашим трафаретом. Кликая уже на редакторе сцены, вы сможете наносить данный паттерн на сцену. Проще говоря, это основной инструмент художника.</li><li>Инструмент выбора области. Тут все просто.</li><li>Пипетка. В тех случаях, когда нужен прям такой же тайл, как в левом углу замка. Палочка выручалочка.</li><li>Ластик. Куда без него. Избавляет от следов вашего пребывания.</li><li>Заливка. Когда все вокруг нужно залить одним цветом.</li></ul><p>Палитру можно редактировать, выбрав режим edit, изменяя и рисуя прямо на ней. Это можно использовать, чтобы создать себе заранее несколько заготовок, а потом быстро перенести их на уровень.</p><p>Самые шустрые уже поняли, что рисовать не получается на сцене, а в чем проблема? Нам нужна сетка, по которой мы будем располагать тайлы и именно ее мы сейчас создадим, добавив напрямую на сцену.</p><figure><img src="https://media.tproger.ru/uploads/2022/08/photo_2022-08-15_15-32-15.jpg" alt="" /></figure><p>Добавьте первый слой с сеткой, он отобразится в Палитре и мы сможем рисовать. Но не будем мелочиться и создадим сразу несколько слоев, применив данную операцию еще раз, но уже на элементе grid, а не на сцене.</p><figure><img src="https://media.tproger.ru/uploads/2022/08/photo_2022-08-15_15-34-10.jpg" alt="" /></figure><p>В данный момент я добавил три слоя.</p><ul><li>Back. Для фоновых элементов. Они будет находиться на фоне, и игрок не будет с ними взаимодействовать. Стены замка отличный пример. Для данного слоя я указал Позицию −5, в order in Layer. Данный параметр отвечает за то, какие объекты будут выше на слое, а какие ниже. У персонажа данный параметр 0</li><li>Walls. Слой для стен и других твердых объектов. О них персонаж будет биться и не сможет проходить сквозь. OiL — 0</li><li>Dang. Слой для всякой всячины. В данным момент служит декорациями переднего плана. Факелы, щиты, картины и т.д.</li></ul><p>Со слоями закончили. Теперь можно наконец немного порисовать и создать свой первый тайл-шедевр. Потратив некоторое количество времени я создал первый уровень для нашей игры.</p><figure><img src="https://media.tproger.ru/uploads/2022/08/photo_2022-08-15_15-37-03.jpg" alt="" /></figure><p>Данный этап сугубо творческий и во многом лежит на вашем собственном плече. В зависимости от задумки у вас может быть 1 уровень, 10, хоть 255 уровней.</p><p>Но советую сразу не размахиваться на большое количество уровней, для начала стоит потренироваться с основными механиками, а уже после переходить к наполнению.</p><p>Итак, уровень у нас готов, теперь стоит перейти к созданию главного героя. В зависимости от ваших ассетов этот процесс может выглядеть по-разному. Покажу самый распространенный сценарий.</p><p>После расположения спрайта главного героя откроем окна создания анимаций и аниматора, в которых настроим первую анимацию, оживив картинку. Эти окна можно найти здесь:</p><figure><img src="https://media.tproger.ru/uploads/2022/08/photo_2022-08-15_15-39-51.jpg" alt="" /></figure><p>После добавления этих окон немного разберемся с ними. В окне Анимаций создадим клип, после чего сюда необходимо покадрово собрать анимацию героя. В моем случае у меня четыре кадра, но на анимации будет 5 пунктов. Важно анимацию правильно зациклить. И в самом конце, и в начале должны стоять одинаковые кадры. Иначе при работе будет происходить срыв кадров, что отрицательно скажется на внешнем виде игры.</p><p>Если у вас кадры анимации расположены в разных файлах, не забывайте, чтобы у всех них была выключена фильтрация и разрешение на Юнит было одним и тем же.</p><figure><img src="https://media.tproger.ru/uploads/2022/08/photo_2022-08-15_15-42-58.jpg" alt="" /></figure><p>В данном случае я расположил кадры анимации через 5 кадров игры, что дает достаточную плавность на 60 кадрах.</p><p>Что мы имеем на данный момент, подведем промежуточные итоги.</p><p>У нас уже есть уровень игры с анимацией персонажа. Пришло время заняться врагами, не так ли ?</p><p>Действия будут здесь полностью аналогичные, поэтому я позволю пропустить повторения и покажу свой вариант исполнения.</p><p>На этом пункте можно сказать, что с базовой графической начинкой мы закончили, пришло время создать игровую логику, которая позволит реализовать прототип.</p><h2>Игровая логика</h2><p>Думаю, я вас значительно удивлю, сказав, что расписать основную логику прототипа можно буквально тремя скриптами. Но это действительно так, хоть и для дальнейшего масштабирования понадобится куда больше скриптов.</p><p>Начнем с основы: системы управления героем.</p><figure><img src="https://media.tproger.ru/uploads/2022/08/photo_2022-08-15_16-12-04.jpg" alt="" /></figure><p>Данный скрипт работает по несложному принципу, который основан на сопоставлении вектора движения и клавиши — нажатия на клавишу. Заранее мы создаем два массива с набором клавиш и набором векторов. Далее обрабатывая нажатия клавиш, мы задаем соответствующие направления, умножая на скорость персонажа.</p><p>Для работы данного скрипта понадобятся Rigidbody2D, Box Collider. Ригид оставляем в динамическом режиме, однако устанавливаем масштаб гравитации на 0, чтобы наш персонаж не падал вниз. Аналогично этот пункт будет касаться и врагов. Не забудьте накинуть на стены tilemapCollider, чтобы персонаж сталкивался со стенами.</p><p>Следующий скрипт затронет врагов.</p><figure><img src="https://media.tproger.ru/uploads/2022/08/photo_2022-08-15_16-16-54.jpg" alt="" /></figure><p>Что это за скрипт, и каким образом он работает? Он был написан для врага — черепа, который двигается по квадратной траектории. Эта траектория разделена на 4 зацикленных этапа, которые сменяют друг друга. Что примечательно, при такой компоновке враг выйдет на прошлую траекторию, даже если его столкнуть с нее. Сам скрипт достаточно прост, особенно если сравнивать со скриптом персонажа.</p><p>На этом этапе нас снова ожидает творческое задание: придумать собственные траектории для движения и реализовать на других врагах. Это может помочь в наполнении игры.</p><p>А теперь самый интересный этап. Скрипт, который отвечает за игровые взаимодействия, который ради простоты прототипа сведен в один файл, но при развитии идеи советую вам его разделить на раздельные документы.</p><p>Встречаем третьего претендента.</p><figure><img src="https://media.tproger.ru/uploads/2022/08/photo_2022-08-15_16-20-46.jpg" alt="" /></figure><p>Игровые взаимодействия в нашем случае выстроены под три вида:</p><p>— Столкновение с врагом. Не забудьте на всех врагов повесить Тег врага. В случае столкновения вся сцена перезапустится и уровень начнется заново.</p><p>— Столкновение с объектом типа ключ. Он активирует ворота ( пустышка с коллайдером, при входе в которые нас телепортирует далее). Ключ при поднятии уничтожается.</p><p>— Столкновение с воротами. Данное взаимодействие телепортирует нас на заготовленную площадку следующего уровня, финала игры и тд.</p><p>А как это работает?</p><h2>Подведем итоги</h2><p>У нас получился игровой прототип для игр с подземельями. Мы отработали работу с тайлами, анимациями, элементами игровой логики.</p><p>Далее нужно расширять игровые уровни, наполнять контентом игру. Помните творческие задании в статье? Именно они помогут вам раскрыть идею и довести ее до состояния классной данж-игры.</p><p><b>Какие конкретно стоит внести улучшения:</b></p><ul><li>ИИ для врагов. Стандартные движения в данной игре могут показаться скучными, стоит подумать о более сложных алгоритмах.</li><li>Система жизней.</li><li>Расширенные анимации, если вы их сразу не сделали.</li></ul><p>На этом мы закончим, буду рад, если поделитесь результатами вашего забега. До встречи!</p>]]></content:encoded>
    </item>
    <item>
      <title>Создаем гиперказуальную игру в стиле Fire Balls 3D на Unity</title>
      <link>https://tproger.ru/articles/sozdaem-giperkazualnuju-igru-v-stile-fire-balls-3d-na-unity</link>
      <comments>https://tproger.ru/articles/sozdaem-giperkazualnuju-igru-v-stile-fire-balls-3d-na-unity?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Daria R]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/sozdaem-giperkazualnuju-igru-v-stile-fire-balls-3d-na-unity</guid>
      <description><![CDATA[<p>Рассказываем, как с помощью Unity легко и быстро написать гиперказуальную игру по типу Fire Balls 3D. С кодом и гифками!</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/sozdaem-giperkazualnuju-igru-v-stile-fire-balls-3d-na-unity">Создаем гиперказуальную игру в стиле Fire Balls 3D на Unity</a>»</p>]]></description>
      <category><![CDATA[Для начинающих]]></category>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Гостевая публикация]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 27 Jul 2022 06:42:04 GMT</pubDate>
      <content:encoded><![CDATA[<p>Меня зовут Ватолин Александр, я геймдизайнер, а для этого почти всегда нужны знания в самых разных областях: от разработки до 3D-моделирования. Готов ими поделиться.</p><p>Сейчас расскажу, как создать мобильную игру на основе гиперказуалки <b>Fire Balls 3D. </b></p><h2>В чем соль</h2><p>Мы сделаем работающий прототип с помощью декомпозиции другого проекта. Логичный вопрос, который сразу возникнет: зачем копировать другой проект, а не создавать свой?</p><p>И у нас на это 5 причин:</p><p>— Пригодится для портфолио;</p><p>— Важно уметь декомпозировать фишки из других проектов для удачной переработки идеи. А иногда и просто для того, чтобы понять, что пишет твой сосед по отделу;</p><p>— Такие проекты показывают ваши навыки как разработчиков с разных сторон. А за счет легкости сравнения с оригиналом становится понятно, насколько точно вы можете следовать ТЗ.</p><p>— Вы отрабатываете для себя новые решения. Сегодня мы познакомимся с DOTween, к примеру.</p><p>Вот, что я имею в виду, говоря о новых решениях: создавая свои проекты, мы стараемся пользоваться уже знакомыми средствами. А вот копируя, мы зачастую сталкиваемся с тем, что нашим арсеналом проблемы не решить. Тогда мы выходим на путь развития, где ищем новые инструменты. Так копирование и прокачивает наш арсенал, вынуждая изучать новое.</p><p>— Поиск ошибок: когда мы смотрим на решения других дизайнеров и разработчиков, очень легко найти проблемы собственных проектов. В любом случае, вы развиваете насмотренность, и в будущем сможете найти проблемы при первом же взгляде.</p><figure><img src="https://media.tproger.ru/user-uploads/23823/2024-01-05/3c5b7a80-98ba-4e2f-bf28-58604120bafe.jpg" alt="" /><figcaption>Скриншоты из игры Fire Balls 3D</figcaption></figure><h2>Где будем разрабатывать игру?</h2><p>Нам нужна мобильная, гиперказуальная, с простой графикой. Unity тут просто идеально подходит.</p><p>Устанавливаем любую 19+ версию и готовим несколько модулей, которые пригодятся при разработке:</p><ul><li>Probuilder. Отличный пакет для постройки прототипов. Но он не поможет в постройке базовых моделей, если вы ничего не знаете о 3D.</li><li>DOTween. Его реально найти в AssetStore. Он нам понадобится для создания основной анимации. Это очень мощный пакет, который удобен при разработке не слишком сложных игр. Если еще не знаете, что это, советую изучить!</li><li>Любой шейдер для воды. Один из них вы увидите в конце статьи в материалах. Если есть свои любимчики, можете использовать любой другой.</li></ul><p>Вот и все.</p><h2>Начнем разработку</h2><p><b></b>После создания проекта импортируем данные проекты и не забываем переключиться в <b>File -&gt; Build Settings</b> на платформу <b>Android. </b></p><figure><img src="https://media.tproger.ru/uploads/2022/07/photo_2022-07-26_13-13-40.jpg" alt="" /></figure><p>Начнем с базовых вещей. Организация пространства папок может быть любая. Но лучше, если будет подобная структура:</p><figure><img src="https://media.tproger.ru/uploads/2022/07/photo_2022-07-26_13-16-05.jpg" alt="" /></figure><p>Теперь построим платформу, состоящую из куба и цилиндра. Также нам понадобится установить камеру под нужный ракурс и создать Пустышку — она будет управлять башней из создаваемых блоков. Назовем ее<b> Tower.</b></p><p>Пришло время создать первый скрипт, назовем его <b>TowerBuilder</b> и прикрепим его к нашей Пустышке.</p><p>Попробуем разобраться, что это за скрипт. Филды нам нужны для параметров скрипта, а именно:</p><p>towerSize — размер нашей башни.</p><p>SpawnPoint — местоположение точки появления. Именно здесь будет браться наша Пустышка.</p><p>towerBlock — Блок башни, наш цилиндр. Можете заметить, что он типа BlockTower, что не позволит поместить любой gameobject, и вынудит нас создать скрипт BlockTower и прикрепить к префабу блока.</p><p>towerBlocks — список, хранящий текущие блоки башни.</p><p>Метод Build() выстраивает башню при помощи двух вспомогательных методов:</p><p>BuildTower — устанавливает блоки в позиции.</p><p>GetSpawnPoint — рассчитывает координаты положения, учитывая сдвиги с каждым новым сдвигом.</p><p>Весь метод работает в цикле, таким образом выстраивая полностью башню.</p><p>Не забываем добавить к префабу башни MeshCollider(Vertex — on, trigger — on).</p><p>В итоге у нас получится башня в соответствии с нашими настройками.</p><figure><img src="https://media.tproger.ru/uploads/2022/07/photo_2022-07-26_13-22-47.jpg" alt="" /></figure><p>Немного передохнем от скриптов и создадим модель нашей пушки, стреляющей снарядами.</p><figure><img src="https://media.tproger.ru/uploads/2022/07/photo_2022-07-26_13-24-30.jpg" alt="" /></figure><p>Помимо пушки создадим префаб снаряда — простого шарика.Также внутри танка расположим Shot point — место, откуда будут вылетать снаряды.</p><p>Скрипт снаряда назовем Bullet и реализация (пока что) у него будет простая:</p><p>Этот скрипт позволит при создании снаряда запускать его в необходимую сторону. Почему шар летит влево, а не вперед? На самом деле мне просто было лень его переориентировать, да это и не особо важно. Зато это успешно привлекло ваше внимание и погрузило в скрипт.</p><p>Есть снаряд, являющийся префабом с данным скриптом. Осталось реализовать пушку. Пишем:</p><p>Тут все еще проще. У пушки есть параметры под позицию выстрела, снаряда, чем стрелять, а также времени перезарядки.</p><p>Цикл проверяет нажатие на экран (либо левый клик мыши), и если время превысило время перезарядки, производит выстрел. После этого происходит обнуление счетчика. За само производство снарядов отвечает метод<b> Shoot()</b>.</p><p>Что у нас есть на данную минуту:</p><figure><img src="https://media.tproger.ru/uploads/2022/07/2022-07-21-00-41-06.gif" alt="" /></figure><p>Вариация работы стрельбы. Прямо сейчас не видно, но высокая установка пушки оказалась плохой идеей, позже мы ее подвинем пониже</p><p>Теперь подготовим систему удаления блоков при столкновении. Будет много кода, так что готовьтесь.</p><p>Начнем с метода <b>BlockTower</b> , он лежит внутри пребафа блока башни, помните?</p><p>Тут есть просто система самоуничтожения, а также событие, к которому мы вернемся чуть позже. Просто напишите его, чтобы не возвращаться еще раз.</p><p>Вернемся к <b>Bullet</b>. Добавим систему проверяющую столкновение с блоком башни. Тут все просто, появится один if в OnTriggerEnter.</p><p>Однако у блоков башни должно быть: MeshCollider (Vertex — on, trigger — on).</p><p>Данное условие вызывает уничтожение блока и шарика. Работает это сейчас примерно так, что никуда не годится:</p><figure><img src="https://media.tproger.ru/uploads/2022/07/2022-07-21-00-54-18.gif" alt="" /></figure><p>Пришло время реализовать систему опускания башни.</p><p>Реализация управляющей системы башни ( прикрепляем к <b>Tower</b>):</p><p>Попробуем разобраться, что тут происходит. Для начала вспомним событие BulletHit, которое создается при уничтожении блока башни. Оно является спусковым крючком, которое будет вызывать методы OnbulletHit().</p><p><b>А теперь подробнее</b>:</p><p>— В Старте мы инициализируем механизм постройки башни, что более корректно с точки зрении ООП, ну и просто удобнее;</p><p>— Далее для каждого созданного блока мы подключаем OnBulletHit для события BulletHit. Многие отметят, что корректно помимо подписки на событие реализовать и отписку, которая и реализована в данном методе;</p><p>— Метод OnBulletHit убирает блок из списка блоков, обновляя информацию о башне, сдвигая ее вниз. <b>Важный момент:</b> мы уничтожаем нижний блок, поэтому логично сдвигать всю башню вниз. Однако если мы бы уничтожали не нижний блок, пришлось бы сдвигать только элементы, которые выше данного блока.</p><p>— Также тут можно заметить событие SizeUpdated, которое нам понадобится на этапе проектирования интерфейса.</p><p>Итак, башня реализована:</p><figure><img src="https://media.tproger.ru/uploads/2022/07/2022-07-21-01-11-57.gif" alt="" /></figure><p>Реализация системы башни. К слову вот здесь уровень башни был поставлен ниже для удобства работы</p><p><b>Пришло время вспомнить о препятствиях и Probuilder.</b> Нам понадобится Пустышка, которая станет центром вращения, а также несколько элементов препятствий. Это могут быть хоть классические кубы, но лично я использовал Arch из ProBuilder.</p><figure><img src="https://media.tproger.ru/uploads/2022/07/photo_2022-07-26_13-43-49.jpg" alt="" /></figure><p>Для частей мы создадим скрипт ObstacleChapter, который оставим в стартовом варианте, на данном этапе он нам не понадобится.</p><p>Для Пустышки же создадим скрипт Obstacle, который реализует вращения данной структуры.</p><p>Скрипт уже потребует работы с DOTween, мы покажем один из методов, но внутри пакета их множество.</p><p>Если внимательно прочитать, то можно понять, что метод позволит вращать объект вокруг своей оси.</p><p>Следом у нас идет модификация On trigger Enter из Buller.cs</p><p>Новое условие проверяет столкновение с частями препятствий и реализует систему отталкивания. По сути, мы просто меняем направление толчка, откидывая шар в сторону камеры.</p><p>Последняя часть, которая добавит шарма, это простенький Ui. Создадим TMP )text-mesh-pro, установив canvas в мировой режим и расположив все элементы на сцене. Мои настройки вы сможете изучить на скриншоте:</p><figure><img src="https://media.tproger.ru/uploads/2022/07/photo_2022-07-26_13-46-49.jpg" alt="" /></figure><figure><img src="https://media.tproger.ru/uploads/2022/07/photo_2022-07-26_13-47-04.jpg" alt="" /></figure><p>Реализуем систему подписки на событие SizeUpdated из Tower.cs. По своей сути она просто берет размера списка блоков и выводит его на экран.</p><p>Что же у нас получилось:</p><figure><img src="https://media.tproger.ru/uploads/2022/07/2022-07-21-13-04-03.gif" alt="" /></figure><p><b>А теперь попробуем разобраться, что мы сделали</b>:</p><p>Рабочий прототип. Прототип — игра на кубах без особой графики и с голыми кор-механиками. Именно это нам и удалось сделать. Игра требует развития, и именно это и останется сделать, чтобы создать классный экземпляр себе в портфолио или новый игровой проект.</p><p><b>А какие улучшения можно внести ?</b></p><ul><li>Графика. Думаю, тут все просто, но все же перечислю: новые модели, цветовая палитра, работа над окружением, разноцветные платформы;</li><li>Меню входа и выхода. Данный проект не предполагает сложного меню, однако оно явно не помешает;</li><li>Система уровней. Переход со сцены на сцену, либо перестройка уровня на основе конфига с данными об уровнях. Любая система, которая вам покажется удачной.</li><li>Наполнение контентом. Какой он тут может быть ? Простой, как и сама игра: другие уровни, несколько уровней препятствий, особые выстрелы пушкой.</li></ul><p><b>Итого: </b>мы успешно реализовали протопип игры, у которого может быть развитие. Буду рад, если поделитесь конечными результатами.</p><p><b>А теперь обещанные материалы:</b></p><ul><li>DOTween — <a href="http://dotween.demigiant.com/download.php">http://dotween.demigiant.com/download.php</a></li><li>Water Shader — <a href="https://assetstore.unity.com/packages/p/mobile-depth-water-shader-89541">https://assetstore.unity.com/packages/p/mobile-depth-water-shader-89541</a></li><li>Unitypackage показанного прототипа — <a href="https://drive.google.com/file/d/1q-nfWqZHxVM8fNMbe0GNFIAhs4TWYHg1/view?usp=sharing">https://drive.google.com/file/d/1q-nfWqZHxVM8fNMbe0GNFIAhs4TWYHg1/view?usp=sharing</a></li></ul><p>До встречи!</p>]]></content:encoded>
    </item>
    <item>
      <title>Программирование на C# в Unity — бесплатные видеоуроки для детей и подростков</title>
      <link>https://tproger.ru/articles/programmirovanie-na-c-v-unity-besplatnye-videouroki-dlja-detej-i-podrostkov</link>
      <comments>https://tproger.ru/articles/programmirovanie-na-c-v-unity-besplatnye-videouroki-dlja-detej-i-podrostkov?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Вадим Бордик]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/programmirovanie-na-c-v-unity-besplatnye-videouroki-dlja-detej-i-podrostkov</guid>
      <description><![CDATA[<p>Видеоуроки по программированию на C# в Unity для детей и подростков от 10 лет. Подходят тем, кто делает первые шаги в данной сфере.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/programmirovanie-na-c-v-unity-besplatnye-videouroki-dlja-detej-i-podrostkov">Программирование на C# в Unity — бесплатные видеоуроки для детей и подростков</a>»</p>]]></description>
      <category><![CDATA[Для начинающих]]></category>
      <category><![CDATA[Обучение программированию]]></category>
      <category><![CDATA[C#]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Гостевая публикация]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 04 Apr 2022 09:16:46 GMT</pubDate>
      <content:encoded><![CDATA[<p>Unity (Юнити) — это одна из лучших платформ разработки 2D и 3D компьютерных игр. Unity позволяет создавать приложения, которые работают на более чем 25 платформах. С её помощью можно создавать программы и игры для компьютеров, консолей, мобильных и других устройств.</p><p>На этой платформе разработано огромное количество игр и приложений, которые стали настоящими хитами в своей отрасли, например, Pokémon Go, Kerbal Space Program и др. Для программирования на Unity используется язык C# (Си Шарп). Он не вызывает особых трудностей даже у неопытных пользователей, поэтому работать в Юнити может практически каждый.</p><p>Мы подготовили серию видеоуроков по программированию на C# в Unity. Они разработаны специально для детей и подростков в возрасте от 10 лет и подходят тем, кто делает первые шаги в данной сфере. С помощью этого видеокурса вы познакомитесь библиотеками Си Шарп и научитесь писать скрипты для своих игр.</p><p>Прежде мы уже публиковали <a href="https://tproger.ru/articles/videouroki-dlja-detej-i-podrostkov-po-unity/">видеоуроки</a> по Unity для начинающих. Они будут полезны, если вы совсем не знакомы с программой, хотите изучить интерфейс и создавать простейшие игры. А в этом плейлисте мы сосредоточимся на скриптах.</p><ol><li><a href="https://tproger.ru/#part1">Видеоурок 1. Структура C#</a></li><li><a href="https://tproger.ru/#part2">Видеоурок 2. Добавление кнопок в Юнити. Выведение текста на C#</a></li><li><a href="https://tproger.ru/#part3">Видеоурок 3. Массивы в Юнити. List на C#</a></li><li><a href="https://tproger.ru/#part4">Видеоурок 4. Оператор if в C#</a></li><li><a href="https://tproger.ru/#part5">Видеоурок 5. Компоненты</a></li><li><a href="https://tproger.ru/#part6">Видеоурок 6. Циклы в Юнити. Цикл for в C#</a></li><li><a href="https://tproger.ru/#part7">Видеоурок 7. Coroutine в Unity</a></li><li><a href="https://tproger.ru/#part8">Видеоурок 8. Как добавлять музыку в Unity</a></li><li><a href="https://tproger.ru/#part9">Видеоурок 9. Перемещение мышью 3D-объекта</a></li><li><a href="https://tproger.ru/#part10">Видеоурок 10. Методы Rigidbody</a></li></ol><h2>Видеоурок 1. Структура C#</h2><p>В первом видеоуроке рассказываем, где скачать и как правильно установить Visual Studio. Это программа, которая позволяет писать код на языке C#. Также в видеоуроке мы познакомимся со структурой и визуалом Си Шарп. Все эти моменты подробно разбираются, поэтому у вас не возникнет никаких проблем.</p><h2>Видеоурок 2. Добавление кнопок в Юнити. Выведение текста на C#</h2><p>Во втором видеоуроке мы начнём изучать программирование UI в Юнити. Данная платформа имеет ряд объектов UI, которые упрощают работу в программе. В конце видеоурока мы закрепим пройденный материал: добавим кнопки и пропишем скрипт, который позволит вывести текст на монитор.</p><h2>Видеоурок 3. Массивы в Юнити. List на C#</h2><p>На третьем уроке мы будем изучать массив Си Шарп, а также рассмотрим, чем он отличается от переменной и от List. Также мы рассмотрим, как правильно объявлять массив и List на C#.</p><h2>Видеоурок 4. Оператор if в C#</h2><p>На четвёртом уроке мы познакомим вас с операторами в C#. Особое внимание будет уделено оператору if, который применяется, если необходимо выполнить действие в определённом случае. Во время урока мы разберём данный оператор, а также напишем ряд скриптов с ним.</p><h2>Видеоурок 5. Компоненты</h2><p>На пятом уроке мы начнём изучать компоненты Unity и рассмотрим, как их правильно добавлять на объект. Для закрепления материала мы запишем несколько скриптов.</p><h2>Видеоурок 6. Циклы в Юнити. Цикл for в C#</h2><p>В шестом видеоуроке мы рассмотрим и изучим циклы в Unity. Особое внимание мы уделим циклу for. Для закрепления материала мы напишем несколько программ.</p><h2>Видеоурок 7. Coroutine в Unity</h2><p>Во время седьмого урока мы расскажем, что такое Корутина и для чего она нужна. Также мы научимся писать программы, которые будут запускать и останавливать Coroutine.</p><h2>Видеоурок 8. Как добавлять музыку в Unity</h2><p>На восьмом уроке мы детально изучим компонент Audio Source в Unity, который позволяет добавлять музыку. Для закрепления материала мы добавим кнопки и для каждой из них напишем скрипт, чтобы при нажатии воспроизводилась музыка.</p><h2>Видеоурок 9. Перемещение мышью 3D-объекта</h2><p>Мы настроим сцену и движение объекта, а затем рассмотрим два метода перемещения трехмерных объектов с помощью мыши.</p><h2>Видеоурок 10. Методы Rigidbody</h2><p>В десятом видео мы изучим три метода Rigidbody: AddForce, MovePosition и MoveRotation. Напишем скрипты и научимся применять их в наших играх.</p><p>Благодаря этим видеоурокам обучение программированию детей станет еще увлекательнее. Учитесь писать скрипты, создавайте новые игры и делитесь ими с другими пользователями. Unity станет отличным напарником на вашем пути разработчика игр.</p>]]></content:encoded>
    </item>
    <item>
      <title>Видеоуроки для детей и подростков по UNITY</title>
      <link>https://tproger.ru/articles/videouroki-dlja-detej-i-podrostkov-po-unity</link>
      <comments>https://tproger.ru/articles/videouroki-dlja-detej-i-podrostkov-po-unity?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Вадим Бордик]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/videouroki-dlja-detej-i-podrostkov-po-unity</guid>
      <description><![CDATA[<p>Давайте вместе разберем один из полезных видеокурсов по созданию игр на Юнити. Материал подготовлен по урокам работы с Unity для детей.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/videouroki-dlja-detej-i-podrostkov-po-unity">Видеоуроки для детей и подростков по UNITY</a>»</p>]]></description>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Обучающие курсы]]></category>
      <category><![CDATA[Пост пользователя]]></category>
      <category><![CDATA[Программирование для детей]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 18 Feb 2022 14:28:48 GMT</pubDate>
      <content:encoded><![CDATA[<p>Сегодня существует несколько десятков платформ, предназначенных для создания игр. Одной из самых популярных из них является Юнити. На данной платформе можно разрабатывать игры и приложения для компьютеров и смартфонов. Для написания скриптов используется язык программирования C#. Самое интересное, что его освоить могут даже подростки.</p><p>Давайте вместе разберем один из полезных видеокурсов по созданию игр на Юнити.  Материал подготовлен методологами по курсу UNITY для детей.</p><p>Урок №0. Установка необходимых программ.</p><p>Урок №1. Создание анимации</p><p>Во время первого урока мы расскажем вам, как добавлять на сцену спрайт и что нужно сделать, чтобы он двигался с нужной для нас скоростью.</p><p>Урок №2. Создание телепорта</p><p>Второй урок посвящён телепорту. Мы расскажем вам, как его создавать. Для этого вам нужно взять два куба и расположить их по разным краям сцены. Далее мы подготовим скрипт, который будет работать следующим образом: как только персонаж касается первого куба, он мгновенно переносится ко второму.</p><p>Урок №3. Спавн объектов</p><p>Спавн – это важный элемент любой игры. Это то место, где появляется наш персонаж при запуске игры. Поэтому его созданию нужно уделить особое внимание.</p><p>Во время урока мы разберём два метода добавления спавна: это в пределах камеры и на Canvas.</p><p>Урок №4. Триггеры</p><p>Триггеры также играют немаловажную роль в компьютерных играх. С их помощью ваш герой может собирать бонусы или наносит урон своим противникам.</p><p>Во время урока мы расскажем, как написать скрипт для сбора очков и столкновения персонажей. Также мы разберём самые популярные вопросы по данной теме.</p><p>Урок №5. Добавляем таймер в нашу игру</p><p>Во многих играх используется подсчёт времени. Например, в спортивных симуляторах, в гонках, также их можно встретить в аркадах, шутерах и так далее. Мы расскажем, как добавлять таймер. Причём сделаем это двумя способами: с помощью корутины и команды InvokeRepeating.</p><p>Урок №6. Перемещение объектов мышью</p><p>Шестой урок посвящён изучению функции Mouse Drag. Благодаря ей вы сможете перемещать объекты в игре одной лишь мышью. Мы расскажем, как добавлять и настраивать данную функцию.</p><p>Урок №7. Полоса здоровья</p><p>Во время урока мы расскажем, как добавлять полосу здоровья (или другими словами Health bar). Она будет увеличиваться или уменьшаться в зависимости от ваших успехов в игре.</p><p>Урок №8. Сохранение игры</p><p>Чтобы продолжить игру с того момента, где вы закончили в прошлый раз, мы добавим возможность сохранять ваш прогресс.</p><p>Урок №9. Делаем Раннер в нашей игре</p><p>Помните динозаврика, который появляется в Гугл, когда у вас потеряно соединение с интернетом? Мы создадим точно такого же динозаврика. Также мы повторим всё, что прошли в нашем курсе программирования для детей: снова сделаем анимацию, добавим препятствия для нашего персонажа, установим спавн и так далее.</p><p>Урок №10. Экспорт игры для ПК и смартфона</p><p>Теперь, чтобы играть в нашу игру, необходимо выставить определённые настройки. Именно это и мы разберём во время данного урока.</p><p>Урок №11. Загружаем игру в Play Market</p><p>Программирование на Юнити может приносить прибыль с первых дней. Для этого необходимо загрузить нашу игру в Play Market и если она будет пользоваться популярностью, то её можно монетизировать. Мы расскажем, какие настройки нужно выставить и как выгружать игры в Play Market.</p><p>Урок №12. Делаем прыжки в Юнити</p><p>Чтобы наш персонаж мог выполнять миссии, он должен двигаться. Мы начнём с самого простого — прыжков. Для этого мы создадим две сцены и напишем скрипт, который позволит нашему персонажу прыгать.</p><p>Урок №13. Управление персонажем</p><p>Теперь мы научим нашего персонажа двигаться и поворачиваться. Для этого мы используем переменную типа float и напишем необходимые скрипты.</p><p>Урок №14. Рендер линий</p><p>LineRenderer позволяет быстро и легко рисовать линии в игре. Мы напишем два скрипта с разными функциями.</p><p>Урок №15. Создаём автосимулятор</p><p>Играть в автосимуляторы это, конечно же, интересно. Но ещё интереснее — написать собственный автосимулятор. Мы сделаем трассу, настроим автомобиль, напишем код для коробки передач и отправимся в дорогу.</p><p>Урок №16. Террейн</p><p>Во время урока мы изучим инструмент Terrain и добавим его в Юнити. С его помощью вы сможете создавать любые ландшафты на сцене.</p><p>Урок №17. Диалоги</p><p>Диалоги играют одну из ключевых ролей в играх. Они позволяют продвигать сюжет. Также через диалоги можно получать подсказки от других персонажей.</p><p>Во время урока мы научим вас добавлять диалоги в игру, а также закрепим пройденный материал — напишем скрипт.</p><p>Урок №18. NPC на Юнити</p><p>Возможно, вы уже встречали такое понятие, как NPC. Что это такое? Это сокращение от Non-Player Character. НПС — это неигровой персонаж, которым управляет не пользователь, а специальная программа. НПС может общаться с персонажем, давать ему подсказки или просто органично вливаться в сюжет игры.</p><p>Урок №19. Добавляем инвентарь нашему персонажу</p><p>Данный урок мы посвятим инвентарю. Как сделать, чтобы когда персонаж касается предмета, он сразу же появлялся у него в инвентаре? Об этом вы узнаете в нашем уроке.</p><p>Урок №20. Создаём Шутер</p><p>Пожалуй, нет такого геймера, который не любит стрелялки. Сегодня на рынке представлен огромный выбор шутеров с разнообразным сюжетом. Но теперь и у вас есть уникальная возможность создать собственный шутер.</p><p>На уроке мы расскажем, как правильно настраивать камеру (хотите вы играть от первого лица или нет?), добавим оружие, расскажем, как добавить звуковые эффекты и многое другое.</p><p>Урок №21. Создаём Flappy Bird на Юнити</p><p>Многие из вас играли в Flappy Bird. Это весёлая мобильная игра, в которой птичка лавировала между трубами и всеми силами старалась как можно дольше продержаться в воздухе. На уроке мы расскажем, как своими руками создать Flappy Bird на Юнити.</p><p>Урок №22. Выбор персонажа в игре. Играйте кем захотите</p><p>Кем вы хотите играть? Может быть Железным Человеком? Или хотите, чтобы в шутере поучаствовал Лионель Месси? А может вы хотите, чтобы в игре принял участие герой, похожий на вас? Тогда скорее открывайте наш следующий урок. В нём мы расскажем, как добавить возможность выбора персонажа.</p><p>Урок №23. Магазин</p><p>Мы создадим интерфейс магазина, добавим различные товары, а также напишем специальный скрипт, чтобы все покупки из магазина сразу же перемещались в ваш инвентарь.</p><p>После прохождения курса и ознакомлением со всеми возможностями платформы, со временем вы сможете создавать более сложные игры на игровом движке.</p>]]></content:encoded>
    </item>
    <item>
      <title>Создаём простой зомби-шутер на Unity</title>
      <link>https://tproger.ru/articles/sozdajom-prostoj-zombi-shuter-na-unity</link>
      <comments>https://tproger.ru/articles/sozdajom-prostoj-zombi-shuter-na-unity?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Дмитрий Головин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/sozdajom-prostoj-zombi-shuter-na-unity</guid>
      <description><![CDATA[<p>Простой зомби-шутер на Unity создаётся пошагово; пример показывает базовый процесс геймдева и подходит новичкам, осваивающим разработку игр.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/sozdajom-prostoj-zombi-shuter-na-unity">Создаём простой зомби-шутер на Unity</a>»</p>]]></description>
      <category><![CDATA[Для начинающих]]></category>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Гостевая публикация]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 20 Sep 2021 13:47:35 GMT</pubDate>
      <content:encoded><![CDATA[<p>В преддверии старта нового потока курса <a href="https://otus.pw/9xCN/">«Unity Game Developer. Professional»</a>, подготовили статью по мотивам урока от преподавателя курса - Николая Запольнова, где он пошагово разъяснил процесс создания простейшего шутера на Unity.</p><p>Статья нацелена в первую очередь на новичков с базовыми знаниями терминологии программирования. Главной её целью является желание показать, что при некотором багаже знаний вы сможете довольно скоро освоить работу с движком и создадите свои первые проекты.</p><p>Последующие разделы могут показаться простыми и не дадут ничего нового, если вы уже опытный специалист в разработке игр на Unity.</p><h2>Введение в Unity</h2><p>Можете пропустить раздел, если вы уже знакомы с этим редактором. Переходите к разделу «Игровой мир: начало».</p><p>Базовым блоком при создании шутера на Unity является «сцена», представляет, обычно, 1 уровень игры. Однако, бывает так, что одна сцена включает несколько уровней, или один объёмный уровень дробится на ряд сцен. Сцена, как матрёшка, состоит из объектов, наполненных компонентами.</p><p>Именно компоненты делают интерфейс живым и привлекательным, обеспечивают такие функции как, например, визуализация, анимация, реалистичность. С помощью C# разработчик может сам написать их, сформировать нужную ему логику будущей игры. Перейдём непосредственно к движку.</p><p>После запуска редактора и создания нового файла, перед вами появится окно, состоящее из 4-х основных областей:</p><figure><img src="https://media.tproger.ru/uploads/2021/09/1-3.png" alt="" /></figure><p>Слева вверху расположено окно Hierarchy, в котором отображается иерархия игровых объектов сцены: камеру (Main Camera), отображающую виртуальный мир глазами играющего, и источник света (Directional Light), определяющий направление освещённости сцены, без которого она выглядела бы как чёрное поле.</p><p>По центру расположено окно Scene, где, собственно, можно визуально редактировать уровень — вращать и передвигать с помощью мыши, получая наглядный результат. Справа от него находится вкладка Game (на скриншоте она неактивна). При переключении на неё кнопкой со значком воспроизведения сцена отображается через Main Camera.</p><p>В правой части экрана можно увидеть фрэйм Inspector — представляет собой набор полей с параметрами отмеченного объекта с возможностью их редактирования. На картинке видны 2 компонента: Transform, отвечающий за положение камеры, и, непосредственно, Camera — воплощает её функционал. Компонент Transform свойственен всем игровым объектам в Unity.</p><p>Внизу окна находится вкладка Project, содержащая цифровые объекты проекта (ассеты). По сути, это файл с данными, которые можно применить для создания сцен и интерфейса: текстуры, двумерные и трёхмерные элементы, звуковое сопровождение, анимация и конфигурации. Разработчики, не обладающие выдающимися навыками графического дизайна, могут загружать ассеты из Unity Asset Store в том числе и бесплатно. Также в Unity поддерживается опция загрузки файлов в стандартных форматах, например, png, jpg, fbx.</p><p>Справа от Project можете наблюдать неактивную вкладку Console. Здесь отображаются баги (ошибки), которые стоит периодически отслеживать, и сюда можно вводить части кода с целью отладки.</p><h2>Игровой мир: начало</h2><p>Неумение рисовать для разработчика игр — не приговор. В представленном примере взята графика из бесплатного раздела Unity Asset Store (ссылки внизу статьи), с помощью которой был собран элементарный уровень:</p><figure><img src="https://media.tproger.ru/uploads/2021/09/2.jpeg" alt="" /></figure><p>Выбранные элементы можно просто перетащить в окно проекта при помощи мыши и расположить по желанию:</p><figure><img src="https://media.tproger.ru/uploads/2021/09/3.gif" alt="" /></figure><p>Помимо этого, в Unity можно в один клик наполнять сцену типовыми объектами: сфера, куб, плоскость. Это делается нажатием правой кнопки мыши в области Hierarchy, из предложенного списка можно выбрать нужный элемент. В качестве примера — 3DObject⇨Plane. В представленной сцене из этих плоскостей с наложением текстуры собран асфальт. Текстура выбрана также в Unity Asset Store.</p><h3>Важно!</h3><p><i>Наземное покрытие состоит именно из нескольких областей, а не из одной с высоким значением scale, поскольку при такой схеме покрытие выглядит более естественно, без чрезмерного увеличения текстуры. Можно, конечно, поиграть с параметрами материала, но представленный вариант является более простым и подходит для новичков.   </i></p><h2>И всё-таки оно движется!</h2><p>Игровой мир уже вырисовывается, но на уровне пока отсутствует динамика. Согласно концепции, игрок будет противостоять атакам зомби, для этого они должны не только «видеть» персонажа игрока, двигаться в его сторону, но и огибать преграды на пути.</p><p>Для реализации этих функций используется инструмент «навигационная сетка» (Navigation Mesh). По конфигурации уровня он вычисляет пространства, где можно двигаться, группирует их и даёт возможность поиска оптимального расстояния между двумя точками сцены. Информация сохраняется в ассет с возможностью последующего редактирования, это называется «запекание» (baking). Для более сложных сцен с динамичными преградами используется компонент NavMeshObstacle.</p><p>Обратите внимание, чтобы Unity мог распознать объекты верно, следует в области “Inspector” напротив объектов отметить Navigation Static и кликнуть стрелку вниз для параметра Static:</p><figure><img src="https://media.tproger.ru/uploads/2021/09/4.jpeg" alt="" /></figure><p>И хоть пока мы не будем обращаться к остальным опциям в данной области, они также важны в процессе качественной визуализации сцены. Вам будет полезно с ними разораться позже, поскольку даже одна галочка может серьёзно улучшить внешний вид.</p><p>В меню нужно выбрать Window⇨AI⇨Navigation⇨Bake. В открывшейся вкладке Unity попросить обозначить физические параметры объектов: радиус персонажа, высоту ступеней и так далее. Оставляем предустановленные значения, нажимаем кнопку Bake.</p><figure><img src="https://media.tproger.ru/uploads/2021/09/5.gif" alt="" /></figure><p>После проведения нужных расчётов Unity выдаст результат:</p><figure><img src="https://media.tproger.ru/uploads/2021/09/6.jpeg" alt="" /></figure><p>Область для передвижений обозначается синим цветом. Вокруг препятствий автоматически устанавливается небольшое дополнительное расстояние, которое зависит от радиуса героя. Благодаря этому персонаж не будет застревать в текстурах.</p><p>При наличии навигационной сетки можно использовать NavMeshAgent для поиска и управления траекторией перемещения игровых объектов в сцене.</p><p>Перейдём к персонажу зомби. Для его создания нужно добавить объёмную модель из ассетов и компонент NavMeshAgent:</p><figure><img src="https://media.tproger.ru/uploads/2021/09/7.gif" alt="" /></figure><p>На языке C# разработаем компонент, чтобы персонаж начал движение, а NavMeshAgent знал направление.</p><p>В Unity нужно выбрать корневую папку Assets, где нажатием правой кнопки мыши будет создана папка Scripts. Именно в ней будут находится все скрипты для облегчения поиска. В созданной папке создаём файл C# с именем Zombie и добавим в соответствующий игровой объект:</p><figure><img src="https://media.tproger.ru/uploads/2021/09/8.gif" alt="" /></figure><p>Скрипт открывается двойным щелчком левой кнопки мыши. Далее представлен результат в Unity:</p><p>Unity подключил библиотеки для типовой заготовки System.Collections и System.Collections.Generic, которые часто необходимы в коде игр, а также UnityEngine с интерфейсом прикладного программирования движка.</p><p>Автоматически был создан класс под названием Zombie, которое совпадает с именем файла. Это важно, поскольку так Unity соотносит компонент и относящийся к нему скрипт.</p><p>Класс является производным от MonoBehaviour (базового класса для пользовательских компонентов). Он содержит 2 метода, которые будут вызываться автоматически: Start — после загрузки сцены, Update — покадрово. Это одни из множества аналогичных функций, которые вызывает движок. С полным перечнем можно ознакомиться здесь: <a href="https://docs.unity3d.com/Manual/ExecutionOrder.html">https://docs.unity3d.com/Manual/ExecutionOrder.html</a>.</p><p>Пришло время заставить зомби перемещаться по карте. Следует в начало файла вставить директиву using UnityEngine.AI, чтобы подключить библиотеку UnityEngine.AI, где хранятся NavMeshAgent и иные классы, относящиеся к сетке. Для этого добавим в начало файла директиву using UnityEngine.AI.</p><p>Доступ к нужному классу можно получить, применив метод GetComponent (метод вызывается из компонента и возвращает значение в виде ссылки на любой другой компонент того же объекта). Создадим в классе поле NavMeshAgent navMeshAgent, с помощью Start получим ссылку на NavMeshAgent, и зададим движение в точку с координатами (0;0;0). Итоговый код должен иметь вид:</p><p>После запуска игры зомби двинется в центр сцены:</p><figure><img src="https://media.tproger.ru/uploads/2021/09/9.gif" alt="" /></figure><p>Уровень стал динамичнее, но не хватает противостояния. Нужно добавить игрока, который самоотверженно будет сражаться с мертвяками.</p><p>Игровой объект Player создаётся так же, как и для зомби — на основе 3D-модели. Выберем теперь полицейского, дополним компонентом NavMeshAgent и скриптом с соответствующим названием.</p><p>Файл с кодом Player пока остаётся без изменений, при этом потребуется внести исправления в скрипт Zombie. Игрока лучше наделить более высоким приоритетом, указав для свойства Priority в компоненте NavMeshAgent число меньше 50. Таким образом, при встрече на карте игрок будет иметь более крепкую позицию и сможет оттолкнуть зомби.</p><p>Чтобы преследовать игрока, зомби нужно видеть его местоположение. С помощью стандартного метода FindObjectOfType необходимо получить ссылку на игрока в классе Zombie. После этого обратимся к компоненту transform игрока с запросом значения position. Чтобы шутер был захватывающим, важно, чтобы зомби нападали в течение всей игры, а не только в начале, поэтому надо задать цель для NavMeshAgent в Update. Скрипт выглядит так:</p><p>Проверяем, находит ли зомби цель для нападения:</p><figure><img src="https://media.tproger.ru/uploads/2021/09/10.gif" alt="" /></figure><p>Итак, всё готово для зомби-апокалипсиса. Но пока главный герой неподвижен, у него нет шансов на спасение, поэтому надо научить его уворачиваться от атаки.</p><p>Игрок управляется с помощью определённых комбинаций нажатия клавиш, значения которых в Unity возвращает метод GetKey, входящий в стандартный класс Input.</p><h3>Важно!</h3><p><i>Такое решение задачи принято для упрощения кода. Однако, общепринятым считается использование Input.GetAxis и биндинг через Project Settings⇨Input Manager.</i></p><p>Настало время внести корректировки в скрипт Player:</p><p>По примеру персонажа зомби при помощи Start получена ссылка на NavMeshAgent игрока, зафиксированная в поле класса. Также её следует добавить в поле moveSpeed. Его значение доступно для редактирования сразу в области Inspector в Unity, поскольку это общедоступное поле. Такая опция будет по достоинству оценена гейм-дизайнером, если он задействован в работе над проектом.</p><p>Устанавливаем значение скорости равное 10:</p><figure><img src="https://media.tproger.ru/uploads/2021/09/11.gif" alt="" /></figure><p>Для проверки нажатия стрелок на клавиатуре и управления траекторией движения персонажа следует использовать Input.GetKey из метода Update. В Unity использованы координаты X и Z для обозначения земли, а ось Y направлена вверх, перпендикулярно им.</p><p>Вектор движения dir сформирован, теперь его нужно нормализовать и умножить на ранее заданную скорость. Результат итерации отправляется в navMeshAgent.velocity, нужное значение будет добавлено автоматически. Нормализация нужна, чтобы вектор не был длиннее единичного, а объект двигался с равной скоростью как по диагонали, так и по прямой.</p><p>Теперь персонажи имеют одинаковую подвижность, что можно проверить при запуске игры:</p><figure><img src="https://media.tproger.ru/uploads/2021/09/12.gif" alt="" /></figure><p>Важно, чтобы камера двигалась вместе с персонажем. В этом поможет несложный скрипт, назовём PlayerCamera:</p><p>Главное, чтобы он был понятен. В качестве особенностей стоит отметить замену Update на LateUpdate — схожий по логике, но выполняется только после всех скриптов уровня. Эта замена используется, поскольку NavMeshAgent должен рассчитать новое расположение персонажа до перемещения камеры. В противном случае глаз будет резать эффект «подёргивания». После закрепления этого компонента за объектом Main Camera, при запуске игры, камера будет следовать за главным персонажем.</p><h2>Во-первых, анимация — это красиво</h2><p>После того, как персонажи игры стали подвижные, настал момент сделать их реалистичнее и привлекательнее. В этом поможет компонент Animator и инструмент Animator Controller.</p><p>Последний задаёт разные автоматически сменяемые состояния объекта, к которым привязывается определённая анимация. Чтобы применить этот инструмент к объекту, надо создать вложенную папку Animator Controller в директории Animations. Переименуем её в Zombie. Редактор примет вид:</p><figure><img src="https://media.tproger.ru/uploads/2021/09/13.png" alt="" /></figure><p>На данном этапе состояния отсутствуют. Есть точки входа и выхода: Entry и Any State, Exit. Можно добавить несколько анимацией из ассетов:</p><figure><img src="https://media.tproger.ru/uploads/2021/09/14.gif" alt="" /></figure><p>Первая анимация, которую перетащили в область, привязана к точке начала, и будет проигрываться на старте уровня. Для перехода к другим состояниям нужно обозначить правило.</p><p>Нужно выбрать кнопку Parameters в левом верхнем углу, далее нажать на «+», выбрав параметр типа float. Новый параметр назовём speed:</p><figure><img src="https://media.tproger.ru/uploads/2021/09/15.gif" alt="" /></figure><p>Следует создать 2 перехода: Z_idle_A в Z_run и в обратную сторону, чтобы воспроизводилась анимация при значении speed больше 0.</p><p>Чтобы перейти из idle в run нужен двойной щелчок мыши по прямоугольнику Z_idle_A, выбираем Make Transition. Далее настраиваем параметры появившейся стрелки. Нужно отжать чекбокс Has Exit Time, в противном случае анимация будет воспроизводиться не по нашему условию. Также в списке Conditions необходимо выбрать «+», чтобы значение speed было больше 0.</p><p>Аналогичный алгоритм при переходе в обратную сторону. Теперь условие speed принимает значение меньше 0.0001. Параметр float пока не проверен на равенство:</p><p>Контроллер переместим мышью в соответствующее поле компонента Animator к объекту Zombie:</p><figure><img src="https://media.tproger.ru/uploads/2021/09/16.gif" alt="" /></figure><p>Поскольку MovementAnimator относится к игровому объекту Zombie, Animator расположен в дочернем объекте, таким образом, для получения доступа к Animator необходимо использовать стандартный метод GetComponentInChildren.</p><figure><img src="https://media.tproger.ru/uploads/2021/09/18.gif" alt="" /></figure><p>Далее необходимо отправить запрос о векторе скорости у NavMeshAgent в Update, рассчитать длину и передать результат в параметр скорости speed.</p><p>Чтобы анимировать зомби, надо добавить MovementAnimator в объект Zombie:</p><figure><img src="https://media.tproger.ru/uploads/2021/09/19.gif" alt="" /></figure><p>Код управления анимацией, помещённый в отдельный компонент MovementAnimation, даёт возможность не создавать контроллер игрока заново, а скопировать уже созданный для зомби. Чтобы скопировать, следует выбрать файл Zombie и нажать горячие клавиши Ctrl+D. Нужно внести изменить анимации на m_idle_А и m_run.</p><h3>Потребуется ещё ряд дополнений</h3><p>В класс Zombie добавим несколько строк.</p><p>В метод Start:</p><p>И в Update:</p><p>В NavMeshAgent задан такой угол поворота, что персонаж с задержкой во времени реагирует на изменение траектории движения. Добавив эти 2 строчки, можно избавиться от такого недочёта: первая строка передаёт NavMeshAgent сигнал о снятии управления поворотом (сделаем это сами); вторая — назначает поворот в сторону по вектору движения.</p><h3>Важно!</h3><p>Чтобы назначить поворот объекта, в 3D-графике используются эйлеровы углы, матрицы поворота или кватернионы. Первые 2 подвержены эффекту шарнирного замка (Gimbal Lock) и часто не удобны в работе, поэтому в данном примере использован кватернион. Даже при использовании матриц и углов Эйлера в Unity, они всё равно хранятся в кватернионах. В остальном, инструментарий движка настолько удобен, что позволяет разработчику не вникать в математические тонкости.</p><h2>Вижу цель, вижу препятствия</h2><p>Главный герой наконец-то может спастись бегством. Однако, речь шла о зомби-апокалипсисе — от толпы долго убегать не получится. Нужно отстреливаться, благо, пистолет в руках персонажа-полицейского уже имеется.</p><p>Размещаем на плоскости земли курсор под управлением мыши, чтобы игрок мог выбирать цель перед выстрелом. На мониторе курсор перемещается в 2D-пространстве, а в игровой сцене трёхмерное пространство. При этом играющий видит уровень через глаз, где в одной точке собираются все лучи света. После их объединения получается пирамида видимости:</p><figure><img src="https://media.tproger.ru/uploads/2021/09/20.png" alt="" /></figure><p>Человеческое зрение улавливает только элементы, попавшие в эту пирамиду. Система автоматически усекает пирамиду ближней и дальней плоскостями. Ближняя плоскость (окрашена жёлтым) находится со стороны экрана, который физически не может отображать элементы, расположенные к наблюдателю ближе него. Дальняя плоскость отсекается, поскольку ресурсы компьютера ограничены — невозможно продлить луч в бесконечность.</p><p>Чтобы определить объект, на который указывает курсор, нужно выпустить из точки его расположения луч от ближней плоскости к дальней. С точки зрения играющего, тем самым объектом станет первый, с которым пересечётся луч.</p><figure><img src="https://media.tproger.ru/uploads/2021/09/21.png" alt="" /></figure><p>Задействуя метод Raycast из класса Physics, можно выстроить луч, найти его пересечения с объектами на уровне. Он определит пересечения со всеми объектами, когда для нас важно, чтобы курсор передвигался по земле. Нужно задать в Unity ограниченный набор объектов для поиска (например, только плоскость земли).</p><p>Выделив игровой объект, можно увидеть вверху инспектора выпадающий список Layer, начально значение которого Default. В списке нам интересен пункт Add layer…, предназначенный для редактирования слоёв. Нужно добавить слой с<br />названием Ground:</p><figure><img src="https://media.tproger.ru/uploads/2021/09/22.gif" alt="" /></figure><p>Всем плоскостям земли в сцене нужно назначить слой Ground, что позволит указать в скрипте метод Physics.Raycast для реализации проверок пересечений.</p><p>Далее перетащим спрайт курсора из ассетов в сцену (пример: Spags Assets⇨Textures⇨Demo⇨white_hip⇨white_hip_14):</p><figure><img src="https://media.tproger.ru/uploads/2021/09/23.gif" alt="" /></figure><p>Курсору добавлен поворот вокруг оси X на 90° (пусть лежит на земле), масштаб: 0.25, Y = 0.01. Значение Y задано с целью избежать эффект Z-fighting. Для определения близости объектов к камере, видеокартой производятся расчёты с плавающей точкой, и если задать значение равное 0 для курсора и для земли, то они начнут «спорить». В итоге курсор будет частично просвечиваться и мерцать при перемещении. Значение 0.01 оптимально, чтобы сократить оплошности в расчетах видеокарты, при этом визуально не даёт ощущение, что курсор парит над землёй.</p><p>Далее назовём объект Cursor, добавим скрипт с аналогичным именем и следующим кодом:</p><p>Редактор Unity для изображения курсора применяет компонент SpriteRenderer, поскольку это двумерный рисунок (спрайт). Чтобы управлять включением компонента, получаем ссылку на него в Start.</p><p>В этом же методе надо преобразовать ранее созданное имя слоя Ground в битовую маску, поскольку Unity в процессе поиска пересечений пользуется битовыми масками для фильтрации объектов, а метод LayerMask.GetMask возвращает битовую маску, соответствующую указанному слою.</p><p>Получив доступ к главной камере уровня через Camera.main в методе Update, даём команду преобразовать координаты мыши (которые получены с помощью Input.mousePosition) в 3D-луч. Этот трёхмерный объект надо передать в метод Physics.Raycast и проверить пересечения с объектами в сцене. Unity просит обозначить максимальное расстояние, значение 1000 подойдёт.</p><p>Если луч и объект не пересеклись, то отключаем курсор с помощью SpriteRenderer.  В противоположной ситуации перемещаем курсор в место пересечения. От точки пересечения перенимаем значения координат X и Z, а значение координаты Y не стоит менять, чтобы не получить эффект Z-fighting.</p><p>Далее к объекту Cursor добавим компонент Cursor.</p><p>Самое время дополнить скрипт Player. Сперва нужно добавить поле Cursor cursor. После допишем несколько строк в Start:</p><p>cursor =FindObjectOfType&lt;Cursor&gt;();</p><p>navMeshAgent.updateRotation= false;</p><p>В метод Update нужно добавить код, чтобы персонаж игрока поворачивал в нужную сторону вслед за курсором:</p><p>Координата Y по-прежнему 0.01.</p><h2>Стрельба по зомби как призвание</h2><p>Главный герой теперь видит атакующего зомби, но ему всё также нечего противопоставить ему. Пора научиться стрелять, чтобы выжить в тяжёлых условиях игры. Общеизвестно, что заправский стрелок всегда пользуется трассирующими пулями.</p><p>Нужно создать новый объект Shot и добавить к нему LineRenderer. В поле Width обозначается ширина — 0.04 будет достаточно. На изображении видно, что объект имеет ярко-фиолетовый цвет — так в Unity обозначаются объекты без материала.</p><p>Материал играет важную роль в каждом трёхмерном движке, с его помощью полностью описывается наружность объекта, в том числе освещённость, текстура, шейдер.</p><p>В папку Materials положим материал под названием Yellow. Для него выберем стандартный шейдер Unlit/Color. Он не учитывает освещённость, поэтому пулю будет хорошо видно.</p><p>Применяем жёлтый цвет к объекту:</p><figure><img src="https://media.tproger.ru/uploads/2021/09/24.gif" alt="" /></figure><p>Назначаемего LineRenderer’у:</p><figure><img src="https://media.tproger.ru/uploads/2021/09/25.gif" alt="" /></figure><p>Добавим скрипт Shot:</p><p>Этот скрипт добавляем к объекту Shot.</p><p>Чтобы отображать 1 выстрел на кадр с минимумом кода, была применена хитрость. Во-первых, применён не Update, а FixedUpdate, которому присуща определённая периодичность вызова (по умолчанию её значение равно 60 кадров в секунду). Во-вторых, введена переменная visible с значением true во время выведения выстрела на экран. В следующем цикле FixedUpdate значение переменной меняется на false, и соответственно объект выстрела перестаёт отображаться. Эта логическая переменная работает как счётчик от 1 до 0.</p><p>Используем метод gameObject.SetActive, чтобы выключить объект. Он включает или выключает игровой объект, на котором расположен интересующий нас компонент. Отключенные объекты не выводятся на экран, а для их компонентов не вызываются методы. Благодаря этому методу действия персонажа выглядят логично — выстрел не видно, когда герой не стреляет.</p><p>В скрипте Player используем публичный метод Show для отображения пули при выстреле. Перед этим, чтобы выстрел производился из верного отверстия, нужно определить координаты дула оружия. После того, как в трёхмерной модели героя нашли объект Bip001⇨Bip001Pelvis⇨Bip001 Spine⇨Bip001 R Clavicle⇨Bip001 R UpperArm⇨Bip001 R Forearm⇨Bip001 R Hand⇨R_hand_container⇨w_handgun, нужно добавить в него «дочку» GunBarrel, расположив максимально близко к дулу.</p><figure><img src="https://media.tproger.ru/uploads/2021/09/26.gif" alt="" /></figure><p>Теперь скрипт Player дополним следующими полями:</p><p>Подобно moveSpeed, публичное поле gunBarrel доступно также в Инспекторе. Пора назначить полю ранее созданный игровой объект:</p><figure><img src="https://media.tproger.ru/uploads/2021/09/27.gif" alt="" /></figure><p>Теперь при запуске игры персонаж может отстреливаться от зомби.</p><figure><img src="https://media.tproger.ru/uploads/2021/09/28.gif" alt="" /></figure><p>Но выстрелы не уничтожают зомби, а пролетают сквозь него. Это предсказуемо, поскольку в коде выстрела не отслеживается попадание в цель.</p><p>Исправить это довольно просто­ — в классе Player между строками var to = … и shot.Show(…) допишем строки:</p><p>Чтобы луч вылетал из дула пистолета, и можно было определить факт его пересечение с другими объектами в сцене, используется Physics.Raycast.</p><p>Однако, создатели ассета добавили объектам сцены коллайдер, кроме персонажей, поэтому пуля по-прежнему будет пролетать через зомби. Исправим это упущение.</p><p>Коллайдер является компонентом для определения столкновений объектов в сцене, обычно имеет простую геометрическую форму (куб, сфера, например).  Точность столкновений при этом невысока, зато формулы пересечений простые и не требуют сложных вычислений. В случаях, когда точность важнее производительности, можно использовать MeshCollider. Нам подойдёт пока стандартный компонент CapsuleCollider:</p><figure><img src="https://media.tproger.ru/uploads/2021/09/29.gif" alt="" /></figure><p>Пуля больше не пролетает сквозь зомби, но всё ещё не убивает его.</p><h2>Зомби — сдохни или умри!</h2><p>Первым делом в Animation Controller зомби нужно добавить анимацию смерти. Перетаскиваем туда саму анимацию AssetPacks⇨ToonyTinyPeople⇨TT_demo⇨animation⇨zombie⇨Z_death_A.  Параметр died с типом trigger создаётся для её активации. Триггер, в отличие от других параметров, выступают как вызов функции, их значение откатывается к начальному после выполнения перехода. Игрок одинаково успешно может убить как идущего зомби, так и застывшего на месте, поэтому переход следует добавить из состояния Any State:</p><figure><img src="https://media.tproger.ru/uploads/2021/09/30.gif" alt="" /></figure><p>Дополним скрипт Zombie следующими полями:</p><p>В Start класса Zombie внесём:</p><p>Добавим проверку в начале метода Update:</p><p>В классе Zombie укажем метод Kill:</p><p>Необходимость создания новых полей очевидна. В методе Kill ставится флаг гибели зомби, удаляются компоненты CapsuleCollider, MovementAnimator и NavMeshAgent из игрового объекта и активируется проигрывание анимации смерти в контроллере.</p><p>Компоненты нужно удалить, чтобы зомби после поражения не перемещался и перестал быть препятствием для пуль. В идеале, после воспроизведения анимации смерти зомби было бы хорошо как-то изящно избавляться от тела, чтобы поддерживать производительность на достаточно хорошем уровне. Простейший способ — добавить вызов Destroy(gameObject, 3), и в течение 3-х секунд Unity удалит этот игровой объект.</p><p>В качестве финального аккорда в класс Player, метод Update, в месте вызова Physics.Raycast, к описанию случая обнаружения пересечения, необходимо добавить проверку:</p><p>Вызов Physics.Raycast передаёт данные о пресечении в переменную hit. А именно, появится ссылка на компонент Transform объекта, с которым пересекся луч, в поле transform. Зомби будет убит, если в объекте обнаружен компонент Zombie.</p><p>Зрелищность игры отлично дополнит эффектная смерть врага. Можно добавить простую систему частиц к зомби. Основываясь на математических или физических закономерностях, системы частиц управляют большим количеством крошечных двумерных объектов, к примеру, заставляя их разлетаться по сторонам.  При помощи таких систем в геймдеве реализуются различные эффекты: пламя, капли дождя, метель и так далее. В данном случае — для имитации брызг крови во время смерти врага.</p><p>Кликаем правой кнопкой мыши по объекту Zombie, чтобы добавить систему частиц (Effects⇨Particle System):</p><h3>Остановимся на таких параметрах:</h3><h4>Transform:</h4><p>Position: Y 0.5</p><p>Rotation: X -90</p><h4>Particle System</h4><p>Duration: 0.2</p><p>Looping: false</p><p>Start Lifetime: 0.8</p><p>Start Size: 0.5</p><p>Start color: зеленый</p><p>Gravity Modifier: 1</p><p>Play on Awake: false</p><p>Emission:</p><p>Rate over Time: 100</p><p>Shape:</p><p>Radius: 0.25</p><p>В итоге выглядеть будет так:</p><figure><img src="https://media.tproger.ru/uploads/2021/09/31.gif" alt="" /></figure><p>И наконец активируем в методе Kill класса Zombie:</p><figure><img src="https://media.tproger.ru/uploads/2021/09/32.gif" alt="" /></figure><h2>Зомби-апокалипсису быть!</h2><p>Противостоять единственному зомби за всю игру скучно, никакого адреналина. То ли дело побороть полчища зомбаков — вот масштаб, который нужен.</p><p>Чтобы решить эту задачу, требуется создать скрипт с названием EnemySpawner и следующим наполнением:</p><p>Используя публичное поле Period, геймдизайнер способен задать частоту создания нового врага прямо в Инспекторе. Также есть вариативность — можно выбрать нужного персонажа в поле Enemy. В поле TimeUntilNextSpawn отсчитывается время до следующего появления (в Start для этого поля вносится рандомное значение, чтобы спавнеры с одинаковыми задержками не добавляли зомби одновременно), и при помощи метода Instantiate в сцену будет добавлен новый враг.</p><p>Чтобы задать врага в поле Enemy, используется инструмент префабы (Prefabs). Он представляет собой фрагмент сцены, вынесенный в отдельный файл, его можно вставлять в одну и ту же сцену или в разные. Удобство также состоит в том, что при редактировании файла префаба, изменения будут внесены во всех сценах. Prefabs можно использовать как заготовку для Instantiate, чем и воспользуемся.</p><p>Сделаем префаб (создаётся при перетаскивании игрового объекта в окно проекта из иерархии) из объекта зомби и создадим спавнер:</p><figure><img src="https://media.tproger.ru/uploads/2021/09/33.gif" alt="" /></figure><p>В текущем проекте 4 спавнера врагов, и вот, как это выглядит:</p><figure><img src="https://media.tproger.ru/uploads/2021/09/34.gif" alt="" /></figure><p>Теперь это настоящее нашествие зомби!</p><h2>Заключение</h2><p>Пока данный проект далёк от идеала, многие аспекты остались не учтёнными, например, звук, пользовательский интерфейс. Однако, в данной статье есть краткая и довольно ёмкая вводная информация для интересующихся людей, которая даёт представление о работе Unity, его базовых возможностях и инструментарии.</p><p>На этом всё. А всех, кому понравился урок, приглашаем на бесплатный интенсив по теме: <b>«Создание гексагональной карты, основы игры Цивилизация»</b>, который пройдет 21 и 22 сентября на платформе OTUS. В рамках интенсива вы научитесь процедурно генерировать меш. Проводить оптимизацию карты. Мы вместе создадим основу для механик пошаговой игры. Научимся сохранять и загружать карту.</p><p><a href="https://otus.pw/MBly/">Записаться на интенсив. День 1</a></p><p><a href="https://otus.pw/siF7/">Записаться на интенсив. День 2</a></p>]]></content:encoded>
    </item>
    <item>
      <title>GitHub назвал лучшие проекты игрового хакатона Game Off 2020</title>
      <link>https://tproger.ru/news/github-nazval-luchshie-proekty-igrovogo-hakatona-game-off-2020</link>
      <comments>https://tproger.ru/news/github-nazval-luchshie-proekty-igrovogo-hakatona-game-off-2020?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/github-nazval-luchshie-proekty-igrovogo-hakatona-game-off-2020</guid>
      <description><![CDATA[<p>GitHub подвёл итоги Game Off 2020 на тему MOONSHOT и выбрал 21 игру. Среди примеров — платформер A Trip to the Moon, приключение MonMon и ролевая Bloodmoon.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/github-nazval-luchshie-proekty-igrovogo-hakatona-game-off-2020">GitHub назвал лучшие проекты игрового хакатона Game Off 2020</a>»</p>]]></description>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[C#]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 24 Dec 2020 10:46:35 GMT</pubDate>
      <content:encoded><![CDATA[<p>В официальном блоге GitHub появился новый пост. В нём подвели итоги Game Off 2020 — игрового джема компании, тематикой которого являлось слово MOONSHOT. Участникам хакатона предложили вдохновляться именно этим словом, которое можно интерпретировать как достижение нереальных на первый взгляд целей.</p><figure><img src="https://media.tproger.ru/uploads/2020/12/1-autoconverted-1.jpeg" alt="" /></figure><p>GitHub опубликовал подборку из 21 игры, которые оказались самыми интересными с точки зрения самих же разработчиков. Вот некоторые из них:</p><h3>A Trip to the Moon</h3><p><a href="https://namragamedev.itch.io/a-trip-to-the-moon">A Trip to The Moon</a> представляет из себя стандартный платформер. Основной особенностью игры является прекрасный визуал и история, вдохновлённая фильмом 1902 года выпуска «Un voyage dans la Lune».</p><h3>MonMon</h3><p>В <a href="https://dakotahall.itch.io/monmon">MonMon</a> игроку предстоит отправиться в совместное путешествие с персонажем, в чью честь и названа игра. Управляя главным героем, необходимо уворачиваться от ловушек и опасностей, а также побеждать противников, используя энергию, черпаемую от Луны.</p><h3>Bloodmoon</h3><p><a href="https://liveoverdrive.itch.io/bloodmoon">Bloodmoon</a> — это ролевая игра с элементами экшена. Своим внешним видом и философией она предельно похожа на подобные игры из 90-х.</p><p>С полной подборкой можно <a href="https://github.blog/2020-12-23-highlights-from-game-off-2020/">ознакомиться</a> в блоге GitHub. Там же есть информация и о том, какой проект на каком языке и движке был построен.</p><p>Источник: <a href="https://github.blog/2020-12-23-highlights-from-game-off-2020/">Блог GitHub</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Интеграция своей игры в Steam: работа с лобби в Steamworks.NET</title>
      <link>https://tproger.ru/articles/steamworks-matchmaking</link>
      <comments>https://tproger.ru/articles/steamworks-matchmaking?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Александр Ланский]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/steamworks-matchmaking</guid>
      <description><![CDATA[<p>Steamworks даёт инструменты для интеграции сервисов Steam в игру: как создать игровое лобби, работать с ним и что за площадка выросла с 2002 года.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/steamworks-matchmaking">Интеграция своей игры в Steam: работа с лобби в Steamworks.NET</a>»</p>]]></description>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 30 Oct 2019 14:10:09 GMT</pubDate>
      <content:encoded><![CDATA[<p>Мало кто из геймеров не слышал про Steam. Первое появление площадки приходится аж на 2002 г. На ней крупные издатели могли безопасно распространять игры.</p><p>Спустя десяток лет появился Steam Greenlight, который дал возможность попасть на площадку не только крупным студиям, но и обычным инди-разработчикам. Пользователи сами выбирали, какие игры они хотят видеть на площадке. Но из-за появления массы второсортных игр такую систему пришлось закрыть. На место Greenlight пришел Direct. По словам разработчиков, такая система должна сделать процесс публикации упорядоченным, прозрачным и доступным для новых разработчиков со всего света.</p><p>За почти два десятилетия Steam перестал быть просто площадкой цифрового распространения. В нём появилась внутренняя экономика, достижения, коллекционные карточки, инвентарь. Всё это необходимо для повышения вовлечённости игрока. Естественно, нужно было дать возможность разработчикам как-то интегрировать эти составляющие Steam в свои игры. Для этого был создан Steamworks.</p><p>История Steam как многопользовательской платформы началась с CS 1.6. Мультиплеер всегда был одним из ключевых аспектов в процессе игры. Площадка даёт игрокам возможность связываться между собой по одноранговой сети (P2P), либо использовать выделенные игровые серверы. Для первого случая, естественно, необходим матчмейкинг — процесс объединения игроков в игровую сессию. Набор игроков происходит в лобби, где игроки могут обсудить различные игровые аспекты, выбрать персонажей и карту. Steamworks даёт исчерпывающее API для работы с матчмейкингом.</p><p>Примечание Оригинальный Steamworks работает на C++. В этой же статье будет идти речь о C# — <a href="http://steamworks.github.io/">Steamworks.NET</a>. Это полноценная обёртка официального Steamworks. У Steam есть <a href="https://partner.steamgames.com/doc/api/ISteamMatchmaking">полная документация</a> для матчмейкинга.</p><h2>Установка (для Unity3D)</h2><ol><li>Скачайте из <a href="https://github.com/rlabrecque/Steamworks.NET">репозитория Steamworks.NET</a> актуальную версию SDK.</li><li>Переместите всё содержимое в папку Assets.</li><li>Запустите проект в Unity3D. После запуска в корне проекта создастся файл steam_appid.txt. В этом файле должен храниться ID вашего приложения в Steam. Если такового пока нет — можно использовать стандартный ID 480. Он принадлежит игре Spacewar.</li><li>Перезагрузите Unity3D, чтобы изменения файла вошли в силу.</li><li>Обратите внимание на наличие файла SteamManager.cs. Он выполняет несколько крайне важных функций. Если файла нет, то его всегда можно найти в репозитории.</li></ol><h2>Введение</h2><p>Ключевую роль в Steamworks играют Callback и CallResult. Обратные вызовы позволяют игре асинхронно работать со Steam.</p><p>Callback вызывается при каких-либо событиях в Steam. Это могут быть события получения сообщения в чате, изменение списка игроков лобби или даже открытие игрового оверлея. Рассмотрим следующий код, взятый с вики Steamworks.NET:</p><p>Вначале нужно создать экземпляр Callback. В данном случае это событие открытия/закрытия оверлея. Callback нужно инициализировать, привязав к нему функцию. Это стоит делать только убедившись, что Steam уже инициализирован: SteamManager.Initialized. Для этого лучше всего подойдёт метод OnEnable(), который вызывается сразу при старте игры.</p><p>Функции будет передана переменная, содержащая результат события. Для каждого типа обратного вызова свой тип переменной.</p><p>CallResult очень похож на Callback. Разница в том, что CallResult является результатом вызова определённого метода. Это может быть, к примеру, результат создания лобби или подключения к нему. Рассмотрим код с вики:</p><p>Как и в случае с Callback, тут сначала нужно создать экземпляр CallResult и инициализировать его. В методе Update() идёт проверка на нажатие пробела. По нажатию будет отправлен запрос на получение количества игроков. Как и в прошлом случае, после получения ответа вызывается указанный метод, которому будет передан результат.</p><p>Обратите внимание, что при работе с CallResult в сигнатуре метода всегда будет bool bIOFailure.</p><p>Для работы Callback и CallResult нужно циклически вызывать метод SteamAPI.RunCallbacks().</p><p>Примечание Вызов этого метода уже реализован в SteamManager.cs.</p><h2>Подготовка</h2><p>Для работы с матчмейкингом вам понадобятся некоторые структуры:</p><p>Каждое лобби имеет свои мета-данные: название карты или же режим игры. Нет каких-либо шаблонных данных — всё остаётся за разработчиком. Для работы с мета-данными понадобится структура LobbyMetaData. Она представляет собой стандартную пару ключ-значение.</p><p>В лобби каждый игрок представляет из себя структуру LobbyMembers, главным свойством которой является m_SteamID — уникальный ID пользователя Steam.</p><p>Структура Lobby описывает непосредственно лобби, а точнее — самые необходимые свойства, такие как:</p><ul><li>уникальный ID лобби;</li><li>ID владельца лобби;</li><li>список игроков в лобби;</li><li>максимальное количество игроков в лобби;</li><li>мета-данные лобби.</li></ul><p>Также потребуются некоторые экземпляры Callbacks и CallResult, а именно:</p><p>И как полагается, стоит инициализировать все обратные вызовы и создать для них соответствующие методы:</p><h2>Получение списка лобби</h2><p>Чтобы получить список существующих лобби, используйте:</p><p>После получения ответа вызовется метод OnLobbyMatchList. Методу передаётся только одно число — количество лобби. Его можно взять из переменной pCallback.m_nLobbiesMatching.</p><p>Внимание Steamworks может вернуть в списке не более 50 лобби.</p><p>После получения списка лобби их неплохо было бы отобразить. Перебор списка лобби будет выглядеть так:</p><p>Вам нужно будет создать какой-нибудь метод отображения списка лобби (RenderLobby), который будет принимать ID лобби:</p><p>Потом нужно дать возможность пользователю выбрать лобби, к которому он захочет подключиться, либо создать своё.</p><h2>Фильтр списка лобби</h2><p>Steamworks даёт возможность отфильтровать возвращаемый список по некоторым категориям.</p><p>Внимание Фильтр нужно устанавливать перед вызовом RequestLobbyList().</p><p>Вначале можно указать максимальное количество возвращаемых лобби. Чем меньше количество — тем быстрее обработается результат. Сделать это можно функцией SteamMatchmaking.AddRequestLobbyListResultCountFilter(max_count);.</p><p>Дальше есть несколько типов фильтров (все они находятся в классе SteamMatchmaking):</p><ul><li>AddRequestLobbyListDistanceFilter — задаёт расстояние, в пределах которого нужно искать лобби (исходя из IP пользователя). Принимает <a href="https://partner.steamgames.com/doc/api/ISteamMatchmaking#ELobbyDistanceFilter">ELobbyDistanceFilter</a>.</li><li>AddRequestLobbyListFilterSlotsAvailable — оставляет только те лобби, в которых доступно указанное количество свободных слотов.</li><li>AddRequestLobbyListNearValueFilter — сортирует лобби по степени удалённости значения от указанного. Таких фильтров можно указать несколько. Первый будет иметь больше всего влияния на сортировку, последний — меньше всего.</li><li>AddRequestLobbyListNumericalFilter — задаёт числовой тип сравнения.</li><li>AddRequestLobbyListStringFilter — задаёт строковый тип сравнения.</li></ul><p>Три последних фильтра сравнивают/сортируют лобби по их мета-данным.</p><p>Например, после создания лобби вы выбираете какую-либо локацию. Название локации нужно будет сохранить в мета-данных лобби под ключом map_name. Остальные пользователи смогут отфильтровать список лобби, в которых значение мета-данных map_name будет тем, которые они выставят. Таким образом игрок сможет найти лобби с той локацией, которую он захочет.</p><h2>Подключение к лобби</h2><p>Чтобы присоединиться к существующему лобби:</p><p>После удачного подключения к лобби будет вызван метод OnLobbyEnter. У всех же остальных участников лобби будет вызван метод OnLobbyChatUpdate.</p><h2>Создание своего лобби</h2><p>Чтобы создать собственное лобби, используйте метод:</p><p>Метод CreateLobby принимает два параметра. Первый — тип видимости лобби (по приглашению/для друзей/открытое); второй — максимальное количество игроков. В лобби может быть до 250 игроков, хотя на практике — от 2 до 5.</p><p>После удачного создания лобби будет вызван метод OnLobbyCreated.</p><h2>Пребывание в лобби</h2><p>Скорей всего, в лобби вам нужно будет отображать список игроков и чат. Для этого потребуются некоторые методы. К примеру, чтобы получить Sprite, содержащий аватар пользователя, используйте метод:</p><p>При этом разрешение аватара будет 128×128 пикселей.</p><p>Чтобы получить собственный Steam ID используйте SteamUser.GetSteamID(). Для получения своего имени — SteamFriends.GetPersonaName(). Если нужно получить имя другого пользователя — SteamFriends.GetFriendPersonaName(PlayerID).</p><h2>Отправка сообщений в лобби</h2><p>Steamworks даёт возможность обмена информацией в лобби. Это может быть уведомление о готовности какого-нибудь игрока, смена персонажа либо банальное получение сообщений в чате. В любом случае вам понадобится следующий метод:</p><p>Обратите внимание, что переменную current_lobby_id вы должны обновлять самостоятельно при создании собственного лобби либо подключении к существующему.</p><p>После получения сообщения у всех пользователей (в том числе и у отправителя) вызовется метод OnLobbyChatMsg.</p><p>Неплохим решением будет создание объекта данных, который будет иметь определённый тип (сообщение в чате, изменение готовности игрока и т. д.). Для отправки данных нужно будет его сериализовать в строку (например JSON) и отправить всем остальным через SendData. При получении такого сообщения нужно будет десериализовать сообщение в объект, определить его тип и обработать. Тогда OnLobbyChatMsg будет начинаться примерно так:</p><h2>Изменение мета-данных лобби</h2><p>Как говорилось ранее, мета-данные нужны для хранения какой-либо игровой информации о лобби: название карты, режим игры, минимальный уровень и т. д. Изменять мета-данные может только владелец лобби. Для быстрой проверки владения лобби можно использовать такой метод:</p><p>Для создания или изменения мета-данных используется этот метод:</p><p>Как понятно из кода, метод SetLobbyData работает по стандартной схеме ключ-значение. Для всех остальных участников лобби есть отдельный аналогичный метод SetLobbyMemberData.</p><p>Как только данные будут отосланы у всех клиентов вызовется метод OnLobbyDataUpdate. Новые игроки, которые только вошли в лобби, будут получать сразу новые значения мета-данных.</p><p>Примечание. Перед отправкой данных происходит небольшая задержка. Несколько изменённых подряд мета-данных будут объединены и отправлены одним пакетом.</p><p>Чтобы удалить мета-данные, используйте:</p>]]></content:encoded>
    </item>
    <item>
      <title>Unity можно изучать на новой официальной платформе Unity Learn</title>
      <link>https://tproger.ru/news/unity-learn-launch</link>
      <comments>https://tproger.ru/news/unity-learn-launch?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Саша Ушатинская]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/unity-learn-launch</guid>
      <description><![CDATA[<p>Обучающие материалы Unity собраны на платформе Unity Learn и разделены на три уровня — начинающий, средний и продвинутый. Русского языка пока нет.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/unity-learn-launch">Unity можно изучать на новой официальной платформе Unity Learn</a>»</p>]]></description>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 01 May 2019 15:04:52 GMT</pubDate>
      <content:encoded><![CDATA[<p>Появилась официальная платформа <a href="https://learn.unity.com/">Unity Learn</a> — там можно найти обучающие курсы для работы с движком. Все материалы делятся на три уровня — начинающий, средний и продвинутый. На русском языке пока ничего нет, но со временем материалы обещают адаптировать.</p><p>Создатели платформы говорят, что основная цель — систематизировать все официальные учебные материалы (часть из них вы могли видеть и раньше). А также помочь определиться с последовательностью изучения и трекингом результатов.</p><h3>Что есть уже сейчас?</h3><p>Больше всего сделано для начинающих, но по другим уровням тоже есть покрытие. Варианты обучения:</p><ul><li>Tutorials (249 штук): небольшие руководства по отдельным фишкам Unity.</li><li>Projects (19 штук): мини-проекты, в которых вы можете освоить несколько связанных инструментов и запилить что-то цельное.</li><li>Courses (6 штук): новая фича, большие курсы, каждый из которых помогает поэтапно освоить отдельную технологию.</li></ul>]]></content:encoded>
    </item>
    <item>
      <title>Вечерний обзор IT новостей 30 апреля</title>
      <link>https://tproger.ru/newsletter/30-apr-2019</link>
      <comments>https://tproger.ru/newsletter/30-apr-2019?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Саша Ушатинская]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/newsletter/30-apr-2019</guid>
      <description><![CDATA[<p>Запуск платформы Unity Learn, старт конференции Facebook F8, решение 20-летней криптографической задачки MIT и парк развлечений со стимпанк-VR.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/newsletter/30-apr-2019">Вечерний обзор IT новостей 30 апреля</a>»</p>]]></description>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Обучающие курсы]]></category>
      <category><![CDATA[Аргументы и функции]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 30 Apr 2019 19:17:32 GMT</pubDate>
      <content:encoded><![CDATA[<h3>UL</h3><p>Появилась официальная платформа <a href="https://learn.unity.com/">Unity Learn</a> — там можно найти обучающие курсы для начала работы с движком.</p><p>Уже сейчас можно порыться в коротких руководствах, мини-проектах для начинающих и даже целых курсах. Правда, на русском языке пока ничего нет, но со временем создатели обещают адаптировать материал.</p><p>О запуске и особенностях платформы Unity <a href="https://blogs.unity3d.com/2019/04/29/announcing-unity-learn-a-brand-new-learning-platform/">написала</a> в своём блоге.</p><h3>F8</h3><p>Началась конференция Facebook F8. Об основных новостях мы расскажем по итогу, а сейчас можно следить, например, на Verge — они ведут <a href="https://www.theverge.com/2019/4/30/18524255/facebook-8-announcements-instagram-oculus-messenger-whatsapp-redesign-dating-crushes-likes">отдельную страничку</a>, где собирают все тезисы мероприятия.</p><h3>MIT</h3><p>Программист-самоучка из Бельгии решил 20-летнюю <a href="https://people.csail.mit.edu/rivest/lcs35-puzzle-description.txt">криптографическую задачку из MIT</a>.</p><p>Задачу в 1999 году придумал Рональд Ривест, профессор Лаборатории искусственного интеллекта MIT и один из создателей <a href="https://ru.wikipedia.org/wiki/RSA">криптографического алгоритма RSA</a>. Сама по себе она не преследует никаких научных целей. Однако решать её нужно сугубо последовательными вычислениями, поэтому её создатель думал, что она решится не раньше 2034 года.</p><h3>VR</h3><p>В Нюрнберге в Германии <a href="https://www.engadget.com/2019/04/29/vr-bumper-cars-steampunk-scooter/">открыли тематический парк</a>, в котором благодаря VR можно покататься на ретро-футуристичных бамперных машинках в стиле стимпанк.</p><p>Снаружи игроки сидят в стандартных бамперных машинках и очках виртуальной реальности. А внутри игры они погружены в мир стимпанка. Там игроки ездят на машинках с паровыми двигателями и соревнуются друг с другом и противниками-роботами, перемещаясь по местности, заполненной обрывами и пропастями.</p>]]></content:encoded>
    </item>
    <item>
      <title>Практические советы по использованию профайлера в Unity</title>
      <link>https://tproger.ru/translations/unity-profiler</link>
      <comments>https://tproger.ru/translations/unity-profiler?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Александр Ланский]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/translations/unity-profiler</guid>
      <description><![CDATA[<p>Профайлер Unity даёт покадровые показатели производительности игры. Точнее всего они на билде для целевого устройства, но нужна отладочная сборка.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/translations/unity-profiler">Практические советы по использованию профайлера в Unity</a>»</p>]]></description>
      <category><![CDATA[Лучшая практика]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Для продвинутых]]></category>
      <category><![CDATA[Переводы]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 19 Apr 2019 08:09:47 GMT</pubDate>
      <content:encoded><![CDATA[<p>Инструмент профилировки Unity профайлер даёт конкретные данные о производительности игры и облегчает процесс её оптимизации. Профайлер предоставляет покадровые показатели, с помощью которых можно легче выявить проблемные места. Он также даёт информацию о производительности игры вне редактора. Имейте в виду, что использование профайлера частично сказывается на производительности. Чтобы увеличить точность показателей производительности, нужно создать билд для необходимой платформы и запустить игру на целевом устройстве. Хотя наилучшую производительность можно получить на неотладочной сборке (Development Build), профайлер Unity может работать только на отладочной сборке.</p><p>Чтобы активировать профайлер в приложении, необходимо в окне Build Settings (File→Build Settings) включить параметры Development Build и Autoconnect Profiler. При запуске приложения профайлер будет запускаться автоматически. Подключить профайлер также можно в Profiler Controls через выпадающий список в редакторе.</p><p>Профайлер даёт вам информацию о том, сколько времени требуется приложению на рендер каждого кадра, разбивая это на работу процессора, рендер, память, аудио, физику, UI и сеть.</p><p>Примечание Не сравнивайте показания профайлеров разных версий Unity. Разные архитектуры профайлеров по-разному отображают показания.</p><h2>Профилирование в редакторе</h2><p>Не стоит забывать о некоторых подводных камнях при профилировании приложения в редакторе. Из-за большого количества открытых окон могут проскакивать лаги. Даже рендер в самом редакторе даёт о себе знать. Поэтому крайне важно хоть иногда профилировать приложение на целевом устройстве и не полагаться только на данные из редактора.</p><h3>Deep Profile</h3><p>В этом режиме отдельно записываются вызовы каждого метода, обеспечивая чёткое представление дерева методов.</p><p>Примечание Начиная с Unity 2017.3, режим deep profile работает не только в редакторе, но и на Android, и на Desktop, с использованием бэкенда Mono.</p><p>Для включения этого режима на Desktop используйте аргумент командной строки -deepprofiling.</p><p>Для включения этого режима на Android используйте аргумент командной строки adb.</p><p>Например:<br />~$ adb shell am start -n com.company.game/com.unity3d.player.UnityPlayerActivity -e 'unity' '-deepprofiling'</p><h3>Профилирование памяти в редакторе</h3><p>Профилирование памяти в редакторе полезно для понимания общей модели памяти, но не для фактических показателей конкретных устройств.</p><ul><li>В процессе выполнения у каждого <a href="https://docs.unity3d.com/ru/current/Manual/GeneratingMeshGeometryProcedurally.html">меша</a> флаг read/write установлен независимо от значения Read/Write Enabled в настройках импорта ассета. Это уже удваивает память мешей, отображаемую в профайлере.</li><li>Профилирование в редакторе также отключает сжатие вершин (Vertex Compression).</li><li>В процессе выполнения приложения в редакторе создаётся больше временных данных в памяти. К примеру, <a href="https://docs.unity3d.com/ScriptReference/GameObject.GetComponent.html">GetComponent</a> в случае отсутствия компонента выделяет под него временную память. Поэтому Unity может выбросить исключение в редакторе, но не сделать этого в билде.</li></ul><h2>Статистика рендера</h2><p>В Unity есть функция отображения статистики рендера в реальном времени (окно Game). Туда входят fps, батчи draw calls, использование VRAM, количество вершин и треугольников. Для включения слоя статистики необходимо нажать на кнопку Stats на панели окна Game. Эта статистика поможет анализировать батчинг и GPU производительность, основываясь на количестве вызовов отрисовки.</p><figure><img src="https://media.tproger.ru/user-uploads/34561/2023-12-28/d541f267-5a98-4e57-8eb8-d4c759d731b2.png" alt="" /><figcaption>Статистика в окне Game</figcaption></figure><p>Для более детальной статистики рендера можно открыть вкладку рендера в профайлере.</p><figure><img src="https://media.tproger.ru/user-uploads/34561/2023-12-28/3044fc8f-4a31-4c51-bc3f-7f7817615c86.png" alt="" /><figcaption>Вкладка рендера, показывающая детальную статистику за кадр</figcaption></figure><p>На изображении выше видно, что пустая сцена имеет 5 вызовов SetPass и 5 вызовов отрисовки.</p><ul><li>Количество вызовов SetPass играет важную роль, т. к. оно негативно влияет на производительность. Количество этих вызовов должно быть как можно меньше.</li><li>Вызовы отрисовки (draw calls) являются менее важным параметром, если ваше приложение не зависит от производительности процессора. Это связано с тем, что вызовы отрисовки выполняются в рендеринговом потоке, который запускается на процессоре. Уменьшить зависимость от производительности процессора можно <a href="https://unity3d.com/learn/tutorials/topics/best-practices/unity-profiler#Multithreaded%20Rendering%20Graphics%20Jobs">многопоточным рендерингом</a>.</li></ul><h2>Вызовы отрисовки</h2><p>Частые вызовы отрисовки с похожими пайплайнами влияют на производительность лучше, чем редкие с разными пайплайнами. Unity кеширует одинаковые вызовы, что ускоряет процесс отрисовки. Для разных вызовов отрисовки Unity создает разные буферы. Это загружает графическую память.</p><h2>Многопоточный рендер и Graphics Jobs</h2><p>Многопоточный рендер и Graphics Jobs (Player Settings) чаще всего положительно сказываются на производительности, но во время отладки и профилирования некоторые показатели могут быть «размытыми». Для более точного профилирования можно посмотреть на <a href="https://unity3d.com/learn/tutorials/topics/best-practices/multithreaded-rendering-graphics-jobs">оптимизацию графики в Unity</a>.</p><h2>Кадровый отладчик</h2><p>Кадровый отладчик позволяет остановить игру на определённом кадре и пройтись по основным событиям. С его помощью можно просмотреть, как Unity выстраивает сцену и продумать возможные способы оптимизации. Отладчик также указывает на те GameObject’ы, рендер которых не обязателен. Отключив эти GameObject’ы, можно уменьшить число вызовов отрисовки на один кадр.</p><p>Отладчик не показывает отдельные вызовы отрисовки или разницу между ними. Он показывает процесс построения кадра. Только нативные GPU-профайлеры дадут исчерпывающую информацию о вызовах отрисовки (чаще всего привязанную к времени). Кадровый отладчик может оказаться полезным в отладке пайплайна и батчинга (особенно при работе с Unity UI). Детальная информация описана в документации <a href="https://docs.unity3d.com/Manual/FrameDebugger.html?_ga=2.193188964.831545672.1553015214-263255897.1549981789">кадрового отладчика</a>.</p><h2>Профайлер памяти</h2><p>В этом проекте демонстрируется использование <a href="https://docs.unity3d.com/ScriptReference/MemoryProfiler.MemorySnapshot.html?_ga=2.104191049.831545672.1553015214-263255897.1549981789">профайлера памяти</a>. Также по нему есть <a href="https://docs.unity3d.com/Manual/BestPracticeUnderstandingPerformanceInUnity2.html?_ga=2.104191049.831545672.1553015214-263255897.1549981789">документация</a>.</p><figure><img src="https://media.tproger.ru/user-uploads/34561/2023-12-28/cd866a5e-9add-479f-a007-ea734385e0e9.png" alt="" /><figcaption>Снимок с профайлера памяти</figcaption></figure><p>Данный инструмент отслеживает память, выделенную подсистемами Unity, а также пользовательскими скриптами (до версии Unity 2017.3). Профайлер не может отслеживать выделение памяти из сторонних инструментов. Начиная с версии Unity 2017.3 профайлер также поддерживает отслеживание управляемых объектов в среде выполнения Mono scripting.</p><p>Подробно профайлер можно изучить в <a href="https://unity3d.com/learn/tutorials/topics/interface-essentials/introduction-profiler">этом видео</a> и <a href="https://docs.unity3d.com/Manual/Profiler.html?_ga=2.267532487.831545672.1553015214-263255897.1549981789">документации</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Оптимизируем работу с физикой в Unity</title>
      <link>https://tproger.ru/translations/physics-in-unity-best-practice</link>
      <comments>https://tproger.ru/translations/physics-in-unity-best-practice?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Туренко]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/translations/physics-in-unity-best-practice</guid>
      <description><![CDATA[<p>Полезные приёмы работы с физикой в играх на Unity: слои и Матрица Коллизий и другие способы сделать расчёт столкновений эффективнее.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/translations/physics-in-unity-best-practice">Оптимизируем работу с физикой в Unity</a>»</p>]]></description>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Для продвинутых]]></category>
      <category><![CDATA[Переводы]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sun, 03 Mar 2019 12:11:08 GMT</pubDate>
      <content:encoded><![CDATA[<p>В данном материале будет рассмотрено несколько полезных приёмов использования физики в играх и примеры их практического применения. Предполагается, что у читателя уже есть опыт разработки на Unity.</p><h2>Слои и Матрица Коллизий</h2><p>Все игровые объекты в Unity, если не указано иного, создаются на слое Default, где всё со всем сталкивается, но это не очень эффективно. Однако мы можем обозначить, что с чем должно взаимодействовать, определив разные слои для разных типов объектов. Для каждого нового слоя добавляются свои строка и столбец в Матрице Коллизий, которая отвечает за определение коллизий между слоями. По умолчанию, когда вы добавляете новый слой, Матрица Коллизий определяет столкновения этого слоя со всеми остальными слоями. Путём правильной настройки слоев и Матрицы Коллизий вы избежите незапланированных столкновений и сможете тестировать события коллизий.</p><p>Для целей данной статьи была создана простая демо-сцена с 2 000 объектов (1 000 красных и 1 000 зелёных) внутри контейнера. Зелёные объекты должны взаимодействовать только сами с собой и со стенами (слой Wall). В одном из тестов все объекты принадлежат слою Default и столкновения производятся путём строкового сравнения тега игровых объектов на слушателе коллизий. В другом тесте объекты разделены на два слоя. Взаимодействие этих слоёв было настроено в Матрице Коллизий.</p><figure><img src="https://media.tproger.ru/user-uploads/34561/2023-12-27/17d0f1b2-0e9f-41f5-9cfd-60ed642749a0.png" alt="" /><figcaption>Рис. 1: Настройка Матрицы Коллизий</figcaption></figure><p>Изображение ниже берётся из самой демонстрации. В ней есть простой менеджер, который считает количество столкновений и автоматически останавливается после 5 секунд. Количество ненужных столкновений в варианте с общим слоем впечатляет.</p><figure><img src="https://media.tproger.ru/user-uploads/34561/2023-12-27/4cac500c-1dfc-47f1-a454-0d4dd8fb5fd9.png" alt="" /><figcaption>Рис. 2: Количество столкновений в течение 5 секунд</figcaption></figure><p>Вот результат профилировки для более конкретных данных о физическом движке</p><figure><img src="https://media.tproger.ru/user-uploads/34561/2023-12-27/056c8fde-171c-40dd-9bc1-c68a1782fe2b.png" alt="" /><figcaption>Рис. 3: Общие слои в сравнении с отдельными в данных профилировки</figcaption></figure><p>Как мы видим, существуют значительные различия во времени, которое процессор потратил на физику. На общем слое это ~27,7 мс, а на отдельных — ~17,6 мс.</p><h2>Рейкастинг</h2><p>Рейкастинг — довольно полезный и мощный инструмент в физическом движке. Он позволяет направлять луч определённой длины в определённом направлении и получить информацию о произошедших столкновениях. Однако это дорогостоящая операция. Производительность рейкастинга сильно зависит от длины луча и типов коллайдеров на сцене.</p><p>Вот несколько советов по использованию рейкастинга:</p><ul><li>Хоть это и очевидно, но нужно стремиться к наименьшему количеству лучей.</li><li>Не делайте лучи длиннее, чем это необходимо. Чем длиннее луч, тем больше объектов нужно проверять на столкновение с ним.</li><li>Не используйте рейкасты внутри метода FixedUpdate(). А в некоторых случаях даже использование их внутри метода Update() может быть излишним.</li><li>Будьте осторожнее с типами коллайдеров, которые используете. Рейкастинг с меш-коллайдером обходится довольно дорого.Неплохое решение — создать дочерний объект с примитивными коллайдерами и повторить с их помощью приблизительную форму меша. Все дочерние коллайдеры у родительского Rigidbody ведут себя как составные коллайдеры.Если вам очень нужно использовать меш-коллайдеры, то как минимум сделайте их выпуклыми.</li><li>Уточняйте, во что именно луч должен попадать, и по возможности конкретизируйте слой-маску в функции рейкаста.Хоть это и описано в документации, но не забудьте, что то, что вы указываете в функции рейкаста, это не идентификатор слоя, а битовая маска.Если вы хотите, чтобы луч сталкивался с объектом, который находится на слое с идентификатором 10, вам необходимо указать 1&lt;&lt;10 (битовый сдвиг влево на 10), а не просто 10.Если вы хотите, чтобы луч врезался во всё, кроме объектов на слое 10, то просто используйте побитовый оператор дополнения (~), который инвертирует каждый бит в побитовой маске.</li></ul><p>Вот простая демо-сцена, где объект стреляет лучами, которые сталкиваются только с зелёными объектами.</p><figure><img src="https://media.tproger.ru/user-uploads/34561/2023-12-27/3e3a5e9c-e73f-41bd-8a9b-b25f1f0027bf.png" alt="" /><figcaption>Рис. 4: Простая демо-сцена с рейкастами</figcaption></figure><p>Здесь ведётся управление количеством и длиной лучей, чтобы получить данные профилировки. Мы можем увидеть на графике ниже зависимость производительности с той длиной лучей и их количеством, что мы имеем.</p><figure><img src="https://media.tproger.ru/user-uploads/34561/2023-12-27/c762decc-3578-41f1-8c99-b42cbe0d9182.png" alt="" /><figcaption>Рис. 5: Зависимость производительности от количества лучей</figcaption></figure><figure><img src="https://media.tproger.ru/user-uploads/34561/2023-12-27/48006c34-2233-42b1-a72e-23d2a22a11b9.png" alt="" /><figcaption>Рис. 6: Зависимость производительности от длины лучей</figcaption></figure><p>А вот что будет, если поменять примитивные коллайдеры на меш-коллайдеры.</p><figure><img src="https://media.tproger.ru/user-uploads/34561/2023-12-27/ab11c30f-c20a-41a7-9232-a5b476df0bec.png" alt="" /><figcaption>Рис. 7: Меш-коллайдеры на сцене (110 полигонов на коллайдер)</figcaption></figure><figure><img src="https://media.tproger.ru/user-uploads/34561/2023-12-27/05ef82c0-adbc-4f3b-8e36-1397bca7ad89.png" alt="" /><figcaption>Рис. 8: Примитивные коллайдеры в сравнении с меш-коллайдерами в данных профилировки</figcaption></figure><p>Как вы можете видеть на данных профилировки, рейкастинг меш-коллайдеров заставляет физический движок работать больше.</p><h2>Физика 2D vs 3D</h2><p>Решите, какой физический движок лучше подходит для вашего проекта. Если вы разрабатываете 2D-игру или 2.5D (псевдотрёхмерность), то использование физического движка для 3D может быть избыточным. Дополнительное измерение в вашем проекте впустую загружает процессор. Вы можете посмотреть более детальные различия между двумя движками в статье.</p><h2>Rigidbody</h2><p>Компонент <a href="https://docs.unity3d.com/ru/530/Manual/class-Rigidbody.html">Rigidbody</a> — это привычный компонент для физических взаимодействий между объектами. Даже когда вы работаете с коллайдером как с триггером, вам нужно добавить его на игровой объект для корректной работы событий OnTrigger. Игровые объекты, которые не имеют компонента Rigidbody, рассматриваются как статические коллайдеры. Это крайне важно, т. к. попытка сдвинуть статический коллайдер крайне неэффективна, ведь движок пересчитывает весь физический мир заново. К счастью, профайлер даст вам знать, если вы попытаетесь сдвинуть статический коллайдер, и выведет предупреждение во вкладке профайлера. В следующем тесте были убраны Rigidbody со всех движущихся объектов первой демо-сцены и засняты данные профилировки, чтобы продемонстрировать, как влияют попытки сдвинуть статические коллайдеры.</p><figure><img src="https://media.tproger.ru/user-uploads/34561/2023-12-27/54930978-b1c2-4688-b14f-66cbdbdfb3f8.png" alt="" /><figcaption>Рис.9: Предупреждение перемещения статических коллайдеров</figcaption></figure><p>Как вы можете видеть, около 2 000 предупреждений генерируется на каждом игровом объекте. Также средние затраты времени, потраченного ЦПУ на физику, возросли с ~17,6 мс до ~35,85 мс. Поэтому если мы двигаем игровой объект, важно добавить на него Rigidbody. Если вы хотите вручную контролировать его движение, то просто пометьте его как Kinematic в свойствах Rigidbody.</p><h2>Фиксированные временные участки (Timestep)</h2><p>Настройка значения фиксированных timestep в Time Manager непосредственно влияет на FixedUpdate() и частоту обновления физики. Изменяя это значение, вы можете достигнуть золотой середины между точностью и временем, затраченным ЦПУ на физику.</p><h2>Заключение</h2><p>Все эти приёмы довольно просты в реализации, но они, несомненно, влияют на производительность вашего проекта, ведь почти каждая разрабатываемая игра использует физический движок, даже если это только обработка коллизий.</p>]]></content:encoded>
    </item>
    <item>
      <title>Unity запретила Improbable, разработчику SpatialOS, использовать свой движок</title>
      <link>https://tproger.ru/news/unity-vs-improbable-conflict</link>
      <comments>https://tproger.ru/news/unity-vs-improbable-conflict?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Екатерина Никитина]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/unity-vs-improbable-conflict</guid>
      <description><![CDATA[<p>Unity отключила лицензию Improbable на использование движка со SpatialOS; компании расходятся в оценке причин и последствий конфликта.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/unity-vs-improbable-conflict">Unity запретила Improbable, разработчику SpatialOS, использовать свой движок</a>»</p>]]></description>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 15 Jan 2019 11:14:15 GMT</pubDate>
      <content:encoded><![CDATA[<p>У Unity и Improbable, развивающей облачный сервис SpatialOS, случился конфликт.</p><h3>Что произошло?</h3><p>Improbable на своём сайте <a href="https://improbable.io/company/news/2019/01/10/unity-blocks-spatialos">сообщила</a>, что Unity изменила условия использования своего движка, так что задействовать его в своих проектах пользователи SpatialOS больше не вправе.</p><p>Unity в своём блоге <a href="https://blogs.unity3d.com/es/2019/01/10/our-response-to-improbables-blog-post-and-why-you-can-keep-working-on-your-spatialos-game/">заявила</a>, что это не так — лицензию отключили только самой Improbable, остальные могут жить спокойно. По словам Unity, она в течение года предупреждала компанию о проблемах с лицензией, но никакой реакции не получила, так что вынуждена была пойти на крайнюю меру.</p><p>Improbable на это <a href="https://improbable.io/company/news/2019/01/11/improbable-a-final-statement-on-spatialos-and-unity">ответила</a>, что уведомлений не получала, более того, Unity уверяла, что с лицензией всё в порядке. Просто 9 января, через месяц после изменения соглашения, доступ к движку отключили одному из пользователей SpatialOS. Обратившись к Unity, компания получила уведомление: лицензия Improbable больше недействительна.</p><h3>А причина какая?</h3><p>По словам Improbable, в уведомлении причина указана не была. По словам Unity, Improbable незаконно наживалась на технологиях и бренде Unity, используя их при разработке, продажах и рекламе своих продуктов.</p><h3>Это всё как-то скажется на разработчиках игр?</h3><p>Unity говорит, что нет: проблемы юридического толка компании будут решать с глазу на глаз, а простые разработчики от этого пострадать не должны. По мнению Improbable, Unity вводит разработчиков в заблуждение. Юридически любой пользователь продуктов Improbable нарушает лицензионное соглашение, об этом компания и предупреждала в первую очередь. Она призвала Unity прояснить условия использования движка, потому что под удар попадают продукты и других компаний, не только Improbable.</p><p>Такие конфликты ставят разработчиков в неловкую ситуацию: неясно, можно ли продолжать работать со SpatialOS, и если да, то по каким условиям. Поэтому Improbable скооперировалась с Epic Games, и вместе компании <a href="https://techcrunch.com/2019/01/10/improbable-and-epic-games-establish-25m-fund-to-help-devs-move-to-more-open-engines-after-unity-debacle/">основали</a> фонд в 25 млн долларов. Этот фонд будет поддерживать независимых разработчиков, которые сделают выбор в пользу свободных и открытых инструментов, а не продуктов Unity.</p>]]></content:encoded>
    </item>
    <item>
      <title>Аргументы и функции, 14 декабря</title>
      <link>https://tproger.ru/newsletter/14-dec-2018</link>
      <comments>https://tproger.ru/newsletter/14-dec-2018?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Vladimir Gabrinevski]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/newsletter/14-dec-2018</guid>
      <description><![CDATA[<p>Дайджест обновлений Visual Studio Code 1.30, Bootstrap 3.4 и Unity 2018.3, а также способов защитить сложный JavaScript-код от чужих глаз.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/newsletter/14-dec-2018">Аргументы и функции, 14 декабря</a>»</p>]]></description>
      <category><![CDATA[IDE]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Аргументы и функции]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 14 Dec 2018 16:32:46 GMT</pubDate>
      <content:encoded><![CDATA[<h3>О чём сегодня речь:</h3><ul><li>Visual Studio Code 1.30;</li><li>Bootstrap 3.4;</li><li>Unity 2018.3;</li><li>Доступ к онлайн-сервисам Fortnite.</li></ul><h3>Новости пятницы</h3><p>Новое <a href="https://tproger.ru/news/visual-studio-code-1-30/">в Visual Studio Code 1.30</a>:</p><ul><li>Поиск и кастомизация. IDE теперь поддерживает поиск по многострочному запросу (с помощью переноса Shift+Enter или обычной вставкой), а пользовательские запросы и пункты меню в Linux видны по умолчанию.</li><li>Редактор. Появились новые переменные комментариев в сниппете и команды Go to Declaration и Peek Declaration (по аналогии с Go to Definition и Peek Definition).</li><li>Языки. Добавлена поддержка TypeScript 3.2.2 и улучшено отображение обратных вызовов в JS/TS. Кроме того, усовершенствована интеграция с репозиторием — теперь в панели контроля версий можно изменить инструмент для открытия файла.</li><li>Отладка. Инструмент устранения ошибок научился удалять отладочные консоли неактивных сессий, а для открытия папки проекта теперь можно установить автоматическое выполнение задачи.</li></ul><p>Новое <a href="https://tproger.ru/news/bootstrap-3-4-release/">в Bootstrap 3.4</a>:</p><ul><li>Фреймворк. Устранение бреши, допускавшей XSS-атаки, новый класс .row-no-gutters, отказ от создания в веб-настройщике Gist и поиск документов через Algolia.</li><li>Документация. Выпадающее меню для выбора версий, замена библиотеки ZeroClipboard на clipboard.js и открытие ссылок только через HTTPS.</li></ul><blockquote>В случае, когда вы разрабатываете с помощью JavaScript что-то особенное, сложное, что станет неплохим конкурентным преимуществом, возникает мысль: как же защитить своё детище от чужих глаз? Рассказываем о нескольких вариантах, с примерами и пояснениями.</blockquote><p>Новое <a href="https://tproger.ru/news/unity-2018-3-release/">в Unity 2018.3</a>:</p><ul><li>Префабы (особый тип ассетов, в которых могут храниться несколько объектов). Добавлены Prefab Variants для создания дочернего префаба, изменение которого не влияет на исходный; Prefab Nesting для систематизации путём вложения мелких префабов в крупные; Prefab Mode для изолированного редактирования префаба.</li><li>Исполнение сценариев. По умолчанию используется среда NET 4.x, а поддержку версии 3.5 обещают скоро отменить.</li><li>Visual Effect Graph. Экспериментальная функция для Windows. Позволяет генерировать графику миллионов частиц на графическом процессоре без ущерба производительности.</li><li>Остальное. Обновление движка PhysX до версии 3.4, инструмент создания карт двумерных миров (для стратегий, симуляторов) и превью-версия GPU Progressive Lightmapper для эффективной работы с отрисовкой освещения (Windows).</li></ul><p>Новое <a href="https://tproger.ru/news/epic-games-free-services/">от Epic Games</a>:</p><p>Компания хочет в 2019 году открыть для разработчиков игр набор онлайн-сервисов, которые создавались под Fortnite. По плану, вначале появится C SDK с базовыми функциями, потом набор инструментов будет пополняться и расширяться. Например, будет доступна работа с облаком, сервисы для авторизации, создания профилей и управления правами, внутриигровая система голосового общения и проведение матчей.</p>]]></content:encoded>
    </item>
    <item>
      <title>Вышел игровой движок Unity 2018.3</title>
      <link>https://tproger.ru/news/unity-2018-3-release</link>
      <comments>https://tproger.ru/news/unity-2018-3-release?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Нельсон]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/unity-2018-3-release</guid>
      <description><![CDATA[<p>Unity 2018.3 получила вариации и вложение префабов, режим их изолированного редактирования и среду выполнения сценариев .NET 4.x.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/unity-2018-3-release">Вышел игровой движок Unity 2018.3</a>»</p>]]></description>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 14 Dec 2018 07:48:56 GMT</pubDate>
      <content:encoded><![CDATA[<p>Представлен игровой движок Unity 2018.3, в котором пользователей ждут:</p><ul><li>новые возможности в работе с <a href="https://docs.unity3d.com/ru/530/Manual/Prefabs.html">префабами</a> — особым типом ассетов, в которых хранятся несколько объектов;</li><li>новая среда выполнения сценариев .NET 4.x;</li><li>предварительная версия Visual Effect Graph.</li></ul><p>Подробности этих и других обновлений можно почитать в <a href="https://blogs.unity3d.com/ru/2018/12/13/introducing-unity-2018-3/#prefabs">блоге Unity</a>.</p><h3>Новинки для префабов</h3><p>Prefab Variants — позволяет создать вариацию префаба, перенимающую объекты и свойства материнского ресурса, но не влияющую на него. Изменения в дочернем префабе не повлияют на исходный, однако правка исходного отразится на дочернем.</p><p>Prefab Nesting — позволяет систематизировать префабы путём вложения мелких в более крупные. К примеру, в префаб здания можно вложить префабы комнат, а в префабы комнат — префабы мебели и элементов декора.</p><p>Prefab Mode — функция для редактирования префаба в изолированном пространстве.</p><h3>Среда выполнения сценариев .NET 4.x</h3><p>В Unity 2018.3 по умолчанию будет использоваться среда выполнения сценариев .NET 4.x. Версия 3.5 будет удалена с одним из релизов в 2019 году.</p><figure><img src="https://media.tproger.ru/uploads/2018/12/config.png" alt="" /></figure><p>Проекты для .NET 4.x теперь смогут использовать компилятор Roslyn с открытым исходным кодом.</p><h3>Visual Effect Graph</h3><p>Visual Effect Graph строит работу с простыми и сложными эффектами на основе узлов. Архитектура VEG позволяет генерировать миллионы частиц на GPU без потери производительности.</p><p>В Unity 2018.3 инструмент Visual Effect Graph доступен только в превью-версии.</p><h3>Другие изменения в Unity 2018.3</h3><ul><li>Обновление движка для симуляций PhysX до версии 3.4.</li><li>Инструмент создания карт двумерных миров (для стратегий, симуляторов).</li><li>Превью-версия GPU Progressive Lightmapper для более эффективной работы с отрисовкой освещения (Windows).</li><li>Поддержка динамического масштабирования разрешения для Vulkan и Metal, а также создания единого файла Android App Bundle вместо нескольких APK.</li></ul><p>В июле 2018 года <a href="https://tproger.ru/news/unity-2018-2/">вышло</a> обновление игрового движка Unity под номером 2018.2. По словам разработчиков, новая версия была в большей степени посвящена улучшениям рендеринга и мобильной разработке.</p>]]></content:encoded>
    </item>
    <item>
      <title>Microsoft предоставила Unity инструменты AirSim для обучения и тестирования ИИ</title>
      <link>https://tproger.ru/news/microsofts-airsim-for-unity</link>
      <comments>https://tproger.ru/news/microsofts-airsim-for-unity?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Артем Гаврилов]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/microsofts-airsim-for-unity</guid>
      <description><![CDATA[<p>Пользователи Unity получат набор AirSim для обучения и тестирования роботов с искусственным интеллектом; исходный код набора открыт и размещён на GitHub.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/microsofts-airsim-for-unity">Microsoft предоставила Unity инструменты AirSim для обучения и тестирования ИИ</a>»</p>]]></description>
      <category><![CDATA[Open Source]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Microsoft]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 15 Nov 2018 13:16:43 GMT</pubDate>
      <content:encoded><![CDATA[<p>Microsoft <a href="https://venturebeat.com/2018/11/14/microsofts-open-source-airsim-platform-comes-to-unity/">рассказала</a> о сотрудничестве с Unity Technologies. Пользователи Unity смогут использовать набор инструментов AirSim для обучения и тестирования роботов с ИИ. Как правило, его применяют в автономных транспортных средствах, при этом исходный код <a href="https://github.com/Microsoft/AirSim">AirSim</a> с open source лицензией размещён на GitHub.</p><h3>Зачем это всё?</h3><p>С помощью AirSim ИИ моделирует виртуальную реальность с учётом законов физики, в которой тестируют автономные транспортные средства. Этот подход гораздо дешевле и безопаснее как для компаний, так и для людей. Инструменты из магазина Unity или плагин ML-Agents поможет пользователям создать сценарии и обучить ИИ с помощью набора от Microsoft. Обе стороны считают, что совместными усилиями им удастся создать модели обучения искусственного интеллекта, которые будут работать в реальном мире.</p><p>Разработчики Unity уделяют развитию ИИ пристальное внимание и в середине сентября 2018 года <a href="https://tproger.ru/news/unity-ml-agents-v-0-5/">обновили</a> плагин машинного обучения ML-Agents. Нововведения коснулись количества одновременно обучаемых агентов и их дискретных действий в различных средах. Также компания предоставила свои ресурсы в качестве платформы для исследований ИИ.</p>]]></content:encoded>
    </item>
    <item>
      <title>Unity представила проект FPS Sample</title>
      <link>https://tproger.ru/news/unity-fps-sample-release</link>
      <comments>https://tproger.ru/news/unity-fps-sample-release?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Артем Гаврилов]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/unity-fps-sample-release</guid>
      <description><![CDATA[<p>Многопользовательский шутер FPS Sample показывает возможности движка Unity; код, иллюстрации и звуки доступны на GitHub для чужих проектов.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/unity-fps-sample-release">Unity представила проект FPS Sample</a>»</p>]]></description>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Игра]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 25 Oct 2018 10:10:07 GMT</pubDate>
      <content:encoded><![CDATA[<p>Unity <a href="https://blogs.unity3d.com/ru/2018/10/24/introducing-the-fps-sample/">рассказала</a> о выходе многопользовательского шутера от первого лица — <a href="https://unity.com/fps-sample">FPS Sample</a>. Игра должна продемонстрировать последние возможности движка Unity, а также стать отправной точкой для сторонних разработчиков в создании собственных игр.</p><p>Исходный код, цифровые иллюстрации и звуковые эффекты доступны по Unity Companion License и <a href="https://github.com/Unity-Technologies/FPSSample">располагаются</a> на GitHub.</p><h3>Особенности FPS Sample</h3><p>Разработчики Unity утверждают, что новый проект — это следующий шаг в развитии платформы.</p><ul><li>Общая картина. Проект включает в себя карту для многопользовательских сражений до 16 игроков, 2 проработанных персонажа и 2 режима игры. При этом для скачивания доступны как весь репозиторий, так и отдельные компоненты проекта.</li><li>Создание высокостилизованной графики при помощи HDRP. Добавлена технология High Definition Render Pipeline (HDRP) — конвейерная обработка реалистичной визуализации, которая опирается на законы физики. С её помощью детально прорабатывается освещение.</li><li>Детализация и эффективность. Оптимизирована производительность и доработаны технические решения для достижения желаемой механики в играх.</li><li><b>Живой проект. </b>Разработчики рассчитывают получить обратную связь для дальнейшего развития платформы. Например, они обещают добавить в ближайшие обновления функцию VFX Graph.</li></ul><p>В середине сентября 2018 года команда Unity <a href="https://tproger.ru/news/unity-hub-1-0/">сообщила</a> о выходе утилиты Unity Hub версии 1.0. Инструмент действует как центр управления ходом производства, а также служит для улучшения всей экосистемы платформы. Стабильная версия доступна на Windows и macOS, а поддержка Linux-дистрибутивов обеспечена в бета-версии.</p>]]></content:encoded>
    </item>
    <item>
      <title>Unity выпустила Visual Search, инструмент для управления 3D-ассетами с помощью ИИ</title>
      <link>https://tproger.ru/news/unity-visual-search</link>
      <comments>https://tproger.ru/news/unity-visual-search?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Тимур Кондратьев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/unity-visual-search</guid>
      <description><![CDATA[<p>Плагин, созданный вместе с Resonai, ищет и фильтрует ассеты из Unity Asset Store прямо в редакторе — визуально, по ключевым словам или текстовому описанию.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/unity-visual-search">Unity выпустила Visual Search, инструмент для управления 3D-ассетами с помощью ИИ</a>»</p>]]></description>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sat, 13 Oct 2018 20:29:09 GMT</pubDate>
      <content:encoded><![CDATA[<p>Разработчики Unity3D <a href="https://blogs.unity3d.com/ru/2018/10/12/introducing-unity-visual-search-instant-3d-search-discovery-and-prototyping/">рассказали</a> в своём блоге о новом плагине для игрового движка — Visual Search. Данный проект, созданный в сотрудничестве со специалистами по машинному обучению из <a href="https://www.resonai.com/#!/home">Resonai</a>, предлагает визуальный поиск и фильтрацию ассетов из Unity Asset Store прямо в окне редактора.</p><p>Авторы проекта подробно рассказали о возможностях нового инструмента в видеоролике:</p><h3>Что любопытного в Visual Search?</h3><p>Инструмент позволяет искать ассеты не только визуально, но и с использованием текстового описания или ключевых слов. Разработчик может фильтровать критерии с помощью блокировки отдельных элементов в системе <a href="https://unity3d.com/ru/unity/features/worldbuilding/probuilder">ProBuilder</a> или по необходимым категориям: стоимость, количество полигонов или материалов.</p><p>Также для поиска можно использовать макеты. Для этого необходимо создать 3D-прототип будущего объекта, а затем загрузить его компоненты в плагин. Система найдёт визуально похожие ресурсы в базе магазина.</p><p>Плагин Visual Search <a href="https://assetstore.unity.com/packages/tools/utilities/unity-visual-search-104059">доступен</a> бесплатно в магазине ассетов Unity.</p><p>В середине сентября 2018 года команда разработчиков Unity <a href="https://tproger.ru/news/unity-hub-1-0/">опубликовала</a> первую публичную версию Unity Hub — центра управления разработкой игры. Инструмент также выступает как объединённая утилита для всей экосистемы игрового движка.</p>]]></content:encoded>
    </item>
    <item>
      <title>Unity и DeepMind сообщили о запуске совместной исследовательской программы ИИ</title>
      <link>https://tproger.ru/news/deepmind-unity-collaboration</link>
      <comments>https://tproger.ru/news/deepmind-unity-collaboration?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Нельсон]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/deepmind-unity-collaboration</guid>
      <description><![CDATA[<p>Компании вместе создадут виртуальную площадку для обучения и тестирования ИИ-агентов: DeepMind выбрала Unity как основную платформу моделирования.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/deepmind-unity-collaboration">Unity и DeepMind сообщили о запуске совместной исследовательской программы ИИ</a>»</p>]]></description>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 27 Sep 2018 13:10:37 GMT</pubDate>
      <content:encoded><![CDATA[<p>Unity и DeepMind <a href="https://www.engadget.com/2018/09/26/deepmind-unity-ai-machine-learning-environments/">объявили</a>, что планируют совместно разработать виртуальную тестовую площадку для ИИ-агентов. Исследователи из DeepMind, работающие над многими проблемами машинного обучения и искусственного интеллекта, выбрали Unity как основную платформу для моделирования сложных условий реального мира.</p><h3>Обучение и тестирование</h3><p>Одной из проблем создания автономных систем ИИ являются их реакции на различные условия и события реальной жизни. Обучение и тестирование в виртуальной реальности должно помочь исследователям усовершенствовать поведение агентов, будь то беспилотные автомобили, роботы или системы для постановки медицинских диагнозов.</p><p>Unity в сентябре 2017 года <a href="https://blogs.unity3d.com/ru/2017/09/19/introducing-unity-machine-learning-agents/">представила</a> инструментарий для машинного обучения ML-Agents Toolkit, который позволяет разработчикам создавать собственные площадки для обучения ИИ-агентов.</p><p>Исследователи полагают, что будущее искусственного интеллекта будет формироваться за счет более сложных человеко-машинных взаимодействий, и Unity предоставит возможность для их совершенствования.</p><p>Британская компания DeepMind работает и над другими проектами, связанными с ИИ. Например, в августе 2018 года она <a href="https://tproger.ru/news/deepmind-eye-hospital/">представила</a> систему, которая по снимку сетчатки определяет заболевания глаз.</p>]]></content:encoded>
    </item>
    <item>
      <title>Вышла из беты Unity Hub для управления ходом разработки игр</title>
      <link>https://tproger.ru/news/unity-hub-1-0</link>
      <comments>https://tproger.ru/news/unity-hub-1-0?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Тимур Кондратьев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/unity-hub-1-0</guid>
      <description><![CDATA[<p>Центр управления производством игр доступен на Windows и macOS, для Linux — бета. Внутри управление редактором, образовательные программы и магазин ассетов.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/unity-hub-1-0">Вышла из беты Unity Hub для управления ходом разработки игр</a>»</p>]]></description>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Организация разработки]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sat, 15 Sep 2018 18:42:33 GMT</pubDate>
      <content:encoded><![CDATA[<p>В блоге команда Unity <a href="https://blogs.unity3d.com/ru/2018/09/14/unity-hub-v1-0-is-now-available/">сообщила</a> о публичном релизе утилиты Unity Hub версии 1.0. Инструмент действует как центр управления ходом производства, а также служит для улучшения всей экосистемы Unity. Стабильный релиз доступен на Windows и macOS, а поддержка Linux-дистрибутивов обеспечена в бета-версии.</p><figure><img src="https://media.tproger.ru/uploads/2018/09/image1-3.png" alt="" /></figure><h3>Ключевые возможности Unity Hub 1.0</h3><ul><li>Загрузка нескольких версий редактора, включая официальные и бета-выпуски.</li><li>Самостоятельное назначение места установки всех компонентов.</li><li>Добавление шаблонов Unity.</li><li>Загрузка пакетов из магазина ассетов.</li><li>Доступ к образовательным материалам движка.</li><li>Управление учетной записью и правами.</li><li>Поддержка Linux в бета-версии.</li></ul><h3>Планы на будущее</h3><p>Кроме того, разработчики рассказали, что советуются с сообществом пользователей по вопросам дальнейших обновлений. В их планах — обновить интерфейс Unity Hub, а также постепенно закрыть Unity Launcher и Download Assistant, чтобы сосредоточиться на улучшении объединенной утилиты.</p><p>В середине сентября 2018 года компания <a href="https://tproger.ru/news/unity-ml-agents-v-0-5/">обновила</a> плагин для обучения агентов машинного обучения ML-Agents. Инструмент получил ряд таких нововведений, как поддержка средств Gym и среды марафонов.</p>]]></content:encoded>
    </item>
    <item>
      <title>Unity обновила плагин машинного обучения ML-Agents</title>
      <link>https://tproger.ru/news/unity-ml-agents-v-0-5</link>
      <comments>https://tproger.ru/news/unity-ml-agents-v-0-5?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Артем Гаврилов]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/unity-ml-agents-v-0-5</guid>
      <description><![CDATA[<p>Новая версия открытого плагина поддерживает средства Gym, дополнена средами марафонов и мета-обучением с возможностью тренировать несколько агентов.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/unity-ml-agents-v-0-5">Unity обновила плагин машинного обучения ML-Agents</a>»</p>]]></description>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Машинное обучение]]></category>
      <category><![CDATA[Нейронные сети]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 13 Sep 2018 10:09:47 GMT</pubDate>
      <content:encoded><![CDATA[<p>Unity <a href="https://github.com/Unity-Technologies/ml-agents">опубликовала</a> обновленную версию плагина ML-Agents — инструмента с открытым кодом для обучения алгоритмов ИИ. Нововведения коснулись количества одновременно обучаемых агентов и их дискретных действий в различных средах. Также сотрудники <a href="https://arxiv.org/abs/1809.02627">предоставили</a> ресурсы Unity в качестве платформы для исследований ИИ.</p><h3>Поддержка средств Gym</h3><p>Создавая плагин ML-Agents, сотрудники компании не хотели ограничиваться стандартными условиями в машинном обучении. Поэтому они разработали API на Python, добившись одновременного обучения нескольких агентов и «мозгов» в сложных условиях.</p><p>Более того, разработчикам поступали запросы о создании инструментов для взаимодействия со средой Unity. Учитывая пожелания, они ввели поддержку средств <a href="https://github.com/openai/gym">Gym</a>. Благодаря этому любой разработчик, создав самостоятельно одну из сред для Unity, сможет загрузить остальные.</p><h3>Среды марафонов</h3><p>По словам Джо Бута (Joe Booth), он целый год пробовал иначе использовать среды Walker, Hopper, Humanoid, а также Ant из <a href="https://github.com/deepmind/dm_control">DeepMind Control Suite</a> и OpenAI Gym. Итогом его попыток стала среда марафонов: перед агентами каждый раз ставится задача бежать быстрее и слаженнее. Джо считает, что подход позволит ИИ в будущем сымитировать движения людей из видео на YouTube.</p><figure><img src="https://media.tproger.ru/uploads/2018/09/image2-11.jpg" alt="" /></figure><h3>Другие особенности</h3><ul><li>Изменена область дискретных действий, позволяющая агентам выбирать несколько действий за раз. В предыдущих версиях они могли выполнять одно дискретное действие. В каждой ветви содержится различное фиксированное число действий, одно из которых агент выбирает по запросу. Например, в среде WallJump агент теперь может двигаться в определенном направлении и одновременно подпрыгнуть. В среде BananaCollector двигаться, развернуться и выстрелить лазером.</li></ul><figure><img src="https://media.tproger.ru/uploads/2018/09/image5-11.png" alt="" /></figure><ul><li>Добавлена маскировка дискретных действий, ограничивающая агента от выполнения невозможных условий. Находясь в воздухе, к примеру, он не сможет подпрыгнуть. Невозможное условие настраивается для каждой ветви действий. По словам разработчиков, это сокращает количество необходимого кода. Также сотрудники доработали агента в среде GridWorld, ограничив его попытки войти в стену. Благодаря этому обучение происходило гораздо быстрее.</li></ul><figure><img src="https://media.tproger.ru/uploads/2018/09/image4-1-768x3871.jpg" alt="" /></figure><ul><li>Реализовано мета-обучение, доступное в среде WallJump и открывающее новые возможности обучения агентов. Сложность задач агента прямо пропорциональна его прогрессу при обычном обучении. С введением мета-обучения пользователь получает возможность создания сред для обучения сразу нескольких «мозгов». Причем для каждого из них план обучения настраивается отдельно, и в созданной среде агенты развиваются с различной скоростью.</li></ul><p>Unity успешно сотрудничает с другими платформами, и в середине июля 2018 года расширение GitHub <a href="https://tproger.ru/news/github-for-unity-1-0/">вышло</a> из беты. Новая версия позволила загружать большие файлы в специализированное хранилище и содержала несколько улучшений для роста производительности. В то же время разработчики <a href="https://tproger.ru/news/unity-ml-agents-v-0-4/">представили</a> обновление инструмента ML-Agents, которое сделало возможным проведение обучения прямо из окна редактора.</p>]]></content:encoded>
    </item>
    <item>
      <title>Рекламная платформа AdMob интегрирована с движком Unity</title>
      <link>https://tproger.ru/news/admob-integrated-with-unity</link>
      <comments>https://tproger.ru/news/admob-integrated-with-unity?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Сергей Штукатуров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/admob-integrated-with-unity</guid>
      <description><![CDATA[<p>Google и Unity Technologies объявили о стратегическом партнёрстве: в AdMob появилось размещение рекламы в мобильных играх, созданных на движке Unity.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/admob-integrated-with-unity">Рекламная платформа AdMob интегрирована с движком Unity</a>»</p>]]></description>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 03 Aug 2018 16:46:01 GMT</pubDate>
      <content:encoded><![CDATA[<p>Компании Google и Unity Technologies <a href="https://www.businesswire.com/news/home/20180802005088/en/Google-Unity-Partner-Boost-Mobile-Game-Advertising/">объявили</a> о стратегическом партнёрстве. Разработчики интегрировали в платформу Google AdMob возможность размещения рекламы в мобильных играх, созданных на движке Unity.</p><h3>Новая сфера для Google AdMob</h3><p>По словам вице-президента Unity по вопросам рекламы Джулии Шумейкер (Julie Shumaker), игроки ежедневно проводят 9 миллиардов минут в играх на движке компании. Более половины мобильных игр создаётся на базе этой платформы, а количество устройств под управлением Android и iOS, на которых установлены эти продукты, достигает 3 миллиардов.</p><p>Представитель Unity Technologies выразил надежду, что доступ к этой новой, неохваченной ранее аудитории, предоставит новые возможности рекламодателям. Пользователи рекламного сервиса смогут расширить свои рекламные кампании через <a href="https://support.google.com/google-ads/answer/6247380?hl=en">Universal Ad Campaigns</a>.</p><p>AdMob — инструмент, позволяющий показывать рекламу в мобильных приложениях. В 2017 году Google <a href="https://tproger.ru/news/google-firebase-update/">интегрировала</a> его с платформой приложений Firebase.</p>]]></content:encoded>
    </item>
    <item>
      <title>Доступен релиз Unity 2018.2</title>
      <link>https://tproger.ru/news/unity-2018-2</link>
      <comments>https://tproger.ru/news/unity-2018-2?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Тимур Кондратьев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/unity-2018-2</guid>
      <description><![CDATA[<p>Обновление посвящено рендерингу и мобильной разработке: оптимизированы Lightweight и High Definition Render Pipeline, доработан инструмент Shader Graph.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/unity-2018-2">Доступен релиз Unity 2018.2</a>»</p>]]></description>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 11 Jul 2018 08:22:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Разработчики <a href="https://unity3d.com/get-unity/update">опубликовали</a> обновление игрового движка Unity под номером 2018.2 и <a href="https://blogs.unity3d.com/ru/2018/07/10/2018-2-is-now-available/">рассказали</a> о важных нововведениях в блоге. По словам авторов, новая версия в большей степени посвящена улучшениям рендеринга и мобильной разработке.</p><h3>Подробнее о графических улучшениях в Unity</h3><p>Обновление улучшает и оптимизирует производительность двух компонентов инструмента <a href="https://blogs.unity3d.com/ru/2018/01/31/srp-overview/">Scriptable Render Pipeline</a>: Lightweight Render Pipeline (LWRP) и High Definition Render Pipeline (HDRP).</p><ul><li>LWRP управляет загрузкой и хранением плиток, оптимизируя память устройства, благодаря чему высокая производительность достигается даже на слабом аппаратном обеспечении и в высоконагруженных приложениях в виртуальной реальности;</li><li>HDRP включает в себя различные улучшения качества изображения и визуальных эффектов для создания кинематографичной картинки на мощных платформах типа ПК и игровых консолей.</li></ul><p>Обе функции пока что находятся в раннем доступе и не рекомендуются для использования в коммерческих целях.</p><p>Кроме того, <a href="https://blogs.unity3d.com/ru/2018/02/27/introduction-to-shader-graph-build-your-shaders-with-a-visual-editor/">Shader Graph</a> — инструмент для визуального создания шейдеров без навыков программирования — теперь поддерживает оба компонента <a href="https://blogs.unity3d.com/ru/2018/01/31/srp-overview/">Scriptable Render Pipeline</a>. Также он получил улучшенный интерфейс взаимодействия и несколько новых возможностей.</p><h3>Новые функции для мобильных разработчиков</h3><p>С новой версией движка пользователи смогут загружать в проект файлы с расширениями .java без необходимости собирать отдельные библиотеки в Android Studio. Они будут распознаваться как плагины Unity и компилироваться в исполняемый файл. Также движок теперь официально поддерживает Android-приложения с 64-битной архитектурой, а значит проекты могут использовать больше 4 ГБ оперативной памяти.</p><p>Кроме того, разработчики добавили возможность отладки управляемого кода на iOS, Android, Windows, macOS, UWP и PS4.</p><p>Новая версия движка уже доступна для загрузки на <a href="https://unity3d.com/get-unity/update">сайте</a> или в Unity Hub. Более подробно с многочисленными нововведениями и улучшениями, которых насчитывается более 180, <a href="https://unity3d.com/unity-release/latest">можно ознакомиться</a> в техническом документе обновления.</p><p>Предыдущая версия игрового движка Unity была опубликована в мае 2018 года. Она привнесла ключевые инструменты для работы с графикой: <a href="https://blogs.unity3d.com/ru/2018/02/27/introduction-to-shader-graph-build-your-shaders-with-a-visual-editor/">Shader Graph</a> и <a href="https://blogs.unity3d.com/ru/2018/01/31/srp-overview/">Scriptable Render Pipeline</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Unity подвела итоги конкурса 3D-игр Proxi Art Challenge</title>
      <link>https://tproger.ru/news/unity-proxi-art-challenge-result</link>
      <comments>https://tproger.ru/news/unity-proxi-art-challenge-result?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Даниил Шатухин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/unity-proxi-art-challenge-result</guid>
      <description><![CDATA[<p>Члены жюри выбрали 8 лучших работ, 2 из которых номинированы на гран-при. Призёры Proxi Art Challenge разделят между собой денежный фонд в размере 6400 $.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/unity-proxi-art-challenge-result">Unity подвела итоги конкурса 3D-игр Proxi Art Challenge</a>»</p>]]></description>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 29 Jun 2018 14:05:31 GMT</pubDate>
      <content:encoded><![CDATA[<p>Unity <a href="https://blogs.unity3d.com/ru/2018/06/28/will-wrights-proxi-art-challenge-winners/">представила</a> победителей конкурса Proxi Art Challenge среди дизайнеров и художников 3D-игр. Специалисты отобрали 6 лучших работ и выявили двух претендентов на гран-при. Победители разделят призовой фонд в размере 6400 $, получат ценные подарки и возможность встретиться с дизайнером компьютерных игр и создателем The Sims, SimCity и Spore Уиллом Райтом (Will Wright).</p><h3>Лауреаты гран-при</h3><ul><li><a href="https://connect.unity.com/p/low-poly-ultimate-pack-1">Moments of Life</a> — Павел Новак (Pavel Novak):</li></ul><ul><li><a href="https://connect.unity.com/p/proxi-challenege-memories-wip">Overflowing Memories</a> — Ребекка Кремер (Rebecca Kremer):</li></ul><h3>Лучшие работы Proxi Art Challenge</h3><ul><li><a href="https://connect.unity.com/p/memories-work-in-progress">My Memories</a> — Фаррух Абдур (Farrukh Abdur):</li></ul><ul><li><a href="https://connect.unity.com/p/memories-of-galapagos">Memories of Galápagos</a> — Карлос Антонио Джинатта (Carlos Antonio Ginatta):</li></ul><ul><li><a href="https://connect.unity.com/p/proxi-challenge_01">The Wonder Years</a> — Хавьер Франсиско Эрнандес Матуте (Javier Francisco Hernandez Matute):</li></ul><ul><li><a href="https://connect.unity.com/p/proxi-challenge">Proxi Challenge</a> — Дэн Хантер (Dan Hunter):</li></ul><ul><li><a href="https://connect.unity.com/p/proxi-art-challenge-1">Memories by Herr Pink</a> — Гер Пинк (Herr Pink):</li></ul><ul><li><a href="https://connect.unity.com/p/thrill-chill-and-show">Thrill, Chill, and Show</a> — Милан Макура (Milan Macura):</li></ul><p>Конкурс проходил на платформе Unity Connect в сотрудничестве со студией Gallium Artists. В апреле 2018 года <a href="https://tproger.ru/news/unity-proxi-art-challenge/">был анонсирован</a> запуск проекта.</p>]]></content:encoded>
    </item>
    <item>
      <title>Unity представила библиотеку Kinematica для анимации видеоигр</title>
      <link>https://tproger.ru/news/unity-announced-kinematica</link>
      <comments>https://tproger.ru/news/unity-announced-kinematica?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Даниил Шатухин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/unity-announced-kinematica</guid>
      <description><![CDATA[<p>Экспериментальный пакет Kinematica может работать в реальном времени и включает 70 тысяч объектов, созданных с помощью технологии захвата движения.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/unity-announced-kinematica">Unity представила библиотеку Kinematica для анимации видеоигр</a>»</p>]]></description>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Машинное обучение]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 21 Jun 2018 12:30:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>На конференции Unite Berlin 2018 специалисты Unity анонсировали выход библиотеки Kinematica, которая призвана облегчить работу художников. Экспериментальный пакет может работать в режиме реального времени, что позволит комбинировать несколько фрагментов одновременно.</p><h3>Тонкости работы Kinematica</h3><p>Анимацию, разработанную в компании, пользователь может модернизировать в зависимости от требований проекта. Также доступна настройка взаимодействия объектов с окружающей средой.</p><p>Чтобы достичь точности при создании исходных файлов, специалисты использовали технологию захвата движения. Для этого исследователи отсняли работу каскадёра в специальной студии и в результате получили 70 тысяч анимационных объектов, общей длительностью 45 минут. Все исходные файлы можно будет комбинировать между собой и использовать в зависимости от стиля анимации.</p><p>Компания тратит большое количество ресурсов на упрощение процесса создания видеоигр. Например, в июне 2018 года Unity <a href="https://tproger.ru/articles/unity-ml-agents-v-0-4/">представила</a> новую версию ML-Agents для обучения игровых ботов.</p>]]></content:encoded>
    </item>
    <item>
      <title>Расширение GitHub для игрового движка Unity вышло из беты</title>
      <link>https://tproger.ru/news/github-for-unity-1-0</link>
      <comments>https://tproger.ru/news/github-for-unity-1-0?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Тимур Кондратьев]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/github-for-unity-1-0</guid>
      <description><![CDATA[<p>Управление Git прямо в интерфейсе Unity получило загрузку больших файлов в отдельное хранилище, блокировку файлов и улучшения производительности.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/github-for-unity-1-0">Расширение GitHub для игрового движка Unity вышло из беты</a>»</p>]]></description>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 19 Jun 2018 16:55:36 GMT</pubDate>
      <content:encoded><![CDATA[<p>Команда GitHub в своем блоге <a href="https://blog.github.com/2018-06-18-announcing-github-for-unity-1.0/">рассказала</a> о выходе обновления расширения для управления Git прямо в интерфейсе Unity. GitHub for Unity 1.0 представлено на конференции <a href="https://unite.unity.com/2018/berlin">Unite 2018</a>, проходящей в Берлине. Новая версия принесла поддержку загрузки больших файлов в специализированное хранилище, а также несколько улучшений для производительности.</p><h3>Подробнее о GitHub for Unity 1.0</h3><p>В версии расширения 1.0 появились новые функции:</p><ul><li>загрузка больших файлов в отдельное хранилище LFS (Large Files Storage) и последующая работа с ними через Git;</li><li>улучшенная блокировка файлов, позволяющая управлять их состоянием через интерфейса движка;</li><li>визуализация различий в файлах с использованием различных предустановок из окна GitHub;</li><li>вход в учетную запись GitHub;</li><li>строка с быстрыми действиями в Git;</li><li>улучшенная поддержка Git и хранилища LFS для macOS.</li></ul><figure><img src="https://media.tproger.ru/uploads/2018/06/41423503-54e35928-6fb0-11e8-8557-f2736d9fae59.jpg" alt="" /></figure><p>Также разработчики <a href="https://github.com/github-for-unity/Unity/releases">исправили</a> множество ошибок и в целом улучшили производительность.</p><h3>Дата выхода</h3><p>Расширение GitHub for Unitу 1.0 уже доступно <a href="https://assetstore.unity.com/packages/tools/version-control/github-for-unity-118069">в магазине ассетов Unitу</a>. Кроме того, разработчики могут присоединиться к <a href="https://github.com/github-for-unity/Unity/">репозиторию</a> проекта на GitHub.</p><p>В конце марта 2018 года разработчики Unity <a href="https://tproger.ru/news/unity-github/">выложили</a> исходный код движка на GitHub, однако без возможности редактировать — только для чтения.</p>]]></content:encoded>
    </item>
    <item>
      <title>Unity представила новую версию ML-Agents</title>
      <link>https://tproger.ru/news/unity-ml-agents-v-0-4</link>
      <comments>https://tproger.ru/news/unity-ml-agents-v-0-4?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Даниил Шатухин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/unity-ml-agents-v-0-4</guid>
      <description><![CDATA[<p>Обновление инструмента позволяет обучать агентов прямо из окна редактора Unity и добавляет две новые среды — Walker и Pyramids.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/unity-ml-agents-v-0-4">Unity представила новую версию ML-Agents</a>»</p>]]></description>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Машинное обучение]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 19 Jun 2018 13:39:40 GMT</pubDate>
      <content:encoded><![CDATA[<p>Разработчики Unity <a href="https://blogs.unity3d.com/ru/2018/06/19/unity-ml-agents-toolkit-v0-4-and-udacity-deep-reinforcement-learning-nanodegree/">объявили</a> о выходе обновления инструмента ML-Agents v0.4, которое позволяет проводить обучение напрямую из окна редактора. Также стал доступен более широкий спектр условий и алгоритмов, благодаря чему агенты теперь могут изучать ранее не доступные задачи. Все нововведения представлены в <a href="https://github.com/Unity-Technologies/ml-agents/releases">git-репозитории</a> проекта.</p><h3>Детали обновления</h3><p>Пользователям стали доступны две новые среды обучения. Первая, под названием Walker, основана на физике человекоподобных кукол со множеством степеней свободы. Цель обучения заключается во взятии полного контроля над конечностями объекта и его беспрепятственном передвижении по прямой.</p><p>Задача агента в среде обучения Pyramids — добраться до золотых блоков на вершинах пирамид. Кирпич можно получить только при разрушении построек, но для их появления на поле нужно активировать случайно расположенную кнопку. После выполнения задания агент получает награду.</p><p>Кроме этого, разработчики внедрили дополнение для PPO-алгоритма, благодаря которому агенты могут награждать себя, опираясь на результат проделанной работы. По словам создателей, это нововведение является аналогом любознательности.</p><p>Также специалисты сделали возможным запуск процесса обучения прямо в редакторе Unity. Для старта достаточно активировать скрипт learn.py и начать работу. Это дополнение позволяет не тратить время на создание исполняемых файлов.</p><p>Кроме того, плагин TensorFlowSharp был обновлён до версии 1.7.1, благодаря чему теперь можно импортировать модели напрямую в Unity и использовать их в ML-Agents.</p><h3>Обучающая программа</h3><p>Совместно с Udacity компания запустила курс <a href="https://www.udacity.com/course/deep-reinforcement-learning-nanodegree--nd893?referrer=unity&amp;utm_source=unity&amp;utm_medium=partner&amp;utm_campaign=drlnd">Deep Reinforcement Learning</a>, который должен помочь начинающим разработчикам погрузиться во все тонкости машинного обучения. Программа курса включает в себя изучение математики, алгоритмов, подходов к обучению и основ работы с ML-Agents.</p><p>Unity вносит большой вклад не только в развитие игровой индустрии, но и во всю IT-отрасль. В марте 2018 года специалисты компании <a href="https://tproger.ru/news/unity-github/">опубликовали</a> исходный код своего игрового движка и редактора.</p>]]></content:encoded>
    </item>
    <item>
      <title>3D Game Kit: Unity представила конструктор для создания 3D-платформеров</title>
      <link>https://tproger.ru/news/3d-game-kit-release</link>
      <comments>https://tproger.ru/news/3d-game-kit-release?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Ольга Дергач]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/3d-game-kit-release</guid>
      <description><![CDATA[<p>Бесплатный инструмент 3D Game Kit от Unity собирает 3D-игры без кода: готовые сцены, персонажи, движущиеся платформы и разрушающиеся блоки.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/3d-game-kit-release">3D Game Kit: Unity представила конструктор для создания 3D-платформеров</a>»</p>]]></description>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 11 May 2018 17:01:21 GMT</pubDate>
      <content:encoded><![CDATA[<p>Unity в своем блоге <a href="https://blogs.unity3d.com/ru/2018/05/10/launching-3d-game-kit-explore-and-learn-unity-in-3d/">анонсировала</a> бесплатный инструмент 3D Game Kit для создания 3D-игр, не требующий написания кода. Новый проект дает возможность пользователю создавать игровую реальность и персонажей, используя наборы образов, умений, элементы графики, а также готовые сцены. Каждый объект игрового процесса, визуальный эффект или звук полностью готов к использованию.</p><h3>Новые элементы</h3><p>3D Game Kit дополнен хорошо проработанной 3D-графикой. Инструмент содержит множество элементов для создания собственных 3D-платформеров, включая движущиеся платформы, разрушающиеся блоки и переключатели для открытия гигантских каменных дверей.</p><p>Чтобы сделать базовый проект, пользователю достаточно создать сцену и добавить в нее из набора холмы, колонны, лестницы, препятствия, и т.д. Основные принципы создания игровой реальности, сюжетов и персонажей наглядно <a href="https://unity3d.com/ru/learn">изложены</a> в обучающей базе Unity.</p><figure><img src="https://media.tproger.ru/uploads/2018/05/3d-game-kit-image-3.png" alt="" /></figure><p>Компания пообещала предоставить дополнительную документацию по 3D Game Kit в течение следующих нескольких недель.</p><p>Ранее в феврале 2018 года Unity <a href="https://tproger.ru/news/unity-released-2d-game-kit/">представила</a> другой похожий проект — 2D Game Kit. Целевая аудитория той программы — художники и дизайнеры, желающие испытать творческие силы в создании игр.</p>]]></content:encoded>
    </item>
    <item>
      <title>Представлен релиз движка Unity 2018.1</title>
      <link>https://tproger.ru/news/unity-2018-1-released</link>
      <comments>https://tproger.ru/news/unity-2018-1-released?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Инна Шхагошева]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/unity-2018-1-released</guid>
      <description><![CDATA[<p>В движке Unity 2018.1 появились Scriptable Render Pipeline и C# Job System, а также средства для 3D-моделей и эффективной совместной разработки.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/unity-2018-1-released">Представлен релиз движка Unity 2018.1</a>»</p>]]></description>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[C#]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 03 May 2018 18:11:17 GMT</pubDate>
      <content:encoded><![CDATA[<p>Unity Technologies <a href="https://unity3d.com/ru/unity/whats-new/unity-2018.1.0">выпустила</a> Unity 2018.1. В релиз включены новые инструменты для работы с графикой, анимацией и создания 3D-моделей, а также для эффективной совместной разработки.</p><h3>Основные нововведения</h3><p>Разработчики отмечают два основных нововведения, которые повлияют на дальнейшее развитие движка: <a href="https://blogs.unity3d.com/ru/2018/01/31/srp-overview/">Scriptable Render Pipeline</a> и<a href="https://forum.unity.com/threads/welcome.522627/"> C# Job System</a>. По словам представителей компании, новые возможности позволят проще и быстрее добиваться отличной графики и высокой производительности. Также среди изменений:</p><ul><li>C# Job System объединили с <a href="https://github.com/Unity-Technologies/EntityComponentSystemSamples">Entity Component System</a>, что предоставит пользователю дополнительные возможности, например, усложнение игры, увеличение количества эффектов или добавление ИИ для большей насыщенности игровых моментов.</li></ul><ul><li>Добавлена новая функциональность <a href="https://assetstore.unity.com/packages/tools/modeling/unity-fbx-exporter-69997">FBX Exporter</a>, позволяющая работать с ресурсами от таких инструментов, как 3ds Max и Maya. Доработана 2D-физика, анимация, оптимизирована работа с CPU и GPU.</li></ul><ul><li>С помощью <a href="https://blogs.unity3d.com/ru/2018/02/15/probuilder-joins-unity-offering-integrated-in-editor-advanced-level-design/">ProBuilder/Polybrush</a> и <a href="https://blogs.unity3d.com/ru/2018/02/27/introduction-to-shader-graph-build-your-shaders-with-a-visual-editor/">Shader Graph</a> художники смогут без программирования создавать новые шейдеры. Инструмент Package Manager даст возможность динамической работы с пакетами ресурсов.</li></ul><p>Новая версия уже доступна для <a href="https://unity3d.com/ru/unity/whats-new/unity-2018.1.0">скачивания</a> и лицензирования. В общей сложности Unity 2018.1 включает более 300 изменений. Более подробно с нововведениями можно ознакомиться в <a href="https://blogs.unity3d.com/ru/2018/05/02/2018-1-is-now-available/">официальном блоге</a> компании.</p><p>Напомним, что в марте 2018 года Unity Technologies <a href="https://tproger.ru/news/unity-github/">опубликовала</a> исходный код своего игрового движка и редактора.</p>]]></content:encoded>
    </item>
    <item>
      <title>Уилл Райт совместно с Unity объявил о запуске конкурса Proxi Art Challenge</title>
      <link>https://tproger.ru/news/unity-proxi-art-challenge</link>
      <comments>https://tproger.ru/news/unity-proxi-art-challenge?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Мария Рогазинская]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/unity-proxi-art-challenge</guid>
      <description><![CDATA[<p>Участники Proxi Art Challenge могут представить работы, встретиться с Уиллом Райтом в Калифорнии и получить шанс стать 3D-художником команды Proxi.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/unity-proxi-art-challenge">Уилл Райт совместно с Unity объявил о запуске конкурса Proxi Art Challenge</a>»</p>]]></description>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sun, 01 Apr 2018 17:14:23 GMT</pubDate>
      <content:encoded><![CDATA[<p>Дизайнер компьютерных игр и создатель The Sims, SimCity и Spore Уилл Райт объявил о начале работы над новой мобильной игрой <a href="https://www.proxiai.com/">Proxi.</a> Разработкой проекта занимается его студия Gallium Artists.</p><p>В связи с этим разработчики в сотрудничестве с компанией Unity анонсировали на конференции GDC запуск конкурса <a href="https://connect.unity.com/challenges/proxi">Proxi Art Challenge</a>. Художники должны представить свои творения жури, чтобы стать одним из двух счастливчиков, которые отправятся в Калифорнию на встречу с Уиллом Райтом и его командой. После собеседования один из победителей получит шанс стать 3D-художником в команде проекта Proxi.</p><h3>Подробнее о игре</h3><p>Proxi — это мобильный симулятор, идущий по стопам серии успешных игр — The Sims, SimCity и Spore. Проект позволит игрокам создавать мир на основе своих воспоминаний.</p><figure><img src="https://media.tproger.ru/uploads/2018/04/proxi.jpg" alt="" /></figure><p>Игроки получат пустой мир, где смогут создавать острова с воспоминаниями, которые можно будет назвать как угодно, например, «Семейные путешествия» или «Дни в старшей школе». Со временем игровая карта должна стать огромным 3D-миром.<a href="https://media.tproger.ru/uploads/2018/04/proxi1.png"></a></p><h3>Условия конкурса</h3><p>От художников требуется предоставить следующие работы:</p><ul><li>Создать в Unity три сцены окружающей среды, взятые из воспоминаний. Сцены должны быть созданы во время конкурса и не могут быть куплены.</li><li>Одно видео, представляющее собой презентацию трех созданных сцен.</li><li>Статью, показывающую процесс работы. В ней должны быть:финальный вариант видео;список инструментов, которые использовались для построения сцены;описание творческого процесса работы;фото этапов выполнения работы.</li></ul><p>Призовой фонд составляет 6400 $. Два победителя, взявшие гран-при конкурса, получат путевку на встречу с Уиллом Райтом и командой разработчиков, а также несколько ценных призов. Суммарно приз каждого победителя оценивается от 1500 $ до 2500 $. Кроме того, шесть призеров соревнования также получат приятные подарки с оценочной стоимостью 400 $ на каждого.</p><p>Пример выполненной сцены:</p><p>Конкурс проводится до 14 мая 2018 года. Победители будут оглашены во время конференции Unite Berlin 2018, которая пройдет с 19 по 21 июня 2018 года. Более подробную информацию можно будет узнать на сайте <a href="https://connect.unity.com/challenges/proxi">Unity Connect.</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Unity опубликовала исходный код своего игрового движка и редактора</title>
      <link>https://tproger.ru/news/unity-github</link>
      <comments>https://tproger.ru/news/unity-github?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Дмитрий Сироткин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/unity-github</guid>
      <description><![CDATA[<p>Unity открыла для изучения ветки движка и редактора с 2017.1 по 2018.1.0b12, но лицензия запрещает модификацию и pull-запросы.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/unity-github">Unity опубликовала исходный код своего игрового движка и редактора</a>»</p>]]></description>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 29 Mar 2018 16:30:48 GMT</pubDate>
      <content:encoded><![CDATA[<p>Исходный код движка и редактора Unity на C# стал <a href="https://github.com/Unity-Technologies/UnityCsReference">доступен</a> на GitHub для изучения. Разработчики выложили все основные ветки с версии 2017.1 по 2018.1.0b12.</p><h3>Ограничения использования</h3><p>Код опубликован под <a href="https://unity3d.com/legal/licenses/Unity_Reference_Only_License">лицензией</a>, позволяющей лишь его чтение, но не модификацию. Компания заявила, что не собирается переводить разработку на open source, и в обозримом будущем движок останется проприетарным. Разработчики не будут принимать pull-запросы: более того, само их создание уже является нарушением лицензии. Тем не менее, создатели хотели бы узнавать о найденных багах посредством Unity Bug Reporter. Репозиторий будет обновляться с каждым новым релизом.</p><p>В <a href="https://unity3d.com/ru/legal/terms-of-service/software">условиях использования</a> Unity всегда было разрешено <a href="https://ru.wikipedia.org/wiki/%D0%94%D0%B8%D0%B7%D0%B0%D1%81%D1%81%D0%B5%D0%BC%D0%B1%D0%BB%D0%B5%D1%80">дизассемблирование</a> сборок игрового движка на платформе .NET, однако распространение полученных результатов было запрещено. Помимо этого, отсутствие комментариев затрудняло понимание кода, в связи с чем компания приняла решение о публикации исходников от своего имени.</p><p>Напомним, в 2017 году был <a href="https://tproger.ru/news/unity-version-2017-3/">выпущен</a> целый цикл версий движка, существенно улучшивших работу с анимацией, физикой и многими другими аспектами, влияющими на качество разработки игр.</p>]]></content:encoded>
    </item>
    <item>
      <title>Google открыла исходный код Resonance Audio SDK</title>
      <link>https://tproger.ru/news/google-resonance-audio-open-source</link>
      <comments>https://tproger.ru/news/google-resonance-audio-open-source?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Дмитрий Сироткин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/google-resonance-audio-open-source</guid>
      <description><![CDATA[<p>Resonance Audio SDK перешёл под управление сообщества и доступен для любых проектов; библиотека моделирует сложные звуковые окружения в играх, AR и VR.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/google-resonance-audio-open-source">Google открыла исходный код Resonance Audio SDK</a>»</p>]]></description>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Виртуальная реальность]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[Работа со звуком]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 16 Mar 2018 09:02:46 GMT</pubDate>
      <content:encoded><![CDATA[<p>Google <a href="https://developers.googleblog.com/2018/03/resonance-audio-goes-open-source.html">изменила</a> модель разработки Resonance Audio на управляемую сообществом. Желающие могут без ограничений использовать библиотеку в любых проектах и участвовать в ее улучшении. Решения по изменению и развитию проекта будут приниматься наиболее активными <a href="https://github.com/resonance-audio/resonance-audio#steering-committee">участниками</a>.</p><h3>Детали</h3><p>В состав проекта входят:</p><ul><li>эталонная реализация применяемого YouTube декодера объемного звука на базе <a href="https://en.wikipedia.org/wiki/Ambisonics">Ambisonic</a>, совместимого с Ambix ACN/SN3D;</li><li>библиотека высокооптимизированных функций обработки звука: набор кодировщиков, ресэмплеры, фильтры, конвольверы, эффекты реверберации;</li><li>Spectral Reverb — новый качественный эффект спектральной реверберации с постоянной сложностью;</li><li>набор плагинов для Unity, Unreal, FMOD и Wwise, поддерживаемый разработчиками этих движков.</li></ul><p>Resonance Audio SDK <a href="https://tproger.ru/news/google-resonance-audio-sdk/">выпущен</a> компанией в ноябре 2017 года. Инструментарий применяется для моделирования сложных звуковых окружений в играх и в системах дополненной и виртуальной реальностей.</p><p>Подробнее узнать о проекте и приступить к работе с ним можно на <a href="https://developers.google.com/resonance-audio">официальном сайте</a> и в репозитории <a href="https://github.com/resonance-audio">Resonance Audio</a> на GitHub.</p><p>Google активно развивает аудиотехнологии. В марте 2018 года компания <a href="https://tproger.ru/news/nsynth-super-by-google/">выпустила</a> инструмент NSynth Super для исследования звуков и <a href="https://tproger.ru/news/google-song-maker-music/">секвенсор</a> для создания музыки в браузере.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как быстро написать игру для Android на Unity</title>
      <link>https://tproger.ru/translations/quick-android-game</link>
      <comments>https://tproger.ru/translations/quick-android-game?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Прияцелюк]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/translations/quick-android-game</guid>
      <description><![CDATA[<p>Пошаговый пример показывает, как создать простую 2D-игру по мотивам Flappy Bird в Unity и подготовить её для Android всего за 10 минут.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/translations/quick-android-game">Как быстро написать игру для Android на Unity</a>»</p>]]></description>
      <category><![CDATA[Для начинающих]]></category>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Переводы]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 22 Feb 2018 15:13:22 GMT</pubDate>
      <content:encoded><![CDATA[<p>В нынешнее время каждый может стать успешным разработчиком мобильных игр или приложений, не прилагая к этому титанических усилий. Примером такого случая является Донг Нгуен, разработавший Flappy Bird. В игре не было никакой сложной механики или графики, но это не помешало ей стать популярной и приносить своему создателю по пятьдесят тысяч долларов в день. Однако в игре не было ничего примечательного. Всё, что потребовалось для успеха, — оказаться в нужном месте в нужное время и немного удачи. Подобное может произойти и сегодня, вам просто нужна правильная идея.</p><p>Чтобы продемонстрировать, насколько легко написать что-то подобное, сегодня мы напишем свой Flappy Bird с помощью Unity всего за 10 минут.</p><h2>Игровой персонаж</h2><p>Сначала создайте новый проект и убедитесь, что выбрана опция 2D.</p><figure><img src="https://media.tproger.ru/uploads/2018/02/1-2-1.jpg" alt="" /></figure><p>Загрузите свой спрайт птицы в сцену. Не забудьте включить фантазию!</p><p>Затем отрегулируйте размер спрайта как вам нравится, перетягивая его за угол в нужном направлении. Спрайт должен быть виден в окне иерархии (hierarchy) слева. В нём видны все объекты в сцене, и на данный момент их должно быть всего два: камера и птица.</p><p>Перетащите камеру на птицу и отпустите. Камера должна оказаться под птицей, это будет значить, что камера теперь «ребёнок» птицы. Теперь позиция камеры будет фиксироваться относительно птицы. Если птица двигается вперёд, то камера делает то же самое.</p><figure><img src="https://media.tproger.ru/uploads/2018/02/2-1.jpg" alt="" /></figure><p>Снова выберите птицу в сцене или в окне иерархии. Вы увидите список опций и атрибутов справа в окне под названием Inspector. Здесь вы можете управлять различными переменными, привязанными к определённому объекту.</p><p>Теперь нажмите на Add Component. Выберите Physics2D &gt; Rigidbody2D — это готовый набор инструкций для применения гравитации к нашему персонажу. Нажмите на Constraints в этой панели и затем выберите freeze rotation Z. Это позволит предотвратить вращение птицы вместе с камерой по кругу.</p><p>Таким же образом добавьте Polygon Collider, который говорит Unity, где находятся границы персонажа. Нажмите Play и увидите, как спрайт вместе с камерой бесконечно падает вниз.</p><figure><img src="https://media.tproger.ru/uploads/2018/02/3-1.jpg" alt="" /></figure><p>Пока всё идёт хорошо!</p><p>Теперь пора заняться полётами персонажа, благо это будет несложно.</p><p>Сначала нужно создать C#-скрипт. Создайте для него папку (кликните правой кнопкой мыши где-нибудь в assets и создайте папку «Scripts»), сделайте клик правой кнопкой мыши и выберите Create &gt; C# Script.</p><p>Назовём его «Character». Кликните по нему дважды, чтобы открыть его в вашей IDE, будь то MonoDevelop или Visual Studio. Затем добавьте следующий код:</p><p>Этот код делает две вещи. Он заставляет персонажа двигаться вперёд со скоростью, которую мы определим в инспекторе, и создаёт ощущение полёта птицы. Метод Update() вызывается повторно на протяжении игры, поэтому всё, что вы сюда поместите, будет выполняться непрерывно. В данном случае мы добавляем немного скорости нашему объекту. Переменная rb является скриптом RigidBody2D, который мы применили к нашему объекту ранее, поэтому когда мы пишем rb.velocity, мы обращаемся к скорости объекта.</p><p>Тап по экрану интерпретируется Unity как клик мыши, если вы используете мобильное устройство. После нажатия мы заставляем персонажа немного подняться вверх.</p><p>Переменная moveSpeed будет отвечать за скорость движения, а переменная flapHeight — за увеличение высоты полёта птицы после каждого нажатия. Поскольку эти переменные объявлены как public, мы сможем изменить их вне скрипта.</p><p>Метод Death() тоже объявлен как public, что значит, что другие объекты и скрипты смогут его вызвать. Этот метод просто возвращает положение персонажа в начало. Также он будет использоваться каждый раз, когда персонаж будет залетать слишком высоко или низко. Скоро вы поймёте, почему он объявлен именно как public. Строка rb.velocity = Vector3.zero; нужна, чтобы убрать импульс — мы же не хотим, чтобы после каждой смерти персонаж падал всё быстрее и быстрее?</p><p>Теперь можно выходить из IDE и добавлять скрипт как компонент к персонажу. Для этого нужно выбрать нашу птицу и нажать Add Component &gt; Scripts &gt; Character. Теперь мы можем определять moveSpeed и flapHeight в инспекторе (для этого и нужны public-переменные). Присвоим переменным значения 3 и 5 соответственно.</p><p>И ещё: в инспекторе нужно добавить тег к персонажу. Для этого кликните там, где написано Tag: Untagged и затем выберите Player в выпадающем списке.</p><h2>Препятствия</h2><p>Теперь добавим препятствия: трубы. Кто-то в трубах находит грибы, а кто-то — свою смерть.</p><p>Перетащите спрайт трубы в сцену в место, где должно быть первое препятствие, и назовите его pipe_up.<br />Теперь создадим новый скрипт под названием Pipe:</p><p>Добавьте этот скрипт к спрайту трубы тем же образом, что и раньше. Таким образом, труба будет возвращаться на экран после выхода за его левую границу. Мы тут ещё ничего не сделали, но ещё вернёмся к этому.</p><p>Метод OnCollisionEnter2D() вызывается каждый раз при взаимодействии трубы с персонажем. После этого вызывается созданный ранее метод Death(), возвращающий игрока в начальную точку.</p><p>Итак, у нас есть одна труба, которая время от времени будет исчезать и появляться на другом конце экрана. Врежешься в неё — умрёшь.</p><h2>Перевёрнутые трубы</h2><p>Сейчас у нас есть только один спрайт трубы. Давайте добавим ещё один. Для этого кликните правой кнопкой мыши в окне иерархии, нажмите New 2D Object &gt; Sprite и затем выберите спрайт, который хотите использовать. Ещё проще будет просто перетащить файл в сцену ещё раз.</p><p>Назовите этот спрайт pipe_down. В инспекторе в части Sprite Renderer выберите опцию Flip Y, чтобы перевернуть трубу вверх ногами. Добавьте такое же RigidBody2D.</p><figure><img src="https://media.tproger.ru/uploads/2018/02/4-1.jpg" alt="" /></figure><p>Теперь напишем новый C#-скрипт под названием PipeD. В нём будет похожий код:</p><h2>Префабы</h2><p>Итак, нам достаточно этого кода, чтобы сделать всю игру. Мы могли бы передвигать трубы на правую сторону экрана каждый раз, когда они исчезают, или скопировать и вставить столько труб, сколько мы хотели бы встретить на протяжении всей игры.</p><p>Если пойти первым путём, то убедиться, что трубы стоят как надо после случайной генерации, и поддерживать честный ход вещей было бы сложно. После смерти персонажа они могли бы появиться в километрах от первой трубы!</p><p>Если пойти вторым путём, то всё закончится излишним потреблением памяти, с вытекающим из этого замедлением игры, и ограниченной реиграбельностью, т.к. всё стоит на одних и тех же местах каждый раз.</p><p>Вместо этого давайте воспользуемся префабами. Если говорить просто, то мы превратим наши трубы в шаблоны, которые потом сможем использовать для эффективного создания большего количества труб по желанию. Если тут есть программисты, то считайте скрипт Pipe классом, а трубы — экземплярами этого объекта.</p><figure><img src="https://media.tproger.ru/uploads/2018/02/5-1.jpg" alt="" /></figure><p>Для этого создайте новую папку «Prefabs». Затем перетащите pipe_up и pipe_down из окна иерархии в папку.</p><p>Каждый раз, когда вы перетаскиваете объект из этой папки в сцену, у него будут те же свойства, поэтому вам не нужно будет постоянно добавлять компоненты. Более того, если вы измените размер компонента в папке, это повлияет на все трубы в игре, и вам не придётся изменять каждую из них отдельно.</p><p>Как вы понимаете, это сильно сэкономит наши ресурсы. Также это означает, что мы можем взаимодействовать с объектами из кода. Мы можем создавать экземпляры наших труб.</p><p>Сначала добавьте этот код в условное выражение в методе Update()  скрипта Pipe, которое мы оставили пустым:</p><p>Это нужно для создания экземпляра нашего gameObject. В результате получается новая идентичная копия. В Unity всегда, когда вы используете слово gameObject, оно ссылается на объект, к которому скрипт в данный момент привязан — в нашем случае к трубе.</p><p>Мы генерируем заново наши трубы в случайных вариациях, чтобы было повеселее.</p><figure><img src="https://media.tproger.ru/uploads/2018/02/6-1.jpg" alt="" /></figure><p>Но вместо того, чтобы проделывать всё то же в скрипте PipeD , мы генерируем оба объекта в одном месте. Таким образом мы можем легко устанавливать положение второй трубы относительно первой. Также это значит, что нам нужно меньше кода для PipeD.</p><p>Создайте public gameObject с именем pipeDown. Затем обновите код следующим образом:</p><p>Мы добавили переменную gapRan, которая позволяет слегка менять расстояние между трубами, чтобы было интереснее играть.</p><p>Возвращаемся обратно в Unity и перетаскиваем префаб pipe_down из папки с префабами (это важно!) в место, где написано  «Pipe Down» (заметьте, как наш camel case заменяется пробелом) на спрайт трубы pipe up. Если вы помните, мы определили Pipe Down как public gameObject, что даёт нам возможность определять, чем является этот объект откуда угодно – в данном случае через инспектор. Выбирая префаб для этого объекта, мы убеждаемся, что при создании экземпляра трубы он будет включать в себя все атрибуты и скрипт, которые мы добавили ранее. Мы не просто создаём спрайт, но пересоздаём объект с коллайдером, который может убить персонажа.</p><p>Всё, что мы добавим в то же место в скрипте PipeD —  просто Destroy(gameObject),  чтобы труба саморазрушалась при выходе за левую границу экрана.</p><p>Если вы сейчас запустите игру, то экран будет продвигаться дальше автоматически, и вы умрёте, если столкнётесь с любой из труб. Пролетите достаточно далеко, и эти трубы исчезнут и появятся снова впереди.</p><p>К сожалению, между трубами большое расстояние, и экран выглядит пустым. Мы могли бы исправить это, добавив несколько префабов в нашу сцену, чтобы создать конвейер постоянно появляющихся труб. Однако было бы лучше генерировать трубы в скрипте. Это важно, так как в противном случае после смерти персонажа трубы в начале пути уничтожатся, и снова образуется пустое пространство.</p><p>Таким образом, мы можем создавать несколько первых труб во время каждой загрузки игры и возвращать всё на свои места после смерти персонажа.</p><h2>Бесконечный полёт</h2><p>Теперь создадим public-переменные pipe_up и pipe_down в скрипте Character. Это даст вам возможность ссылаться на созданные объекты, перетаскивая префабы на объект персонажа, прямо как когда мы добавили pipe_down в скрипт Pipe.</p><p>Нам нужно добавить эти переменные:</p><p>Затем мы напишем такой метод:</p><p>Мы будем вызывать его один раз в методе Update() и один раз в методе Death().</p><p>После начала игры вызывается Update(), и наши трубы ставятся согласно заданной конфигурации. За счёт этого первые несколько препятствий всегда будут стоять на одном и том же месте. После смерти игрока трубы встанут на те же самые места.</p><p>Вернитесь в сцену в Unity и удалите две трубы, которые сейчас там находятся. Ваша «игра» будет выглядеть просто как пустой экран с птицей. Нажмите Play и трубы появятся, после нескольких первых их положение будет определяться случайным образом.</p><h2>В заключение</h2><p>Вот мы и сделали целую игру! Добавьте счётчик очков, попробуйте сделать его более оригинальным и увеличивайте сложность игры по мере продвижения. Также не будет лишним сделать меню. Ещё хорошей идеей будет уничтожать трубы на экране после смерти персонажа. Как только вы с этим закончите — считайте, что готовая к выпуску в Play Store игра у вас в кармане! Когда-то похожая игра сделала другого разработчика очень богатым, и это доказывает, что вам не нужно быть гением-программистом или иметь за своей спиной богатого издателя, чтобы достичь успеха. Вам просто нужна хорошая идея и десять минут!</p><p>Хотите писать приложения под Android, но не знаете, с чего начать? Тогда ознакомьтесь с нашей большой <a href="https://tproger.ru/digest/master-android-development/">подборкой ресурсов</a> для изучения Android-разработки.</p>]]></content:encoded>
    </item>
    <item>
      <title>Представлен IBM Watson Unity SDK для разработки VR/AR-игр с использованием ИИ</title>
      <link>https://tproger.ru/news/ibm-watson-unity-sdk-for-vr-ar-game-developing</link>
      <comments>https://tproger.ru/news/ibm-watson-unity-sdk-for-vr-ar-game-developing?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Екатерина Никитина]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/ibm-watson-unity-sdk-for-vr-ar-game-developing</guid>
      <description><![CDATA[<p>Бесплатный IBM Watson Unity SDK добавляет в VR/AR-игры компьютерное зрение, распознавание речи и перевод речи в текст и обратно. API доступен на GitHub.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/ibm-watson-unity-sdk-for-vr-ar-game-developing">Представлен IBM Watson Unity SDK для разработки VR/AR-игр с использованием ИИ</a>»</p>]]></description>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Unity]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[IBM]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 21 Feb 2018 17:15:45 GMT</pubDate>
      <content:encoded><![CDATA[<p>20 февраля IBM и Unity объявили о партнерстве и представили <a href="https://assetstore.unity.com/packages/tools/ai/ibm-watson-unity-sdk-108831">IBM Watson Unity SDK</a> — бесплатный инструмент для разработки VR/AR-игр с использованием функций, предоставляемых искусственным интеллектом Watson. Разработчикам доступны системы компьютерного зрения, распознавания голоса, перевода речи в текст и обратно.</p><p>На YouTube опубликованы видео-уроки по разработке на IBM Watson Unity SDK.</p><h3>Возможности Watson</h3><p>Майкл Ладден, глава отделов разработки Watson и VR/AR в IBM, привел в пример симуляцию хирургической операции. Чтобы сменить инструмент во время упражнения, пользователю приходится либо ждать всплывающего сообщения, либо останавливать симуляцию и вызывать меню вручную. С системой распознавания речи, доступной через Watson, достаточно будет голосовой команды.</p><p>Помимо этого IBM Watson Unity SDK <a href="https://developer.ibm.com/code/open/projects/watson-developer-cloud-unity-sdk/">предлагает</a> функции:</p><ul><li>расшифровка речи;</li><li>синтез речи из текста;</li><li>ведение диалога;</li><li>перевод;</li><li>классификация контента.</li></ul><p>API Watson для Unity SDK (Software Development Kit) доступен на <a href="https://github.com/watson-developer-cloud/unity-sdk">GitHub</a>, а полная документация — на <a href="https://console.bluemix.net/developer/watson/documentation">IBM Cloud</a>.</p>]]></content:encoded>
    </item>
  </channel>
</rss>