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, как все, и не выпендриваться?
И заодно посоветуйте какое-нибудь лёгкое чтиво, описывающее игровой цикл, управление игровыми ресурсами, игровыми меню, уровнями, форматами для описания ресурсов, уровней и прочего.

★★★★★

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

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

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

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

Чистый opengl

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

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

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

Aswed ★★★★★
()

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

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

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

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

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

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

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

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

SDL2.

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

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

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 ★★★★★
()
Ответ на: комментарий от Rinaldus

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

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

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

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

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

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

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

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

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

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

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

Именно.

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

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

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

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

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

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

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

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

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

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