Подтвердить что ты не робот

Преимущества и недостатки игровых платформ

Этот вопрос адресован всем, кто только начинается в развитии хобби. Первое, что приходит в голову:

Какой язык/каркас я должен использовать?


Список решений:


Шаблон ответа:

Имя структуры (связанное)

Плюсы:

  • Pro1
  • Pro2
  • ...

Минусы:

  • Con1
  • CON2
  • ...
4b9b3361

Ответ 1

Microsoft XNA Game Studio

Плюсы:

  • Использует языки .NET; управляемая память, простота среды Visual Studio и т.д.
  • Хорошее сочетание высокоуровневого и низкоуровневого
  • Поддерживает как 2D, так и 3D очень хорошо
  • Доказано; посмотрите на Xbox Live Arcade, все эти игры сделаны с XNA
  • Игры можно легко запускать в сетевом Xbox

Минусы:

  • Использует языки .NET; не может использовать Java, С++ и т.д.
  • Не слишком много ресурсов (т.е. книг) еще нет, хотя его легко изучить и использовать, чтобы это не было проблемой.
  • Windows, только. Mono (в Linux) вообще не поддерживает XNA.
  • XNA 3.0 был выпущен менее чем через год после 2.0, и теперь мы находимся на уровне 3.1; Частые изменения, подобные этим, могут затруднить документацию, то есть книги быстро устаревают, а при обновлении игры 2.0 в игре 3.0 происходит много вещей.
  • Начиная с 2014 года прекращено.

Ответ 2

Если у вас есть время, сделайте все сами. Это стоит опыта, и вы узнаете много, а не как работать с каркасом X.; ^)

Доводы

  • Полный контроль
  • Сильный образовательный опыт
  • Согласованный код между игровым движком и программой
  • Как правило, он подходит для приложения, к которому он применяется.
  • Поддержка любого языка/среды

против

  • Высокая сложность
  • Нет онлайн-документации
  • Как правило, менее общий. Сложнее применять к другим играм.
  • Сложнее для других людей.
  • Вероятно, более грубые, чем более популярные фреймворки.
  • Не проверено.
  • Сложнее получить помощь.

Ответ 3

jMonkeyEngine

Pros

  • Использует Java; управляемая память, высоко поддерживается многими зрелыми IDE (Eclipse, NetBeans и т.д.), очень портативна.
  • Хорошее сочетание и высокоуровневое и низкоуровневое
  • Современный 3D-сценарий
  • Построено на вершине LWJGL, очень зрелая и хорошо работающая игровая библиотека
  • Очень легкий; не добавляет слишком много накладных расходов
  • Встроенная загрузка 3D-модели в различные форматы.
  • Построен в современном 3D-графике с node.
  • Прост в использовании.
  • Открытый исходный код; постоянно развивается и улучшается.
  • Включает отбраковку, проверку столкновений и т.д.
  • Имеет возможность сохранить и прочитать собственный ультракомпактный, сверхбыстрый формат двоичной модели.
  • Полный список.

против

  • Использует Java, поэтому компилирует JIT и поэтому может быть немного медленнее, чем С++ и другие параметры.
  • Не используется во многих коммерческих приложениях (и, следовательно, не как "проверено" ).
  • Не имеет прикрепленного редактора любого типа, все должно быть сделано в чистом коде.
  • Сложно делать 2D-игры (для этого вы можете попробовать Slick).

Ответ 4

pygame

Плюсы:

  • Легко начать и создать что-то видимое.
  • Кросс-платформенный.
  • Для проверки источника доступно множество игр с открытым исходным кодом.
  • Преимущества языка Python (гибкость, динамическая типизация, строки/массивы/кортежи и т.д.).

Минусы:

  • Производительность не масштабируется до очень больших игр (для которых развитие хобби очень редко).
  • В основном подходит для 2D, хотя возможно 3D.
  • Трудно распространять как закрытый источник.

Также SDL может быть вставлен как профи и/или минус.

Ответ 5

OGRE (объектно-ориентированный графический движок)

Плюсы:

  • Тонны 3D-функций
  • Кросс-платформенная, использует DirectX или OpenGL
  • Архитектура плагинов для еще большего количества функций.
  • Не пытается быть все-движком, только графическим движком (даже не пытайтесь обрабатывать входные данные, как это обычно делают многие графические библиотеки)

Минусы:

  • Использует шаблон Singleton
  • Очень сложно сделать 2D или примитивный рендеринг (отдельные полигоны, линии и т.д.)
  • Тонны кода делают кривую обучения довольно крутой.

Ответ 6

pyglet

Плюсы:

  • Низкая сложность
  • Кросс-платформенная
  • OpenGL ускоренная графика по умолчанию
  • Дополнительные графические улучшения OpenGL легко добавить
  • Язык Python

Минусы:

  • Менее известный, чем pygame
  • Игра 'loop' немного нетрадиционная
  • Знания OpenGL, необходимые для расширенной графики и максимальной производительности

Ответ 7

SDL

Доводы

  • SDL официально поддерживает Windows, Mac OS X, Linux, iOS и Android.
  • Он используется программным обеспечением для воспроизведения видео, эмуляторами и популярными играми, включая каталог, отмеченный наградами Valve, и множество игр Humble Bundle.
  • Открытый исходный код
  • SDL написан на языке C, работает с С++, и существуют привязки для нескольких других языков, включая С# и Python.

против

  • Никакой специальной IDE, такой как Unity
  • Немного низкоуровневый

Ответ 8

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

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

Ответ 9

только начинается с разработки игрового хобби

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

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

Чтобы начать с вас, вы должны спросить себя:

  • какие игры вы хотите написать.
  • для чего вы хотели бы разработать?
    • Веб-браузер?
    • Facebook?
    • PC?
    • ПК и Mac? т.е. кросс-платформу.
    • Консоль?
    • iPhone и iPad?
  • какой язык вы хотите использовать (но это может быть задано выбранной платформой)

Кривая обучения для написания игр может быть довольно крутой, поскольку вам, возможно, придется учиться:

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

Не откладывайте это, это звучит как много работы! Ключ к написанию хороших игр - это выпирание и решимость продолжать и заканчивать. Вы видели фильм, Indie?

Мой совет:

  • Начать простую. Многому нужно научиться, если вы слишком много начинаете с вас, вы будете отпугивать и думать, что это сложно. Так что...
  • Легкий язык. Вы услышите много людей, рассказывающих о том, как велики определенные языки. Ну, все они имеют свои плюсы и минусы. Некоторым легче научиться другим. Например. Python или Lua довольно легко узнать. Это скриптовые языки, которые намного более просты и менее сложны для игр вместе. У них нет вещей, таких как указатели, распределение памяти и т.д., Чтобы беспокоиться.
  • Просто сделайте игру!. Вы услышите, как другие люди говорят о шаблонах и синглонах, а также о дизайне данных и т.д. Ничто из этого не имеет значения, когда вы начинаете. Вы не пытаетесь произвести впечатление на кого-либо своим кодом. Люди будут судить вас по окончательному результату, а не по коду! Поверьте мне, некоторые из лучших игр, которые вы играли на консоли и т.д., Имеют ужасный код!
  • Используйте небольшую, хорошо сохранившуюся библиотеку. Я сделаю это легко, есть другие варианты, но:
    • если вы хотите выбрать Python (хороший выбор!), используйте pygame. Используйте Eclipse (для Java Dev) с PyDev. Магия и бесплатно!
    • если вы хотите использовать Lua (хороший выбор!), используйте Love
  • Ищите другие игровые примеры. Pygame имеет множество примеров и игр, использующих его. Проверьте лицензию и, если вам разрешено, просто скопируйте код. Патч, сращивание, но добавьте комментарий о том, где вы получили код, он вежлив и может понадобиться в соответствии с лицензией. Не игнорируйте лицензирование.
    • Посмотрите Ludum Dare. Тонны замечательных примеров и исходного кода, чтобы увидеть, как это делается быстро.

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

Ответ 10

Flash

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

Плюсы:

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

Минусы:

  • Относительно медленный
  • Никакой метод или перегрузка оператора
  • Требуется покупка, либо Creative Cloud, либо покупка Flash прямо.
  • Пиксельное искусство должно быть перенесено, что может усугубить

Я очень рекомендую flash, если у вас есть доступ к нему, его одна из программ, которые я использую чаще всего.

Ответ 11

Pro для XNA, на мой взгляд, заключается в том, что приложения XNA могут работать на Xbox360 в дополнение к ПК, и вы можете выбрать свой любимый язык из всего, что поддерживается .NET Framework - этого довольно много.