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)

Ответ на: комментарий от a1batross

Остается только код совместимый писать. :)

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

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

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

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

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

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

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

Но есть ли причина для конечного пользователя переходить с иксов, где и так все работает прекрасно, на wayland?

ну а есть ли причина для конечного пользователя — переходить — из Wayland на Xorg\X11 ?

щаз-то тебе хорошо рассуждать в своём ключе, в ситуации когда X11 это умолчание ... но ты в будущее (на 1 год вперёд) погляди :-)

переходить из Wayland на Xorg\X11 — станут в первую очередь консерваторы и варчуны.. со словами "вот раньше были Иксы и всё было хорошо и стабильно".. :-) то есть — теже самые варчуны, которые у себя удаляют Pulseaudio..

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

Но есть ли причина для конечного пользователя переходить с иксов, где и так все работает прекрасно, на wayland?

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

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

На юнити много чего можно использовать в качестве скриптового языка. Даже JS. Шарп там не обязателен. На счет анреала - не знаю.

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

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

Так никто тебе и не предлагает переходить.

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

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

Забей, это не возможно и ооочень долго.

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

ну а есть ли причина для конечного пользователя — переходить — из Wayland на Xorg\X11 ?

Если оно будет работать не со всеми приложениями или будет глючить, то причина будет. Если все будет нормально, то не вижу причины переходить обратно. В году этак 2010 я от Pulseaudio плевался, сносил ее откуда только можно, потому что она работала отвратительно. Сейчас я не только не против ее присутствия, но и очень даже за, у нее есть ряд преимуществ, а все баги с 2010 года устранили. Тоже самое могу сказать и про systemd. Systemd заметно ускорила загрузку и выключение моего компа, так почему я должен от нее отказываться? Я наоборот на нее перешел в Gentoo, добровольно. Так же и с Xorg/Wayland. Если мейнтейнеры дистрибутива сочтут, что пора переходить и если wayland не будет глючить, я не против перехода. Хотя каких-либо преимуществ лично для себя в этом не вижу.

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

Если оно будет работать не со всеми приложениями или будет глючить

Поясняю ещё раз: приложения, не поддерживающие рисования сразу на wayland (те, которые написаны не с GTK3, Qt5, SDL2, GLFW3) всё равно будут рисоваться через X-сервер (xwayland) пользователь ничего не заметит.

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

Потому что меинстрим. Примеров очень много в сети и очень простая в использовании.

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

Что занятно, переход на пульсаудио добавляет сетевую прозрачность, а переход на вейленд её убирает. А ворчат одни и те же люди.

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

Забавный факт: сетевая прозрачность в иксах — говно. Многие пробрасывают какое-нибудь приложение с ssh -X, но почти все остаются недовольны. Гораздо приятнее использовать RDP/VNC/SPICE.

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

Что занятно, переход на пульсаудио добавляет сетевую прозрачность, а переход на вейленд её убирает. А ворчат одни и те же люди.

да, кстати.. интересный феномен!

впрочем «сетевая позрачность» от Пульсы — не сильно хитрее чем сетевая прозрачность от Wayland :-) ..

то есть — чтобы её организовать нужно позаниматься сексом намного больше чем набрать ``ssh -X ...`` :-D

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

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

а, сорри, я не знал что тебя кто-то сейчас принудительно переводит. сочувствую.

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

Забавный факт: сетевая прозрачность в иксах — говно

Говно - оно в головах.

Гораздо приятнее использовать RDP/VNC/SPICE.

Например, в твоей голове.

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

Что занятно, переход на пульсаудио добавляет сетевую прозрачность, а переход на вейленд её убирает. А ворчат одни и те же люди.

неправда. я против пульсы, но за вяленд :) ессно, при условии что он будет хорошо работать. и мне плевать на сетевую прозрачность, что в иксах, что в пульсе, что в вяленде.

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

Сетевая прозрачность пульсаудио? Да-да, расскажи мне про неё. Я как-то три дня убил на то, чтобы заставить пульсаудио по вайваю звук передать, и чтобы хваталось при этом при старте само. Жду рецептов :)

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

Притом, насколько я видел демки самого Emscripten, оно не такое медленное. Далеко до нативного кода, но рендерить Quake 3 в 70-80 FPS для JS очень похвально. =)

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

Поставить три галочки в padevchooser. В прочем как сделать так чтобы эта прозрачность не хрипела я уже не понял. ☺

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

Я понимаю. Сейчас даже текстуру без шейдеров не натянуть.

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

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

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

Rtp вообще не пролез в вайфай, я так и не понял почему (вспомнил, rtp пролез, но люто хрипел, да). А нативное подключение не захотело работать без zerconf. Такая вот замечательная сетевая прозрачность. От сетевой пульсы остались лишь негативные впечатления.

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

У меня хрип по вайфаю, я так понял, был из-за типовых вайфайных лагов. Поэтому самое правильное решение — это тупо увеличить буфер приёма. Фиг с ним, что колонки будут отставать от источника, мне только музыка нужна была. Так даже буфер увеличить не получилось. Там можно в настройках пульсы задать всякие буферизации, но это лишь рекомендуемые параметры, на них пульса сразу забивает и делает по-своему. И всё продолжает сморкаться.

Ещё вариант — это настроить приоритет траффика на вайфай-точке (всякие QoS и сетевой шедулинг). Я повозился с этим делом, в целом после расстановки приоритетов дело улучшилось, но 100% эффекта не добился. Всё равно редкий треск остаётся, который жутко бесит при прослушивании музыки.

nezamudich ★★
()

Ну, я сейчас остановился на Cogl. Плюсы: поддержка Linux (Xorg/Wayland), Windows, OS X, Android, HTML5 (emscripten). Минусы: нет поддержки iOS, документации маловато, примеров вообще исчезающе мало.

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