Войти
UnityФорумОбщее

Unity3d - ограничения (2 стр)

Страницы: 1 2 3 444 Следующая »
#15
23:54, 19 мар. 2013

Mephisto std
> Основной вопрос - теперь вообще нет смысла кодить под чистый DirectX или
> OpenGL, т.к. двиги типа Unity прикрывают полностью все аспекты создания игр?

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


Mephisto std
> Не хотелось бы, скажем, ввязаться в проект на Unity3D, а потом обнаружить
> что на нём в принципе нельзя создать некоторые вещи.

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

Впрочем, браузерные ММО на нем тоже можно делать, правда чем ближе результат должен получиться к современным (читай труЪ ААА) играм, тем больше приходится воротить костылей в попытках сделать на движке то что в нем не предусмотрено или обойти коварно расставленные баги.


#16
1:36, 20 мар. 2013

Для больших проектов можно купить source unity и поддержку.
И все тебе будет не хуже чем в Source engine, а точнее - много лучше.

#17
8:41, 20 мар. 2013

FUNNY FACE
> Для больших проектов можно купить source unity и поддержку.
> И все тебе будет не хуже чем в Source engine, а точнее - много лучше.
>
Или примерно за столько же (или дешевле) купить движок ААА класса.

#18
9:32, 20 мар. 2013

Mephistopheles
> Это когда вместо втыкания костыля в движок приходиться думать?)
Браво!

#19
11:44, 20 мар. 2013

ASD

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

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

Вообще для меня эта ситуация выглядит так, как будто Unity - это получается эдакий PHP от 3D графики, вроде бы мощный, но обладающий некоторым ореолом ламерства

#20
13:01, 20 мар. 2013

Mephisto std

Единственный минус - способствует частичной деградации геймдева.

Конечно, экономия сотен тысяч человекочасов на разработке игры - это деградация.
Настоящие гуру для каждой игры с нуля инструментарий пишут.
Вон раньше то круто было, взял 2 палочки, и сидишь трешь - ждешь, пока огонь появится. Потом и пожрать сготовить можно. Тогда то добыча огня была высокоинтеллектуальным занятием.
А сейчас что? Щелкнул выключатель - плитка нагрелась, извольте кушать начать готовить , фи...
А со стиркой что сделали эти ироды? То то раньше весело было. Наберешь воды в тазик, и трешь шмотье о досочку. Благодать.
А сейчас что? Закинул в машинку стиральную, порошка засыпал - она постирала.
Вот только не деградация это, это модным словом "прогресс" называется.

#21
13:17, 20 мар. 2013

IIyxMASTER
Полностью согласен

#22
13:33, 20 мар. 2013

IIyxMASTER
> Вот только не деградация это, это модным словом "прогресс" называется.
Вот только результат этого прогресса не картина Рембрандта, а квадрат намалевича =)

#23
13:46, 20 мар. 2013

IIyxMASTER
ReSoNaNCe

Гаспаааада, превратно вы поняли меня) Сейчас объясню мою точку зрения, и тогда попробуйте не согласиться! =)

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

А теперь как выглядит этот конвейер? Человек захотел сделать игру, скачал юнити, расставил ассеты, поныл на форумах, скопипастил
пару скриптов, получил полу-рабочий проект. Красота! И все счастливы, ведь до Unity этот человек дальше первой главы Страуструпа
не прошёл бы, а пошёл дальше в контру долбить.
И так получаются Unity-геймдеверы, которые не имеют понятия о растеризации, матрицах проекции и т.д.

И, заметьте, я не ругаю Unity! Unity - это отличнейшая вещь, которая экономит тонны времени и позволяет делать невероятные вещи
в разы разов быстрее чем на голом API. Я лишь говорю, что Unity плодит плохие кадры, и тем самым вызывает деградацию геймдева.

Всё это голая теория и досужие домыслы, но что-то в них всё таки... )

#24
14:06, 20 мар. 2013

Mephisto std
Давайте честно. Если человек дурак - отсутствие юнити не сделало бы из него гения инженерной мысли. Ну поиграется с юнити. Поиграется с другим движком. Чем бы дитя не тешилось. Еще живы Сид Мейер, Том Кленси, Кармак еще жив :-) пока что бояться нечего.

#25
14:26, 20 мар. 2013

IIyxMASTER

Если человек дурак - отсутствие юнити не сделало бы из него гения инженерной мысли. Ну поиграется с юнити. Поиграется с другим движком. 

Ну это да, но, блин, этот человек потом идёт устраиваться на работу как гейм-девелопер) И с такими потом работать приходится!

#26
16:31, 20 мар. 2013

Mephisto std
> 1. Scene-based. Мне кажется, что Unity плохо подходит (совсем не подходит?) для
> огромных, бесшовных миров, т.к. в редакторе Unity их не создашь.
> Так ли это?

Нет. Возможность разделять игру на слабосвязанные сцены никак не мешает.

> 2. Процедурная генерация чего бы то ни было. Опять таки, мне кажется, что Юнити
> приспособлен для загрузки объектов извне и установки ручками
> на сцену.

Можно рисовать и ручками расставлять, а можно генерировать и расставлять из кода. Как больше нравится.
http://www.gamedev.ru/flame/forum/?id=173520&page=3#m30

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

> 3. Многопоточность. Я могу дико ошибаться, но у меня создалось ощущение, что в
> Unity3d c# не настоящий =)  Иными словами, он не обладает полной мощью
> C#, а используется лишь как скриптовый язык для манипуляции объектами движка.
> Откуда может следовать, что нельзя делать такие обычные вещи, как, например,
> создание потока, сокета и т.п.

Именно язык C# самый настоящий. Поддерживается C# 3.0 с парой фич из C# 4.0 (именованные и необязательные параметры). Библиотека базовых классов несколько урезана по сравнению с .Net 3.5 - вырезаны платформозависивые вещи, типа пространства имён System.Drawing (оно сильно завязано на GDI), а также всего, что касается WinForms, WPF, работы с реестром и других Windows-specific вещей.

Можно взять из интернета какую-нибудь готовую, уже скомпилированную под CLR 2.0 управляемую библиотеку, скажем, для сложных математических расчётов, бросить её в проект и использовать как ни в чём не бывало.

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

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

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

> хуже всего юнити для шейдерописателей - дофига ограничений: ...
> нельзя ставить дефайны (нельзя сделать убершейдер),

Теперь можно. До версии 4.1 дефайны задавались глобально для всех шейдеров через  Shader.EnableKeyword /  Shader.DisableKeyword, в недавно вышедшей 4.1 появились индивидуальные дефайны отдельно для каждого материала: http://blogs.unity3d.com/2013/03/15/4-1-graphics-features/

--
Мне лично мешают два ограничения:

1. Сетка объекта ограничена 65к вершинами. Если надо больше, приходится делить большой объект на несколько меньших, чтоб вписаться. Мне не сложно (всё равно такие большие сетки я генерирую программно), но напрягает про это всё время помнить и учитывать.

2. У структур, описывающих вершины в сетке, нельзя изменить типы полей или добавить дополнительные поля к тем, что есть. А есть там position, normal, uv1, uv2, color и tangent.

#27
17:16, 20 мар. 2013

Mephisto std
> Человек захотел сделать игру, скачал юнити, расставил ассеты, поныл на форумах, скопипастил
> пару скриптов, получил полу-рабочий проект. Красота! И все счастливы, ведь до
> Unity этот человек дальше первой главы Страуструпа не прошёл бы, а пошёл дальше в контру долбить.
  Тридцать лет назад компьютеры были только у тех, кто мог их собрать, а теперь у каждого кто имеет желание его заиметь даже если в учебнике электроники он не прошёл бы дальше первой главы. Капец, ИТ-индустрия диградируэт!

> Ну это да, но, блин, этот человек потом идёт устраиваться на работу как гейм-девелопер)
  И он им таки является и будет делать свою работу там где требуется знание юнити, в отличие от офигеть какого крутого спеца, который кроме С++ ничего не знает, но думает что уже это знание даёт ему власть над миром и больше ничего учить не надо.

#28
17:22, 20 мар. 2013

Mephisto std
> Т.е., если я правильно понимаю, с вашей точки зрения Unity просто упрощает,
> "оказуаливает" процесс разработки?

Да, именно так. Причем упрощает - плюс, оказуаливает - минус.

Grettir
> Вот только результат этого прогресса не картина Рембрандта, а квадрат
> намалевича =)

+1


Mephisto std
> Т.е. раньше, чтобы написать графику,
> нужно было знать ВСЕ тонкости, а теперь кучу вещей можно переложить на Unity и
> не разбираться с матрицами, вертекс-буфферами, костями и т.п.

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


IIyxMASTER
> Конечно, экономия сотен тысяч человекочасов на разработке игры - это
> деградация.
> Настоящие гуру для каждой игры с нуля инструментарий пишут.

Гуру знают что пишут, а с нуля или не с нуля - это уже второй вопрос.

alexzzzz
> в недавно вышедшей 4.1 появились индивидуальные дефайны отдельно для каждого
> материала: http://blogs.unity3d.com/2013/03/15/4-1-graphics-features/

Надо же, прогресс :D Я думал на пятую версию движка отложат. :D

#29
17:57, 20 мар. 2013

alexzzzz
спасибо, весьма ценная информация!

Вопросец: а как в Unity, не смотря что в нём проект разделён на уровни, реализована система глобальных скриптов, которые существуют всегда?
Например, я хочу сделать клиент на Юнити, а сервер на чистом cpp. Клиент должен к серверу 1 раз коннектиться - на входе в приложение, а затем
постоянно, все з-ти от сцены, получать данные? При scene-based архитектуре мне лично непонятно, как это без костылей реализовать.

Страницы: 1 2 3 444 Следующая »
UnityФорумОбщее

Тема в архиве.