forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Monkey (http://forum.boolean.name/forumdisplay.php?f=163)
-   -   Вся правда о Monkey (http://forum.boolean.name/showthread.php?t=17283)

Черный крыс 18.09.2012 13:51

Вся правда о Monkey
 
Привет.

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

Код:

Function Rotate( angle# )
        Transform Cos(angle),-Sin(angle),Sin(angle),Cos(angle),0,0
End Function

Это просто пипец! Неужели Марку впадло было обьявить две локальные переменные ?! Неудивительно, что мартышка мягко говоря "нелетает" в HTML.

Код:

Function DrawImage( image:Image,x#,y#,frame=0 )
#If CONFIG="debug"
        DebugRenderDevice
#End
        Local f:Frame=image.frames[frame]

        If context.tformed
                PushMatrix
               
                Translate x-image.tx,y-image.ty

                ValidateMatrix

                If image.flags & Image.FullFrame
                        context.device.DrawSurface image.surface,0,0
                Else
                        context.device.DrawSurface2 image.surface,0,0,f.x,f.y,image.width,image.height
                Endif
               
                PopMatrix
        Else
                ValidateMatrix
               
                If image.flags & Image.FullFrame
                        context.device.DrawSurface image.surface,x-image.tx,y-image.ty
                Else
                        context.device.DrawSurface2 image.surface,x-image.tx,y-image.ty,f.x,f.y,image.width,image.height
                Endif
        Endif
End

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

И подобных моментов в мартышке - сплош и рядом.

По самому языку : Отсутствие дерективы "With". На дворе уже 21-й век... суть его заключается в том, что переменная обьявленная с этой дерективой помещается в регистр ЦП и соответственно при обращении к ней обеспечивается быстрый доступ.

ВЕРДИКТ - какашко, которому далеко даже до БМакса.

Но сама идея движка не плохая, только реализация хуйовая.

devolonter 18.09.2012 14:25

Ответ: Вся правда о Monkey
 
Отличный обзор! В свете появления пиратки мне он нравится)

А если серьезно. За mojo никто не обязывает вас платить. Monkey распространяется как общественное достояние, есть уже несколько форков. Деньги вы платите за mojo. Если он вас не устраивает, вы можете попробовать написать свой кроссплатформенный фреймворк с преферансом и дамами.

Далее по вашим замечаниям.

Rotate. Есть еще Transform, в котором можно указать непосредственно матрицу трансформации, которую вы можете сами подготовить с локальными переменными и прочим.

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

Monkey не летает в HTML, так как использует 2d-контекст. Я делал патч, который заменяет 2d-контекст на 3d (WebGL). Вот результат -
http://lab.devolonter.ru/libs/monkey...ode/html5.html (конечно надо смотреть не в IE)

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

P.S. Слишком громкий заголовок. И да, все это можно было узнать по демо-версии, если что.

Черный крыс 18.09.2012 14:58

Ответ: Вся правда о Monkey
 
В БМаксе модули тоже являются достоянием общественности, не скажу что код тама супер, но уж точно получше.

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

О существовании функции Transform() я знаю, вы не поняли контекст моего обзора, мартышка рассматривалась как продукт, после покупки которого не придется его дополнительно оптимизировать ибо 1) Это все таки ПРОДУКТ за который я плачу живые деньги 2) Мне не очень нравится исправлять глупости Марка после каждого упдеэйта и еще следить за совместимостью при всем этом хозяйстве. Вы мне еще скажите что по два раза вызванные функции Sin() и Cos() - не самая тяжелая операция.

Насчет контекста ХТМЛ - вы подтвердили мое же предположение. После покупки придется ставить кастыли чтоб нармально все работало, хотя знаю что это не под все платформы, но дерективы препроцессора еще ни кто не отменял. А ХТМЛ в том виде в котором он находится сейчас - мало кому нужно.

По ощущениям мартышка не стоит тех денег, которые за него просят. Реальная его цена на данный момент 20-25$.

devolonter 18.09.2012 15:26

Ответ: Вся правда о Monkey
 
Цитата:

Сообщение от Diablo1909 (Сообщение 238572)
В БМаксе модули тоже являются достоянием общественности, не скажу что код тама супер, но уж точно получше.

Важный момент. В данном случае мы говорим о платных модулях (точнее одном модуле). В BlitzMax платным является компилятор. Это просто для информации.

Мне, если честно, после Monkey на BlitzMax не захотелось уже возвращаться. Учитывая улучшения в языке, уже не хочется мириться с тонкостями BlitzMax.

Цитата:

Сообщение от Diablo1909 (Сообщение 238572)
В нативные исходники я смотрел, после увиденного даже нет желания что то коментировать.

Ок. Тогда я тоже опущу этот момент, так как не знаю, что именно вас там возмутило.

Цитата:

Сообщение от Diablo1909 (Сообщение 238572)
О существовании функции Transform() я знаю, вы не поняли контекст моего обзора, мартышка рассматривалась как продукт, после покупки которого не придется его дополнительно оптимизировать

Я думаю хороший программист должен знать тонкости своего инструмента разработки. И понятно что последовательный вызов Translate, Scale и Rotate это глупость в свете существования Transform.

Цитата:

Сообщение от Diablo1909 (Сообщение 238572)
Вы мне еще скажите что по два раза вызванные функции Sin() и Cos() - не самая тяжелая операция.

Этого я не говорил. Но обычно не это является узким местом, поверьте.

Цитата:

Сообщение от Diablo1909 (Сообщение 238572)
Насчет контекста ХТМЛ - вы подтвердили мое же предположение. После покупки придется ставить кастыли чтоб нармально все работало, хотя знаю что это не под все платформы

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

Заметьте, я не вносил изменения в логику, только переопределил графические функции. Что говорит о том, что проблема совсем не синусах и косинусах. 3d-контекст не используется изначально, т.к. он не поддерживается в IE, а Марк старается дать равные возможности для всех платформ.

Цитата:

Сообщение от Diablo1909 (Сообщение 238572)
По ощущениям мартышка не стоит тех денег, которые за него просят. Реальная его цена на данный момент 20-25$.

Вы где последний раз такие цены видели?) Я в магазин хожу, банально за продуктами (обычными продуктами) и то больше трачу.

devolonter 18.09.2012 15:37

Ответ: Вся правда о Monkey
 
Просто. Интересное наблюдение. Я, как человек, потративший живые деньги, как вы говорите, не жалею о своем приобретении. Вы же, не потратив ничего, возмущаетесь, как после покупки, которая вас не устроила. WTF!?)

moka 18.09.2012 15:50

Ответ: Вся правда о Monkey
 
Мде..
Ну во первых, написать инструмент на кучу платформ - это реально задача.
Если ты например хочешь огромную свободу со звуком. То API по работе со звуком будет упираться в то что предоставляют ВСЕ платформы, иначе суть мультиплатформенности теряется. Следственно если какая-то плюшка не доступна на одной платформе, её не будет везде.
Также объём разработки при правильном подходе не увеличивается конечно в число платформ, но всё равно увеличивается несколько кратно.

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

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

devolonter 18.09.2012 16:35

Ответ: Вся правда о Monkey
 
Цитата:

Сообщение от MoKa (Сообщение 238575)
Не претендуя ни на какой супер двиг или убийцу Unity, он отлично делает что должен.

Отлично сказано, Moka.

У Monkey есть недостатки, как же без них, но покажите мне инструмент лишенный недостатков? Я работал с разными платформами, с разными языками, разными фреймворками и всегда мне приходилось мириться с какими-нибудь тонкостями и костылями.

Я до сих пор помню, как писал приложение под Android. Несмотря на всю крутость и удобство это был настоящий ад. Поддержка разных версий API, разных разрешений экранов, тонкости работы с хардварной клавой и SQLite. А верстка интерфейса - отдельный разговор. Сколько я матерился)

Я думаю подобную историю можно написать про любую платформу и инструмент разработки. Не стоит искать идеальных инструментов, их не бывает. Просто нужно хорошо знать, то с чем ты имеешь дело.

Черный крыс 18.09.2012 21:23

Ответ: Вся правда о Monkey
 
Продолжу невеселый трактат.

Теперь недостатки самого языка.

1) Я уже упоминал об отсутствии оператора With - он нужен. Без него сегодня никуда.

2) Невозможность создания указателей на типы пользователя. Приходится делать указатели на массивы с простыми типами данных или же оборачивать - в результате код становится невыразительным.

3) Нет команды SinCos() - очень часто бывает, что надо и синус и косинус угла, а одной командой это сделать явно быстрее чем двумя.

4) Нет указателей на методы класса.

5) Нет директивы inline - нужна она! И не только для ускорения работы кода.

6) Нет автоматических конструкторов копирования объектов.

7) Отсутствие макросов и шаблонов. Про шаблоны я молчу, хотя бы макросы сделали блин...

8) Нет поддержки событий на уровне языка - а это нужная фича, особенно при разработке игр.

9) Снова эти БлицМаксовсое списки. А они не очень удобно реализованы. Если в Бмаксе Марка можно было понять почему он написал такие списки (из за некоректной обработки мусора с кросс-линками) то в Монкей это ставит в тупик, вследствии чего нельзя легко и элегантно реализовать многоуровневые древовидные спискои.

10) Нет математических функций для округления чисел с плавающей запятой до нужного количества знаков после запятой.

11) Нет команд для временной передачи лишнего времени системе.

12) не совсем уверен, но похоже язык совсем не дружит с указателями ?

devolonter 18.09.2012 22:01

Ответ: Вся правда о Monkey
 
Цитата:

Сообщение от Diablo1909 (Сообщение 238595)
1) Я уже упоминал об отсутствии оператора With - он нужен. Без него сегодня никуда.

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

Цитата:

Сообщение от Diablo1909 (Сообщение 238595)
2) Невозможность создания указателей на типы пользователя. Приходится делать указатели на массивы с простыми типами данных или же оборачивать - в результате код становится невыразительным.

Не совсем понял. Чем вас не устроили ссылки? Или вам нужны указатели на примитивы? Тогда есть упаковка/распаковка. В любом случае кроссплатформенно реализовать указатели невозможно.

Цитата:

Сообщение от Diablo1909 (Сообщение 238595)
3) Нет команды SinCos() - очень часто бывает, что надо и синус и косинус угла, а одной командой это сделать явно быстрее чем двумя.

Да, нет такой функции. Не везде нативно поддерживаются. Т.е. опять таки невозможно кроссплатформенно реализовать.

Цитата:

Сообщение от Diablo1909 (Сообщение 238595)
4) Нет указателей на методы класса.

И снова невозможно кроссплатформенно реализовать. Есть отражение, есть интерфейсы. Проблему решить можно.

Цитата:

Сообщение от Diablo1909 (Сообщение 238595)
5) Нет директивы inline - нужна она! И не только для ускорения работы кода.

Нет. Но есть зарезервированное слово, возможно будет.

Цитата:

Сообщение от Diablo1909 (Сообщение 238595)
6) Нет автоматических конструкторов копирования объектов.

Нет. Не критично.

Цитата:

Сообщение от Diablo1909 (Сообщение 238595)
10) Нет математических функций для округления чисел с плавающей запятой до нужного количества знаков после запятой.

Один раз сам написал и забыл. Не критично.

Цитата:

Сообщение от Diablo1909 (Сообщение 238595)
11) Нет команд для временной передачи лишнего времени системе.

Не возможно реализовать кроссплатформенно. Как вы из JS например управление системе передадите?

Цитата:

Сообщение от Diablo1909 (Сообщение 238595)
12) не совсем уверен, но похоже язык совсем не дружит с указателями ?

Все тоже самое. Невозможно это сделать кроссплатформенно.

С пропущенными пунктами, я или полностью или частично согласен.

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

Harter 18.09.2012 22:44

Ответ: Вся правда о Monkey
 
Простите, что прерываю вас, джентельмены, однако хотелось бы поделиться радостной новостью:


Черный крыс 18.09.2012 22:45

Ответ: Вся правда о Monkey
 
<<Не совсем понял. Чем вас не устроили ссылки? Или вам нужны указатели на примитивы? Тогда есть упаковка/распаковка. В любом случае кроссплатформенно реализовать указатели невозможно.>>

Если язык не держит указатели, то это уже невозможно.

<<И снова невозможно кроссплатформенно реализовать.>>
Это скорее отмазка. Но вот есть же директивы препроцессора, можно же это реализовать на тех платформах, где это есть. Привожу пример.

Допустим функция SinCos()

Ее держит Win32, Mac, Linux и допустим остальные ее не держат...
то код будет выглядеть следующим образом :

Код:

Function SinCos:Float[](angle:Float)
#ifdef __win32__ or __macos__ or __linux__
' ok платформа держит ее знач вызываем нужный нам нативный код
#else
' остальные говно-платформы
Local arr:Float[] = New Float[2]
arr[0] = Sin(angle)
arr[1] = Cos(angle)
Return arr
#end
End

Данный псевдокод будет работать на всех платформах.

devolonter 18.09.2012 22:47

Ответ: Вся правда о Monkey
 
Harter, спасибо за новость. Я знал о ней, но думаю, что многие участники тут не знали.
Вообще, о планах развития Monkey можно почитать тут: http://monkeycoder.ru/blog/monkey/49.html. Это перевод поста из блога Марка.

devolonter 18.09.2012 23:05

Ответ: Вся правда о Monkey
 
Diablo1909,

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

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

Того, что есть сейчас вполне хватает. Это я вам говорю как человек, который почти полностью портировал flash-фреймворк flixel на Monkey. Т.е. мне удалось повторить почти весь функционал данного фреймворка, дописав всего лишь несколько нативных функций для всех платформ. В остальном мне хватило того, что было в mojo. И это без указателей и даже без отражения (когда я начал, отражения еще не было).

По поводу SinCos. Вы все говорите верно, но это без труда добавляется самостоятельно. Т.е. не вижу никаких фундаментальных проблем в этом плане.

Randomize 19.09.2012 00:53

Ответ: Вся правда о Monkey
 
Diablo1909, JavaScript не поддерживает многого из того что ты перечислил, а он язык целевой платформы HTML5. Так же есть платформа FLASH (Action Script) который тоже многого просто не поддерживает. Ты предлагаешь их исключить?

With видал последний раз в Delphi. Он используется где то ещё? Честно говоря With никогда не требовался мне. Даже больше - лучше будет если сразу будет видно объект с которым идёт работа. Но это дело вкуса.

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

moka 19.09.2012 04:40

Ответ: Вся правда о Monkey
 
with - вообще в первый слышу про данный аттрибут.
Насчёт указателей, в javascript как раз всё весьма гибко, там всё можно переуказывать и т.п. Но эта гибкость имеет свои минусы тоже, особенно в производительности, и если не соблюдать поля у объекта в определённой очереди, то не будут например работать оптимизации в V8, которые очень сильно улучшают производительность если писать код на JS корректно.

Автор, не нужен тебе Monkey. Иди пиши на С++..

Knightmare 19.09.2012 09:20

Ответ: Вся правда о Monkey
 
Цитата:

Сообщение от Harter (Сообщение 238605)
Простите, что прерываю вас, джентельмены, однако хотелось бы поделиться радостной новостью:


Абсолютно бесполезно. Никто ваш деплой под все-все-все не пустит в маркетплейс никогда. А если пилить отдельную версию, то проще и быстрее юзать VS и писать на тех же шарпах (рикаминдую, обосретесь от того насколько оно проще даже вашей макаки).

jimon 19.09.2012 12:02

Ответ: Вся правда о Monkey
 

а что если monkey компилировать в llvm байткод ? сейчас же тренд - всё в llvm, а из llvm во что угодно, хоть в dcpu-16, таким образом кстати сишные либы в javascript перегоняют, у llvm есть кодогенератор в javascript (пидарастия, никакой производительности, но работает)

а движки-модули-тд дело наживное :) хз правда как там с html5, даже цукенберг назвал это самой большой ошибкой фейсбука на мобильном рынке

Черный крыс 19.09.2012 14:24

Ответ: Вся правда о Monkey
 
И еще пара недостатков :

1) Нет оператора Enum, он нужен когда необходимо обьявлять большое количество целочисленных констант\глобалов.

2) Афигеть, у него даже степ в цикле - статичен. А ведь бывают ситуации, когда его надо менять... конечно можно это обойти козьими тропками - но код опять становится невыразительным.

В итоге решил не замарачиватся с макакой а уйти в шарп. ))

devolonter 19.09.2012 15:15

Ответ: Вся правда о Monkey
 
jimon, это уже слишком) Проще транслятор для того же dcpu-16 написать.

Knightmare, кто не пустит, за что не пустит? Я то всегда думал, что приложения просто не должны нарушать гайдлайны. А ту оказывается вон чего, заговор — могут только за средство разработки не пустить. Фигню уж не говорите.

Diablo1909, если тема была троллингом, то он удался, поздравляю.

Knightmare 19.09.2012 15:29

Ответ: Вся правда о Monkey
 
Цитата:

Сообщение от devolonter (Сообщение 238647)
Knightmare, кто не пустит, за что не пустит? Я то всегда думал, что приложения просто не должны нарушать гайдлайны. А ту оказывается вон чего, заговор — могут только за средство разработки не пустить. Фигню уж не говорите.

Посан, ты эти гайдлайны в глаза видел? Во-первых, соответствовать гайдлайнам с этой вашей макакой будет, гхм, несколько затруднительно. Во-вторых, ты будешь деплоить метро приложение на остальные платформы? Серьезно? Может хватит уже говна в сторах? А если нет, ты будет переделывать отдельно под Win8? В чем тогда профит от этого инструмента, если ты напишешь еще одну отдельную версию для Win8 по гайдлайнам? Правильно, нет профита, студией на шарпах то же самое сделает в разы быстрее и качественнее.
Если бы ты хоть раз проходил ревью у мелкософта, то не писал бы херни. Это ВНЕЗАПНО единственная компания реально взъебывающая за нарушения их гайдлайнов, за что им респект и уважуха.

devolonter 19.09.2012 15:39

Ответ: Вся правда о Monkey
 
Цитата:

Сообщение от Knightmare (Сообщение 238649)
Посан, ты эти гайдлайны в глаза видел? Во-первых, соответствовать гайдлайнам с этой вашей макакой будет, гхм, несколько затруднительно. Во-вторых, ты будешь деплоить метро приложение на остальные платформы? Серьезно? Может хватит уже говна в сторах? А если нет, ты будет переделывать отдельно под Win8? В чем тогда профит от этого инструмента, если ты напишешь еще одну отдельную версию для Win8 по гайдлайнам? Правильно, нет профита, студией на шарпах то же самое сделает в разы быстрее и качественнее.
Если бы ты хоть раз проходил ревью у мелкософта, то не писал бы херни. Это ВНЕЗАПНО единственная компания реально взъебывающая за нарушения их гайдлайнов, за что им респект и уважуха.

Во-первых я вам не посан и свой говноподонковский засуньте в одно место, ок? Не умеете общаться, давайте до свидания. Во-вторых, причем тут метро-приложения, если мы говорим об играх? Или в в играх тоже плитки будете делать? Гайдлайны я видел, не переживайте. Также видел Monkey-приложения на маркетплейсе, что вы на это скажете? Хотя нет, ничего не говорите, так как разговаривать вы не умеете. Пока!

Knightmare 19.09.2012 16:00

Ответ: Вся правда о Monkey
 
Цитата:

причем тут метро-приложения, если мы говорим об играх
Win8 это не только плитки, это еще вагон всяких вкусняшек типа appbars, live tiles, charms, split view, semantic zoom, контрактов поиска, шаринга и т.д. и т.п. И да, в играх тоже требуют соответствия метро стилю.

Цитата:

Также видел Monkey-приложения на маркетплейсе
Ага, только для WP7, что не есть Win8.

Knightmare 19.09.2012 16:07

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

devolonter 19.09.2012 16:29

Ответ: Вся правда о Monkey
 
Цитата:

Сообщение от Knightmare (Сообщение 238652)
Win8 это не только плитки, это еще вагон всяких вкусняшек типа appbars, live tiles, charms, split view, semantic zoom, контрактов поиска, шаринга и т.д. и т.п. И да, в играх тоже требуют соответствия метро стилю.

Все это про приложения. А в играх, я что-то не видел, чтобы те же Fruit Ninja, как-то адаптировали свой дизайн. Хотя сейчас вы, наверное, скажете, что это хит и им все можно. Если приложение не заточено явно под какой-то стиль, будь-то Android или iOS, я сильно сомневаюсь, что вас заставят переделывать интерфейс под Win8.

Цитата:

Сообщение от Knightmare (Сообщение 238652)
Ага, только для WP7, что не есть Win8.

Да, я знаю, что это не одно и тоже. Тем не менее, там тоже все строго, но как видите публикуются люди.

Цитата:

Сообщение от Knightmare (Сообщение 238653)
Ну и еще таки наброшу на вентилятор по поводу восьмерки. Учитывая что там даже фаел в папочке ищется асинхронно и кругом лямбы желаю вам удачи с пейсательством на кастрированном бейсике, ога. Вас ждет несомненный успех.

Ну он уже не такой кастрированный и асинхронная загрузка там есть, так что как-нибудь справимся. И да, процитирую одно из участников форума: "Да как между собой связаны язык программирования и успех игры?" (с)

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

На этом предлагаю обсуждение закрыть.

Черный крыс 19.09.2012 16:48

Ответ: Вся правда о Monkey
 
Цитата:

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

За стопицот платформами погонешься - толкового ничего не получится. Справедливо к макаке.

devolonter 19.09.2012 17:04

Ответ: Вся правда о Monkey
 
Цитата:

Сообщение от Diablo1909 (Сообщение 238656)
Вывел макаку на чистую воду. Будет полезно тем, кто на него захочет перейти, что бы узнать какие сюрпризы их ждут.

Вы серьезно? Больше было похоже на снобизм CPP-программиста, без обид. Реальные проблемы Monkey: аскетичная IDE "из коробоки", да слабенький фреймворк (но на то есть причины). Благо, сейчас уже доступно несколько оберток для mojo, как платных так и бесплатных. Главное, что это сразу понятно, после просмотра демо-версии и каждый может сам проверить, подходит это ему или нет.

Knightmare 19.09.2012 17:16

Ответ: Вся правда о Monkey
 
Цитата:

Сообщение от devolonter (Сообщение 238655)
Все это про приложения. А в играх, я что-то не видел, чтобы те же Fruit Ninja, как-то адаптировали свой дизайн.

Во Fruit Ninja (что не есть шедевр портирования под Win8, но формально они осилили гайдлайны) есть и live tiles, и charm панелька (тут правда не хватает чтобы настройки открывались на нормальном Flyout как в Cut the Rope) и split view оно умеет (если оно не поддерживается приложение не пройдет даже ACK), и контракт шаринга поддержан, appbars не помню были ли там, но учитывая что в гайдлайнах сказано что-то типа "выход в меню и бла-бла-бла должны быть вынесены в верхнй аппбар и при их открытии необходимо ставить игру на паузу", то я таки склонен полагать что оно там есть.

Цитата:

Сообщение от devolonter (Сообщение 238655)
Если приложение не заточено явно под какой-то стиль, будь-то Android или iOS, я сильно сомневаюсь, что вас заставят переделывать интерфейс под Win8.

Много приложений портировал под Win8? Много раз проходил ACK и certification review? Я полагаю ни разу. В игре не заставят переделать прям все и хапилить плитками всю игру. Но поддержать все контракты придется.

Цитата:

Сообщение от devolonter (Сообщение 238655)
Да, я знаю, что это не одно и тоже. Тем не менее, там тоже все строго, но как видите публикуются люди.

Даже близко нет.

Цитата:

Сообщение от devolonter (Сообщение 238655)
Ну он уже не такой кастрированный и асинхронная загрузка там есть, так что как-нибудь справимся. И да, процитирую одно из участников форума: "Да как между собой связаны язык программирования и успех игры?" (с)

Никак. Другое дело что поддержка асинхронного API будет знатным говнокодом с глюками и тормозами. А эта ваша асинхронная загрузка с проверками "эта, мы не загрузились еще? не? ну давай тупо проц нагнет пока в холостую чо" покажет вам WARN в Performance/Suspend тестах в ACK (там четкие рамки на время, потребление процессора и памяти), и сертификацию вы провалите.

Цитата:

Сообщение от devolonter (Сообщение 238655)
Вы так говорите, как-будто в VS есть кнопка "сделать зашибись", и там, не возможно сделать что-то плохое. Я проверял, нет там такой кнопки.

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

devolonter 19.09.2012 17:31

Ответ: Вся правда о Monkey
 
Knightmare, спасибо за полезную информацию. Дело в том, что это не такая большая проблема все это реализовать. Monkey транслируется в родной для платформы код, а это значит, что можно использовать все родные средства. К тому же шаблон приложения подготавливается в той же VS, т.е. это не будет что-то чужеродное. Единственное отличие, код внутри будет транслирован. Я понимаю, что вам нет до этого особого дела. И это правильно, лучше хорошо разбираться в чем-то одном и я вижу и знаю, что вы спец в разработке под win. Тем не менее, я уверен — приложения на Monkey будут допускаться. Но пока говорить об этом бесполезно, поживем увидим.

Я понимаю, что приложение нужно подготовить, это справедливо для всех платформ. Но подготовка интерфейса и графики не самая сложная задача, при портировании, если изначально грамотно подойти. Гораздо труднее перенести всю логику. Вот с этим Monkey справляется на ура.

Knightmare 19.09.2012 18:02

Ответ: Вся правда о Monkey
 
Цитата:

Сообщение от devolonter (Сообщение 238661)
Knightmare, спасибо за полезную информацию. Дело в том, что это не такая большая проблема все это реализовать. Monkey транслируется в родной для платформы код, а это значит, что можно использовать все родные средства. К тому же шаблон приложения подготавливается в той же VS, т.е. это не будет что-то чужеродное. Единственное отличие, код внутри будет транслирован.

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

Цитата:

Сообщение от devolonter (Сообщение 238661)
Я понимаю, что вам нет до этого особого дела.

Да, меня вполне устраивают нативные средства разработки платформ.

Цитата:

Сообщение от devolonter (Сообщение 238661)
Тем не менее, я уверен — приложения на Monkey будут допускаться. Но пока говорить об этом бесполезно, поживем увидим.

С допиливанием под Win8 - почему бы и нет. Вот только человеки хотят нажать кнопку и получить билд под Win8.

Цитата:

Сообщение от devolonter (Сообщение 238661)
Я понимаю, что приложение нужно подготовить, это справедливо для всех платформ. Но подготовка интерфейса и графики не самая сложная задача, при портировании, если изначально грамотно подойти. Гораздо труднее перенести всю логику. Вот с этим Monkey справляется на ура.

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

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

devolonter 19.09.2012 18:29

Ответ: Вся правда о Monkey
 
Цитата:

Сообщение от Knightmare (Сообщение 238662)
Как раз перетащить логику никогда не было проблемой, а вот адаптация под особенности платформы это да.

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

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

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

Шаблон приложения подготавливается один раз. Да и то самим Марком. Дальше вы его можете или подогнать под свои нужды или использовать как есть. Сидеть в VS постоянно не придется.

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

moka 19.09.2012 23:42

Ответ: Вся правда о Monkey
 
Цитата:

Сообщение от jimon (Сообщение 238640)
а движки-модули-тд дело наживное :) хз правда как там с html5, даже цукенберг назвал это самой большой ошибкой фейсбука на мобильном рынке

Это было ошибкой в плане конкретного приложения Фейсбука, и их далёкими планами. Дело в том что на том же андройде, он до сих пор на html5 работает, и летает нормально. Юзабилити на высоте.
Единственная проблема, это то что они не могут сильно контролировать многие темы с низким доступом, т.к. им приходиться делать в оболочке приложения реализацию работы с определённой функцией, например камерой, и затем уже выдают API для JS чтобы этим функционалом пользоваться из html5 приложения.

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

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

Для многих задачь, хтмл5 отлично справляется, для многих игр также.
Есть куча на Android'е и iOS приложений в той же оболочки от Phone Gap, и работают они отлично, многие и не подозревают.

devolonter 08.05.2013 16:35

Ответ: Вся правда о Monkey
 
В целом, ожидаемо. WP8 приложения успешно проходят проверку. http://monkeycoder.co.nz/Community/p...098&post=57045

Справедливости ради стоит отметить, что это произошло не с первого раза, но теперь, видимо, с этим проблем не будет.


Часовой пояс GMT +4, время: 11:55.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot