Как стать автором
Поиск
Написать публикацию
Обновить
42.68

Unity *

Инструмент разработки 2D/3D-игр

Сначала показывать
Порог рейтинга
Уровень сложности

Что у ECS под капотом

Время на прочтение6 мин
Количество просмотров11K

Всем привет, это моя первая статья на Хабр. Давно хотел попробовать что-то написать, но всё никак не решался, да и темы подходящей не было. Наконец тема подвернулась, и пришло время закрыть этот гештальт =)

В данной статье я опишу общий принцип "подкапотной" работы ECS фреймворков и некоторые проблемы, с которыми столкнулся при написании своего.

Когда я только начал узнавать про ECS, всё это казалось очень красивым, но только на бумаге, и нужно было начать что-то на нём реально писать, чтобы на собственном опыте проверить всё, о чём пишут. Успел попробовать несколько фреймворков на разных движках и языках. В основном это был великолепный entt, который я прикручивал к Godot, и LeoECS на Unity. Родной Unity фреймворк я пробовать не стал, потому что, когда начинал своё знакомство, API у него менялось чуть ли не раз в месяц, что меня отпугнуло. 

В общем, получил достаточно опыта в использовании ECS на практике, но меня всё никак не покидал вопрос о том, как же оно работает под капотом. Есть пара хороших блогов о разработке ECS (от автора entt - https://skypjack.github.io/ и от автора flecs - https://ajmmertens.medium.com/), но все они давали мне недостаточно понимания как это можно сделать самому. В итоге я решил что лучший способ что-то понять — сделать это самому, поэтому мне пришлось писать свою ECS, как завещал старина Бендер =)

Читать далее

Игра мечты, которую я делаю вместе с женой (Часть 0)

Время на прочтение3 мин
Количество просмотров34K

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

Читать далее

Unity «Best» Practices

Время на прочтение11 мин
Количество просмотров28K

Эта статья родилась из внутреннего доклада для коллег, которые уже достаточно давно занимаются разработкой игр, но только недавно прикоснулись к Unity. Здесь мы собрали фишки и особенности работы с этим игровым движком разной степени капитанскости, почерпнутые из собственного опыта, которые стоит знать, чтобы эффективно им пользоваться и уже никогда ничему не удивляться.

Что такое AssetPostprocessor и чем Animation отличается от Animator? Почему не стоит доверять OnTriggerExit и зачем вам CanvasGroup? Чем хорош GameObject.Find и как вас спасут Property?

Далее в статье обсудим это, а также другие «особенности» работы с движком Unity.

Читать далее

Soviet Project — Хоррор игра о недалеком прошлом

Время на прочтение3 мин
Количество просмотров17K

Однажды я долго искал интересные 3D игры в Play Market и к своему сожалению не нашел почти ничего интересного.

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

Мне показалось странным, сейчас в мобильные телефоны устанавливают мощные графические процессоры, а качество графики сомнительное.

Читать далее

Защита от копирования Unity-проекта с использованием библиотеки kernel32.dll

Время на прочтение5 мин
Количество просмотров4.9K

Опубликовав свой первый проект в Steam «любовался» достаточно неплохим количеством скачивания. Только какой в этом толк, если вся эта движуха происходила на торрент-трекерах...

Поэтому всерьез задумался о защите своих коммерческих проектов от пиратов.

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

Я лишь вашему вниманию в свою очередь хочу предложить вариант защиты Unity-проекта с использованием библиотеки kernel32.dll. А использовать данную технологию в своем проекте, либо не использовать – решать вам. И так приступим.

На нулевой нашей сцене создадим объект с названием SecurityManager и повесим на него скрипт с одноименным названием со следующим кодом (синглтон):

Читать далее

Метод проб и ошибок: как создать игру, которая понравится всему миру

Время на прочтение5 мин
Количество просмотров10K

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

Меня зовут Матвей Палаш (Product Owner, DEVGAME), и я собрал несколько советов, которые помогут придумать крутую игру и выбиться вперед, даже если ваш конкурент — это Touch Instinct.

Сразу оговорюсь, что в данной статье не будет какого-то инновационного метода. Скорее список основных правил, которыми полезно руководствоваться. Что ж, начнем!

Читать далее

Внутриигровые эмодзи: как мы создаем анимации для Rush Royale

Время на прочтение4 мин
Количество просмотров4.1K

Привет! Я Виталий, ведущий 2D-художник, аниматор и специалист по эффектам в мобильной tower-defence игре Rush Royale студии IT Territory. Сегодня я расскажу об одной довольно важной части нашего проекта — эмодзи. Именно благодаря ним игроки могут выразить эмоции в жарких боях за башни — что, на наш взгляд, очень немаловажно.

Чтобы достичь текущего качества эмодзи, мы проделали большой путь. Но обо всем по порядку.

Читать далее

Создание шутера с LeoECS. Часть 4

Время на прочтение7 мин
Количество просмотров6K

Друзья, в этой запоздалой части туториала мы создадим врагов, научим их двигаться и атаковать игрока.

Обязательно прочитайте прошлую часть, если еще не сделали этого.

Читать далее

Создавая непредсказуемость. Примеры использования генераторов случайных чисел

Время на прочтение8 мин
Количество просмотров7.1K

Привет, Хаброжители! У нас вовсю продолжается распродажа «Старый Новый год»

Кто пытается арифметическими методами генерировать случайные числа, тот, конечно, живет во грехе. Поскольку, как указывалось уже неоднократно, нет такого феномена, как случайное число  —  есть только методы для получения случайных чисел. – Джон фон Нейман

Генераторы случайных чисел (ГСЧ) – важнейшая составляющая разнообразных процессов, связанных с компьютерными программами, таких как криптография, моделирование, машинное обучение, игры, программирование, азартные игры, научные исследования – список можно продолжать. Но может возникнуть вопрос: как именно получить по-настоящему случайное значение, и почему это важно?

Читать далее

Недельный геймдев: #53 — 16 января, 2022

Время на прочтение6 мин
Количество просмотров4.4K

Из новостей на этой неделе: Github показал игры с Game Off 2021 с наивысшими оценками, Godot 3.5 beta 1, Unity 2022.1.0 Beta 3, Axiom 2.1, UVPackmaster 3.

Из интересностей: видео про громадных боссов в играх, «Сапёр» на движке Doom, доклад с GDC про создание правдоподобных лошадей для Red Dead Redemption II, статья про внутренности звуковой системы Street Fighter II.

Читать далее

Использование NavMesh для навигации ИИ в Unity

Время на прочтение12 мин
Количество просмотров56K

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

Читать далее

Подводные камни Zenject или тайный мир Unity GetComponent

Время на прочтение5 мин
Количество просмотров18K

История о том, как незнание и невнимательность техартистов отняло у нас половину рабочего дня и побудило узнать больше про Unity вечером во вне рабочее время.

У нас на проекте артисты, как и программисты работают в своих ветках. Обычно это небольшие изменения в 1-2 префабе, добавление текстурок или изменение шейдера. Но тут внезапно возник запрос на большую фичу, которую они делают уже больше двух месяцев, в которую никто из разработчиков не лез и знал. Обычно все работает хорошо, но в этот раз, когда уже все было готово и протестировано в редакторе, у ребят не получилось запустить билд. Естественно, они пошли к нам и попросили помочь с проблемой.

Под катом расскажу, как искали причину проблемы и какие выводы сделали.

Читать далее

Добавляем рекламу в мобильное приложение. AdMob для начинающих

Время на прочтение5 мин
Количество просмотров22K

Политика монетизации - одна из самых важных составляющих мобильного приложения. Доходит и до того, что разработчики сначала продумывают маркетинговую схему, а уже потом натягивают на нее геймплей. Сейчас существует множество проверенных способов повысить ARPU (Average Revenue Per User) своей игры: лутбоксы, батлпасы, прямые продажы апгрейдов или косметических предметов. В этой статье мы рассмотрим самый простой, старый, но от этого не менее эффективный способ получения прибыли с мобильного приложения - внутриигровая реклама, а так же поговорим о том, как внедрить ее в Unity на примере Google AdMob.

Читать далее

Ближайшие события

Выпустил 11 игр за 1 год | Первый год работы в GameDev

Время на прочтение7 мин
Количество просмотров13K

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

Читать далее

Фотореалистичная графика на уровне ААА в Unity

Время на прочтение12 мин
Количество просмотров31K

До сих пор распространено мнение о том, что Unreal Engine превосходит Unity в графическом плане, но так ли это в действительности? (Спойлер: нет.)

Такое мнение сформировалось по ряду причин. Одна из причин отсылает нас к 2015 году, когда в Unity был доступен лишь встроенный конвейер рендеринга с рядом ограничений. На тот момент добиться сопоставимого с Unreal Engine визуала было очень сложно. Другой причиной является порог входа в Unity: он довольно низкий, а начинающим программистам и дизайнерам совсем не очевидна концепция компонентной системы Unity, что порождает довольно много слухов по сей день.

Сегодня с уверенностью можно сказать, что на качество графики, независимо от выбранного движка, влияют настройки средств визуализации, ведь параметры постобработки в Unreal Engine и Unity одинаковы.

Всем под кат! Далее мы расскажем, как добиться фотореалистичной графики в Unity.

Читать далее

Сжатые атласы в Unity Runtime

Время на прочтение10 мин
Количество просмотров13K

Привет, меня зовут Юрий Грачев, я программист из студии Whalekit — автора зомби-шутера Left to Survive и мобильного PvP-шутера Warface: Global Operations. Кстати, именно о его технологиях мы и поговорим подробнее далее.

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

Читать далее

Визуальный редактор логики для Unity3d. Часть 3

Время на прочтение72 мин
Количество просмотров3.9K

Приветствую Вас, уважаемые читатели. В сегодняшней статье, которая является заключительной в серии о визуальном редакторе логики, как это ни странно, речь пойдет именно о редакторе. Данный аспект всей системы в целом является наиболее сложным и обширным, в том числе и по реализации. Я постараюсь раскрыть все основные моменты архитектуры, а также те решения, которые я использовал для создания таких вещей, как рисование связей, компонентов, инспектора и т. п.

Добро пожаловать в мир Editor Extensions

Как мы делали виртуальный ситуационный центр (и разворачивали его в SOC Сбера)

Время на прочтение9 мин
Количество просмотров6.1K

Многие знают, что в современной практике управления крупными организациями существует такое понятие, как ситуационный центр (СЦ). Это единый пункт контроля и мониторинга различных объектов, центр сбора и обработки информации для принятия решений.

Услышав слова «ситуационный центр», большинство из нас сразу представит полутемное помещение с множеством экранов на стенах и сотрудников, рутинно контролирующих состояние сложной инфраструктуры, большого объекта, а может быть даже целого холдинга.

Бывают случаи, когда к работе СЦ нужно оперативно подключить дополнительные ресурсы – руководителей, экспертов. Но быстро обеспечить их присутствие в СЦ можно далеко не всегда. Такая мысль занимала нас, когда мы решили создать виртуального «напарника» реального СЦ. В этой статье мы расскажем об опыте разработки первого в России виртуального СЦ и его внедрении в экосистему Сбера.

Читать далее