Comments 50
Ну и без C++11 писать это боль все-таки.
Долго весь движок писали? Один?
Так а движок опен-сорс? А то толку от статьи пока никакой и попахивает самопиаром ;-)
Можно заюзать cmake для генерации прожект файлов для любой IDE. В итоге можно будет пилить одну кодобазу с разных ОС
Лично я 80% времени тестирую и пишу игру под OSX (именно запускаю собранную игру), по простой причине — скорость компиляции и запуска. Когда запускаешь игру по 20 раз в час, то скорость запуска сильно бережет нервы.
К тому же под OSX могу менять размер окна и сразу видеть как игра смотрится на телефонах и планшетах разных размеров, ура резиновым интерфейсам. На самих девайсах же запускаю более детальные тесты, например отладить чувствительность управления гироскопом и т.д.
Личнчо мне интересно было бы почитать про рендереры на вулкане+металле :-) 2016ый год же, как тут заметили в комментариях.
P.S. Смотрю в сторону conan, может что-то с ним получится. Если быть точным, ещё сложности с luajit, который компилируется Makefile'ами на никсах, а на остальных (всякие консоли, Windows) — скриптами.
В своём движке на D я использую OpenGL 4.5. На мобильные платформы ещё не портировал, но OpenGL ES 3.0 более-менее совместим.
Но пока это малоприоритетно, т.к. основная аудитория — пользователи ПК.
И игра ваша не запустится у большинства десктопных юзеров. GL 4.5 это GTX400 и выше. Успехов с чем нибудь вроде Intel HD
Ну а вообще, выпендриваться что вы пишете на языке с сырой экосистемой под недавно появившийся стандарт — удел школьников, которые как правило ничего не довели до конца в своей жизни. Тут статья о реальности.
С картой старее — в любую более-менее современную игрушку играть невозможно.
Что касается встроек — они как бы не для игр. У Intel поддержка OpenGL всегда была никчёмной.
Ах да, игра выходит в мае в бету. Движок полноценно поддерживает тени, освещение, постпроцессинг, геометрические и тесселяционные шейдеры. Напишу статью :)
Реальность — это о том, что нужно писать на стандарте, который вышел 15 лет назад? Серьёзно, 2.0 вышло в 2001 году.
4.5 — это HD7000, это ~4 года.
А как же такие глобальные вещи как рендер, физика и логика? Мне хочется понять, что именно вы написали помимо поддержки разных платформ и социалки. У меня к вам по каждому пункту куча вопросов. Давайте возьмем самое простое «Чтение/запись файлов.». Стриминг у вас есть?
Например для симуляции использую физику верле. Рендер оптимизирует смену стейтов, занимается камерой/проекциями, группами, подбором нужного шейдера и его настройкой.
«Чтение/запись файлов» упрощает работу с fopen, fread, fwrite и т.д. Из полезного — расшифровывает файлы, понимает по каким путям где что лежит, читает ресурсы непосредственно из apk. Стриминг (fstream) не использую, как-то не нужен нигде был.
Такое вполне допустимо и встречается почти во всех SDK. Например:
- save/load прогресса на своих серверах
- сегментация игроков для кастомизации игры (покупающим игрокам показываем один магазин, остальным — другой)
- проверка in-apps на сервере (при обнаружении взлома имеет смысл обнулить прогресс игрока)
- A/B тестирование
- загрузка/обновление конфигов/уровней
и т.д. в общем общаться с сервером и от этого подстраивать игру под игрока, очень даже приветствуется и используется повсеместно.
Если вы будете скачивать скрипты на Lua из интернетов и запускать — тогда эпл имеет право вас забанить (есть в апп сторе такой пункт), а так — на здоровье.
Они пиарятся за счет конкурсов, в условия которых прячут уловки. Лично мое отношение к ним это подорвало.
Как это сделано: мобильный кроссплатформенный движок