игры с открытым кодом unity
Игра на Unity, с открытым кодом
Суть игры
Идея пришла внезапно, и пока она не улетела решил записать а потом и воплотить ее. Представьте холодную, темную камеру в некой тюрьме. В ней сидит, неизвестно как и неизвестно кем, прикованный волшебник, которого каждую ночь мучает всякая нечисть. Из последних сил он создает небольшой файрбол и вдыхает в него подобие жизни.
Познакомьтесь, это Кальцифер, ваш аватар в этой игре.
Именно им вы будете уничтожать вся гадость, которая ползет в сторону нашего закованного бедняги.
Пояснения насчет кода
Начнем с GameManager. Он всему голова, именно в нем меняется состоянии игры — Initialization->GameLoop->Win или Lose. Одинок и един, ибо синглтон. Так как игра не сетевая, простая, и без сложных переходов, то было принято решение использовать этот паттерн. Здесь же идет обработка попаданий по игроку (см. ниже Известные проблемы), учет хитпоинтов и проверка на выигрыш\проигрыш. Был бы GodObject, да слишком мало у нас классов, поэтому знает не всё обо всех. На этапе инициализации, создается пул объектов отображающих анимацию урона по игроку и смерти врагов. Для отслеживания состояния хитпоинтов, можно подписаться на UpdateHpWizardDelegate или UpdateHpCalciferDelegate. В нашем случае это делает GUIManager для отображения текущего хп на экране.
К этому времени SpawnManager уже составил список точек спавна врагов
a WaveManager загрузил порядок волн создания врагов. Волны можно настроить двумя способами: прописать в коде игры или загрузить с Json файла. Для редактирования этого Json написан кастомный editor:GameDataEditor
Можно прописать точный номер спавна или указать что можно создаться на любом свободном.
Создание волн сделанно с помощью хитрой корутины:
Вначале проходит firstWaveDelay секунд до начала запуска 1 первой волны. После этого в цикле прогоняют все волны по очереди, вставляя нужную задержку step.delay между шагами волны. Почему в корутине а не например в Update? Да собственно можно и так и эдак, просто тут более наглядно, видно где задержка ( yield return new WaitForSeconds) и не надо городить лишние циклы и проверки.
Давай те глянем что же представляют из себя SpawnPoint. Это MonoBehavior c 2 компонентами: SpawnPoint и CircleCollider2D. В первом, с помощью второго, определяется занят ли спавн каким то врагом. OnDrawGizmos отображает в редакторе Unity расположение спавнов.
Все враги происходят от базового класса BasicEnemy в котором есть несколько виртуальных методов:
Кстати, врагов и многие другие объекты (много и часто создаваемых на сцене) мы не удаляем с помощью Destroy(this), а отправляем обратно в пул объектов — ObjectPool.Recycle(this). Таким макаром мы неплохо экономим на создании объектов, которое как известно достаточно затратное дело.
Так например анимации заканчиваются вызовом SelfDestroy(), который и возвращает объект анимации обратно в пул.
Движутся же враги с помощью силы пафоса компонента BasicEnemyMoving. В нем нас интересуют два метода: OnEnable()и Move(). OnEnable () вызывается после вытаскивания врага с пула и нужен для поворота врага (если необходимо) в сторону цели.
Move() же является виртуальным методом, который и движет врага к цели. Его можно переопределить в потомках и сделать особенное движение (с рывками, синусоидальное и т.п.)
Лучшие игры на движке Unity. Часть 1
Подборка видеоигр, позволяющих оценить потенциал Unity.
Unity — технология для разработки видеоигр, созданная американской компанией Unity Technologies в 2005 году. Движок поддерживает более двадцати платформ, среди них ПК, консоли, смартфоны, веб-браузеры, Smart TV.
Помимо геймдева, Unity используют в кинематографе, анимации, автоиндустрии, транспорте, архитектуре и строительстве. Модель распространения — условно-бесплатная, есть несколько типов лицензий:
Глава Unity Technologies — Джон Ричителло, до этого занимавший руководящие должности в Electronic Arts: с 1997 года по 2004-й он был исполнительным директором компании, а с 2007-го по 2014-й — генеральным.
Директор по графике — Наталья Татарчук. Главные направления её работы — технологии рендеринга и производительность движка. До этого работала инженером-архитектором и ведущим специалистом по графике в студии Bungie. Для франшиз Destiny и Halo Наталья разрабатывала кроссплатформенный движок для рендеринга.
«Я всегда радуюсь разнообразию способов использования Unity. Как человеку, который зарабатывал на жизнь написанием алгоритмов, мне приятно, когда разработчики берут наш алгоритм или функцию и придумывают неожиданный способ её использования. Мы создаём инструменты, дающие людям основу для творчества. Главное, чтобы конечный результат воспроизводил то, что у них в голове, их видение, их мир».
Наталья Татарчук,
директор по графике в Unity
Наш выбор остановился на десяти играх, которые, как нам кажется, раскрывают потенциал Unity. В подборке — инди и проекты ААА-студий, платформеры и стратегии, симуляторы выживания и RPG, одиночные и мультиплеерные игры. Это первая часть материала — в ней речь пойдёт о пяти играх, созданных на Unity.
Подробнее о движке и других условно-бесплатных графических технологиях читайте в другом нашем материале.
Сценарист и копирайтер. Утверждает, что видел все фильмы и прошёл все игры, но редакция отказывается ему верить.
Hollow Knight
Unity завоевал славу движка, популярного среди независимых создателей игр. Например, большинство разработчиков инди-сообщества itch.io выбрали для своих проектов именно эту технологию.
Первые концепты 2D-платформера Hollow Knight появились на геймджеме Ludum Dare 27. Австралийские разработчики — Ари Гибсон и Уильям Пеллен — стали развивать свои идеи, зародившиеся на хакатоне, и запустили кампанию на Kickstarter. Собрав 57 тысяч долларов, они основали студию Team Cherry.
Hollow Knight — метроидвания, события которой происходят в подземном городе жуков. Вымышленный мир устроен как большой лабиринт со множеством секретов, неожиданных проходов и постоянных препятствий. Геймплей жанра завязан на бэктрекинге : главный герой изучает мир, приобретает новые способности, а затем возвращается в старые уровни, чтобы найти этим способностям применение.
«Мы не задумывались о жанре нашей игры, не хотели загонять себя в жанровые рамки. Некоторые механики были взяты из Metroid и Mega Man, система амулетов — из Paper Mario. Мы не слишком беспокоились о том, чтобы Hollow Knight была именно метроидванией, просто пытались создать захватывающее приключение. Мы наполняли мир интересными персонажами в непривычном сеттинге, добавляли точки интереса и связи, сюрпризы и неожиданные события».
Система амулетов, влияющих на передвижение и бой, позволяет менять билд персонажа во время сохранения на скамейке. В зависимости от конкретного препятствия игрок может собрать подходящую комбинацию амулетов.
Минималистичная графика, мрачный и готичный арт-дизайн Hollow Knight напоминают, что красивые игры не обязательно должны быть нацелены на грандиозные технические достижения.
«Главный герой — самый обычный жук, посвящённый в рыцари. Внешность персонажа состоит из множества технических ограничений, которые иногда полезны для творчества. Надев на жука маленький плащ, игрок не сможет увидеть его конечности. Мы просто попытались создать что-то простое, потому что, каким бы ни был ваш герой, вы будете рисовать его тысячу раз. Минимализм — безусловно — помогает разработке».
Уильям Пеллен,
создатель Hollow Knight
Team Cherry создала отличительный визуальный стиль из нарисованных от руки рисунков и традиционной анимации, сделанной в Photoshop. Вместо сложных 3D-систем освещения разработчики использовали мягкие прозрачные формы. Команда создавала уровни с помощью 2D-активов, наложенных на 3D-среду, используя двухмерную физику, упаковщик спрайтов и систему частиц из набора инструментов из магазина ассетов.
С момента релиза в 2017 году Hollow Knight продалась тиражом свыше трёх миллионов копий. Team Cherry развивают франшизу: вышло четыре бесплатных DLC, анонсирован сиквел с подзаголовком Silksong. Главным героем продолжения станет Хорнет, которую игроки уже встречали в оригинале.
Ori and the Will of the Wisps
Ori — серия двухмерных платформеров в жанре метроидвания, разработчиком выступила Moon Studios. Австрийская студия была основана в 2010 году, уже в 2011-м началось партнёрство с Xbox Game Studios, которая издаёт Ori. Обе части сначала вышли на платформах Microsoft — Windows и Xbox.
Основатели Moon Studios — бывший художник персонажей Blizzard Томас Малер и бывший главный графический инженер Animation Lab Геннадий Король. Студия работает полностью удалённо — по сути, это международное сообщество разработчиков, до этого занимавшихся ААА-играми.
Открытые проекты
Для энтузиастов, готовых объединить усилия в разработке игры, мы запустили первую программу Unity по разработке ПО с открытым исходным кодом. Присоединяйтесь к нашему путешествию.
Unity Open Projects — это инициатива совместной разработки, в рамках которой Unity и сообщество разработчиков объединят усилия в разработке небольших игр с открытым исходным кодом. Принимайте активное участие или просто следите за работой, чтобы узнать, как выглядит разработка проекта изнутри.
Реалистичный процесс разработки игр
Проекты развиваются. Команды адаптируются. Как и в реальном мире, здесь возникают разные трудности, эффективное преодоление которых зависит от вклада всех участников. Это настоящая коллективная работа.
Внести свой вклад может каждый
Художники, программисты, дизайнеры! Независимо от ваших интересов и опыта вы можете повлиять на развитие проекта и получить опыт командной работы.
Примите участие в приключении
Принимайте участие сообразно вашим навыкам, графику и интересам. Или просто наблюдайте и учитесь. Это путь, который можно пройти разными маршрутами.
С помощью инициативы Open Projects мы хотим показать процесс реальной разработки проекта и приглашаем в проект всех желающих. Окажите посильную помощь проекту и заработайте свое место в списке создателей.
Игры с открытым кодом unity
Как и обещали, в Косари пришёл день святого Валентина. Преследователь-гей, летающие сердца. В общем, пора браться за косу, братья! Коси их всех!
Закинуть чего-нибудь нового в игру тут: https://github.com/kotofun/kosari
Косари. Последний релиз
Очередной пост про кровавую косу 🙂 Есть новости хорошие, плохие и очень хорошие!
Хорошая новость: в Косарей 14 февраля придёт день Святого Валентина. Преследователь сойдёт с ума, летучие мыши куда-то улетели, корги какие-то разлетались. Бардак какой-то! Почувствуй себя корейцем, скоси корги! Ещё и рекламу бойлеров Валентин поставили.
Плохая новость: команда Kotofun больше не располагает большим количеством свободного времени. В свящи с этим мы приостанавливаем работу над косарями. Какие-то апдейты будут выходить время от времени, но значительно реже.
Очень хорошая новость в связи с отсутствием у нас свободного времени, мы решили выложить игру в Open Source. Теперь все желающие могут внести свою лепту и сделать игру такой, каким видит её сообщество.
Мы будем ревьюить пул-реквесты и давать фидбэк при возможности и необходимости.
Поиграть всё также можно будет тут http://kosari.koto.fun
Надеемся, что сообщество поддержит наше начинание заканчивание и игра станет только лучше! Ставьте плюсы посту, сделаем из косарей крутой Open Source!
Ну а мы пошли работать над нашим новым проекте, о котором по готовности мы обязательно расскажем в нашем аккаунте на Pikabu!
Игры для консолей и ПК
Богатство графики и удобные инструменты для художников — залог непревзойденной производительности игр на Unity для консолей и ПК с поддержкой многопоточности.
В Heretic используется множество графических решений Unity, включая все аспекты High Definition Render Pipeline (HDRP). Unity 2020 поможет вам достигнуть качества визуализации в реальном времени, сравнимого с голливудской графикой, благодаря встроенным областям света (area lights), качественным теням, объемным эффектам, отражениям, сложным материалам и другим возможностям.
«Что действительно здорово в Unity — это встроенная поддержка основных инструментов, которые используют наши художники, Photoshop и Maya».
«Мы решили отказаться от внутренней технологии в пользу Unity, чтобы пересмотреть наши представления о том, как разрабатываются большие игры».
«Только за счет Unity Entity Component System (ECS) мы смогли значительно увеличить производительность игры без особых усилий».
«HDRP очень удобен и избавляет нас от множества проблем. Сортировка прозрачности и стекло выглядят именно так, как надо, благодаря встроенному решению Unity»
Эффективность творчества и успех с универсальной платформой
Пример шутера от первого лица DOTS
Пример проекта на базе DOTS демонстрирует взаимодействие новых технологий DOTS в многопользовательском шутере, включая Unity Physics, FPS Netcode, Conversion Workflow, Unity Live Link и другие.
In the Valley of Gods
От создателей Firewatch: новый разносторонний сюжет в антураже Египта 1920-х годов. Создавая трогательную историю о дружбе, студия использовала ряд функций, отвечающих за правильность работы физики, анимации и других элементов, например, Playables API и Mecanim.
Книга мертвых
Интерактивное приложение с видом от первого лица, демонстрирующее возможности Unity в разработке игр с качественными визуальными эффектами. В проекте используются процесс рендеринга высокого разрешения (HDRP) и многие другие особенности Unity.
Harold Halibut
Приключенческая игра с сильным сюжетом и множеством возможностей исследовать игровой мир. Инновационные технологии покадровой анимации воплощены с помощью различных инструментов Unity, в том числе фотограмметрии и HDRP, а сочетание Timeline и Cinemachine открыло для студии возможности нелинейного монтажа.
Escape from Tarkov
Для разработки хардкорного шутера от первого лица российская студия из 80 сотрудников выбрала Unity. Чтобы удовлетворить высокие запросы игровой аудитории, студия использовала Mecanim для реалистичной анимации персонажей и Memory Profiler для оптимизации игрового процесса.
Rick and Morty: Virtual Rick-ality
Первая попытка Owlchemy перенести двухмерный мир известного мультсериала в трехмерное пространство. Новейшее приключение от студии Owlchemy, созданное с использованием VR-инструментария Unity, отправит Рика и Морти в вашу гостиную, где вы сможете поиграть с клоном Морти, исследовать гараж Рика, познакомиться с домом Смита и инопланетными мирами.
FPS Sample
Полностью готовый для игры многопользовательский шутер от первого лица со всем исходным кодом и ресурсами доступен для загрузки. Познакомьтесь с новейшими функциями Unity, извлекайте и используйте нужные вам элементы или задействуйте весь проект в качестве отправной точки для многопользовательских онлайн-шутеров для ПК или консолей.
ECS Megacity
На Unite Los Angeles мы рассказали о наших успехах по созданию ECS и компилятора Burst. Взяв за основу демоверсию студии Nordeus, показанную на Unite Austin, мы объединили усилия с командой разработки FPS sample создали футуристичный город в Unity 2018.3 с некоторыми изменениями, которые появятся в Unity в 2019 году.
Функциональность
Процесс рендеринга высокого разрешения (HDRP)
HDRP идеален для проектов AAA-класса, демонстраций и приложений для устройств с поддержкой Compute Shader/GPU, включая ПК с многоядерными процессорами и консоли. Он поддерживает как упреждающий, так и отложенный рендеринг, физически корректное освещение и материалы.
Префабы
Префабы обеспечивают эффективность и гибкость рабочего процесса, а также уверенность в результате работы больших коллективов, сводя к минимуму вероятность возникновения трудоемких ошибок. Они значительно расширяют творческие возможности и повышают производительность благодаря автоматической итерации множества игровых объектов на лету.
Visual Effect Graph
Эта гибкая и удобная для художников система ускоряет разработку визуальных эффектов. Интерфейс построен на основе готовых графов, позволяя создавать простые эффекты и экспериментировать с ними в реальном времени.
Стек информационно-ориентированных технологий (DOTS)
DOTS — это мощная система, раскрывающая весь потенциал современных многоядерных процессоров. Система Entity Component (ECS) реализует информационно-ориентированный подход к разработке игр на основе игровых данных благодаря поддержке системы задач C# для параллелизации и компилятора Burst для оптимизации.
Cinemachine
Эта система умных камер позволяет с легкостью ставить кадры, создавать установки и настраивать кинематографию без переделывания чужой работы. Cinemachine автоматизирует поведение камеры и динамически подбирает лучшие планы на основе постановки и взаимодействий в сцене.
Timeline
Timeline позволяет автоматически переключать планы, создавая богатый видеоряд, кат-сцены и игровые сцены, управляя анимацией, звуком, частицами, элементами сцены и другими игровыми объектами. Многодорожечный интерфейс ускоряет работу, помогая создавать сцены на лету, обновляя их полностью парой щелчков.
Фотограмметрия
Используя широкие возможности фотограмметрии в Unity, вы сможете с легкостью создавать качественные и универсальные готовые цифровые ресурсы из фотографий и видео.
Разрабатывайте шейдеры с легкостью, перетаскивая блоки вместо написания кода. Создавайте и объединяйте узлы в графы, следите за результатом в реальном времени благодаря открытой архитектуре и инструментам разработки графов в Shader Graph.
Разрабатывайте шейдеры с легкостью, перетаскивая блоки вместо написания кода. Создавайте и объединяйте узлы в графы, следите за результатом в реальном времени благодаря открытой архитектуре и инструментам разработки графов в Shader Graph.
Идеальная платформа для разработки в реальном времени
Unity, ведущая в отрасли платформа разработки в реальном времени, дает программистам все необходимое для разработки быстрых и легковесных приложений в гибком графическом интерфейсе редактора.
Расширяемость и гибкость
Unity — это непревзойденная масштабируемость и готовность к адаптации в стремительно меняющихся условиях благодаря мощной системе C#-скриптов, богатым API и документации. Мы предлагаем различные варианты доступа к исходному коду для разработки на C++.
Стремительное творчество
Благодаря интуитивному интерфейсу и инструментам Unity упрощает создание рабочего прототипа, позволяя избегать низкоуровневого программирования. Изменения вносятся легко и быстро благодаря магии реального времени, что позволяет быстрее и легче создавать и улучшать прототипы.
Непревзойденная поддержка платформ
Расширяйте аудиторию благодаря поддержке более 25 платформ. Unity тесно и активно сотрудничает с производителями платформ, благодаря чему вы, однажды разработав приложение, можете выпускать его на настольных компьютерах и консолях, а также на мобильных устройствах.
Надежность интеграции
У Unity мощный и хорошо документированный API с доступом ко всем системам Unity, включая физику, рендеринг и обмен данными, что позволяет построить богатую модель взаимодействия и интегрировать ее с другими системами.
Оптимальная производительность графики
Unity Scriptable Render Pipeline дает полную гибкость в оптимизации графики. High-Definition Render Pipeline обеспечивает высочайшее качество графики на мощных системах, в то время как Lightweight Render Pipeline позволяет сохранить производительность при переходе на мобильные устройства.
Огромный каталог ресурсов и инструментов
Unity Asset Store открывает вам двери к крупнейшему магазину готовых ресурсов и инструментов для разработки вашего проекта. Это строительный материал, который позволяет сэкономить время разработки, позволяя выйти на финишную прямую быстрее.
Сервисы
Многопользовательские игры
Многопользовательские игры сегодня особенно популярны и прибыльны. Наши облачные средства и сервисы помогут вам и вашим игрокам добиться невероятных результатов.
Unity Teams
Unity Teams упрощает и ускоряет совместную разработку в студии. Благодаря этому сервису можно сохранять, делиться проектами на Unity с коллегами и синхронизировать их с компьютерами в любой точке земного шара.
Мобильный бизнес: управляйте выпущенной игрой
Создавайте динамические миры на основе наших данных и встроенного инструментария Analytics.
Largest community of real-time creators
Unity-разработчик — 7-я из 10 по росту востребованности профессия в США согласно данным LinkedIn. Благодаря огромной базе талантов, собравшихся на портале Unity Connect, а также программе сертификации, позволяющей подтвердить навыки по профессиональному стандарту, поиск квалифицированного Unity-специалиста для вашей команды становится простым как никогда.
Для крупных игровых студий мы предлагаем специальные решения, помогающие достигнуть поставленных целей.
Подробнее
Введение в DOTS Sample
Узнайте о подробностях работы сетевых функций в проектах Unity на основе DOTS, посмотрев обзор DOTS Sample и Netcode, который используется в данном примере.
Начало работы с HDRP в играх
Научитесь оценивать целесообразность использования HDRP в вашей игре и узнайте, как его использовать в проекте.
Разработка невероятных эффектов в Visual Effect Graph
Visual Effect Graph дает художникам всех уровней свободу в разработке удивительных визуальных эффектов с системами частиц. В этой сессии для пользователей среднего уровня наши разработчики вкратце расскажут о том, как генерировать миллионы частиц в реальном времени с помощью графического процессора с использованием инструментария Visual Effects Graph.
Entity Component System (ECS): обзор Megacity
Проект Megacity создан на основе Data-Oriented Technology Stack (DOTS) и включает множество оптимизаций, запланированных к выпуску в рамках цикла Unity 2019. Результаты поистине впечатляют.