Nemerle + Unity
От: pira  
Дата: 11.12.17 18:30
Оценка:
Можно ли писать игры на Unity используя Nemerle? Насколько это удобно, если знаешь Nemerle?
Re: Нет
От: Qbit86 Россия
Дата: 11.12.17 21:17
Оценка:
Здравствуйте, pira, Вы писали:

P>Можно ли писать игры на Unity используя Nemerle?


Нельзя. Нет, правда. Даже если кажется, что, теоретически, ничто не должно этому мешать.

P>Насколько это удобно, если знаешь Nemerle?


Неудобно. На Unity неудобно писать даже на C# (а на новых версиях языка так и вовсе невозможно).

Они год кормят завтраки, что вот-вот добавят поддержку .NET Standard. В начале следующего года, возможно, добавят. И гарантированно полгода спустя это всё ещё будет глючить и тормозить, особенно на AOT-платформах.

По возможности старайтесь избегать Unity.
Глаза у меня добрые, но рубашка — смирительная!
Re[2]: Нет
От: meadow_meal  
Дата: 11.12.17 21:58
Оценка: +1
Здравствуйте, Qbit86, Вы писали:

Q>Неудобно. На Unity неудобно писать даже на C#

Q> По возможности старайтесь избегать Unity.

Спрашиваю не ради спора, но исключительно ради удовлетворения любопытства. Стоит избегать Unity в пользу чего? Под какой конкретно движок писать на каком конкретно языке удобнее, чем на C# в Unity? (Были бы приведены другие критерии, по которым стоит избегать Unity, вопросов бы не возникло, поэтому интересно именно в разрезе удобства).
Re[3]: Нет
От: Qbit86 Россия
Дата: 11.12.17 22:06
Оценка: 2 (1)
Здравствуйте, meadow_meal, Вы писали:

Q>> По возможности старайтесь избегать Unity.

_>Стоит избегать Unity в пользу чего?

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

_>Под какой конкретно движок писать на каком конкретно языке удобнее, чем на C# в Unity?


Чего-то столь же распространённого в природе не существует. Я возлагаю надежды на Xenko, но у них, увы, нет success stories.
Глаза у меня добрые, но рубашка — смирительная!
Re[2]: Нет
От: nekocoder США  
Дата: 25.12.17 03:54
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>Неудобно. На Unity неудобно писать даже на C# (а на новых версиях языка так и вовсе невозможно).

Неудобно по сравнению с чем? Юнити самый простой в использовании полноценный игровой движок.

Q>а на новых версиях языка так и вовсе невозможно

Юнити использует Моно, она отстает от майкрософтовского фреймворка, так что это фича.
Re[2]: Нет
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.12.17 07:48
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>Нельзя. Нет, правда. Даже если кажется, что, теоретически, ничто не должно этому мешать.


А почему? Разве там не Моно используется?
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Нет
От: Amon_RA Россия  
Дата: 25.12.17 08:28
Оценка: +1
Здравствуйте, meadow_meal, Вы писали:

_> Стоит избегать Unity в пользу чего?


UE4
Re[3]: Mono
От: Qbit86 Россия
Дата: 25.12.17 09:38
Оценка:
Здравствуйте, 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.
Глаза у меня добрые, но рубашка — смирительная!
Re[4]: Mono
От: VladD2 Российская Империя www.nemerle.org
Дата: 25.12.17 12:10
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>Стародавний патченный Моно своей сборки, глючной и тормозной, без поколений в сборщике мусора, без поддержки рантаймом/библиотекой современных фич языка типа sync/await и TPL.


Но чисто технически немерловым компилятором для него можно собрать сборку?
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Mono
От: Qbit86 Россия
Дата: 25.12.17 12:33
Оценка: 2 (1)
Здравствуйте, VladD2, Вы писали:

VD>Но чисто технически немерловым компилятором для него можно собрать сборку?


Скрипты собирают они сами, с постобработкой бинарников; в их пайплайн внедриться практически нельзя (хотя alexzzzz это делал с переменным успехом, для нормального компилятора C# 5, а не Mono'вого). Но можно ссылаться на собранные на стороне библиотеки, если они не используют рефлексию, сложные дженерики инстанцированные структурами (AOT-совместимость). Если компилятор Немерле может собирать NET3.5-совместимые библиотеки, то да, технически немерловым компилятором можно собрать сборку, куда вынести часть логики.
Глаза у меня добрые, но рубашка — смирительная!
Re[6]: Mono
От: meadow_meal  
Дата: 25.12.17 13:36
Оценка:
Здравствуйте, Qbit86, Вы писали:

Вы все верно написали, я только уточню некоторые моменты, чтобы было понятно людям, далеким от Unity.

VD>>Но чисто технически немерловым компилятором для него можно собрать сборку?


Можно. Достаточно предоставить сборку вместе в зависимостями (Nemerle.dll и т.п.). Будет работать весь функционал, включая компоненты и расширения редактора.

Q>Скрипты собирают они сами


Unity все равно. Дадите скрипты — соберет. Дадите сборку — подключит сборку.

Q>с постобработкой бинарников


Если речь об aot/ip2cpp, то это уже платформо-зависимые особенности.

Q>Но можно ссылаться на собранные на стороне библиотеки, если они не используют рефлексию


Рефлексия доступна. Не доступен emit.

Q>сложные дженерики инстанцированные структурами (AOT-совместимость).


Это ограничение AOT-компиляции (iOS и консоли). Под PC и андроид никаких ограничний нет.

Q>Если компилятор Немерле может собирать NET3.5-совместимые библиотеки,


Новый рантайм (4.6) стабилен и рекомендован на PC и мобильных платформах. Net3.5 рекомендован только для консолей.

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


Или всю.
Отредактировано 25.12.2017 13:38 meadow_meal . Предыдущая версия .
Re[6]: Mono
От: VladD2 Российская Империя www.nemerle.org
Дата: 26.12.17 02:56
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>Если компилятор Немерле может собирать NET3.5-совместимые библиотеки, то да, технически немерловым компилятором можно собрать сборку, куда вынести часть логики.


Хм. Так им еще и бинарники от 2-го дотнета нужны? Немерл v1.1 это умеет делать. Но он, конечно, сильно от жизни отстал и работать с ним можно только из 2008-й студии.
http://nemerle.org/Banners/?g=dark
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.