Лучший из обоих миров: браузер и настольная игра?

При рассмотрении платформы для игры я выбрал многоплатформенный (Win/Lin/Mac), но не могу решиться до браузера по сравнению с рабочим столом. Поскольку я не слишком далек в разработке, и теперь имеющий долгие размышления, я хотел бы Ваше мнение!


Игры на базе браузера с помощью апплетов Java:

  • проникновение на рынок довольно высоко (для версии 6, это - где-нибудь приблизительно 60%, которым я верю?)
  • с помощью JOGL 3D производительность/качество достойна; конечно, достаточно хороший для рендеринга дрянной 3D графики, которую я делаю
  • существует (маленький?) возможность портирования чего-то к Android
  • большой для аудитории геймеров, которые часто переключают компьютеры; может сесть в любом компьютере, загрузить веб-страницу и играть его
  • также большой для казуальных геймеров или менее хорошо осведомленных геймеров, которые довольно довольны тем, чтобы играть в игры в браузере, но не хотят устанавливать больше вещей на их компьютере
  • записанный на высокоуровневом языке, с которым я более знаком, чем C++ - но в то же время я хотел бы улучшить свои навыки с C++, как это, вероятно, куда я направляюсь в игровой индустрии, после того как я выхожу из школы...
  • более легкий процесс обновления: перезагрузите страницу.

Настольные игры с помощью старого доброго C++ и OpenGL

  • 100%-е проникновение на рынок, принимая завершенный межплатформенный; однако, то число уменьшает, когда Вы рассматриваете, сколько людей пройдет загрузку и установку исполняемого файла по сравнению только с просмотром к веб-странице и ударом "да" к предупреждению системы безопасности.
  • больше проблемы для поддержания межплатформенного; но снова, для изучения целей я охватил бы проблему и знание, которое я получу
  • лучшая производительность все вокруг
  • истинный полный экран, тогда как игры браузера часто борются с гладкой полноэкранной графикой (особенно на Linux, по моему опыту)
  • может использовать в своих интересах платформы распределения, такие как Пар
  • более вероятно, чтобы считаться "реальной" игрой, тогда как браузер и Java игры часто отклоняются как не являющийся реальными играми и поэтому не играются "жесткими геймерами"
  • установщик может быть большим; не должны волноваться так во времена загрузки

Существует ли способ иметь лучший из обоих миров? Я люблю апплеты Java, но мне также действительно нравятся причины записать настольную игру. Я не хочу, постоянно портируют все между проектом апплета Java и проектом C++; это было бы дважды работой!

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

Каковы мои опции? Есть ли другие примеры там помимо Единицы игр, которые имеют браузер и настольные версии? Я не учитывал что-нибудь в про/обманном, упоминает выше?

9
задан Ricket 15 June 2010 в 13:23
поделиться

9 ответов

Да, вы можете получить лучшее из обоих миров.

Вполне возможно написать Java-приложение, которое будет работать как апплет (для ваших онлайн-пользователей), а также как отдельное приложение в загруженном виде.

Ключевые технологии:

  • JNLP
  • JOGL для графики, который также имеет несколько хороших демо-версий
  • Я не так хорошо знаком с ним, но думаю, что jMonkeyEngine выглядит очень многообещающим, если вы хотите более полнофункциональный игровой движок

Если это может быть полезно, старая игра, которую я написал под названием Tyrant, поддерживала запуск и как апплет, и как отдельный загруженный . jar-файл, все исходники открыты, если вы хотите посмотреть на них. Здесь использовался простой AWT, а не 3D-графика.

И, наконец, вот еще один пример преобразования апплета в приложение с довольно минимальным количеством кода.

5
ответ дан 4 December 2019 в 08:32
поделиться

Возможно, вам стоит обратить внимание на Native Client от Google, который позволяет писать приложения на C или C++ (или на любом другом языке, который компилируется в нативный код). Новая функция, которая появится в SDK - поддержка LLVM, что (надеюсь) позволит программному обеспечению NaCl работать на любой платформе, на которой работает браузер Google Chrome (или любой браузер, с которым работает плагин NaCl - в настоящее время поддерживаются x86 и ARM, IIRC).

2
ответ дан 4 December 2019 в 08:32
поделиться

Да. Вы можете сделать что-то, что будет работать в обоих. В основном, сделайте так, чтобы ваша программа работала внутри JPanel. Апплет может отображать JPanel, а настольная версия - это просто окно с вашей JPanel в нем.

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

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

1
ответ дан 4 December 2019 в 08:32
поделиться

Хотя WebSense не позволяет мне перейти непосредственно на сайт, по понятным причинам, первое, что пришло на ум, когда я прочитал этот вопрос, это игра вроде Wurm Online. Она написана на Java с использованием JOGL, реализует потоковую передачу контента и локальные кэши, и, похоже, затрагивает многие интересующие вас моменты. Это настольное Java-приложение, а не действительно "in-browser", но я думаю, что вы все равно сможете многому научиться из его реализации.

Браузерная игра всегда находится под угрозой закрытия или обновления окна, что приводит к резкой потере состояния, если только все не хранится на стороне сервера. Это означает, что у вас либо очень простые игры, которые могут поддерживать синхронизацию с помощью модели вызова/ответа (например, множество текстовых игр Facebook "Mob Wars"), либо риск случайного нажатия F5, в результате которого кто-то вернется к своей последней "сохраненной игре"

.
0
ответ дан 4 December 2019 в 08:32
поделиться

В своем вопросе вы упомянули Android - думали ли вы о разработке игры исключительно для Android?

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

1
ответ дан 4 December 2019 в 08:32
поделиться

Прежде всего, вы начинаете с неправильного вопроса. Ваше решение о технологии должно определяться концепцией игры. Похоже, что вы уверены в идее написать игру - так спросите себя, каковы требования к игре. Это приведет вас к технологии. Если это не поможет, получите представление о том, "что" вы хотите сделать.

К вашим "за" и "против": Не зацикливайтесь на вещах, которые вам никогда не понадобятся и которые вы никогда не сможете использовать. Думать о платформе steam неинтересно для разработчика-хобби. Также и android не интересен, если вы на самом деле не хотите поставлять свое приложение для android. Этот профи никогда не станет профи в реальности.

Подводя итог: Пусть это решение будет продиктовано вашей идеей, а не самой технологией. Если у вас есть четкое представление о том, что вы хотите сделать, вы получите свой ответ.

(И btw..: Подумайте о том, что подразумевают браузерные игры. За браузерной игрой стоит огромная сервисная область, предназначенная только для поддержания игры в рабочем состоянии. Компании, работающие в таких областях, в основном являются поставщиками услуг.)

.
4
ответ дан 4 December 2019 в 08:32
поделиться

Я не думаю, что вы действительно можете сравнивать эти два понятия:

На мой взгляд:

  • Applet, flash и другие игры на основе браузера - это обычно небольшие "игрушечные" игры, либо написанные бесплатно, либо дополненные рекламой. Примеры можно найти на сайте Addicting Games.
  • Игры на C++ чаще всего являются тяжелыми студийными играми, написанными на специальных физических движках, графических движках и т.д. (особенно это касается игр, распространяемых на Steam, как мне кажется). Кривая обучения, скорее всего, будет намного круче, так как C++ по своей сути более сложный язык, чем Java / Flash.

Если вы не знакомы с C++, мой совет - остановиться на Java с JOGL. Таким образом, вы сможете пройти кривую обучения Open GL до того, как вам придется осваивать C++.

EDIT

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

0
ответ дан 4 December 2019 в 08:32
поделиться

Я бы посоветовал сначала написать игру.

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

Сначала напишите игру для одной платформы (независимо от того, является ли эта платформа «родной для Windows с DirectX», «Java-апплетом» или даже «чистым AJAX в браузере»). Если вы можете это сделать, вы можете начать думать о том, как перенести его на другие платформы. Но попытка сделать все - верный способ ничего не достичь.

Или, другими словами:

Я выбрал мультиплатформенность (Win / Lin / Mac)

, так что вы фактически решили ничего . Выберите платформу для развития. Тогда сделай игру. Затем заставьте его работать на других платформах.

Не беспокойтесь о том, что ваша «аудитория» сочтет приемлемым. Если ваша игра веселая, то да, люди с радостью установят Unity. Точно так же, как они установят вашу игру, если она не основана на браузере. Но важным моментом является не «что мне нужно установить, чтобы играть в нее», а «стоит ли оно того». Вы должны сосредоточиться на создании игры, которая стоит установки.

И если вы не планируете продать 20 миллионов копий игры и жить за счет этого, ваша «аудитория» не имеет большого значения, не так ли? Главное - выложить игру так, чтобы все желающие могли ее попробовать.

Но одноплатформенная игра намного лучше незаконченной кроссплатформенной ничего .

Игра, в которой я должен установить Unity, намного лучше, чем игра, на разработку которой у вас уходит еще 3 года, потому что вы настаивали на изобретении колеса.

7
ответ дан 4 December 2019 в 08:32
поделиться

Если вам действительно нужно такое проникновение, я предлагаю HTML 5 + javascript в зависимости от требуемой производительности.

5
ответ дан 4 December 2019 в 08:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: