Кратко о правилах: игроки поочерёдно ставят точки двух цветов в перекрестия линий. Цель — окружить точки соперника замыканием вокруг них непрерывной цепи своих точек.
Unity *
Инструмент разработки 2D/3D-игр
Включаем Nullable reference types в Unity за несколько минут
? Что такое Nullable reference types?
Nullable reference types
явным образом указывает, должна ли переменная содержать значение или может отсутсвовать.
«Хакнем» технические собеседования на Unity
Привет!
Новогодние выходные прошли в созвонах насчет менторства. И каждый раз при подготовке к собеседованию я даю ученикам один и тот же список вопросов. Список, который большей частью сформирован моим личным опытом более сотни собеседований плюс отзывами от друзей/коллег/других учеников.
Но даже в таком случае эта выборка не более репрезентативна, чем мнение рандомного человека или статья с Хабра 3/5/10-летней давности.
Посудите сами, даже выборка из 30 отзывов будет более точной чем все подборки от менторов или «продавателей курсов»! А выборка из сотни будет точнее всего, что вы найдете на рынке! Потому что физически единственные, у кого может быть бОльшая выборка - это всякие онлайн школы. Но как мы все знаем после тех самых онлайн школ многие все равно идут к нормальным менторам. А их статистика “95% трудоустроенных” чаще всего буквально обозначает “эти люди имели работу на момент завершения курса, не важно какую и связана ли она вообще с курсами” (привет, Нетология).
Event Bus и расширяемые игры. Часть 1
В последнее время среди игровых разработчиков возрос интерес к паттерну "Шина Событий". Этот паттерн часто ругают за его тенденцию к "размыванию логики" и "скрытию зависимостей". Однако, несмотря на критику, полный отказ от этого паттерна также глуп как и написание кода в блокноте вместо специализированной IDE. В этой статье рассмотрим создание игры, целиком основанной на этом паттерне, и поработаем с такими библиотеками, как Zenject, UniRx, и DoTween.
Истории
FlowCanvas и визуальное программирование в Unity
Визуальное программирование облегчает работу геймдизайнеров и сценаристов, но сильно портит жизнь программистам. Собирать уровни и механики гораздо удобнее и приятнее в графе, но поддерживать и отлаживать эти разноцветные макароны - сущий ад.
Инди-команды не имея опыта в программировании собирают целые игры исключительно на нодах, а большие игры-сервисы удерживают исходники проекта в текстовом варианте? В нескольких проектах, с которыми я работал, были инструменты и системы визуального программирования: от древнего, тогда еще самостоятельного Bolt до монстров FlowCanvas/NodeCanvas и BluePrints в Unreal Engine.
После такого разнообразного опыта и раздумий, в сюжетном проекте столкнулся с FlowCanvas, который оказался очень нужен даже мне, как программисту и архитектору. Поработав с ним и интегрировав его в архитектуру проекта, имею вам кое-что сказать за визуальное программирование. В начале - много текста, процессов, методологии и проектирования, но в конце - это приводит к короткой и (надеюсь) понятной реализации. Рассчитываю на вдумчивых читателей и обсуждение в комментариях.
Принципы SOLID vs KISS. Как найти баланс?
Привет, Хабр! Сегодня я хотел бы поделиться опытом, как писать код так, чтобы системы в проекте были с одной стороны гибкими, а с другой — простыми и компактными.
На самом деле, когда нужно реализовать новую фичу в проекте, необходимо соблюдать баланс между простотой и гибкостью...
Атомарный подход в Unity
Привет, Хабр! 👋
Меня зовут Игорь, и я Unity Developer. Последние несколько месяцев я реализовывал зомби шутер на атомарном подходе. Несмотря на то, что подход оказался очень удобным и гибким, я столкнулся я рядом архитектурных проблем в процессе разработки. Поэтому в этой статье я хотел бы раскрыть текущую концепцию атомарного подхода: объяснить что это такое, какие есть преимущества и недостатки, и самое главное, показать как правильно использовать атомарный подход у себя в проекте.
Zenject: приемы и хитрости
В мой джентельменский набор разработчика входят Zenject, Addressables и DOTween, значительно облегчающие разработку любого проекта на длинной дистанции.
У Zenject-а есть очевидно лишние (привет, Signals) и запутанные модули и возможности. Зачастую, чтобы сделать все красиво, приходится хорошенько покопаться в устройстве DI-контейнера.
Рассказываю о способах приготовления тех фич и тонкостей Zenject, которые за несколько лет разработки нашел полезными и постоянно применял.
ч.15 Игровой авторитарный сервер на процессах и его архитектура в картинках — Создание сервера для онлайн ММО игр на PHP
В предыдущей статье я рассказывал об архитектуре приложения , где ее отдельные компоненты могли бы работать параллельно не блокируя выполнения друг друга.
В этой статье я расскажу о причинах , по которым пришлось сменить взаимодействие между потоками на процессы и выделить компоненты в отдельные сервисы.
Бонус - архитектура игрового сервера в картинках.
Road Run, или как я свою первую игру делал. Часть 6
Модели, сделанные в блендере, о которых я рассказывал в предыдущих частях, готовы и могут быть загружены в игровой движок. В этой части пойдёт речь о том, как собрать и заставить двигаться дорогу в Unity 3d.
2D Тени на Unity. Длина тени объекта
Работа с 2D играми в Unity предлагает упрощенную разработку и лучшую оптимизацию, однако достижение современных стандартов графики в мобильном гейминге с использованием только 2D может быть вызовом. Один из способов преодолеть это ограничение - создание 2.5D эффектов, в частности, реалистичных теней. В этой статье мы рассмотрим, как создать тени с возможностью редактирования их длины для вашей 2D игры.
В Unity 2D не предусмотрено ограничения размера тени. Так если мы добавим Light2D => Spot на сцену и будем использовать его как солнце, тени будут бесконечно большие.
Алгоритм MiniMax. Использование минимакса в Unity на примере игры Поймай Овечку
Минимакс - популярный алгоритм для принятия решений в играх с нулевой суммой (один выиграл - другой проиграл). Казалось бы, раз он так популярен, то всё что можно было про него сказать уже сказано? Не совсем. Информация сильно раздроблена, иногда ошибочна, а найти какие-либо примеры в играх довольно сложно. Поэтому в этой статье я постараюсь прояснить процесс разработки ИИ на основе минимакса для игры "Поймай Овечку".
Unity 3D: о чем давно было пора рассказать нашим подросткам
Прочитал как‑то на Хабре заметку «Что делать с детьми летом, если ты айтишник?» Ответил на нее двумя своими заметками (раз и два). А теперь предлагаю взглянуть на поднятую тему немного с другой стороны: с точки зрения «борьбы с цифровым неравенством»? С тем самым, которое проявляется в ограниченном доступе к информации. По мнению некоторых отечественных экспертов, для ее преодоления, якобы, достаточно всего лишь «100% обеспечение образовательных учреждений, учреждений здравоохранения, органов государственной власти и местного самоуправления современными услугами цифровой связи»... Про борьбу с «цифровым неравенством» учреждений здравоохранения и органов госвласти промолчу... А вот про образование скажу — «Хошь, как хошь, а маловато будет!» А что, по‑вашему, уважаемые эксперты, получат «преодолев цифровое неравенство» наши «рядовые» школьники? Складывается стойкое убеждение, что единственное, что они получат — это игромания. Где те ресурсы, которые помогут расширить их знания, разовьют полезные навыки? Где (адаптированные на соответствующий возраст) методические материалы, которые сделают доступными нашим детям хотя бы уже имеющиеся в сети Интернет полезные ресурсы, созданные в других странах?
Ближайшие события
Создание первой игры: попытка попасть в gamedev
Привет! В этой статье мы поделимся опытом создания нашей первой игры, несмотря на то, что мы не имели большого опыта в создании игр.
Открытые стандарты и архитектуры или самоделки?
Специфика моей деятельности связана с имитационным моделированием технологических объектов и процессов (как сейчас модно говорить - цифровые двойники, оптимизация, тренажеры для обучения персонала). И конечно в этом деле постоянно сталкиваюсь с задачей сетевого обмена информацией и синхронизацией данных, как при реализации многопользовательского режима так и при организации сетевого обмена между отдельными моделями. И вот наблюдаю интересную картину — некоторые производители цифровых двойников и тренажеров используют стандарты для этого всего (например OPC UA, IEEE 1516, DDS (Data Distribution Service), MQTT, CAPE‑OPEN, xAPI), а некоторые — делают самоделки, причем закрытые. Особенно меня удивляют товарищи, создающие эти самые самоделки, ни с чем не совместимые и абсолютно закрытые, только для того, чтобы потом с этими самоделками являться «единственным поставщиком» скажем так, требуя при этом совместимости со своими велосипедами, да еще и являются организациями, которые сами же и проверяют совместимость стороннего ПО со своими‑же велосипедами. Жуть, в общем.
Возвращаемся на Гроув-Стрит. Анализ движка Grand Theft Auto: San Andreas на Unity
Серия Grand Theft Auto стала культовой в игровой индустрии, а San Andreas — одной из самых запоминающихся частей для многих игроков. Время проходит, но фанаты всё так же преданы игре. Кто-то достаёт старый и пыльный диск с ностальгией, а некоторые заходят ещё дальше. Сегодня проверим фанатский перенос GTA: San Andreas на движок Unity с помощью статического анализатора PVS-Studio!
Релиз Unity 2023.2 Tech Stream
В свежей версии 2023.2 TS появилось несколько кроссплатформенных улучшений. Поработали над производительностью (в особенности — над тормозами освещения на мобилках). Нарисовали более красивые атмосферные эффекты для HDRP. Продумали использование VFX Graph. Проапгрейдили UI Toolit, починили баги для VR. Вернулись к понятной схеме названия версий: Не Unity 1234.5 XYZ, а просто Unity 6.
Всё вместе, это позволит поднять реализм и удобство на новый уровень, и заставит разработчиков рвать на себе рубашку за Unity в патриотическом экстазе... или такова легенда. Давайте разберемся.
Гуманитарий с 0 знаний в программировании. 3 часть. Первые шаги в C# (и слегка Unity)
Фрустрация + неизвестность + подготовка к госам/диплома + изучение C# = достаточный уровень напряжения и стресса.
Почему Cities: Skylines 2 так тормозит (часть 2, самое мясо)
Генерация скайбокса
В игре используется встроенная система неба HDRP Unity, то есть она генерирует текстуру скайбокса (кубическую карту) в каждом кадре. Это занимает около 0,65 миллисекунды, что не очень много по сравнению со всем остальным, но если игра нацелена на генерацию 60 FPS, то это будет почти 4% от общего бюджета времени на кадр.
Предварительный проход
Теперь мы переходим к самому рендерингу. В C:S2 используется отложенный рендеринг: по сути, это означает, что рендеринг выполняется за несколько фаз и с использованием множества промежуточных render target. Первая фаза — это предварительный проход, создающий попиксельную информацию о глубине, нормалях и (преположительно) о гладкости, записывая их в две текстуры.
Этот проход на удивление затратен, он занимает примерно 8,2 миллисекунды, то есть слишком много, и именно здесь начинает проявляться одна из самых больших проблем рендеринга игры. Но для начала нам нужно поговорить о тех самых зубах.
Почему Cities: Skylines 2 так тормозит (часть 1)
Одна из самых долгожданных игр для PC Cities: Skylines 2 вышла в конце октября, но получила смешанные отзывы. По моим ощущениям, геймплейно и с точки зрения симуляции игра сделала шаг в правильном направлении, и по крайней мере, теоретически она выглядит более целостной по функциям, чем первая часть. Однако в ней присутствуют существенные изъяны, от проблем с балансом и спорных дизайнерских решений до багов, из-за которых экономическая симуляция игры становится практически бесцельной. Стала ли она достойным преемником оригинала — пока вопрос открытый, но все сходятся в одном: производительность проекта далека от должного уровня.
Вклад авторов
BasmanovDaniil 909.0ThisIsZolden 598.0DyadichenkoGA 484.0soulburner 463.0nightrain912 371.0Plarium 356.6Darina_PL 321.4fischer 291.0barrettdesign 268.0FrozmatGames 268.0