Здравствуйте, meadow_meal, Вы писали:
Q>> По возможности старайтесь избегать Unity. _>Стоит избегать Unity в пользу чего?
Чего угодно: создание сайтов, блокчейн-сервисов, компиляторов, мобильных и десктопных приложений, etc.
_>Под какой конкретно движок писать на каком конкретно языке удобнее, чем на C# в Unity?
Чего-то столь же распространённого в природе не существует. Я возлагаю надежды на Xenko, но у них, увы, нет success stories.
Здравствуйте, VladD2, Вы писали:
VD>Но чисто технически немерловым компилятором для него можно собрать сборку?
Скрипты собирают они сами, с постобработкой бинарников; в их пайплайн внедриться практически нельзя (хотя alexzzzz это делал с переменным успехом, для нормального компилятора C# 5, а не Mono'вого). Но можно ссылаться на собранные на стороне библиотеки, если они не используют рефлексию, сложные дженерики инстанцированные структурами (AOT-совместимость). Если компилятор Немерле может собирать NET3.5-совместимые библиотеки, то да, технически немерловым компилятором можно собрать сборку, куда вынести часть логики.
Здравствуйте, Qbit86, Вы писали:
Q>Неудобно. На Unity неудобно писать даже на C# Q> По возможности старайтесь избегать Unity.
Спрашиваю не ради спора, но исключительно ради удовлетворения любопытства. Стоит избегать Unity в пользу чего? Под какой конкретно движок писать на каком конкретно языке удобнее, чем на C# в Unity? (Были бы приведены другие критерии, по которым стоит избегать Unity, вопросов бы не возникло, поэтому интересно именно в разрезе удобства).
Здравствуйте, pira, Вы писали:
P>Можно ли писать игры на Unity используя Nemerle?
Нельзя. Нет, правда. Даже если кажется, что, теоретически, ничто не должно этому мешать.
P>Насколько это удобно, если знаешь Nemerle?
Неудобно. На Unity неудобно писать даже на C# (а на новых версиях языка так и вовсе невозможно).
Они год кормят завтраки, что вот-вот добавят поддержку .NET Standard. В начале следующего года, возможно, добавят. И гарантированно полгода спустя это всё ещё будет глючить и тормозить, особенно на AOT-платформах.
Здравствуйте, Qbit86, Вы писали:
Q>Неудобно. На Unity неудобно писать даже на C# (а на новых версиях языка так и вовсе невозможно).
Неудобно по сравнению с чем? Юнити самый простой в использовании полноценный игровой движок.
Q>а на новых версиях языка так и вовсе невозможно
Юнити использует Моно, она отстает от майкрософтовского фреймворка, так что это фича.
Здравствуйте, VladD2, Вы писали:
VD>А почему? Разве там не Моно используется?
Стародавний патченный Моно своей сборки, глючной и тормозной, без поколений в сборщике мусора, без поддержки рантаймом/библиотекой современных фич языка типа sync/await и TPL.
Теоретически, в последних версиях Unity есть какие-то обновления и заявлена поддержка таргета «.NET-4.6-like», но она помечена как Experimental, и помечена так не зря. Кроме того, многие проекты прибиты к старым версиям Unity 5; потому что в новых версиях есть подтверждённые деградации производительности, которые разработчики Unity фиксить не будут как некритичные (с их точки зрения, по их словам).
Но и кроме общей технологической отсталости. Сам воркфлоу Unity мешает писать снаружи изолированный код на CLI-совместимом .NET-языке. То есть в принципе формально написать сферическую 3rd-party библиотеку на Nemerle (использующую переносимое подмножество стандартных классов), скомпилировать и использовать из Unity-проекта можно. Но это сложно будет назвать «писать игры на Unity используя Nemerle», и применять такой подход на практике — боль и унижение.
Год обещают поддержку .NET Standard. В последний раз называли срок в январе 2018.
Здравствуйте, Qbit86, Вы писали:
Q>Стародавний патченный Моно своей сборки, глючной и тормозной, без поколений в сборщике мусора, без поддержки рантаймом/библиотекой современных фич языка типа sync/await и TPL.
Но чисто технически немерловым компилятором для него можно собрать сборку?
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Вы все верно написали, я только уточню некоторые моменты, чтобы было понятно людям, далеким от Unity.
VD>>Но чисто технически немерловым компилятором для него можно собрать сборку?
Можно. Достаточно предоставить сборку вместе в зависимостями (Nemerle.dll и т.п.). Будет работать весь функционал, включая компоненты и расширения редактора.
Q>Скрипты собирают они сами
Если речь об aot/ip2cpp, то это уже платформо-зависимые особенности.
Q>Но можно ссылаться на собранные на стороне библиотеки, если они не используют рефлексию
Рефлексия доступна. Не доступен emit.
Q>сложные дженерики инстанцированные структурами (AOT-совместимость).
Это ограничение AOT-компиляции (iOS и консоли). Под PC и андроид никаких ограничний нет.
Q>Если компилятор Немерле может собирать NET3.5-совместимые библиотеки,
Новый рантайм (4.6) стабилен и рекомендован на PC и мобильных платформах. Net3.5 рекомендован только для консолей.
Q>немерловым компилятором можно собрать сборку, куда вынести часть логики.
Здравствуйте, Qbit86, Вы писали:
Q>Если компилятор Немерле может собирать NET3.5-совместимые библиотеки, то да, технически немерловым компилятором можно собрать сборку, куда вынести часть логики.
Хм. Так им еще и бинарники от 2-го дотнета нужны? Немерл v1.1 это умеет делать. Но он, конечно, сильно от жизни отстал и работать с ним можно только из 2008-й студии.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.