Почему (почти) все онлайн-игры, написанные на ActionScript (Flash), не являются Java? - PullRequest
6 голосов
/ 16 марта 2010

Мне очень нравятся хорошие игры защитников (например, Gemcraft, Protector: возвращение трона), поскольку они могут быть интеллектуально довольно сложными; это как играть в шахматы, но немного меньше думать и немного больше действия. К сожалению, хороших не так уж и много, и я подумал, что создам его сам и поделюсь им с остальным миром, сделав его доступным в Интернете.

Я никогда не работал с ActionScript, но когда дело доходит до онлайн-игр, это основной выбор. Я пытался найти достойную 2D-игру в форме Java-апплета, но безрезультатно. Почему это так? Я мог бы написать игру, наиболее удобно, в Delphi для Win32, но тогда люди должны были бы загрузить исполняемый файл, который мог бы сдерживать загрузку какой-либо формы, а также он работал бы только на Windows. Я также знаком с Java, проработав с Java последние четыре года или около того; хотя у меня нет большого опыта в программировании игр.

Если меня не пугает тот факт, что все онлайн-игры написаны для Flash, и я создаю свою игру-защитник как Java-апплет, или я должен рассмотреть изучение ActionScript и разработку игр для виртуальной машины ActionScript (AS3 выглядит очень во многом как Java ... но все же, для меня это совершенно новая технология, и я никогда не смогу использовать ее профессионально.)

Не могли бы вы, пожалуйста, просто ответить на вопрос в заголовке? Почему Flash, а не Java-апплеты? Это только «политика»?

Ответы [ 8 ]

12 голосов
/ 16 марта 2010

Flash более популярен, так как его уровень проникновения огромен .

Flash также более эффективен, когда речь идет о создании и интеграции графических ресурсов (поскольку Flash CS * также является редактором векторной анимации). Также очень легко встраивать звуки и шрифты, играть с растровыми эффектами, не используя дополнительную библиотеку.

И последнее, но не менее важное: существует множество сайтов, которые предлагают API-интерфейсы ActionScript, чтобы зарабатывать деньги на своих играх, добавляя в них различные объявления (например, MochiMedia , Kongregate ... )

6 голосов
/ 16 марта 2010

Flash предоставляет полностью встроенный графический и звуковой движок, который будет обрабатывать отдельные объекты («спрайты») на путях и анимации.

В Java эти функции должны быть предоставлены сторонней библиотекой. Однако Java предоставляет необходимые строительные камни для создания такого движка.

JavaFX может изменить это, однако.

4 голосов
/ 16 марта 2010

Я могу немного рассказать об Java: в начале истории Java Sun пыталась выдвинуть Java-апплеты как новый способ отображения динамического контента в браузере. Эта попытка была обречена на неудачу сочетанием следующих факторов:

  • Java имела (и все еще имеет) длительное время загрузки для среды выполнения (JRE); ​​
  • У Java изначально был только AWT в качестве инструментария GUI, а AWT ограничен и действительно ужасен;
  • Раньше Java была намного медленнее до появления более быстрых процессоров и JIT-компиляции;
  • Java (многие думают преднамеренно) очень нерешительно поддерживалась Microsoft в IE, поэтому она не была хорошо интегрирована и работала плохо.

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

Хотя Java и Flash являются полными средами программирования Turing, Java более универсальна, с большим набором библиотек для всех видов различных целей. Sun стремилась к тому, чтобы среда Java была универсальной среди платформ, поэтому Java на стороне браузера включает в себя множество библиотек, которые обычно не нужны. Опять больше время загрузки.

2 голосов
/ 16 марта 2010

Простой ответ: флеш-плеер установлен практически на всех компьютерах, а JRE - нет.

1 голос
/ 16 марта 2010

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

Что еще более важно, с точки зрения автора, Flash на сегодняшний день является наиболее распространенным плагином для браузера. У Java просто нет проникновения на рабочий стол. Апплеты исторически презирали за их нестабильность и низкую производительность (особенно медленный запуск); В то время как это несколько улучшилось, Sun продолжает подрывать то, что они приняли, с помощью своего отвратительного средства обновления пакетов. В наши дни это смелая компания, которая много чего разрабатывает для настольной Java.

стоит подумать об изучении ActionScript и разработке игр для виртуальной машины ActionScript

Определенно стоит изучить JavaScript / ActionScript. (Это почти один и тот же язык, использующий стандартное общее ядро.) Затем вы можете применить свои знания сценариев Flash для сценариев браузера. Вы даже можете подумать о реализации игр на самом JavaScript / HTML!

AS3 очень похож на Java ...

Во всяком случае, это язык C-like, да. Однако понятия и практика очень разные; у вас возникнут трудности, если вы попытаетесь написать JS / AS как Java.

1 голос
/ 16 марта 2010

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

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

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

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

Однако, если у вас есть отличная игра, я мог бы убедиться, что установил:)

0 голосов
/ 17 марта 2010

Future Flash CS5 может создавать приложения для iPhone напрямую, поэтому вы будете создавать игры для двух платформ одновременно.

0 голосов
/ 16 марта 2010

Многие разработчики Flash - дизайнеры, которые перешли на создание игр. Они использовали flash как инструмент проектирования перед инструментом программирования.

К тому же, похоже, что сейчас онлайн-игры пишутся во флэш-памяти как прецедент, поэтому я думаю, что люди не хотят отклоняться от "нормы"

...