LINUX.ORG.RU

Создание кроссплатформенных игр

 , , , ,


1

2

Хочу сделать простую игрушку.
Какой язык и какую библиотеку сейчас принято использовать в геймдеве?
Думаю, можно вполне писать на Vala — ведь это ООП, компилируется под Linux, Windows, OS X, Android. Под iOS тоже что-то собирали, но ничего не понятно. Можно компилировать в JavaScript и пускать прямо в браузере. Для расширения игрового движка можно использовать плагины и скрипты.

Для кроссплатформенной графики и ввода сейчас выбираю между:

  • Clutter — не нужно лезть в OpenGL, поддержка Wayland, тормоза;
  • GLFW — поддержка Wayland, нет поддержки Android;
  • SDL — поддержка Wayland, куча legacy, не только графика и ввод, но ещё и управление ресурсами, окнами, звуком и много ещё чем;
  • SFML — нет поддержки Wayland, не только графика и ввод, но ещё и управление ресурсами, окнами, звуком и много ещё чем.


Похоже, что с любой выбранной библиотекой я пролетаю мимо браузеров. Что с мобильными девайсами — вообще не понятно: как там происходит компиляция под этот ваш андроид я не разбирался. А игровые платформы для неААА — это мобильные телефоны, планшеты и браузеры.
Похоже, единственная дорога к популярности с такой игрой — это Steam Greenlight.
Стоит пытаться что-нибудь делать с тем, что я имею или всё-таки целиться на Android, iOS и браузеры? Писать на Java с libgdx, как все, и не выпендриваться?
И заодно посоветуйте какое-нибудь лёгкое чтиво, описывающее игровой цикл, управление игровыми ресурсами, игровыми меню, уровнями, форматами для описания ресурсов, уровней и прочего.

★★★★★

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

Чистый opengl, платформо-зависимую рисовалку окна и webgl?

Stil ★★★★★ ()
Ответ на: комментарий от Stil

Чистый opengl

Я когда ковырял OpenGL понял, что мои знания по книжке (OpenGL 1.2 Red Book 3rd Edition) уже никуда не годятся. Сейчас всё-всё-всё делается при помощи шейдеров, в которых я ни в зуб ногой.

CYB3R ★★★★★ ()
Последнее исправление: CYB3R (всего исправлений: 1)

Unity, Unreal Engine 4(вроде как четвертый можно использовать бесплатно).

Aswed ★★★★★ ()
Ответ на: комментарий от CYB3R

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

Aswed ★★★★★ ()

Хочу сделать простую игрушку.

Бери LÖVE. 2д, умеет линукс, макось, шиндошс и начальную поддержку андроид и иос.

Или libgdx. Помимо того что может LÖVE, умеет 3д и экспорт для веба.

PolarFox ★★★★★ ()
Ответ на: комментарий от PolarFox

Знаю и про первое и про второе, но я хочу Ъ-компиляцию без всяких виртуальных машин.

CYB3R ★★★★★ ()
Ответ на: комментарий от CYB3R

но я хочу Ъ-компиляцию без всяких виртуальных машин

Но зачем?

PolarFox ★★★★★ ()
Ответ на: комментарий от CYB3R

Ну ок. Тогда SDL и сишку/плюсы/валу/хаскель в зубы и вперёд ☺

PolarFox ★★★★★ ()
Последнее исправление: PolarFox (всего исправлений: 1)

Unity 3D возьми. Или любой другой кроссплатформенный движок.

Dark_SavanT ★★★★★ ()

SDL2.

Писать на Java с libgdx, как все, и не выпендриваться?

Писать игру на жабе это и есть выпендриваться. Ты думаешь, что твоя игра будет жрать недостаточно ресурсов? %)

Deleted ()
Ответ на: комментарий от PolarFox

У тебя игра для написания пишется или для того, чтобы в неё играть? :}

Deleted ()
Ответ на: комментарий от Deleted

Да джава же не тормозит. Это JVM всё.
Я пробовал SDL1.2, SDL2.0, GLFW2, GLFW3, SFML. Конечно, изучил я их весьма поверхностно, но что-то как-то они мне не нравятся. Думаю, что нужно потыкать Clutter с его тормозами. Его, мне кажется, можно и на андроид и в браузер засунуть.

CYB3R ★★★★★ ()
Ответ на: комментарий от Deleted

А когда играю — как-то пофиг на чём она написана. А тормозное говно можно написать и на «быстрых» языках.

PolarFox ★★★★★ ()
Ответ на: комментарий от CYB3R

Всё то у вас не тормозит… Понапокупали тут серверов, понимаешь.

Deleted ()
Ответ на: комментарий от PolarFox

А на жабе даже и стараться не придётся :}

Deleted ()

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

А для чего тогда изобрели emscripten?

Что с мобильными девайсами — вообще не понятно: как там происходит компиляция под этот ваш андроид я не разбирался.

Не удивительно. Что бы понять, нужно разобраться.

Похоже, единственная дорога к популярности с такой игрой — это Steam Greenlight.

Спорно. Сейчас там берут все, что угодно.

andreyu ★★★★★ ()
Ответ на: комментарий от CYB3R

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

http://open.gl

andreyu ★★★★★ ()
Ответ на: комментарий от Dark_SavanT

Unity 3D возьми.

Скоро это будет ругательством. Как в свое время ругательством стало Delphi.

andreyu ★★★★★ ()
Ответ на: комментарий от andreyu

Да, GLFW портирован в браузеры с emscripten. Не очень представляю, как деплоить свои приложения, скомпилированные в JS, но попробовать стоит.

CYB3R ★★★★★ ()

Отпишусь как юзер, потребитель игр. Мне по барабану, имеется ли поддержка Wayland или нет. Использую иксы. Wayland не пробовал, но если у него имеются проблемы с запуском программ и игр, то пусть шлифуют дальше, пока не добьются 100% совместимости. Если игра будет 2D-отстой, то однозначно в топку, этого добра везде хватает. Если 3D и с достаточно хорошей графикой, то имеет смысл как минимум посмотреть обзоры на Youtube перед принятием решения о покупке.
Вот типичная логика потребителя игр, ориентируйся на нее. Удачи!

Rinaldus ★★★★★ ()
Ответ на: комментарий от CYB3R

Не очень представляю, как деплоить свои приложения, скомпилированные в JS, но попробовать стоит.

Странный вопрос. Что по вашему в данном случае есть деплой?

andreyu ★★★★★ ()
Ответ на: комментарий от Rinaldus

Если 3D и с достаточно хорошей графикой,

Как хорошая графика и 3D связаны? Шлака, с использованием «три дэ технологий» как говна в общественном туалете.

andreyu ★★★★★ ()
Ответ на: комментарий от andreyu

Не спорю. Но все же процент хороших игр с 3D-графикой все же выше, чем с убогим 2D

Rinaldus ★★★★★ ()
Ответ на: комментарий от Rinaldus

Wayland не пробовал, но если у него имеются проблемы с запуском программ и игр, то пусть шлифуют дальше, пока не добьются 100% совместимости.

Пришёл ещё один «не в теме».
Объясняю: есть xwayland, позволяющий запускать любые иксовые приложения. Проблем с запуском иксовых приложений быть не должно. Но это не единственный вариант. Второй вариант — нативное вэйлендовское приложение без xwayland (так сейчас работают приложения на GTK3, Qt5, SDL2 и GLFW3). Я говорю как раз про этот вариант, так как это наше будущее.

CYB3R ★★★★★ ()
Ответ на: комментарий от Rinaldus

Но все же процент хороших игр с 3D-графикой все же выше, чем с убогим 2D

У меня диаметрально-противоположный опыт.

andreyu ★★★★★ ()
Ответ на: комментарий от andreyu

До меня уже дошло, что у приложения вообще не будет серверной части. Всё компилируется в js и выполняется на клиенте. В любом случае, надо попробовать это покомпилять.

CYB3R ★★★★★ ()
Ответ на: комментарий от CYB3R

А как насчет режима эмуляции, в котором все по определению запускается медленнее, чем в нативном режиме? Или xwayland, запускающий иксовые приложения, - это не режим эмуляции?

Rinaldus ★★★★★ ()
Ответ на: комментарий от Rinaldus

Это не режим эмуляции. Это и есть X-сервер.

CYB3R ★★★★★ ()
Ответ на: комментарий от CYB3R

Всё компилируется в js и выполняется на клиенте.

Именно.

andreyu ★★★★★ ()

SDL умеет Emscripten. Не проверял.

a1batross ★★★★★ ()
Ответ на: комментарий от Rinaldus

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

Deleted ()
Ответ на: комментарий от Deleted

У хомячья всегда будет установлен xwayland, как wine или multilib сейчас.

CYB3R ★★★★★ ()
Ответ на: комментарий от a1batross

SDL умеет Emscripten. Не проверял.

А я проверял, на самом деле умеет.

waker ★★★★★ ()
Ответ на: комментарий от CYB3R

но что-то как-то они мне не нравятся

А программирование это не гадание на ромашках - нравится, не нравится. Бери инструмент и вперёд с песней.

peregrine ★★★★★ ()
Ответ на: комментарий от Rinaldus

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

peregrine ★★★★★ ()
Ответ на: комментарий от CYB3R

Я в курсе, что для девелопера иксы - нагромождение костылей и головная боль. Но есть ли причина для конечного пользователя переходить с иксов, где и так все работает прекрасно, на wayland?

Rinaldus ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.