Разное

Движок 3d: Создаём собственный программный 3D-движок / Хабр

Содержание

Движок Unity – особенности, преимущества и недостатки

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

Что представляет собой Unity?

Unity – больше, чем движок, это среда для разработки компьютерных игр, в которой объединены различные программные средства, используемые при создании ПО – текстовый редактор, компилятор, отладчик и так далее. При этом, благодаря удобству использования, Unity делает создание игр максимально простым и комфортным, а мультиплатформенность движка позволяет игроделам охватить как можно большее количество игровых платформ и операционных систем.

Чем хорош Unity?

В первую очередь, как мы уже упоминали, движок Unity3D дает возможность разрабатывать игры, не требуя для этого каких-то особых знаний. Здесь используется компонентно-ориентированный подход, в рамках которого разработчик создает объекты (например, главного героя) и к ним добавляет различные компоненты (например, визуальное отображение персонажа и способы управления им).

Благодаря удобному Drag & Drop интерфейсу и функциональному графическому редактору движок позволяет рисовать карты и расставлять объекты в реальном времени и сразу же тестировать получившийся результат.

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

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

Третья сильная сторона Unity 3D – поддержка огромного количества платформ, технологий, API. Созданные на движке игры можно легко портировать между ОС Windows, Linux, OS X, Android, iOS, на консоли семейств PlayStation, Xbox, Nintendo, на VR- и AR-устройства.

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

Физика твердых тел, ragdoll и тканей, система Level of Detail, коллизии между объектами, сложные анимации – все это можно реализовать силами движка.

Стереотипное мнение о том, что движок пригоден только для небольших инди-игр и неспособен выдавать красивую картинку, давно уже не актуально: достаточно посмотреть технодемо ADAM, The Blacksmith и Book of the Dead от создателей среды Unity, чтобы убедиться в ее выдающихся способностях.

Наконец, Unity доступен бесплатно, что открывает перед независимыми разработчиками дверь в игровую индустрию. Конечно, существуют ограничения: бесплатная версия движка демонстрирует лого Unity перед запуском игры, а проект, созданный с ее помощью, не должен приносить разработчику больше $100 тысяч в год.

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

Чем плох Unity?

При всех своих достоинствах, движок имеет и свои недостатки. Так, если команда захочет разработать что-нибудь сложнее простого кликера или платформера, то ей придется искать хорошего программиста на C#, который напишет скрипты и компоненты, внедрит их в игру и заставит работать.

Из этого вытекает другая проблема движка Unity – медлительность. Создание масштабных, сложных сцен с множеством компонентов может негативно повлиять на производительность игры, в результате чего разработчикам придется потратить дополнительное время и ресурсы на оптимизацию, а возможно – и удаление некоторых элементов из проекта.

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

Кому стоит использовать Unity (в первую очередь)?

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

Unity позволяет быстро создать объекты, расставить и связать их, создать нехитрую сцену, задействовать собственный контент и содержимое магазина ассетов. Так как движок имеет огромную аудиторию пользователей, найти решение любой проблемы не составит труда – комьюнити и разработчики с радостью помогут начинающему игроделу с возникающими вопросами, а официальные и пользовательские блоги и обучающие курсы (в том числе на русском языке) дадут все необходимые знания.

Большие студии также найдут в движке свои преимущества. Его возможности движка позволяют создавать масштабные игры близкие к ААА-классу. За примерами далеко ходить не нужно: Pillars of Eternity, Firewatch, Inside, Superhot – все эти громкие проекты созданы на Unity. Будь то дорогой сюжетно-ориентированный проект или многопользовательская браузерная игра на Unity3D, разработчики в любом случае получат мощный и гибкий инструментарий для создания максимально качественного продукта.

Лучшие игры на Unity

Disco Elysium

Disco Elysium представляет собой красочную самобытную РПГ, которая использует сложную систему проверки навыков персонажа, прямо как в настольных играх.

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

Купить

Among Us

Among Us – это многопользовательская игра, вдохновленная известной всем настольной игрой «Мафия». Благодаря мультиплатформенным возможностям Unity, она работает на многих устройствах и даже поддерживает кроссплей.

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

Купить

Monument Valley 2

Monument Valley 2 – это сиквел известного инди-хита в жанре головоломки, чей минималистичный визуальный стиль был вдохновлен японскими гравюрами и рисунками М. К. Эшера. Благодаря своей атмосфере и абстрактным пазлам игра обладает удивительным умиротворяющим эффектом.

Купить

RimWorld

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

Купить

Death’s Door

Death’s Door одновременно напоминает Legend of Zelda, Diablo и Dark Souls, только вы управляете вороной, которая путешествует по земле, сражаясь с грозными существами и монструозными боссами. В игре используется изометрическая перспектива в духе Diablo, однако игровой процесс и устройство мира больше напоминает классические части Zelda.

Купить

Gunfire Reborn

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

Купить

Cities: Skylines

Это феноменальный градостроительный симулятор, который во всех отношениях превосходит своего предшественника Sim City.

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

Купить

Fe

Fe – это необычный приключенческий экшн, действие которого разворачивается в красочном фэнтезийном мире, где вы управляете маленьким существом, похожим на нечто среднее между белкой и лисицей. Цель состоит в том, чтобы остановить механических захватчиков, которые начали нападать на животных в волшебном лесу. Чтобы взаимодействовать с миром и его удивительными обитателями, игрок может разучивать и исполнять песни, которые производят разный эффект на окружающих.

Купить

My Friend Pedro

My Friend Pedro – это веселый и динамичный экшн-платформер, требующий от игроков моментальной реакции и превосходной координации.

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

Купить

BattleTech

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

Купить

FAR: Lone Sails

FAR: Lone Sails может быть не для всех, так как тут нет безостановочного экшена или закрученного сюжета. Все потому, что это больше путешествие, чем игра. Вы бродите по безлюдным пустошам, пытаясь понять, что здесь произошло пока не натыкаетесь на некое транспортное средство. На этой диковинной машине вы отправитесь исследовать руины некогда процветающей цивилизации в поисках ответов. Но что ждет вас впереди?

Купить

I Am Setsuna

Сюжет игры вращается вокруг наемника и его подопечной по имени Сецуна, которая согласно обычаям должна быть принесена в жертву святилищу, чтобы умилостивить разгневанных богов. Игровой процесс с узнаваемой боевой системой отсылают нас к JRPG старой школы в духе Chrono Trigger, только с более современной стилизованной 3D-графикой и потрясающими пейзажами на заднем фоне.

Купить

Arizona Sunshine

Arizona Sunshine – яркая демонстрация недооцененного потенциала Unity в жанре виртуальной реальности.

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

Купить

Getting Over It with Bennett Foddy

Беннет Фодди, единственный разработчик игры, проделал потрясающую работу создавая Getting Over It. Она очень небольшая. В теории ее можно пройти менее чем за 10 минут, если вы действительно хороши. На практике же вас ждут долгие часы боли и превозмоганий в несчетных попытках забраться на гору при помощи молотка, сидя при этом в котле. Зачем? Почему? В конечном счете вам будет плевать, так как вы захотите во что бы то ни стало покорить эту проклятую гору, в очередной раз начиная у самого ее подножья.

Купить

Plague Inc: Evolved

Независимо от того, какие видеоигры и формат игрового процесса вы предпочитаете, у Plague Inc. есть что предложить каждому. Вы ищете необычную глобальную стратегию? Или реалистичный и глубокий симулятор? Или быть может вы просто хотите поиграть за суперзлодея, который собирается уничтожить все человечество? Все это вы найдете в Plague Inc., где ваша главная цель – создать смертельный вирус, который максимально быстро распространится по всей планете.

Купить

Osiris: New Dawn

Эта научно-фантастическая песочница с открытым миром наверняка удивит любого, если не своими поразительными визуальными эффектами и физикой объектов, то уж точно тем фактом, что все это великолепие работает на Unity. Вероятно, такого эффекта было очень трудно добиться, поскольку многие космические игры имеют тенденцию уделять меньше внимания графике и общему виду окружающей среды в угоду создания необъятных галактик, реалистичной гравитации и прочих факторов. Однако создателям Osiris: New Dawn удалось и то, и другое.

Купить

Never Alone

С виду Never Alone – это типичный платформер-головоломка, но в нем есть небольшая изюминка. Он углубляется в историю и заставляет вас сильно сопереживать главным героям.

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

Купить

Gone Home

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

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

Купить

Risk of Rain 2

Продолжение популярного roguelike-экшена, Risk of Rain 2 выводит происходящее в первой игре на совершенно новый уровень, добавляя третье измерение, созданное с помощью мощностей графического 3D-движка Unity.

Прокладывайте свой путь через процедурно сгенерированные локации, убивая все, что будет мешать на вашем пути к победе над грозными боссами, охраняющими портал. Звучит как-то слишком банально и незатейливо, но изюминка Risk of Rain 2 заключается в том, что двух одинаковых прохождений здесь не бывает.

Купить

Rust

Популярный симулятор выживания с крафтингом, строительством, прокачкой, сражениями и прочими атрибутами жанра.

Купить

Pillars of Eternity

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

Купить

Ori and the Blind Forest

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

Купить

7 Days to Die

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

Купить

Endless Legend

Фэнтезийная 4X-стратегия, которая предлагает игроку завоевать далекую планету, используя все возможные способы – от дипломатии до военной мощи.

Купить

Firewatch

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

Купить

Inside

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

Купить

Kerbal Space Program

Космический симулятор с дотошным вниманием к деталям: здесь игрок должен конструировать ракеты, основываясь на реальных законах физики и механики.

Купить

Subnautica

Симулятор выживания в подводном мире с затягивающим геймплеем, полным тайн сюжетом и проработанной системой крафтинга.

Купить

Sunless Sea

Мрачная roguelike-игра, выполненная во вселенной, которая совмещает в себе шарм Викторианской эпохи и мистическую атмосферу лавкрафтовских мифов.

Купить

Untitled Goose Game

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

Купить

Cuphead

 

Кооперативный run-n-gun платформер, в котором пара чашек (можно играть и одному, но это не так весело, как в кооперативе) сражается с разнообразными боссами, чтобы отработать долг перед дьяволом.

Купить

Escape from Tarkov

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

Купить

Калибр

Сетевой командный боевик, посвященный деятельности подразделений спецназа разных стран. Игрокам предстоит выполнять сложные задания в захватывающих PvP и PvE режимах.

Скачать

Pathfinder: Kingmaker

Компьютерная ролевая игра от российской студии Owlcat Games, основанная на вселенной настолки Pathfinder. Геймеров ждет путешествие по фэнтезийному миру и участие в эпической сюжетной кампании.

Купить

Superhot

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

Купить

Beat Saber

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

Купить

Hearthstone

Одна из главных карточных игр в индустрии, ККИ от компании Blizzard, покорившая игроков огромным количеством механик и затягивающим игровым процессом. Доступна бесплатно на РС и мобильных платформах.

Скачать

Gris

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

Купить

Outer Wilds

Приключенческая игра, чей сюжет основан на концепции петли времени. Игроку дается всего 22 минуты на изучение планеты, после чего она погибает и цикл начинается заново. Одно из лучших приключений 2019 года.

Купить

Fall Guys: Ultimate Knockout

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

Скачать

Shadowrun Returns

Тактическая RPG, сочетающая элементы фэнтези и киберпанка, главный герой которой открывает охоту на серийного убийцу, что орудует в футуристическом городе.

Купить

Genshin Impact

Популярная бесплатная action RPG с мультяшной графикой, открытым миром, кооперативом и большим акцентом на механики гачи.

Скачать

Hollow Knight

Захватывающая метроидвания, действие которой разворачивается в мире насекомых. Классика жанра, один из лучших его представителей.

Купить

Inscryption

ККИ, в которой необходимо победить загадочного демона и сбежать из его плена. Однако это – лишь вершина айсберга, скрывающего многомерную игру с разнообразными механиками и закрученным сюжетом.

Купить

Syberia: The World Before

Продолжение культовой серии Syberia, сосредоточенное на приключениях двух девушек в разных временных отрезках.

Купить

Legends of Runeterra

Бесплатная многопользовательская карточная игра от Riot Games, действие которой происходит в одной вселенной с популярной MOBA League of Legends.

Скачать

The Long Dark

Симулятор выживания на холодных просторах Канады, куда главный герой попадает после авиакатастрофы.

Скачать

Return of the Obra Dinn

Однобитный детектив, посвященный расследованию событий на загадочно исчезнувшем и так же загадочно появившемся корабле «Обра Динн».

Купить

Twelve Minutes

Головоломка о петле времени, главный герой который пытается выбраться из западни и предотвратить жестокое убийство.

Купить

Свой 3D движок Python Пересечение отрезка и прямоугольника

Не дождался ответа, поэтому несколько часов решал уравнения и все получилось. вот код для этой функции. Возможно можно как-то еще до оптимизировать numpy

import numba as nb
import numpy as np
import time
import math
import random
@nb.njit(cache=True, fastmath=True)
def _3points_to_eq_of_plane(_3v3):
    v3_1 = _3v3[0]
    v3_2 = _3v3[1]
    v3_3 = _3v3[2]
    x1 = v3_1[0]
    y1 = v3_1[1]
    z1 = v3_1[2]
    x2 = v3_2[0]
    y2 = v3_2[1]
    z2 = v3_2[2]
    x3 = v3_3[0]
    y3 = v3_3[1]
    z3 = v3_3[2]
    vector1 = np.array([x2 - x1, y2 - y1, z2 - z1])
    vector2 = np.array([x3 - x1, y3 - y1, z3 - z1])
    cross_product = [vector1[1] * vector2[2] - vector1[2] * vector2[1],
                     -1 * (vector1[0] * vector2[2] - vector1[2] * vector2[0]),
                     vector1[0] * vector2[1] - vector1[1] * vector2[0]]
    a = cross_product[0]
    b = cross_product[1]
    c = cross_product[2]
    d = - (cross_product[0] * x1 + cross_product[1] * y1 + cross_product[2] * z1)
    return np.array([a, b, c, d])
@nb.njit(cache=True, fastmath=True)
def xyz_of_intersection_plane_and_line(a, b, c, d, x1, x2, y1, y2, z1, z2):
    x21 = (x2 - x1)
    y21 = (y2 - y1)
    z21 = (z2 - z1)
    zxy21_c = (z21 + x21) * c / y21
    y = (y1 * zxy21_c - z1 * c - d - x1 * a) / (zxy21_c + b)
    x = (y - y1) * x21 / y21 + x1
    z = (-d - a * x - b * y) / c
    return np.
array([x, y, z]) @nb.njit(cache=True, fastmath=True) def point_to_pix_on_rect(view_rect, v3, size_x, size_y): xsx = (view_rect[1][0] - view_rect[0][0]) / (size_x - 1) xsy = (view_rect[1][1] - view_rect[0][1]) / (size_x - 1) xsz = (view_rect[1][2] - view_rect[0][2]) / (size_x - 1) ysx = (view_rect[3][0] - view_rect[0][0]) / (size_y - 1) ysy = (view_rect[3][1] - view_rect[0][1]) / (size_y - 1) ysz = (view_rect[3][2] - view_rect[0][2]) / (size_y - 1) c1x = view_rect[0][0] c1y = view_rect[0][1] c1z = view_rect[0][2] x = v3[0] y = v3[1] z = v3[2] # Здесь система из 3 линейный уравнений с 2 неизвестными # Выбираем лучшие - самая большая разница координат для меньшей ошибки dx = abs(view_rect[2][0] - view_rect[0][0]) dy = abs(view_rect[2][1] - view_rect[0][1]) dz = abs(view_rect[2][2] - view_rect[0][2]) if ysx == 0 and ysz == 0: i = (x - c1x) / xsx j = (y - c1y) / ysy elif ysy == 0 and ysz == 0: i = (x - c1x) / ysx j = (y - c1y) / xsx elif ysy == 0 and ysx == 0: i = (x - c1x) / ysz j = (y - c1y) / ysz elif min(dx, dy, dz) == dx: # i * xsx + j * ysx = x - c1x # i * xsy + j * ysy = y - c1y print(ysx) i = (y - c1y + x * ysy / ysx + c1x * ysy / ysx) / (xsy - xsx * ysy / ysx) j = (x - c1x - i * xsx) / ysx elif min(dx, dy, dz) == dy: # i * xsx + j * ysx = x - c1x # i * xsz + j * ysz = z - c1z i = (z - c1z + x * ysz / ysx + c1x * ysz / ysx) / (xsz - xsx * ysz / ysx) j = (x - c1x - i * xsx) / ysx elif min(dx, dy, dz) == dz: # i * xsz + j * ysz = z - c1z # i * xsy + j * ysy = y - c1y i = (y - c1y + z * ysy / ysz + c1z * ysy / ysz) / (xsy - xsz * ysy / ysz) j = (y - c1y - i * xsy) / ysy return np.
array([i, j]) @nb.njit(cache=True, fastmath=True) def rect_view_triangle_size_to_pix(rect, view, triangle, size_x, size_y): points_from_rect = np.zeros((3, 3)) points_from_rect[0] = rect[0] points_from_rect[1] = rect[1] points_from_rect[2] = rect[2] plane = _3points_to_eq_of_plane(points_from_rect) a = plane[0] b = plane[1] c = plane[2] d = plane[3] v31 = triangle[0] v32 = triangle[1] v33 = triangle[2] x = view[0] y = view[1] z = view[2] x1 = v31[0] y1 = v31[1] z1 = v31[2] x2 = v32[0] y2 = v32[1] z2 = v32[2] x3 = v33[0] y3 = v33[1] z3 = v33[2] v31 = xyz_of_intersection_plane_and_line(a, b, c, d, x, x1, y, y1, z, z1) v32 = xyz_of_intersection_plane_and_line(a, b, c, d, x, x2, y, y2, z, z2) v33 = xyz_of_intersection_plane_and_line(a, b, c, d, x, x3, y, y3, z, z3) v1 = point_to_pix_on_rect(rect, v31, size_x, size_y) v2 = point_to_pix_on_rect(rect, v32, size_x, size_y) v3 = point_to_pix_on_rect(rect, v33, size_x, size_y) ret = np.
zeros((3, 2)) ret[0] = v1 ret[1] = v2 ret[2] = v3 return ret @nb.njit(cache=True, fastmath=True, parallel=True) def get_triangles_on_screen(triangles, rect, size_x, size_y, x, y, z): view = np.zeros(3) view[0] = x view[1] = y view[2] = z lt = len(triangles) result = np.zeros((lt, 3, 2)) for i in nb.prange(lt): result[i] = rect_view_triangle_size_to_pix(rect, view, triangles[i], size_x, size_y) return result

Остальное не покажу. картинка рендерится пол секунды 470000 полигонов. triangles — массив треугольников rect — прямоугольник size_x — ширина окна size_y — высота окна x, y, z — положение камеры

Open 3D Engine: старая одежда Amazon или игровой движок, от которого действительно можно получить удовольствие?

Недавно Amazon объявила, что будет открывать исходный код 3D-движка и связанных с ними инструментов для разработки игр Amazon Lumberyard. Поскольку Lumberyard основан на CryEngine 3.8 (~ 2015 г. выпуска), возникает вопрос, является ли этот новый движок с открытым исходным кодом, творчески названный Open 3D Engine (O3DE), версией движка CryTek с открытым исходным кодом, и что это дает. тем из нас, кто любит возиться с 2D-, 3D-играми и подобным.

Читая маркетинговые материалы, можно простительно подумать, что O3DE — это лучшее, что есть после нарезанного 3D-хлеба, и что это благотворительный подарок Amazon немытым массам, чтобы освободить их от цепей, наложенных на них проприетарными движками, такими как Unity и Нереальный двигатель. Однако более пристальный взгляд показывает, что O3DE — это Lumberyard, но с заменой многих частей Lumberyard, включая средство визуализации, которое все еще находится в процессе перезаписи старого кода CryEngine.

Из чего состоит хороший игровой движок?

Мои собственные попытки разработки игр начались с движка Half Life и редактора Valve Hammer, а также редактора карт Doom. Это означало, что перед знакомством с сегодняшними игровыми движками и их инструментами были установлены некоторые ожидания. Опыт разработки с редактором Hammer в конце 1990-х был в значительной степени WYSIWYG, и когда я только начинал работать с Unreal Engine 4 (UE4) несколько лет назад, это был почти такой же опыт, что позволяло относительно легко попасть в бег по земле.

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

Чтобы собрать игру, вы нажимаете одну кнопку и запускаете игру для любой из множества поддерживаемых целевых платформ. По своей сути, этот опыт позволяет использовать самую важную особенность хорошего игрового движка: возможность создавать игры без необходимости сражаться с инструментами движка или системой сборки. Многие пользователи, вероятно, являются художниками-графиками или подобными им, которые мало интересуются внутренностями инструментов, которые они используют.

Здесь использование UE4 относительно безболезненно: с помощью объектной системы Blueprint вы можете подключать сложные игры и игровую логику в графическом редакторе без необходимости написания кода, хотя разработка на основе C++ возможна для различных уровней настройки.

Если мы возьмем эту градуированную систему сложности в качестве золотого стандарта для того, что делает хороший игровой движок и связанные с ним инструменты, как сравнить O3DE и его основных конкурентов (Unreal Engine, Godot и Unity)? На первый взгляд они кажутся довольно похожими, так как все написаны на C++. Наиболее заметная разница, вероятно, заключается в языках, которые они поддерживают для расширения возможностей движка.

Здесь Unity поддерживает C# для своего API сценариев, Godot предлагает GDScript (подобный Python), а также C# и C++. Unreal Engine расширен с помощью C++, как и O3DE. Тогда все хорошо, но каково их использование?

Быстрый старт

Прежде чем мы сможем установить инструменты разработки на выбранную нами платформу, нам необходимо проверить системные требования. Для O3DE это:

  • Windows 10 1809 или выше или
  • Ubuntu 20.04 или выше.

Это контрастирует с минимальными требованиями UE4 для Windows 7 или выше или MacOS 10.9.(Mavericks) или выше, оба предлагают бинарный установщик. Для Linux движок должен быть собран из исходного кода, но он должен работать с Ubuntu 16.04 LTS и выше, а также с рядом других дистрибутивов Linux. Для Unity системные требования аналогичны: требуется Windows 7 SP1+, MacOS 10.12+ и Ubuntu 16.04+ или CentOS 7. способ управления проектами и лицензиями Unity, аналогичный приложению Epic Games Launcher для UE4. Является ли это активом или бременем, во многом зависит от рабочего процесса. Для управления несколькими параллельными проектами с их собственными версиями движка и их обновления может быть полезно иметь такой центральный инструмент.

В отличие от Unity и UE4, Godot не требует каких-либо жестких системных требований на основе веб-сайта и должен компилироваться на любой платформе, которая поддерживает требуемый компилятор и зависимости. Предоставленные двоичные файлы поставляются в архиве без установщика и запускаются автономно, что делает его, возможно, самым простым в установке из этих движков.

При установке O3DE в Windows устанавливаются редактор O3DE и менеджер проектов. Для Linux (вышеупомянутая Ubuntu 20.04 или выше) существует пакет DEB, который вы можете установить после загрузки. В менеджере проектов можно создавать и строить новые проекты. Помимо ограниченного числа поддерживаемых платформ разработки, этот рабочий процесс кажется относительно сопоставимым.

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

Несмотря на то, что мобильные платформы Android и iOS указаны в списке, найти конкретную информацию сложно, как и для MacOS, и только некоторая информация указана для Linux на момент написания. Это контрастирует с Godot, который перечисляет свои платформы в списке функций и включает в себя все, от настольных, мобильных, веб-платформ и консольных платформ, включая подробную информацию о том, как создавать для этих платформ.

Для Unity и UE4 мы видим аналогичное предложение целевых платформ и документации для начала работы. O3DE, по-видимому, в основном ограничен обычными настольными платформами и мобильными платформами, хотя документация о поддерживаемых функциях довольно скудна. В инструкциях по сборке для целей O3DE предполагается, что требуется ручная настройка CMake и запуск этого генератора сценариев сборки, прежде чем можно будет выполнить сборку для любой цели. Является ли CMake лучше, чем использование SCons в Godot, — это еще один вопрос, но он подчеркивает технические знания, необходимые как для U3DE, так и для Godot.

Документация и поддержка

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

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

Этот бета-ощущение в значительной степени сохраняется в документации, существующей сегодня, без многословия документации других движков. Учитывая отсутствие популярности движка Amazon Lumberyard в последние годы, это, пожалуй, не слишком удивительно. Тем не менее, эти результаты показывают, чего следует ожидать от погружения в O3DE сегодня.

Все это поднимает вопрос о том, каким может быть будущее этого проекта. Станет ли он конкурентом Godot, Unity или — боже упаси — UE4/5?

Оплата счетов

Самое большое преимущество таких продуктов, как Unity и UE, возможно, заключается в том, что они могут сосуществовать между играми AAA и мелкими разработчиками, а также любителями. Большая часть этого обрабатывается системой лицензирования обоих. Для UE4 это означает бесплатное использование и отсутствие роялти, если движок используется для чего-то другого, кроме разработки игр. Если вы создаете игру с UE4, которая приносит более 1 миллиона долларов (долларов США), взимается 5% гонорар за любую сумму, превышающую этот первый миллион.

Для Unity персональный план бесплатен, как и студенческий. Если доход превышает 100 000 долларов в год, применяется план Plus по цене 399 долларов за место. Эти планы увеличиваются по мере увеличения доходов (следующие > 200 тыс. долл. США в год). Как и в случае с UE4, если вы не занимаетесь коммерциализацией программного обеспечения, оплата не требуется. Это контрастирует с Godot, у которого нет коммерческих планов, но он получает денежные вознаграждения и пожертвования в дополнение к вкладам в код.

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

Еще один двигатель

Несмотря на высокие заявления об O3DE, трудно игнорировать слона в комнате. После того, как амбиции Amazon по разработке игр значительно сократились, их игра New World, основанная на Lumberyard, получила лишь средние отзывы, в то время как на заднем плане Lumberyard де-факто убрали. Таким образом, может показаться, что O3DE — это скорее циничный способ сократить расходы на разработку игрового движка, который, похоже, находится на последнем издыхании.

Возможно, лучшее, что из этого получится, это то, что существующий проект, такой как Godot, может взять полезные элементы из движка O3DE, что даст пользователям лучшее из обоих миров: полностью бесплатный игровой движок с открытым исходным кодом, с достойными инструментами и большое сообщество поддерживает его. Будет ли это включать перенос модуля AWS Cloud Support в O3DE, можно только догадываться.

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

Что лучше всего подходит для людей, которые просто хотят сделать игру, самостоятельно или с парой друзей? UE4 или Unity, если вам не интересно возиться с внутренностями системы сборки и инструментами, в противном случае Godot может показаться подходящей платформой для всего, от простых мобильных игр до значительно более сложных настольных или даже консольных игр.

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

[Изображение заголовка: Откройте редактор 3D Engine с файлом Amazon Shader Language и активами из игры Deadhaus Sonata. (Источник: проект O3DE)]

Программное обеспечение для 3D-разработки в реальном времени для игр и многого другого

Единство Личное

Начните творить с бесплатной версией Unity.

  • Последняя версия редактора Unity
  • Ресурсы для начала работы и изучения Unity
Юнити Плюс

Больше функций и ресурсов для реализации ваших проектов.

  • Настройка заставки
  • Диагностика облака в режиме реального времени
Юнити Про

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

  • Поддерживает мультиплатформенную публикацию
  • Приоритетное обслуживание клиентов
  • Приоритетный доступ к Success Advisors
Юнити Энтерпрайз

Успех в больших масштабах для крупных организаций с амбициозными целями.

  • Техническая поддержка
  • Менеджер по работе с клиентами
  • Индивидуальный план обучения
Единство промышленности

Набор 3D-продуктов и услуг в режиме реального времени для создания пользовательских приложений для дополненной реальности (AR), виртуальной реальности (VR), мобильных устройств, компьютеров и Интернета.

  • Создавайте иммерсивные приложения
  • Быстрее преодолевайте препятствия благодаря первоклассной технической поддержке и ресурсам профессионального обучения
  • Раскройте ценность ваших данных CAD и 3D

Unity Build Server

Локальное решение по лицензированию для переноса сборок проектов Unity на сетевое оборудование.

  • Локальное решение для создания проектов Unity
  • Гибкость лицензии и возможность масштабирования
  • Максимальная производительность ИТ

Parsec

Parsec for Teams — это комплексное решение, независимо от того, работаете ли вы из любого места или управляете распределенной командой.

  • Виртуальные мониторы и мультимониторные дисплеи
  • Безопасный доступ к компьютерам вашей команды
  • Детальное управление разрешениями

Unity DevOps

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

  • Весы с большими файлами
  • Пользовательский интерфейс для конкретных ролей как для разработчиков, так и для художников
  • Глубокая интеграция с Unity и Unreal

Asset Store

Начните свою игру с помощью экономящих время активов и инструментов.

  • Более 11 000 пятизвездочных активов
  • Оценили более 85 000 клиентов
  • Поддерживается более чем 100 000 участников форума

Odin Enterprise

Оптимизируйте рабочие процессы вашего проекта и сэкономьте тысячи часов разработки.

  • Инспектор и сериализатор Odin
  • Простая интеграция и приоритетная поддержка

SpeedTree

Создавайте растительность для любой среды быстро и интуитивно.

  • Преобразование фотограмметрии для реалистичных высокопроизводительных моделей
  • Интуитивно понятные инструменты редактирования для ручного редактирования
  • Проработанные экспертами динамические модели в библиотеке SpeedTree

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

  • Создание реалистичных и масштабируемых цифровых людей
  • Моделирование материалов мягких тканей и реальной физики
  • Используйте машинное обучение для превращения автономных ресурсов в персонажей RT3D

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

Начните бесплатно

Хостинг игровых серверов (многопользовательская игра)

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

  • Масштабирование парка автоматизированной оркестровки
  • Интегрируется с любым игровым движком

Matchmaker

Адаптируйте матчи к своей игре и игрокам с помощью подбора матчей на основе правил, интегрированного с хостингом Game Server, который обеспечивает самое важное для игроков — низкую задержку и быстрые матчи.

  • Логика сопоставления, настроенная разработчиком
  • Настраиваемый оценщик и цикл поиска совпадений

Сетевой код для GameObjects

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

  • Расширяемая сетевая структура
  • Управление задержкой

Услуга, которая позволяет игрокам подключаться и наслаждаться захватывающими многопользовательскими играми — и все это без необходимости использования выделенного игрового сервера.

  • Модель клиент-сервер P2P
  • DTLS-шифрование

Гибкое решение, объединяющее игроков в настраиваемых частных или общественных комнатах для обеспечения отличного многопользовательского игрового процесса.

  • Управление пользовательским лобби
  • Функциональность быстрого присоединения

Сохранение в облаке

Гибкая и простая в использовании функция сохранения в облаке позволяет отслеживать и хранить в облаке данные игрока, такие как прогресс, способности и статистику.

  • Хранение данных плеера вне устройства
  • Кросс-девайс аккаунты

Аутентификация

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

  • Аутентификация игроков с анонимным входом или входом на платформе
  • Убедитесь, что прогресс игрока сохраняется на разных устройствах

Cloud Content Delivery

Получите три услуги в одной: сеть доставки контента (CDN), облачное хранилище и менеджер активов.

  • Сквозные живые обновления игры
  • Облачное хранилище и управление активами

Remote Config

Обновляйте игровые материалы удаленно и в режиме реального времени.

  • Динамическая конфигурация для доставки контента
  • Настройка контента в реальном времени

Облачный код

Запускайте игровую логику в облаке и взаимодействуйте с другими серверными службами.

  • Написать и запустить игровую логику вне клиента
  • Оптимизация игрового кода в облаке

Unity Analytics

Analytics позволяет студиям понять производительность игры и поведение игроков. Получайте ценную информацию с помощью готовых информационных панелей и визуализаций, основанных на надежных данных в режиме реального времени.

  • Панели производительности игр и динамические отчеты
  • Защищенные данные в реальном времени

Голосовой и текстовый чат (Vivox)

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

  • Голосовой и текстовый чат в реальном времени
  • Технология преобразования речи в текст и текста в речь

Расширенная облачная диагностика

Повышение стабильности игры путем сбора и анализа подробных данных о сбоях.

  • Дедупликация ошибок для определения приоритетности проблем
  • Интеграция рабочего процесса с общими инженерными инструментами

Друзья

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

  • Полнофункциональное решение для друзей: добавить, удалить, заблокировать
  • Функция присутствия
  • Пары с лобби и голосовым и текстовым чатом

Таблицы лидеров

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

  • Настраиваемая сортировка
  • Высокая масштабируемость
  • Пары с облачным кодом и экономичностью для поощрения функциональности

Монетизация

Получайте доход от своей игры с помощью рекламы и рекламы в приложении.

  • Различные форматы объявлений
  • Доступ к премиум-рекламе

Unity LevelPlay

Решения для ставок и посредничества для усиления конкуренции за ваш инвентарь.

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

Реклама

Проводите рекламные кампании, чтобы найти самых ценных пользователей, чтобы ваша игра развивалась.

  • Охватывайте миллионы пользователей каждый день
  • Оптимизация для различных целей кампании

Экономика

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

  • Управление игровой валютой и инвентарем
  • Настройка торговых систем с реальными деньгами и игровой валютой

Упростите настройку покупок в приложении в нескольких магазинах с помощью этого решения IAP без кода.

  • Рабочие процессы с Unity Analytics для понимания покупательского поведения
  • Работает вместе с Unity Ads и Economy для создания целостной системы монетизации
Единство промышленности

Набор 3D-продуктов и услуг реального времени для создания пользовательских приложений для дополненной реальности (AR), виртуальной реальности (VR), мобильных устройств, настольных компьютеров и Интернета.

  • Создавайте иммерсивные приложения
  • Быстрее преодолевайте препятствия благодаря первоклассной технической поддержке и ресурсам профессионального обучения
  • Раскройте ценность ваших данных CAD и 3D

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

  • Получение данных из более чем 40 поддерживаемых форматов 3D-файлов
  • Создавайте LOD и UV и оптимизируйте любые данные в редакторе Unity
  • Публикация оптимизированных 3D-моделей на различных платформах

Unity Build Server

Локальное решение по лицензированию для переноса сборок проектов Unity на сетевое оборудование.

  • Локальное решение для создания проектов Unity
  • Гибкость лицензии и возможность масштабирования
  • Максимальная производительность ИТ

Unity Simulation Pro

Запускайте сложные симуляции в больших масштабах с оптимизированной для симуляций версией среды выполнения Unity.

  • Распределенный рендеринг без головы и с несколькими GPU
  • Запуск локально или в частном облаке

SpeedTree

Создавайте растительность для любой среды быстро и интуитивно.

  • Преобразование фотограмметрии для создания реалистичных высокопроизводительных моделей
  • Интуитивно понятные инструменты редактирования для ручного редактирования
  • Проработанные экспертами динамические модели в библиотеке SpeedTree

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

  • Создание реалистичных и масштабируемых цифровых людей
  • Моделирование материалов мягких тканей и реальной физики
  • Используйте машинное обучение для превращения автономных ресурсов в персонажей RT3D

OTOY OctaneRender

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

  • Визуализация для кинематографического качества
  • Затенение и освещение уровня VFX в Unity
  • Сверхбыстрое шумоподавление с помощью ИИ

Asset Store

Начните свою игру с помощью экономящих время активов и инструментов.

  • Более 11 000 пятизвездочных активов
  • Оценили более 85 000 клиентов
  • Поддерживается более чем 100 000 участников форума

Unity Starter Success

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

  • Доступ к инженерам Unity
  • Назначенный советник-партнер
  • Гарантированное время первого отклика

Unity Essential Success

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

  • Премиум техническая поддержка
  • Менеджер по работе с партнерами
  • Обработка ошибок

Unity Integrated Success

Наш самый передовой план поддержки. Обеспечьте полное раскрытие потенциала сложных проектов с помощью рекомендаций экспертов и технических обзоров.

  • Приоритетное исправление ошибок и LTS backporting
  • Обзоры проектов
  • Время реагирования на чрезвычайные ситуации

Accelerate Solutions — Консультационные услуги по играм

Получите рекомендации по своим проектам от ведущих экспертов Unity, которые помогут вам достичь самых амбициозных целей.

  • Оптимизация производительности и качества
  • Планирование игры и технический дизайн
  • Ускорение проекта

Accelerate Solutions – Профессиональные услуги

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

  • Открытие и предвидение
  • Разработка и производство
  • Поддержка и обслуживание продукта

Unity Student

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

  • Последняя версия редактора Unity
  • Бесплатные активы для ускорения проектов
  • Ресурсы для начала работы и изучения Unity

Unity Learn

Совершенствуйте свои навыки работы с Unity с помощью интерактивных занятий и более 750 часов обучающих материалов по запросу, предназначенных для создателей с любым уровнем навыков.

  • Библиотека учебных материалов
  • Более 750 часов обучающих ресурсов по запросу и в режиме реального времени

Сертификаты Unity

Расширьте свое резюме и продвигайтесь по карьерной лестнице, подтвердив свое владение основными навыками Unity.

  • Сертификаты для четырех уровней сложности
  • Треки специализации от программиста до артиста

Обучение по запросу

Доступ к сотням часов профессионального обучения по вашему расписанию и в удобном для вас темпе.

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

Unity Educator

Научите учащихся пользоваться профессиональными инструментами для эффективной работы в междисциплинарной команде.

  • Последняя версия редактора Unity
  • Бесплатные активы для ускорения проектов
  • Ресурсы для начала работы и обучения Unity

Академический альянс Unity

Дайте своим студентам преимущество на рынке труда, подготовив их к карьере в сфере 3D-разработки в реальном времени.

  • Скидки на лицензионные продукты для образования
  • Учебные рамки для обучения Unity

Лицензия Unity Education Grant

Бесплатные лицензии Unity для соответствующих учебных заведений.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *