Как стать автором
Обновить

Комментарии 34

«Этот человек известен некоторым разработчикам по таким инструментам для создания игр, как BlitzBasic» — да, и это очень даже заметно.

Никак не могу понять мотивацию, для чего нужно еще раз изобретать убогий Basic, когда давно есть масса вариантов на любой вкус и цвет. Как будто синтаксис является краеугольным камнем для игровой 2Д системы.
Я предвидел этот комментарий) Так уж повелось. BlitzBasic был выпущен в начале 2000-х, если мне не изменяет память. В то время, выбор Basicа, как мне кажется, был вполне приемлемым вариантом. Шли годы, база пользователей, привыкших к подобному синтаксису, росла. И когда пришло время выпускать новый продукт, было решено ничего не менять, чтобы не потерять старых пользователей. Так, от продукта к продукту, синтаксис оставался практически неизменным.
Иными словами, это какой-то такой 2Д инструмент для непрограммистов? Примерно, как VBA for Applications.
Из приведенного примера кода абслютно не понятно, в чем прелесть этой самой Monkey — именно как язык абслютное убожество, но может там в rtl что-то есть интересное?

Насчет 2000-го года могу заметить, что тогда у меня уже работал «реалтаймовый» сетевой монитор (udp/tcp) на Python с полноэкранным интерфейсом, коллеги в то же время немало писали на Javascript (кстати, скриптовали 3Д). Не помню насчет Lua, но тогда же видел какие-то скриптовые варианты «а ля Си».

Это я все к тому, что 2000-й год уже вполне себе наше время.
Пример кода, был приведен исключительно для того, чтобы показать синтаксис. Прелесть Monkey — расширяемая кроссплатформенность. Очень жаль, если мне не удалось раскрыть эту тему в посте. А по поводу самого языка, это личные предпочтения каждого. Мне не составляет труда переключаться с BASIC-подобного синтаксиса на C-подобный. Поэтому, я не вижу в этом большого недостатка.
НЛО прилетело и опубликовало эту надпись здесь
Stencyl — инструмент несколько иного плана. Поэтому сравнивать его с Monkey немного некорректно.
«Monkey ни в коем случае не является «убийцей» Unity и других подобных инструментов. Но он может заинтересовать начинающих, а также независимых разработчиков игр, чей бюджет в значительной степени ограничен. Если мне удалось вас заинтересовать, добро пожаловать под кат.»

Очень интересный мотивирующий абзац. Так и чую как толпы нищих нубов желающих щастя ломятся под кат.
Не считаю себя нищим, но в тоже время не могу себе позволить полностью «заряженный» Unity. Что я делаю не так?
ну явно monkey не стоит того, чтоб за него еще и платить.
«гаратий» от платности при отсутствии центрального хранилища — никаких.
Жаль, если честно, что такие комментарии вообще появляются. Этот абзац был специально написан для того, чтобы исключить подобного рода высказывания. Monkey значительно уступает Unity по функциональности и находится в совершенно другой лиге, поэтому сравнивать их просто бессмысленно. Да, низкая цена, одно из преимуществ Monkey. Но это не означает, что человек приобретает его только из соображений цены. Вполне возможно, что ему достаточно того функционала, который предоставляет Monkey.
абзац до ката — «это дёшвая хрень, нубы сюда». я только к этому пишу, никак не к чему другому
Не обращайте внимание, это русская черта, если windows — то Ultimate, если photoshop — то самый последний, office — professional, а зачем вам Access? — А чтобы был, пригодится
Главное что бы всё это было бесплатно :) А на халяву, и ящик уксуса сладкий.
Так один же раз живём!
С большим удовольствием писал под BlitzBasic на Amiga, когда он был широко популярен. И хочу сказать пару слов в его поддержку. Да, с точки зрения «крутого программизма» этот язык — полное убожество. Но он больше рассчитан не на умудрёных опытом ООП-шников, готовых неделю писать один мегакласс, а больше на людей творческого склада ума, которые не хотели бы писать функцию для вывода спрайта, а просто вывести спрайт.
Даже программирование под Unity требует значительных знаний, как же быть начинающему инди-девелоперу, который придумал классный концепт 2D-игры, но абсолютно не умеет программировать и не имеет возможности нанять программера?
На мой взгляд для него и нужен Monkey.

+1

Создать новый проект и заставить что-то двигаться на экране занимает даже не день. Считанные часы!

Как минимум, для меня, НЕ гуру-программиста на нем весьма легко сделать, вполне рабочий прототип, который можно потестировать на девайсе. Вместо того, чтоб загружать программистов.
И мозги не застаиваются, и время экономится.
Мое знакомство с Blitz-языками началось позже, с Blitz3D. Мне, как начинающему тогда программисту, это дало огромный толчок к развитию. Да, я тогда не завершил ни одной 3D-игры, но здорово втянулся в программирование. Было круто делать игры не сильно вдаваясь в особенности того, как это происходит на низком уровне. Тем не менее, несмотря на то, что мое знакомство началось с BASIC это не доставило мне проблем, когда я начал изучать C-подобные языки.

Сейчас, язык здорово эволюционировал, если сравнивать его с BlitzBasic. Это было заметно в BlitzMax и еще более заметно в Monkey. В принципе, сейчас, я уже не испытываю какого-либо дискомфорта возвращаясь к Monkey, после использования серьезного (взрослого) языка.

Но это не значит, что Monkey предназначен только для новичков. Да, язык позволяет быстро втянуться в разработку игр, но в тоже время, при желании и должных навыках, позволяет делать вполне себе серьезные и интересные вещи. За рубежом, кстати, его часто используют достаточно «бородатые» программисты, например, Frédérick Raynal.
>> инди-девелоперу, который придумал классный концепт 2D-игры
Бред какой-то. Во-первых, если он не умеет программировать — какой из него «девелопер»? Во-вторых — он идет в места тусовки около-геймдевных прогеров и ищет там кого-то подходящего, кто умеет. Типа, «Пипл, у меня есть клевый концепт, но нет бабок. С вас реализация, с меня процент прибыли».
В-третьих, этот ваш бэйсик нисколько не избавляет от необходимости оперировать абстракциями типа «объект», «цикл», «условие». Соответственно, человек должен быть УЖЕ сколько-то программистом, чтобы что-то делать.
Самая главная фишка Monkey — это открытый код всей (после приобретения) системы. Это невероятно важная вещь, когда дело доходит до серьезного проекта. С Corona, Stencyl, Unity, Adobe AIR и прочими закрытыми инструментами у вас появляются ограничения, которые с течением времени начинают бесить.
Чем-то мне данная дискуссия напомнила холивары между ардуинщиками и тру-радиолюбителями :) Если продукт дает человеку новые возможности, не заставляя при этом его приобретать не самую необходимую для него специальность или нанимать специалиста — отлично.

Гейм-дизайнер может, не становясь программистом, создать прототип игры? Отлично.
Программист может, не осваивая премудрости схемотехники, на скорую руку сваять нужный ему девайс? Замечательно.
Но многие почему-то считают такой подход оскорбительным — будто бы он дискредитирует их специальность, позволяя ламерам и чайникам делать что-то осмысленное.

С таким подходом и права на вождение автомобиля можно выдавать только профессиональным автогонщикам. Как принципиальный пешеход, я была бы только за — было бы меньше аварий и пробок :)
Интересное и хорошее замечание. Но холиваров в данном вопросе, к сожалению, не избежать. Честно говоря, я думал, что все будет значительно хуже)
Я категорически не согласен с исходным посылом. Человеку, не знакомому с программированием вообще, эта штуковина нисколько не ближе прочих языки высокого уровня. А то и дальше — нелогичность так и прет, даже из приведенного куска кода. Этот типа-бэйсик не имеет ничего общего с провозглашаемой простотой. Начиная с тотального ООП не имеет.
Для начинающего это еще и вредно, поскольку не прививает хорошего вкуса.
Я понимаю, если бы речь шла о, скажем, GameMaker или его клоне — оно хотя бы отчасти WYSIWYG, что хорошо для начинающих. А за создание таких тулзов «для начинающих» я бы сжигал без предварительного удушения.
Ну во-первых, этот язык необязательно только для начинающих. А во-вторых, не совсем понимаю вашего высказывания «нелогичность так и прет». Где, в приведенном фрагменте кода, вы видите нелогичность? Просто интересно.

Без проблем:

> Cls 32, 64, 128
> player.Draw()

Cls — это кейворд, оператор или что вообще? Или функции вызываются без скобок, а методы со скобками?

Вызывать можно как со скобками, так и без. Например, Cls(32, 64, 128) также будет работать. Тоже самое касается и условных операторов. Выше приведен пример из вики, с учетом того, как люди привыкли писать это в BASIC. Синтаксис дает относительную свободу в выборе стиля. Единственное, чего нет — это фигурных скобок. Для завершения блока нужно использовать End.
Ну или вот, хотя это уже несколько другое:

For [ Local ] IndexVariable = EachIn Collection
Statements…
Next

Наличие '=' здесь я могу объяснить… Ничем.
А насчет «не начинающих» — вот тут кроется основная проблема. Я не знаю, насколько нужно неуважать себя как разработчика, чтобы пользоваться этим выкидышем языкового дизайна. Даже Cool(язык, реализуемый в рамках стенфордского курса Compilers) проще, лаконичнее, удобнее для написания!
Я пользуюсь этим «выкидышем языкового дизайна» и уважаю себя. И да, это нисколько не мешает мне программировать на других языках. Скажу больше, с тех пор, как я начал использовать Monkey, я подтянул свои знания в таких вещах, как WebGL и AS3. А также, узнал много нового о кроссплатформенной разработке. Будьте проще) Удачи!
Чтобы понять прелесть monkey, нужно понимать его цели.

Monkey — инструмент для создания кроссплатформенных игр.

И что есть «провозглашаемая простота», вы поймете, если попробуете собрать рабочее кроссплатформенное приложение, с помощью monkey / haxe-nme / самописном инструменте и сравнить.
Я прекрасно понимаю сложности с кроссплатформенностью. И это меня больше всего бесит — то, что хорошая в своем роде тулза обладает настолько уродливым интерфейсом. Языком, в нашем случае. Вот что им стоило заняться доводкой до ума HaXe?.. Или взять нормальный язык за основу, в конце концов.

«Простота», о которой я говорил выше — простота для не умеющего программировать человека, кривая вхождения. И от этих слов я не отказываюсь — это реальный маркетинговый bullshit. А если человек учится программировать ради реализации своей идеи — почему не дать ему нормальный инструмент?..
Когда-то давно я игрался с программированием модов для Unreal Tournament — UnrealScript, отсутствие доступной документации, все дела. Так вот, я был до предела поражен обнаружив в языке поддержку FSM. Натуральных FSM, на уровне рантайма. А еще поддержку достаточно прозрачной сетевой репликации. Вероятно, чего-то еще, не помню уже.
При этом — Java-подобный язык, который читался легко и просто, не ломая глаз. При том, что я тогда не знал ни одного C-подобного языка. Я почитал код два-три дня и сел писать свой первый мутатор. И написал.

Это пример того, что я считаю реально хорошим языком для разработки игр. Не маркетинговый bullshit типа «смотрите, как тут все просто», когда ничего на самом деле не просто, а крутой и упрощающий жизнь функционал при легком вхождении в язык.
Многие агрятся на слово BASIC, вместо того чтобы читать суть.

Кроссплатформенные средства разработки игр, которые позволяют получить web версию можно пересчитать на пальцах одной руки.
Monkey
Haxe+NME
Unity3D (c натяжкой, так как насколько я помню он экспортит только в 11 версию флеш плеера и не может экспортить в более ранюю)
конец списка :)

Adobe Air не дает нативной производительности на мобильных платформах.
Многочисленные HTML5 средства, движки и фреймворки тоже не годятся для мобильных платформ из-за проблем с производительностью.
Некоторые компании делают фреймворки которые позволяют писать код на C++ а затем через адобовскую Алхимию получать веб версию. Но в опенсорсе я их еще не видел. Видел только как закрытые, внутренние технологии у некоторых разработчиков.

Таким образом выбор собственно такой: если нравится флеш, то первым делом смотреть haxe+NME, если игра 3D то первым делом смотреть Unity3D, иначе смотреть Monkey или писать веб версию игры отдельно вместо того чтобы потратить это время на улучшение существующей игры или разработку новой.
Хотелось бы ещё сравнение с каким-нить LUA проектом, типа Moai или той же Corona
К сожалению, с этими проектами не знаком в достаточной степени, чтобы делать сравнение. Можно предположить, что Monkey дает больше свободы, т.к. не ограничивает разработчика набором платформ. Вы всегда можете написать реализацию поддержки необходимой вам платформы или расширить текущую реализацию. Также большим плюсом, по сравнению LUA-проектами, является возможность написания модулей на нативном для платформы языке.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории