LINUX.ORG.RU
ФорумTalks

Пишу «принципиально новый» (:D) 3D графический движок

 , , , ,


1

3

Что из себя будет представлять: библиотека на C++ для работы с real-time 3D графикой. Часть будущего игрового движка, который пока только в мечтах (вероятнее всего будет состоять из 3D графического движка, движка позиционного звука, движка физики, движка скриптов и фасада над этим всем).

Основная архитектурная задумка: есть parent-child дерево объектов, состояние которых не зависит от используемого api рендеринга (OpenGL 3.3 Core, OpenGL 4.5+ Core, Vulkan, DirectX, ...) или операционной системы. Узел 'A' является дочерним по отношению к узлу 'B', если без узла 'B' узел 'A' не имеет смысла (например инстанс меша без сцены). Некоторые типы узлов могут менять своё состояние в зависимости от родительских или дочерних узлов, которые при могут не быть непосредственными parent/child конкретного узла. По этому дереву «модели» строятся деревья «контроллеров» — в основном рендеры, но можно и что-нибудь ещё туда прикрутить (мутаторы от пользовательского ввода, например).

Уже есть: «основа» движка — меши; шейдеры; (квази)статичные 2д текстуры (aka картинки, меняться могут, но редко); 2д текстуры, в которые выполняется внеэкранный рендеринг; OpenGL 4.5+ Core (требует ARB_bindless_texture) рендер; плагин со статичной геометрией; плагин для загрузки сцен с помощью библиотеки libassimp.

Запланировано: поддержка арматуры/скелетной анимации; модели освещения; Vulkan рендер.

Ядро движка: https://gitlab.com/KawaiiGraphics/Kawaii3D

OpenGL рендер: https://gitlab.com/KawaiiGraphics/Misaka3D

Assimp плагин: https://gitlab.com/KawaiiGraphics/KawaiiAssimp

Плагин со статичной геометрией: https://gitlab.com/KawaiiGraphics/KawaiiFigures3D

Сэмплы: https://gitlab.com/KawaiiGraphics/Kawaii3D-Samples

Скриптики для простой компиляции и запуска самлов, без необходимости ставить что-либо из моего софта в систему: https://gitlab.com/KawaiiGraphics/KawaiiEnvironment

Зависимости: Qt5, glm, libassimp (только для плагина KawaiiAssimp, https://github.com/assimp/assimp), sib_utils (https://gitlab.com/VadikLeshy/sib_utils).

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

upd: Сделал рефакторинг — теперь связи с родительскими (возможно не нпрямую) узлами, влияющими на поведение вычисляются в самом движке, а не в рендерах. Запустил одну из демок на Raven Ridge (вторая всё так же вызывает на нём GPU hang из-за фреймбуффера).

Скриншоты: AMD Raven Ridge: 1, 2.

AMD Radeon R7 M440: 1, 2, 3.

upd2: Решены некоторые проблемы со сборкой при использовании скриптов из репозитория KawaiiEnvironment.

★★★★★

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

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

Как говаривал разраб Wayland композитора sway — «выбирайте железо для нужного софта, а не софт для завалявшегося железа».

Ну да, в гомозинах тебе будут рады, всю правду расскажут, как их железяки поддержат в будущем всякие вяленые какоделы. Некоторой информации просто нет. И как при этом заказывать железяки по почте? Мну сканер _по_почте_ спецом покупал для линукса, не брал клёвую маздайную модель, а в результате модель оказалась улучшенной модификации, про которую xsane думает что она не улучшенная, и работает от этого железяка в маздайке намного лучше. Всё равно обломался.

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

SSD понадобились, потому, что тормозит JS, C#, Pascal

В каком месте паскаль тормозит? Он же не тянет в систему кучу рантайма и не засирает её обновлениями, без которых «никак нельзя обойтись». Кедовский и гномовский шмональщики дисков, которые собирают информацию про файлы пользователя и пакуют её в базу данных не на JS, C#, Pascal написаны, а тормозов они устраивают мноооого. Чтобы отключить один такой, емнип гномосековский, влезший в кеды вместе с зависимостями, шмональщик, пришлось бинари переименовывать, потому что его штатное удаление тянет за собой удаление кучи полезного софта.

1 десктоп на AMD Ryzen 5 2400G

Круто, пятёрка же вроде самое то для десктопа по производительности на рубль, А тактовая частота... Мне её снижать приходится, потому что система её снижать при перегреве не умеет, а штатный радиатор мелкий - любой обожравшийся распараллеленный процесс на 2,8 гигагерцах может устроить перезагрузку.

Так что это как раз вы поставили каждому в команде 1080TI да RX580 и кричите «glBegin-ы не тормозят! 4.5 Core Profile ненужно!».

У меня «в команде» штатный моник 1280х1200 - люблю «квадраты».

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

Ну и как мне поставить последнюю версию на федору 17;) Если он такой живой, то должен и в моём гробу показать свою живость.

Не пытайся заживо хоронить в своём гробу gcc. Попробуй скомпилить клангом — сегодня обновил билд-скрипты в KawaiiEnvironment. Теперь он может скомпиляться, даже если stdc++ умеет только в c++14 и «экспериментальные расширения aka c++1z» (черновики c++17).

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

И вот старая песня: «glBegin-ы не тормозят!» а потом выясняется, что чтобы не тормозили нужна видеокарта не дешевле N$. Зато не важно новая или старая, ага.

И вообще, по моему лучше не тяп-ляп писать, как будто жандарм кнутом подгоняет, а вдумчиво. Тогда, даже если не будет продукта, будет понимание принципов работы технологического стека. А тяп-ляп движки — их дофига, как уже выше в треде писали.

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

Кедовский и гномовский шмональщики дисков, которые собирают информацию про файлы пользователя и пакуют её в базу данных не на JS, C#, Pascal написаны

SSD изобрели для гнома и KDE? Может это разработчики расслабились, по причине появления SSD?

Круто

GPU hang в рандомных местах, отсутствие vaapi, kernel panic-и в amdgpu в зависимости от фазы луны. Очень круто.

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

а штатный радиатор мелкий - любой обожравшийся распараллеленный процесс на 2,8 гигагерцах может устроить перезагрузку.

Есть такое. Поэтому кулер для него отдельный покупал (где-то за килорубль, чуть меньше). Как результат, проц радует частотой 3.7 Ghz на распараллеленных на 8 потоков задачах.

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

Не пытайся заживо хоронить в своём гробу gcc.

А я для него и не пишу и для шланга тоже. Некоторые зависимости он собирает, типа кодеков. А какие у нас кодеки самые крутые для игроделанья? Да конечно же vorbis, theora и png с jpg довольно древних версий!

Попробуй скомпилить клангом

Надо посмотреть что тот шланг жрёт чтобы установиться.

И вот старая песня: «glBegin-ы не тормозят!» а потом выясняется, что чтобы не тормозили нужна видеокарта не дешевле N$. Зато не важно новая или старая, ага.

Ты не поверишь, но программисты на цпп умудряются написать коммерческие игры, которые вгоняют комп в перезагрузку просто на рендере картинки, на которой почти ничего нет. Запускаешь ту же игру в оконном режиме, окно величиной с экран и происходит «чудо» - потребление ресурсов уменьшилось! А всё дело в паузах, которые не выставлены в каком-то цикле и потому он мотает на всю мощь железа вхолостую, выжирая все ресурсы и не принося повышенной скоростью никакой пользы - на информатике будущих программистов _математике_ учили а не ставить паузы в циклах! А когда запускаешь программу в окошке, где-то в нём есть процесс с паузой, который тормозит бесконтрольное потребление, в результате фпс тоже самое, комп не перегружается сверх меры, а «glBegin-ы не тормозят!» тут не при чём, они в обоих одни те же. Просто нужно ограничивать потребление ресурсов возможностями железа, это самое главное, а не написать быструю пожиралку ресурсов, за которой потом никто следить не будет.

И вообще, по моему лучше не тяп-ляп писать, как будто жандарм кнутом подгоняет, а вдумчиво. Тогда, даже если не будет продукта, будет понимание принципов работы технологического стека. А тяп-ляп движки — их дофига, как уже выше в треде писали.

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

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

SSD изобрели для гнома и KDE?

Маздайку редко включаю, тутошние монстрики чаще встречаются, а тут 2 основных выбора: или кеды или гном-ужасный-и-нудный, и если кого-то из них не ставишь, то по зависимостям пролезет в систему самостоятельно. И местные линуксоиды нахваливают SSD, значит помогает системе меньше тормозить.

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

А если захочешь пересобрать, это технически возможно на x86* линуксе годов ~2007+. А то что написано на c++17, на линуксе не поддерживающем его компилятор хрен соберёшь

OpenGL 3.3 Core, OpenGL 4.5+ Core, Vulkan,

~2007+

О да... Фантазёры, они такие фантазёры... Пока он его разработает, ещё пара-тройка-пятёрка лет пройдёт, OpenGL 3.3 станет реликвией, c++17 станет классикой, а ты на второпень это всё собираешься вкорячивать? О да...

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

О да... Фантазёры, они такие фантазёры... Пока он его разработает, ещё пара-тройка-пятёрка лет пройдёт, OpenGL 3.3 станет реликвией, c++17 станет классикой, а ты на второпень это всё собираешься вкорячивать? О да...

Чукча не читатель? Через тройку лет ожидается с++20, прогрессивная технология, надо сразу запихнуть в продакшен, и тут случится тоже что есть сейчас. Это «вечный» звиздец. О блин, не заметил, тут в тегах опенгл _4_ - не это не для меня. Вот когда-нибудь потом...

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

О блин, не заметил, тут в тегах опенгл _4_

Да, это не игра, в которой надо перебирать несколько хентайных картинок с жителями лора, тут посложнее, тут паскаля не хватит.

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

А какие у нас кодеки самые крутые для игроделанья? Да конечно же vorbis, theora и png с jpg довольно древних версий!

Меня начинает тошнить от твоей некрофилии.

Ты не поверишь, но программисты на цпп умудряются написать коммерческие игры, которые вгоняют комп в перезагрузку просто на рендере картинки, на которой почти ничего нет. Запускаешь ту же игру в оконном режиме, окно величиной с экран и происходит «чудо» - потребление ресурсов уменьшилось! А всё дело в паузах, которые не выставлены в каком-то цикле и потому он мотает на всю мощь железа вхолостую, выжирая все ресурсы и не принося повышенной скоростью никакой пользы - на информатике будущих программистов _математике_ учили а не ставить паузы в циклах!

А вас, мсье Напильник, видимо не учили, что рендерить нужно, реагируя на событие от оконной системы, а не в бесконечном цикле где-то в 'main'. И дело тут не в паузах даже. А для реал-тайм графики в конце рендеринга картинки просто запрашиваем у оконной системы перерисовку себя. Таким образом, при включенной вертикальной синхронизации фпс обрежется по частоте дисплея и элиминируется тиринг (в норме), при выключенной вертикальной синхронизации программа будет молотить кадры на всю мощь железа (полезно для бенчмаркинга или в gpu-bound случаях). И ни в какую перезагрузку система не уйдёт из-за этого.

А когда запускаешь программу в окошке

То оконная система просто принудительно врубает вертикальную синхронизацию.

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

А потом из-за вот таких «ограничивающих» по указке маркетологов/менеджеров люди говорят, что видюха дешевле 100$ не видюха вовсе. И не важно какие шейдеры она поддерживает, сколько вычислительных блоков, насколько быстрая память, вот это всё. Не видюха и баста, ибо софт «ограничивается возможностями железа».

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

а тут 2 основных выбора

4.2 — i3wm (wayland версию — композитор sway почти допилили), OpenBox, awesome и куча всего всякого разного. Это Гну/Линукс, здесь самое лучшее окружение (проризводительность, эргономика, надёжность) — это то, которое пользователь собирает сам, с чётким пониманием своих потребностей и предпочитаемого поведения системы в тех или иных случаях.

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

Есть такое. Спокойно отношусь к софту на gtk или qt, но что гномовский, что kde-шный софт стараюсь избегать именно по причине раздутости. Казалось бы, зачем медиа проигрывателю сервер баз данных на локальной машине.

И местные линуксоиды нахваливают SSD, значит помогает системе меньше тормозить.

Запускается система 40 секунд или 13. Разница определённо есть, особенно, если ноутбук включил где-то не дома и надо что-то быстро глянуть на полноценной системе. Но запуск за 40 секунд (от нажатия кнопки, до запущенных иксов) — это ни разу не «тормозит».

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

OpenGL 3.3 станет реликвией

Так он, вроде как, уже. Даже не знаю нужен ли рендер на нём.. Может ну его в пень :)

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

Да, это не игра, в которой надо перебирать несколько хентайных картинок с жителями лора, тут посложнее, тут паскаля не хватит.

Вполне хватает и паскаля и третьего опенгл. Некогда заниматься 3Д, оно времени занимает много, а суперрендеры там нужны именно чтобы заглядывать игровым дамам под юбки и убеждаться, что кружева прорисованы хорошо. Но есть такие чудодвижки на цпп, в которых даже демки тормозят - какие там могут быть игры.

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

На моём интеле 3.0 вообще. Да и на тех, что прордаются сейчас в магазинах - далеко не у всех 4.0 на лаптопах, а это ещё лет 7-10 использования. И игры могут быть не обязательно навороченными, так зачем отрезать нижний сегмент рынка? Хотя, я так понимаю, внутренне они сильно отличаются, а охватить всё сложно... Пили на что сил хватит, пока не надоело совсем :)

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

Меня начинает тошнить от твоей некрофилии.

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

А вас, мсье Напильник, видимо не учили, что рендерить нужно, реагируя на событие от оконной системы, а не в бесконечном цикле где-то в 'main'. И дело тут не в паузах даже. А для реал-тайм графики в конце рендеринга картинки просто запрашиваем у оконной системы перерисовку себя. Таким образом, при включенной вертикальной синхронизации фпс обрежется по частоте дисплея и элиминируется тиринг (в норме), при выключенной вертикальной синхронизации программа будет молотить кадры на всю мощь железа (полезно для бенчмаркинга или в gpu-bound случаях). И ни в какую перезагрузку система не уйдёт из-за этого.

Расскажи мне сказки, доктор. В перезагрузку система в полноэкранном режиме с ФПС не более 60 именно уходит по причине емнип «kernel power» и разбираться почему это происходит откровенно в лом, исходники всего закрыты, очевидно что выжраны сверх меры системные ресурсы, которые ОС подворовывает у пользователя втихаря наплевав на ограничения прожорливости выставленные в биос, но и этих ресурсов вдруг не хватает. Что до отключения вертикальной синхронизации, то это рульная штука на неcвободных дровах. Отключаешь очистку экранного буфера, выставляешь собственное ограничение фпс и дело в шляпе! Очень красиво рисует, но это хорошо для 2Д анимации а не для 3Д.

То оконная система просто принудительно врубает вертикальную синхронизацию.

Ты намекаешь что разрабы ненашенской 3Д онлайн рпг такие лохи что принудительно выставили тысячи ФПС? Да их бы игроки спонсоры с топовым железом в море слёз утопили.

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

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

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

Но запуск за 40 секунд (от нажатия кнопки, до запущенных иксов) — это ни разу не «тормозит».

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

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

А мне пофигу на твои наезды, ты и своего любимого 3д тетриса за свою жизнь не слепил и ждёшь от бинарника меньше 100кб весом рульную игру с шахматами и поэтессами.

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

А какие заметные bad-ы за GitLab-ом имеются? Они, в отличие от мелких не пытались похоронить OpenGL, когда тот был на 3 ветке. Не GitLab убил Gallium11, не GitLab занимается рэкетом на рынке андроидофонов.

Сатья Наделла первым делом на посту исполнительного директора прекратил все эти иски. После чего стал активно участвовать в жизни os-комьюнити и открывать дельные вещи.

А продолжать злиться на MS периода Стива Баллмера, это как продолжать злиться на немцев за период Адольфа.

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

Немцы выплатили/выплачивают компенсации пострадавшим. Японцев, которые не выплачивали, китайцы ненавидят до сих пор.

Сатья Наделла первым делом на посту исполнительного директора прекратил все эти иски.

Ога. А заодно отказался от разработки dx12, ведь есть vulkan — те же яйца, только opensource. И MS Office теперь топит не за легаси-блобы, а за ODF. И конечно же рекет андроидофонов остановлен, ога. То, что MS изменил риторику и открыл пару своих технологий (у которых есть открытые аналоги, как минимум не отстающие по качеству), похоронив при этом mono, ещё ни о чём не говорит. MS все так же ненавидит GNU, Linux и GNU/Linux и стремится уничтожить — но на этот раз чуть другими средствами.

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

пользователю доверили пересобрать пакет или запустить цмаке

Если хочет, то пусть компиляет, сколько влезет. Вот только я говорил о _выборе_ WM, панели и прочего софта, обычно включенного в DE.

А потом, после выхода из спячки, система ещё перебирает данные из свопа.

Это не выход из спячки — это включение. Спячку почти не юзаю.

robus ★★★★★
() автор топика

Единственное know-how я вижу только добавлении зависимости от Qt. Но по мне, это лишняя сущность для игрового движка.

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

Вы в плюсах уже сделали звиздец и ни одного нормального видеоредактора под линуксом - нам ваших дизайнерских изысков не надо.

Опять пациент с паскалем головного мозга выходит на связь. Где «нормальный редактор» на паскале. Где хоть что-то нормальное на паскале? Ответ прост - все это только в головах паскалефанатиков.

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

Зачем, когда есть окаменелые glBegin-ы?

Ну не гадкие же скобочки использовать,

Вот же болезный. Вам про Фому, а вы про Ерему.

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

Нет, я всё-таки жду топ 5.

Возьми машину времени и сгоняй на русский сайт Гээлсцены, скачай народные конкурсные работы, всякие танчики-хренанчики вместе с исходниками, .exe И что харарактерно, у тех бинарников замечательный процент запускаемости в вайне, в отличии от изделий на других яп. Все эти убыстряющие хаки имеют плохую воспроизводимость в следующих ОС и железяках.

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

Вот же болезный. Вам про Фому, а вы про Ерему.

И ты тут, пришёл за плюсы погрипповать? Когда от тебя ждать полезное изделие в массы;)

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

Вот только я говорил о _выборе_ WM, панели и прочего софта, обычно включенного в DE.

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

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

Опять пациент с паскалем головного мозга выходит на связь. Где «нормальный редактор» на паскале.

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

Где хоть что-то нормальное на паскале? Ответ прост - все это только в головах паскалефанатиков.

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

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

Это всё сказки. Майкрософт до сих пор рекетирует андроид. Популистские выходки Индуса были вызваны только после того, как эти иски стали привлекать слишком много внимания. Он одной рукой милует, а другой продолжает чёрное дело. Изворачиваться и пускать пыль в глаза - главная его задача. А за андроиды всё также платят. (Не приведу ссылок, я их не собираю)

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

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

Deleted
()

Насколько давно осилил кресты? Насколько это сложно — писать такое двигло и какие мат.алгоритмы применялись при этом?

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

А где нодовый редактор шейдеров? А редактор анимаций? А смешивание скелетных анимаций? А IK в риалтайме с физикой? А поддержка луашарпитонов? А остальные ништяки? :)

Здесь. А сабж пока даже не альфа.

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

(OpenGL 3.3 Core, OpenGL 4.5+ Core, Vulkan, DirectX,

DirectX

Сюда входит не только графическое API. Тогда уж Direct3D.

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

И ты тут, пришёл за плюсы погрипповать?

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

Когда от тебя ждать полезное изделие в массы;)

Вас опять на ЖД отправили стрелки вручную передвигать?

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

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

Только эта пословица хорошо характеризует любителей паскаля.

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

Все полтора с половиной болезных во главе с вами? Но где же эти супер секретные и невероятно прекрасные приложения? Похоже они снова остались только в головах болезных любителей паскаля.

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

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

Сейчас это чудо даст линк на википедию со списком устаревшего хлама, часть из которого давно переписана на C или C++.

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

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

Они есть в и для рендера чаще используется директ, потому что ца более платёжеспособная, а публикации не всегда бесплатные - зачем осваивать новую платформу. Не ААА, но в стиме одна из списка есть.

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

Освещение же изи (хотя бы примитивненькое). Пока не тянет даже на уровень курсача, хотя кода много, но базовые вещи это освещение и z-буфер. Хоть второй есть?

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

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

Мне больше это понравился. Хотя тоже заглохло. Как и все с фрипаскалевой вики. Был когда-то движок на Delphi, название забыл, как-то на D начиналось, его собирались портировать на FPC, но, тоже пропал из виду.

Где они, живые паскалевые игроделы, которые пишут нечто более сложное, чем «спектрумовские» игры? (castle engine не в счёт, он как раз показывает, что на паскале ничего сложнее собирания грибочков в 2д писать не стоит.

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

Это на несколько порядков примитивнее даже дума.

Ты вообще в курсе, что дум 3Д, а 2Д совсем другой жанр и они живее всех живых? Кроме стрелялок, которых испортили квейк с контрстрайком, есть другие игры и они тоже нужны.

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

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

но когда движок просто не может больше - это не интересно

Там вообще не движок, а графическая либа, из которой любой желающий может собрать себе 2Д движок или тулкит для рисования окошек - был и такой. Ты требуешь от 2Д чтобы оно было 3Д, ну так и смотри тогда на кастле энгине https://castle-engine.io/ Там и вики огромная и файлы свежие, а людям до сих пор интересно в 2Д повтыкать, 3Д больше интересно в литрпг выглядит, а в реале - обычно наколка и вытряхивание карманов группой «товарищей».

Где они, живые паскалевые игроделы, которые пишут нечто более сложное, чем «спектрумовские» игры?

Ну так покажи на спектруме 2Д тётек с таким графонием как сейчас рисуют в пнг и джипэгэ, а то кричать просто, а ты покажи. И что для тебя сложно: шахматы на флеше или порнушка состоящая из одного куска видео, проигрываемого в цикле в разных местах? А что - тридешнее некуда, релизЬм во все щели.

castle engine не в счёт, он как раз показывает, что на паскале ничего сложнее собирания грибочков в 2д писать не стоит.

Глупо требовать от программистов в больших количествах пишущих системные фичи чтобы они тебе ещё и 3д игры лепили на своём изделии, у них другая специализация.

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

просто запрашиваем у оконной системы перерисовку себя

Вот это вопрос!!! Как подписаться на событие/сигнал у чистых Qt (культей)? Чот я не нашел. Нет, нашел, но только в контексте OGL. Так что, другого варианта синкаться с рефреш рейт нет?

deep-purple ★★★★★
()
Ответ на: комментарий от robus

Ну, чистые си или плюсы тоже интересуют. Главный вопрос — как синкать фрейм рейт?

deep-purple ★★★★★
()
Ответ на: комментарий от Napilnik

На протухшем сайте я должен знать специальные правильные потайные ссылки на сущестующий код? Ссылки на соры ведут на гуглокод, ссылки на примеры ведут на гуглокод. Что я там должен искать ещё?

И не притворяйся, про «спектрумовские» игры ты прекрасно понял, это то, что можно писать на чём угодно и играть хоть в псевдографике, хоть по телетайпу, хоть на утюге запускать, там считать и думать нечего. А новую игру написать - меняй текстуру, составляй новую карту и от тебе новая игра. (да, это касательно и 3д шутеров, только более затратно)

А насчёт castle engine - чего ты мне ссылки кидаешь? я его видел, запускал и пробовал сам. Два треугольника на квадратный километр - вот его максимум. И это когда чудом получится что-то собрать и запустить и оно не вывалится с ошибкой. (к слову о стабильности и всесобираемости лазаруса) Как-то так.

Я не противник паскаля, мне нравится миниатюрность, но современные 3д игры - ему не по зубам. Ну не потянет он ничего сложного. Даже клон майнкрафта на нём не напишешь, захлебнётся.

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

8 миллисекунд на фрейм - это жесткий перебор.

Согласен. Но надо учитывать, что ноутбучная видеокарта не блещет производительностью (r7 440m).

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

А что выбирать, если картинки нужны, няшная консоль нужна...

Брать qterminal, очевидно же.

Остаётся брать кеды и лепить из них аналог третьих кед с шахматами и поэтэссами.

Извращуга [2]!

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

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

Только убунтоиды/федороиды. В нормальных дистрах собрать собственный пакет с нужной софтиной не проблема ни разу.

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