2010-04-25 5 views
6

У меня есть отличная идея для 3D-сетевой игры, и я пришел к выводу, что ее можно написать на Java в виде апплета, который будет жить под веб-браузером, как полное программное обеспечение на C++. И он будет выглядеть и чувствовать то же самое.Какую технологию я должен использовать, чтобы написать свою игру?

Главным преимуществом Java на C++ является то, что с Java вы можете играть без загрузки какого-либо программного обеспечения. Я уже думал о загрузке графики, звука и т. Д., Но я нашел для нее решение. RuneScape просто доказывает, что это возможно.

Итак, мой первый вопрос: должна ли моя игра жить в веб-браузере или в операционной системе? Я думаю, что в веб-браузере он гораздо более портативен, хотя вам нужно установить Java и прочее. Но дело в том, что большинство MMO-игр в настоящее время не в сети. Если вы предлагаете в программном обеспечении, пожалуйста, предложите язык либо - C++, либо что-то более продуктивное, как Python или C#?

Итак, после выбора языка мне требуется графическое решение. Должен ли я писать напрямую с OpenGL/DirectX или использовать игровой движок? Какой игровой движок я должен использовать? Ogre? jMonkeyEngine?

Как вы знаете?

Спасибо!

P.S: Пожалуйста, не используйте ответы типа «Используйте то, что знаете».

ответ

7

Несмотря на ваш последний момент, используйте все, что сможете, и то, что предоставит самую большую базу пользователей.

Апплеты старые и больше не используются так широко, как раньше. Flash или Silverlight являются «стандартными» для веб-игр. Может быть стоит проверить, JavaFX основывается на вашей заинтересованности в использовании Java, это, предположительно, замена того, какие апплеты должны были быть. Я на самом деле не использовал JavaFX, и я не слышу об этом, принимайте это как пожелаете. Самое большое преимущество развертывания в Интернете - это, как вы уже сказали, пользовательская база больше, и люди с большей вероятностью дают вашей игре игру. Недостатком является то, что вы в конечном итоге используете подобные Flash или эквивалентные для процесса разработки.

Если вы спуститесь по пути создания автономного приложения, вы можете использовать все, что захотите. C++, Java, C#, Python и т. Д. - все жизнеспособные варианты. Вы можете создавать игры на большинстве языков. C++ является отраслевым стандартом, но игнорировать этот факт. Вы можете создавать потрясающие и исполняющие игры на любом языке, если вы являетесь разработчиком хобби. То, что я пытаюсь сказать, заключается в том, что, если вы не создаете следующий большой хит, использование C++ можно избежать. В отличие от веб-приложений, вашим пользователям потребуется использовать фреймворк/API. Например, им понадобится OpenGL/DirectX/XNA и т. Д. Что касается XNA против DirectX против OpenGL? Не имеет значения, ваш выбор языка, скорее всего, будет диктовать ваш выбор графического API/Framework. Поэтому я оставлю эту точку зрения для исследования.

Как использовать двигатель? Это зависит.

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

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

+3

Если вы используете Flash, ваша игра не будет работать в следующем году, когда Flash будет мертв :) –

+0

@ Longpoke столько, сколько я бы хотел, это правда; это не так;) – Finglas

+0

mayhap. http://www.craftymind.com/factory/html5video/CanvasVideo.html –

0

Игра, которая просто запускается как апплет, не будет восприниматься как игра real для самых хардкорных геймеров.

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

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

+0

Основная проблема заключается в том, что никакая «настоящая игра», как вы выразились, была сделана в форме апплета, а не из-за отсутствия технологии. «Hardcore gamers» будет играть что угодно хардкор, и такая игра не была создана как апплет. – Ricket

+0

-1 Единственная игра, в которую я действительно играю, - ut99, и я ** владею ** всеми в ней. Он написан на C/C++/asm и, тем не менее, медленный. Я мог бы легко написать что-то с тем же качеством графики в Java и запустить 40 экземпляров. Библиотеки ... LWJGL, JOGL, .... –

+0

@ Longpoke: ну и что? Где я говорил о скорости? Вы даже читали? –

7

Одним из вариантов рассмотрения является 3D-игровой движок Unity - в дополнение к тому, чтобы быть достаточно мощным инструментом разработки, он имеет несколько cross-platform deployment options. Вы можете создать автономный исполняемый файл (для Windows и Mac, еще не Linux), и версию веб-браузера, которая отвечает на ваш первый вопрос о развертывании в Интернете или ОС. Вы можете сделать то и другое.

Он также использует как Javascript, так и C# (и Boo, вариант Python) для scripting languages. Они основаны на Mono, версии .NET с открытым исходным кодом, поэтому это не просто игровая платформа, а доступ ко всем возможностям .NET (ну, в любом случае, реализованные в Mono).

См. Страницу Licensing для длинного списка возможностей Unity (базовая версия является бесплатной). И проверьте список Unity-based games, первым из которых является Tiger Woods PGA Tour Online, Electronic Arts.

+0

Cross Platform C#? Как это возможно? Он использует Mono? –

+0

Правильно, он использует Mono: http://unity3d.com/unity/features/scripting –

Смежные вопросы