Проект SDL3Lite нацелен на воссоздание библиотеки SDL3 с поддержкой старых архитектур и операционных систем, при сохранении совместимости с SDL3 на уровне C API. С ограниченной функциональностью SDL3Lite уже поддерживает работу в Linux, начиная с Debian 3, и Windows, начиная с Windows 95. Из системных требований для работы графического API заявлена поддержка OpenGL 1.0, а 2D-отрисовки - OpenGL 1.2. В будущем автор планирует добавить поддержку Windows 3.1 и MS-DOS. Код написан на С++ и распространяется под лицензией BSL (Boost Software License)...Подробнее: https://www.opennet.ru/opennews/art.shtml?num=62909
Зачем?
Потомучтомогут. В отличии от любой соседней ветки, где ноют, что перестали поддерживать их пни и кору дуба, эти берут и делают то, что им там нужно. В целом оно примерно так и должно работать на мой вкус.
Так и есть. Это позволит портировать игры и приложения под старые системы с минимальными изменениями. Конечно я в первую очередь говорю о простых играх. Конечно vulkan не будет работать на windows 95. Но для 2D игр, вполне такой вариант подойдет.
Allegro 4.2 (https://liballeg.org/old.html) прямо сейчас поддерживает МастДОС. Она тоже на Си (как SDL). И под неё уже есть куча готовых игр, которые можно использовать в качестве обучающего материала (https://www.allegro.cc/).
> прямо сейчас поддерживает МастДОС
> Changes from 4.2.2 RC1 to 4.2.2 (July 2007)
Последняя версия была в 2009 (и того же чейнжлога). А MS-DOS 6.22 (последняя standalone версия), для справки, вышел в 1994.
"с минимальными изменениями"
К сожалению, это так не работает. Почти в любой современной игре на SDL2 будет использоваться, как минимум, OpenGL 3.3 с программируемым графическим конвеером (шейдерами). И его придётся портировать на старый OpenGL 1.2 (без шейдеров), который, по-сути, совершенно другой API. А может, там вообще DirectX. Тогда при портировании (на OpenGL) возникнет ещё больше проблем. И это мы ещё не касались работы с ФС и сетью. Хорошо, если там будут кроссплатформенные библиотеки. Но и те, далеко не факт, что удастся собрать под старые ОС.
А вот портировать код для создания окошка/контекста и снятия ввода (для чего обычно используют libSDL, игнорируя все его полуофициальные аддоны) задача весьма простая, если использовать готовые похожие библиотеки. Особенно, если не нужна обратная совместимость (не придётся даже разные перечисления сопоставлять (enum mapping)). Сужу по своему опыту переноса C++ движка между SFML2/GLFW2/GLFW3/Allegro5/SDL1/SDL2.
Почти любая современная игра на SDL2 — это 2D.
1) Далеко не любая. 50/50.
2) 2D - это частный случай 3D. OpenGL и DirectX используют как для 3D-движков, так и для 2D. Это просто API видеокарты.
1) Я не сказал, что любая. Но 50/50 — это, имхо, перебор.
2) SDL предлагает абстракцию. А через что она будет реализована — приложению всё равно.
> SDL предлагает абстракциюЛишь со второй версии, в экспериментальном режиме (под угрозой will be depricated). Когда стало слишком поздно. И никто теперь этой абстракцией не пользуется. Все рисуют напрямую в контексте через любимый GAPI.
7-й DX вполне 2D без "частных случаев 3D", там доступ к экранному буферу, а не эмуляция текстурой.
То есть для Allegro 4.2 изменений придётся сделать больше?
Не подойдет. Простые 2D игры сейчас точно также делаются на Unity как сложные 3D.
Одно дело, когда выходит новая версия с новыми требованиями. Совсем другое, когда выходит "новая" версия, где опять что-то сломанно, когда каждый раз что-то не работает, но каждый раз разное. Пилят что-то, а потом на полпути депрекейтят.
"Stable API is nonsense"
Это про внутриядерный API было сказано.
В первую очередь это конечно фан. Второй момент это поддержать ретро кодинг, упростить портирование игра на SDL3 на старые системы.
Абсолютное большинство игр на SDL2 (и тем более, 3-ей) используют её только для создания окошка, графического контекста и снятия ввода. А вывод пишется напрямую через графический АПИ (OpenGL), в обход SDL_Renderer и т.п. Их портированию это слабо поможет.
Потому, что программно-аппаратные комплексы крупные компании покупали давно, а поддерживать минимально надо.Потому, что в корпоративной среде выше уровнем "ООО Акволабеан", особенно там, где от машины нужен ограниченный набор функций на давно известных версиях софта, комп на win95 будет использоваться ровно столько, сколько он проработает, никто не побежит по первому писку менять надёжное оборудование ради погони за циферками - на нем крутится проверенный, статичный набор программ и работает идеально, давая результат.
Думаю, с такой строчкой в резюме его с радостью возьмут те же железнодорожники Германии. Или какой-нибудь ГОК в Норвегии - это вам не на электроне кнопочки уклепать, тут человек знает технологии, которые еще сто лет будут работать, пока по закупке не поменяют со станками и линиями связи на ХР-based
Спасибо за отзыв. Но я простой бэкендер. Но питаю любовь к старому железу. Любая железка, программа, игра это пласт истории. Мне интересно их изучать. Через десяток лет, текущий софт и железо будет старьем.В первую очередь мне конечно интересны ПК, консоли начала, середины 90-ых. Есть в старом железе своё очарование.
> программно-аппаратные комплексы крупные компании покупали давно
> на нем крутится проверенный, статичный набор программ и работает идеально, давая результат.Где ты при этом видишь связь с библиотекой для мультимедия? Выдал кучу умных слов не по теме в надежде показаться экспертом?
Иногда надо точечно обновить конкретную библиотеку.
Например, для хомемейд-доработки. Вполне себе тема.Но, видимо, вы, анонимные неэксперты, такое даже помыслить не можете.
> Иногда надо точечно обновить конкретную библиотеку.
> Например, для хомемейд-доработки. Вполне себе тема.Для программно-аппаратного комплекса?
Это наверное какой-то станок купленный при развале завода и стоящий в подвале.
Ибо на предприятии таким никто> Но, видимо, вы, анонимные неэксперты, такое даже помыслить не можете.
Ну давай "совсем не анонимны Жироватт", поведай глупым анонам свой невероятный опыт, желательно с пруфами.
(предположу, что ты жиденько сольешься)
> Это наверное какой-то станок купленный при развале завода и стоящий в подвалеИменно! И в этот станок Жироватту нужно срочно впилить библиотеку для работы с мультимедия.
А если серьезно, не обращай внимания - персонаж галлюцинирует. А потом еще говорят, что нейронки людей не заменят...
> А если серьезно, не обращай внимания - персонаж галлюцинирует. А потом еще говорят, что нейронки людей не заменят...Ну 🤡 они уже заменяют. Правда довольно унылых, но возможно это только начало.
Художники тоже смеялись над нейронками рисовавшими 6 пальцев и 3 глаза.
А теперь ноют.
Ну надо сказать вот конкретно этому станку может быть нужна какая-то 2D отрисовка. Why not?
> Иногда надо точечно обновить конкретную библиотеку. Например, для хомемейд-доработкиТы же только что про "программно-аппаратные комплексы" с умным видом вещал. Что ж ты теперь на тему хомемнйд съезжаешь?
> Но, видимо, вы, анонимные неэксперты, такое даже помыслить не можете.
Действительно, кто в здравом уме может помыслить о ситуации, когда в 2025 году тебе в софте на Windows 95 нужно СРОЧНО заменить библиотеку, да еще и на поделие от какого-то васяна? Только опеннетные жироватты могут о такой чуши вещать.
} а в 2025 году тебе в софте на Windows 95 нужно СРОЧНО заменить библиотекуИ? Что в этом такого уж невероятного?
> И? Что в этом такого уж невероятного?Windows 95
>> И? Что в этом такого уж невероятного?
>Windows 95Где-то здесь рядом про DOS и HX ( если кратко: там одинаковый .exe можно запускать)
Т.е. чел пилит мультимедиа либу под легаси системы, чтобы устроиться к железнодорожникам?Сильно!
> Т.е. чел пилит мультимедиа либу под легаси системы, чтобы устроиться к железнодорожникам?
> Сильно!Возможно разбор старого кода научит его смирению и стрессоустойчивости.
А общение с аудиторией подобного железа - буханию. Деды могут рассказать кучу баек и советов, как выполнять план, как выносить с завода каждый гвоздь и передадут прочие, совершенно необходимые навыки, для работы на железке или в коммунальном хозяйстве.
} каждый гвоздьОно-то наверное - да, но дело абсолютно в другом:
} станок купленный при ( . . .)
Купленный в Германии. Ближе ко временам Романовых.
См. рядом про гидравлику.
> Купленный в Германии. Ближе ко временам Романовых.
> См. рядом про гидравлику.Я не очень понимаю про что конкретно ты говоришь.
Если не затруднит - ссылку на новость или хоть название станка.Я видел как здоровые фрезеры, токарки и карусели "модернизировали" (а по факту восстанавливали).
Да там было много всего интересного с древнючими стойками сименс.
Но это был просто колхоз, необходимый, но колхоз. Который потом отлаживили (от слова лажа) года два. Время от времени гробя то заготовку, то инструмент.И аргументы с которых начался спор - про "написал такую либу -> получил оффер на ЖД в Германии" - мне кажутся смешными.
> Если не затруднит - ссылку на новость или хоть название станка.Пока ищу...
Потому что в разных конторах любят старое железо.
Потому что списание через бухгалтерию это долго и геморно.
А "работает - не трогай" это старый и проверенныџй метод.Когда это какой-то програмно-аппаратный комплекс, типа комп+станок или томограф за тонну зелени - это ок.
Но обычно такие штуки идут со списком сертифицированного ПО (и его версий) и я что-то очень сомневаюсь, что кто-то в здравом уме начнет туда пихать васяноподелки.
Зачастую такие компьютеры не подключены к интернету, так что самые последние версии системы и софта просто не нужны.Проблемы начинаются когда такое некрожелезо ставят, например, в бухгалтерию.
А потом начинают плакать "флешка заразила комп вирусней, а квартальный отчет надо сдавать вчера!11", "нас взломали через интернет и зашифровали все диски, а бекапы делали год назад".
Нормальная бухгалтерия все списывает на автомате, это вообще рабочий момент. Специфичное оборудование, имеет в момент покупки утвержденный срок жизни и график амортизации. Проблемы начинаются, когда дефективные менеджеры экономят на бухгалтерии, ну кто им лекарь?)
> Специфичное оборудование, имеет в момент покупки утвержденный срок жизни и график амортизации.Существует настолько специфическое, что в нём меняют "гидравлику" на специально изготовленную плату с CPU и Ко
( А Вы реально не читали про это явление?)
>> Специфичное оборудование, имеет в момент покупки утвержденный срок жизни и график амортизации.
> Существует настолько специфическое, что в нём меняют "гидравлику" на специально изготовленную
> плату с CPU и Ко
> ( А Вы реально не читали про это явление?)Есть ТУ, а есть реальная жизнь, когда некий девайс давно пора на свалку, но надо его реанимировать, потому, что злобные буржуины новый продавать не хотят-)))) Я все-таки говорил про стандартные варианты, а не про режим форс-мажора.
Там в чём была соль истории: мол сам по себе станок настолько точный ( и, соответственно, дорогой), что был смысл нанимать внешнего подрядчика, который заменил гидравлику ( судя по всему, неисправную или близкую к этому) на современную электронику.Так же всё тот же внешний подрядчик написал с нуля управляющее ПО.
И по словам этого самого подрядчика, это у них такой постоянный "busines"( За что купил - за то продал. Но -- на первый взгляд, всё реалистично)
> мол сам по себе станок настолько точный ( и, соответственно, дорогой), что был смысл нанимать внешнего подрядчика, который заменил гидравлику ( судя по всему, неисправную или близкую к этому) на современную электронику.Да, такое бывает.
Особенно всякие редкие штуки типа огромных плоскошлифов, производства оптики, некоторые установки глубокого сверления и тд
Все что выше "повышенной точности" - всякие "особо высокой", "прецизионной" и тд> Так же всё тот же внешний подрядчик написал с нуля управляющее ПО.
> И по словам этого самого подрядчика, это у них такой постоянный "busines"Отличный бизнес.
> ( За что купил - за то продал. Но -- на первый взгляд, всё реалистично)
Вполне верю. Мне доводилось проделывать нечто подобное, но горадо проще: без написания ПО. Подбор новых движков. плат управления, что-то самодельное паялось.
Но! В твоем рассказе есть отличная фраза "на современную электронику".
Именно что на современную. Я не думаю что они вытащили из кладовки первопень и запилили на нем систему управления для уникальной техники.
И я также очень сомневаюсь, что они сдули пыль с мотифа или SDL и пилили на нем.
Бог его знает: я эту историю или видел по ТВ, или читал в газетах, возможно, и в Инете; несколько лет назад.( Т.е. что там был за современный CPU - вопрос)
Google и конкуренты ( "классика") выдают всё, что им взбредёт в голову.
ИИ поисковик предложил пару потенциальных варианта...
В общем и целом: вряд ли удасться найти детали. Постараюсь, но...
Я такие же абстрактные картины в пейтне рисую
Это реальные примеры с использованием SDL3Lite.
напрасная трата времени, даже в резюме будет выглядеть бедно
Это не для резюме делается.
> Это не для резюме делается.Ну нарисуй в пейнте тогда
Интересно-интересно.
Планируется ли портировать fheroes2 на неё?
Когда библиотека будет готова, реализован необходимый минимальный функционал. Тогда я сам для примера постараюсь портировать некоторые проекты. С проектом FreeHeroes2 я знаком, нравится.Обещать не буду, но в будущем можно попробовать. Сейчас главное добавить функционал для поддержки дополнительных библиотек, SDL3_image, SDL3_ttf и т.д
https://github.com/alexbatalov/tig
Помоги Алексу Баталову перетащить Arcanum на SDL, над которым он уже почти закончил работать, как он заявляет "Около 94% кода уже готово.".
>> Помоги Алексу Баталову перетащить Arcanum на SDL, над которым он уже почти закончил работать, как он заявляет "Около 94% кода уже готово.".Я уже щупал данный проект. И в нем отсутствует весь код игровой логики. Для себя поставил галочку, просто у меня сейчас нет времени тащить несколько проектов. Но да, я о нём знаю и нужно будет добавить поддержку SDL3.
Проблема с fheroes2 в том, что они используют новые фичи плюсов, а под некоторые архитектуры нет свежего gcc (например под armv4t самый свежий gcc/g++ это версия 4.4.3), а более новые хотя код вроде как генерят, но тащут свои объектники и либы заточные под более свежий арм.
Поэтому данная либа им не поможет.Хотя, наверное, можно самому собрать весь этот стартовый код с gcc посвежее, но я этим не заморачивался. Просто тоже хотел собрать героев2 под старый одноплатник, но обломался.
>> Хотя, наверное, можно самому собрать весь этот стартовый код с gcc посвежее, но я этим не заморачивался. Просто тоже хотел собрать героев2 под старый одноплатник, но обломался.Как будет время изучу данный вопрос. Я видел проект на гитхабе, привносящий современный gcc под Windows 98. Это набор комитов.
> под Windows 98Это же в любом случае генерация кода для x86, тут явно задача попроще, с учётом того что сгенерированный под экзотические CPU код и не потестишь без реального железа, так как и эмулятора может не быть.
} проект на гитхабе, привносящий современный gcc под Windows 98.С большой ( практически стопроцентной) вероятностью сгенерированный им бинарные файлы ( .exe) запустятся и заработают на DOS с extender-ом HX .
Far 1.X - работает.
На gcc похрен - все адекватные давно clangом собирают.
Могу прислать пример того, чего LLVM и, в меньшей степени, clang не собирают
Под DOS последний GCC есть точно https://www.delorie.com/pub/djgpp/current/v2gnu/gcc142b.zip
> Под DOS последний GCC есть точно https://www.delorie.com/pub/djgpp/current/v2gnu/gcc142b.zipЯ не про операционку, а про систему команд процессора. DOS - это x86, с которым никаких проблем нет и быть не может.
ты обломался потому что взял свежий код, а есть еще старый из sourceforge
Интересно было бы на требования посмотреть. ЕМНИП, вторым героям под DOS хватало 486 и 8 МБ памяти.
Основная проблема или кешировать битмапы или рисовать постоянно.
В самой игре там данных на 50Мб примерно.
Это всё решаемо, а вот со звуком какие планы?
P.S.: под DOS, забыл упомянуть.
Старый комп стоит 3 тыщи, новый - 300. Разница в сто раз. В стране стагфляция. Сабж будет востребован.
Да на SBC тоже будет востребован.
Опять прямые трансляции из выдуманных мирков? Погоди, у меня ещё ёжики не все доедены.Не 300, а 100. И то, после того, как майнеры своим баловством накрутили ценник на видеокарты на 200% от номинальной стоимости в ритейле.
>майнеры своим баловством накрутили ценник на видеокарты на 200%Вот, поэтому для ПК под офисные задачи снова возвращаемся за видеокартой на Avito.
>>майнеры своим баловством накрутили ценник на видеокарты на 200%
> Вот, поэтому для ПК под офисные задачи снова возвращаемся за видеокартой на Avito.Чушь.
Для офиса можно взять какой-то атлон 300G с встройкой.
Или его аналог от синих.
Сейчас стало еще проще - так как последние амдшные процы идут со встройками все.
Нет, для этого покупаем мини-ПК на N100 долларов за сотню, ну чуть побольше, возможно.
"Под офисные задачи" это так условно было написано, что графика подразумевается только для отрисовки рабочего стола, браузера и LO. Не сказано, но если "за кадром", т.е. в консоли, ещё и канпиляция всего и вся подразумевается, то мини-ПК на N100 идёт лесом.
на авито ценники на железки давно такие, что дешевле новое покупать
Ноутбук на четырехядернике с 16гб оперативной стоит 40-60к. При этом будет поддерживать актуальное ПО и запускать старое.
Обязательно ли вкладываться в рост энтропии или всё же разрешите немного попытаться сооптимизировать? А то потом вылезают китайцы-математики со своими дипсиками на коленках и ржут над аваяваскриптерами.
> Обязательно ли вкладываться в рост энтропии или всё же разрешите немного попытаться сооптимизировать?Соптимизировать, конечно, переехва на актуальное железо, более энергоэффективное в простое и более производительное под нагрузкой. А не увеличивать энтропию написанием бесполезных библиотек.
>> Старый комп стоит 3 тыщи, новый - 300. Разница в сто раз. В стране стагфляция. Сабж будет востребован.Не в цене дело. А в фане. Нравится мне программировать под старые железки. Но хочется в это дело привнести портабельность. ЧТо к примеру написав игру под дос, она без переделки кода, могла просто собраться под ещё кучу старых или новых железок.
А я считаю, что дело нужное. Вот например если бы я проектировал станок или терминал, то предпочёл что-нибудь легковесное, а не электрон поверх qt с обвязкой на яве.
Посмотрите в разделе "отдам даром", на них хоть Win10 запускается. ;)
> новый - 300Урежь осетра-то!
Вот это я понимаю - вещь!
Вопрос разработчикам (если они читают комментарии на Опеннете). Я делаю сборки игр OpenXray, iodoom3 и ещё нескольких игр в связке с SDL 2. У меня операционная система Debian 7. Тут udev 175 и есть библиотека libudev.so.0. Также в репозитории с бэкпортами лежит udev 205 и libudev.so.1.Таким образом, у меня две версии одной библиотеки. Однако SDL2 собирает себя только с той библиотекой, на которую указывает симлинк.
Можно с обеими библиотеками скомпилироваться? Чтобы SDL в одних системах говорил "о, у юзера libudev.so.1, буду работать через неё", а в других "о, у юзера libudev.so.0", а в третьих так вообще "о, у юзера libhal.so.1".
Дело в том что мне нравится, как SDL работает с зависимостями. Скажем, если выполнить ldd на эту библиотеку, видно что она не зависит от библиотек жёстко. Она их вызывает через dlopen(). Так что если у нас в системе нет libpulse или libpipewire, это не приводит к невозможности запуска игры.
И ещё вопрос, раз уж вы делаете упор на старые системы, как вы разруливаете переход с Xinerama на Xrandr в Ubuntu 7.10 и новее? Напомню, у Xinerama были какие-то проблемы с композитингом, поэтому работу с ними возложили на Xrandr 1.2. Может ли ваша библиотека работать с многомониторными конфигурациями и через Xinerama, и Xrandr (в зависимости от того, что используется юзером)?
Возможно, стоит перейти на ОС, в которой этих проблем нет?
На других ОС есть проблемы похуже.
Короткий ответ - нельзя.> https://github.com/libsdl-org/SDL/blob/release-2.32.x/src/co...
#ifdef SDL_UDEV_DYNAMIC
/* Check for the build environment's libudev first */
if (!_this->udev_handle) {
_this->udev_handle = SDL_LoadObject(SDL_UDEV_DYNAMIC);
if (_this->udev_handle) {
retval = SDL_UDEV_load_syms();
if (retval < 0) {
SDL_UDEV_UnloadLibrary();
}
}
}
#endif> https://github.com/libsdl-org/SDL/blob/release-2.32.x/cmake/...
macro(CheckLibUDev)
if(SDL_LIBUDEV)
check_include_file("libudev.h" HAVE_LIBUDEV_HEADER)
if(HAVE_LIBUDEV_HEADER)
set(HAVE_LIBUDEV_H TRUE)
FindLibraryAndSONAME(udev)
if(UDEV_LIB_SONAME)
set(SDL_UDEV_DYNAMIC "\"${UDEV_LIB_SONAME}\"")
set(HAVE_LIBUDEV TRUE)
endif()
endif()
endif()
endmacro()То есть макро SDL_UDEV_DYNAMIC (со значением целевого UDEV_LIB_SONAME) должен быть известен о время сборки, а не выполнения.
Но зачем брать на себя работу сопроводителя дистибутива и собирать SDL самостоятельно? На целевых системах уже есть работающая бинарная сборка, предоставляющая стабильный API. Линкуйте проекты с любой.
ИМХО.
А нет, наврал.
Если макро SDL_UDEV_DYNAMIC не объявлен при сборке, то должна загружаться одна из
static const char *SDL_UDEV_LIBS[] = { "libudev.so.1", "libudev.so.0" };
Это очевидно из процитированного фрагмента кода, из первой строки: если SDL_UDEV_DYNAMIC не задан, _this->udev_handle должно быть инициализировано в другом месте (дальше по коду?)
Не очевидно. Дальше по коду если !_this->udev_handle, то возврат ошибки. А вот между ними ещё один блок с SDL_LoadObject, который я пропустил.
Получается, всё уже должно работать так, как хочет Zenitur. Однако, вероятно, у него что-то пошло не так. Или в коде какая-то ошибка.
Попробую иначе: если #ifdef SDL_UDEV_DYNAMIC вырезает последующий код препроцессором, и нет других мест, где бы _this->udev_handle инициализировалась, то получается что? И кто бы такое написал? Значит другие места есть.
Другое место может быть в теле другой функции, или даже другом объекте трансляции, impl без dlopen. А здесь останется возврат ошибки, чтобы не ломать API. Предположить можно всё, что угодно, с этой кодовой базой я не знаком, а те два блока кода занимают полэкрана, идут друг за другом и похожи, как две капли воды, вероятно я, когда скроллил текст, принял их за один и тот же код, вот и пропустил сперва.
Не столь важно, где другое место. Одно дело искать "где оно" (зная, что есть), а другое "есть ли оно вообще". Я не утверждаю, что это легко было бы заметить, просмотровая код в браузере, когда глаз замыливается. Но когда оно вырезано и сюда скопировано - тогда очевидно.
> Получается, всё уже должно работать так, как хочет Zenitur. Однако, вероятно, у него что-то пошло не так.Вы оказались правы. Несмотря на то, что configure пишет SOMANE библиотеки:
checking for libudev.h... yes
-- dynamic udev -> libudev.so.1Анализ готовой библиотеки (ldd, strings, readelf) показывает, что она умеет работать с обеими версиями библиотеки.
Спасибо что разобрались. А то configure меня запутал.
> На целевых системах уже есть работающая бинарная сборкаТолько неизвестно какая: SDL 1.2, 2.0 или 3.0.
Мне нравится подход, который используют Steam-версии игр. Вместе с игрой идут библиотеки SDL и OpenAL - на случай, если у пользователя их нет.
Все. Их все долго поставляют, пока с ними хоть что-то из репозитория слинковано. Или вместо них слой совместимости с новой версией (*-compat).
>Автор игрового движка ArcanumWorldМожет, стоит сначала ЗАКОНЧИТЬ "игровой движок ArcanumWorld"? И выпустить в релиз, например.
Да я единственный разработчик.Сейчас библиотека зависит от libx11-dev и libgl1-mesa-dev. Данные библиотеки есть и в debian 3 и последующих версиях Linux. Но я планирую сделать динамический выбор зависимостей, к примеру работу со звуком. Сейчас я работаю над графикой и поддержкой множества окон, что бы они правильно обрабатывались.
>> Может, стоит сначала ЗАКОНЧИТЬ "игровой движок ArcanumWorld"? И выпустить в релиз, например.Буду заканчивать на SDL3Lite. А параллельно можно переходить спокойно на SDL3 и пилить движок. А когда SDL3Lite будет обладать минимальным функционалом, графика, звук, работа с файлами. Можно используя его собрать движок под старые системы.
>> И ещё вопрос, раз уж вы делаете упор на старые системы, как вы разруливаете переход с Xinerama на Xrandr в Ubuntu 7.10 и новее? Напомню, у Xinerama были какие-то проблемы с композитингом, поэтому работу с ними возложили на Xrandr 1.2. Может ли ваша библиотека работать с многомониторными конфигурациями и через Xinerama, и Xrandr (в зависимости от того, что используется юзером)?Не готов пока ответить. Но для себя добавил в бэклог. Что нужно разобраться в данном вопросе.
Я когда-то задавал этот вопрос в баг-трекере SDL. Вот что ответил Icculus: http://paste.org.ru/?slgpro
Я удивлён, что так много негатива от анонимов.Вспоминается мем, пиши под современные системы мразь:) Ну я немножко переделал:)
} много ...г-ва от анонимов.
Зато от non-анонимов -- позитив. И поддержка
Извини, но во-первых, ты пришёл в публичное пространство чтобы пиарить свой проект, который кроме тебя никому не нужен. Во-вторых, его суть в поддержке музейного хлама, а его поклонников тут заслуженно ненавидят.
~A-перевёрнутое -- сильное утверждение.Хотя бы один контр-пример - и готово: False
Я в курсе, имено поэтому так и формулирую. Потому что никто лучше оппонента с аргументом "нееет, ты совершенно не прав, оно нужно не только мне, но еще и Васяну-тоже-передергиваю-на-win3.11!!!" не продемонстрирует смехотворность этой идеи.
Вы, кстати, стали не 69-ым, а 81-м ...
Хм: забавно -- у меня была др. теорияТак Windows 3.X - только в планах.
Кстати, существует ещё Windows NT 3
А со стороны "железа" -- AO486
( Последний, правда, "держит" и NT 4.0
> Вы, кстати, стали не 69-ым, а 81-м ...Особенно смешно оно смотрится, когда рядом с такими проколами он в других ветка принимается сам с собой спорить.
} "Экзистенциальная сущность" проекта в поддержке музейного тра-ля-ляОткуда такие выводы?
Вполне ежедневно обновляемый ReactOs - уровень API Windows Server 2003
Да и будет ли работать TUW проекта на "Семёрке-server" или на том же 2003-ем - ещё стоило бы проверить - вдруг нет?
---А с вас присылать patches требуют что ли?
От чего такая неприязнь?Или вы как каждый второй комментатор к новосиям по "Free Windows" -- 'Почему не пишите на "финна"?'
Дык "Мировой разум" заложил свободу воли
> А с вас присылать patches требуют что ли?
> От чего такая неприязнь?Так никто не пишет что автор вредитель. Просто бесполезной хренью занимается, ну и пусть занимается, от него что без этого проекта не было вклада в сообщество, ято с ним нет. А вот те кто тут постоянно требуют чтобы их древнее говно продолжали поддерживать - это вредители, к ним и неприязнь, об этом сразу было написано, читайте внимательнее. Они прямо требуют чтобы ДЛЯ НИХ КРАЛИ время разработчиков.
> музейного хлама, а его ... поклонников тут ... ненавидятНе говори за всех. Сколько тебя помню, ты всегда пытаешься выдавать свои личные предпочтения за общественное мнение. Например что Steam никто не пользуется, и что все сидят на GOG.
Разберём характерный наброс> Извини,
Манипуляция, попытка выставить читателя "обиженным" на "заслуженную критику". Буквально же слово означает, что оратор не просит прощения, а сам снимает с себя вину.
> но во-первых, ты пришёл в публичное пространство чтобы пиарить свой проект,
Искажение факта: автор опубликовал _некоммерческий_ проект.
> который кроме тебя никому не нужен.
"Аноним" буквально означает "без имени", то есть "никто". Буквально -- данный ноунейм пытается выдать свой маня-мирок за нечто объективное, внушить его окружающим.
> Во-вторых, его суть в поддержке
> музейного хлама, а его поклонников тут заслуженно ненавидят.Опять тело говорит за всех, вбрасывая подлую софистику (хлам у него в голове, а не в музеях).
> Разберём характерный набросОчень жалкая попытка.
> Манипуляция, попытка выставить читателя "обиженным" на "заслуженную критику". Буквально же слово означает, что оратор не просит прощения, а сам снимает с себя вину.
Не знаю с чего ты это нагаллюционировал, просто дежурная вежливость. Автор сам написал про негатив.
> Искажение факта: автор опубликовал _некоммерческий_ проект.
Я исказил этот факт чем конкретно? Некоммерческий проект можно также пиарить, и автор тоже получает с этого выгоду, просто не в деньгах или не напрямую в деньгах.
> "Аноним" буквально означает "без имени", то есть "никто"
"Без имени" не значит "никто", попробуй в логику. "Никто" ничего бы не написал.
> Буквально -- данный ноунейм пытается выдать свой маня-мирок за нечто объективное, внушить его окружающим
> Опять тело говорит за всех, вбрасывая подлую софистику (хлам у него в голове, а не в музеях).Ad hominem, ниже просто нельзя опуститься.
Не оправдывайся. Просто уясни, что подобные набросы, где ноунейм пишет про себя "все", вызывают заслуженное презрение.
Мне от твоего презрения ни горячо ни холодно, фактов оно никак не меняет.А заметь, ты или кто угодно мог бы прийти и сказать: "вон тем людям оно нужно, у них музей ретрофутуровычислительной техники, они реконструируют ситуацию когда стая почтовых голубей несущих распечатки линуксовых пакетов из XXI века, попала в прошлое, её перехватил тамошний linux энтузиаст и пытается запустить игрушку из будущего, а она на SDL3 который на его первопне не работает, и нужна, значит, библиотека для совместимости". И мы бы такие: "да, действительно, ситуация такая весьма вероятна, и нужно её со всех сторон исследовать, и детям про неё рассказывать, и быть к ней всячески готовыми, и никак она больше не решается, потому что нельзя же было в прошлом все первопни сдать в утиль и купить на полученные деньги один коредуб который сможет сотню рабочих мест с этими игрушками обслуживать". И я бы шляпу съел, и автору бы все спасибо говорили, руку жали и фотографировались бы с ним, а одна дама даже поцеловала бы в порыве чувств в щёку, а потом сразу смутилась.
Но нет, что-то слабо видимо ваше ретрокоммунити если про тот музей никто не знает. Никто не говорит кому конкретно те платформы что удаляются из SDL нужны и зачем. Так и что думать остаётся?
А знаете, я, вообще, уверен что много кому эти платформы нужны. Только нет никаких музеев, играются они в них дома, с выключенным светом, под подушкой с фонариком, и никому не показывают, даже за голографические сотки, чубриков или вкладыши kent turbo. Так и неужели мы таких негодяев уважать должны, а ещё и жизнь им облегчать?
> Мне от твоего презрения ни горячо ни холодноСлабовато. Учись у классиков.
"Я за вами бежала три дня и три ночи..."
} от анонимов.Забавный факт: их может быть не так уж и много. Возможно - один.
> } от анонимов.
> Забавный факт: их может быть не так уж и много. Возможно -
> один.По крайней мере один злостный изображатель из себя толпы выявлен достоверно, он же ~u235 (Юзер235)
И здесь "два разных" Анонима - явно один, если посмотреть ветку:
2.70, Аноним (69) - наброс
3.77, U202204161753 - возражение
4.81, Аноним (81), "Я в курсе, имено поэтому так и формулирую".И стилистически его набросы похожи с наблюдаемыми здесь, но таких различать не слишком просто, поскольку лишены индивидуальности и выдают туповатые шаблоны.
Стоило с телефона ответить как развели теорию заговора, это приятно. Мне из себя толпу не надо изображать, сила утверждения о ненужности проекта никак не меняется от числа его высказавших.
Эээ ну вы как будто не знали, куда заходите.
> Я удивлён, что так много негатива от анонимов.Я тоже удивлялся, но выяснил, в чем причина.
Культивирован миф "писать своё слишком долго и дорого". На основании чего идёт активная торговля написанным в США с переклейкой лейбочек. Всякий пример созданного в России ставит под сомнение миф, потому материально заинтересованные персонажи вынуждены (им это жизненно необходимо) травить авторов.
Сделаем разбор этой "пятиминутки пропаганды".> Культивирован миф "писать своё слишком долго и дорого"
Это не миф, а чистейшая правда
> На основании чего идёт активная торговля написанным в США с переклейкой лейбочек.
Абсолютно верно. Потому что все понимают, что легче украсть и присвоить, параллельно освоив бюджетов из кормушки.
> Всякий пример созданного в России
Забавная попытка выставить Россию центром вселенной. Ну да, в ней тоже кто-то пишет. Иногда даже что-то получается. Как и во всех других странах.
> потому материально заинтересованные персонажи вынуждены (им это жизненно необходимо) травить авторов.
А тут повесточка прёт уже не скрываясь. Искать всюду вокруг врагов -- это диагноз. Дяденька, вы правда думаете, что кто-то плотит денюжки, чтобы анонимы травили российских авторов? Лечитесь скорее! Для начала, рекомендую выкинуть телевизор (или откуда вы всё это берёте).
> Сделаем разбор этой "пятиминутки пропаганды".
>> Культивирован миф "писать своё слишком долго и дорого"
> Это не миф, а чистейшая правдаИстина в том, что цифр нет. Значит говорить не о чём.
>> На основании чего идёт активная торговля написанным в США с переклейкой лейбочек.
> Абсолютно верно. Потому что все понимают, что легче украсть и присвоить, параллельно
> освоив бюджетов из кормушки.Я не понимаю. С чего бы оно было легче? Попробуй укради из хранилища банка или из под носа у тов.майора.
>> Всякий пример созданного в России
> Забавная попытка выставить Россию центром вселенной. Ну да, в ней тоже кто-то
> пишет. Иногда даже что-то получается. Как и во всех других странах.Не надо это воспринимать как атаку на центр, которому подчиняешься. Я ведь не мешаю служить интересам белого господина.
Я объясняю происходящее здесь -- в отдельно взятой стране. И если ты не местный, это вообще не твоё дело.
>> потому материально заинтересованные персонажи вынуждены (им это жизненно необходимо) травить авторов.
> А тут повесточка прёт уже не скрываясь. Искать всюду вокруг врагов --
> это диагноз. Дяденька, вы правда думаете, что кто-то плотит денюжки, чтобы
> анонимы травили российских авторов? Лечитесь скорее! Для начала, рекомендую выкинуть телевизор
> (или откуда вы всё это берёте).Я достоверно знаю таких персонажей -- поимённо. Естественно, не всех. Так что поменьше проецируй, защищаясь. Глядишь, за здорового сойдешь.
>>> На основании чего идёт активная торговля написанным в США с переклейкой лейбочек.
>> Абсолютно верно. Потому что все понимают, что легче украсть и присвоить, параллельно
>> освоив бюджетов из кормушки.
> Я не понимаю. С чего бы оно было легче? Попробуй укради из
> хранилища банка или из под носа у тов.майора.А не надо приплетать банк и тов.майора. Речь шла о софте. Берётся жипиэльный код, заменяется название, далее можно продавать как проприетарь, желательно с занесением в реестр (так заказчиков больше будет). Они нюанс -- это нужно делать в стране, где можно наплевать на право и закон. Например -- в Российской Федерации.
>>> Всякий пример созданного в России
>> Забавная попытка выставить Россию центром вселенной. Ну да, в ней тоже кто-то
>> пишет. Иногда даже что-то получается. Как и во всех других странах.
> Не надо это воспринимать как атаку на центр, которому подчиняешься. Я ведь
> не мешаю служить интересам белого господина.Не надо проецировать своё миропонимание на других. Может ты подчиняешься своему господину и думаешь, что все тоже подчиняются какому-нибудь господину, но нет -- это не так. Не всем нужен господин, потому что есть и свободные люди.
> Я объясняю происходящее здесь -- в отдельно взятой стране. И если ты
> не местный, это вообще не твоё дело.Поправка: не "объясняешь", а проталкиваешь местную повесточку, спущенную сверху холуями царя.
> Я достоверно знаю таких персонажей -- поимённо. Естественно, не всех.
Имён, конечно, не будет. Как и доказательств. О чём тут ещё говорить? Ах да, почему бы тебя тоже не записать в таких персонажей: пускай теперь n00by -- проплаченный работник пропаганды. Что, не проплаченный? Ну тогда это ещё глупее: заниматься таким низким делом, и даже не получать копеечку за это...
>> Истина в том, что цифр нет. Значит говорить не о чём."Не о чем говорить" означает, что не ты должен эти мои слова пропустить мимо ушей, а что мне нет смысла тебя читать.
>>>> На основании чего идёт активная торговля написанным в США с переклейкой лейбочек.
>>> Абсолютно верно. Потому что все понимают, что легче украсть и присвоить, параллельно
>>> освоив бюджетов из кормушки.
>> Я не понимаю. С чего бы оно было легче? Попробуй укради из
>> хранилища банка или из под носа у тов.майора.
> А не надо приплетать банк и тов.майора.Вот и не приплетай в следующий раз. Или ты думал, что дешевая манипуляция "все понимают" прокатит и я не отвечу тебе в твоём же духе?
А сразу так сделать и не лепить форки никак?
Нельзя просто так взять и не сломать обратную совместимость это просто девиз всего что связано с линуксом...
Форки приходится лепить тогда, когда авторы оригиналов теряют адекватность.
> А сразу так сделать и не лепить форки никак?Во-первых, это не форк. Это переписывание библиотеки с нуля. Разумеется, неполное. Во-вторых, что, прости? Поддержку никому кроме тебя не нужного желез которого кроме тебя ни у кого нет? В SDL? Вот прямо тратить силы на поддержку этого кода? Тестировать (кстати как, если железо есть только у тебя)? Рефакторить? Ради чего? Только ради тебя? А стоишь ли ты того? Или что ты готов дать взамен?
Есть такая древняя поговорка - работает = не трожь. Если бы оно просто было - претензий нет, так они везде только и делают что выпиливают поддержку. Не потому что сломалось а просто потому что.
Я не спрашиваю то что у тебя есть я спрашиваю почему у тебя дверь 140 см и входить всем кто выше нельзя.
Так никто и не трогает! Ваши древние версии ПО тихо мирно лежат в анналах интернета. Пользуйтесь, никто же не против.А трогают новые версии. Вы можете не обращать на них внимания, вам они не нужны.
Без форка запрос на слияние не сделать. (Ну разве только патч емейлом отправить по-старинке). Это называется децентрализованная разработка. Если разработчик сумеет не сломать совместимость, то потом, гипотетически, сможет предложить сделанные им изменения в основной проект. Правда, не факт, что примут, там могут быть свои соображения на счёт поддержки настолько старых платформ.
И не стоит путать обратную совместимость (API разных версий библиотек) и поддержку платформ (реализация этих API под капотом). Последнюю просто не всегда получается сохранить. Из-за отсутствия вожделенных функций новых платформ в старых, слишком большой архитектурной разницы между ними. Впрочем, иногда встречаются и просто диверсанты, которые набегают на чужие проекты и выпиливают чужую проделанную работу лишь по причине, что им лично не нужно. Но тут явно не тот случай. Это же библиотека для написания игр, где всегда бегут вперёд паровоза. А потом удивляются почему их Крузиз 3000, ни у кого (нормально) не работающий, в продажах провалился..
Интересно, здешние луддиты, сидящие на третьих пентиумах, будут посильно помогать своими патчами этому проекту или будут сидеть с раскрытыми ртами, аки птенцы в гнезде, ожидая, что скоро им перепадёт?
А ReactOs -овцы?
Хотел я этот ваш реактос попробовать для виндовых сборок. Требований у меня ноль - плюсы или раст, консольные приложения, без зависимостей, нужно только компилятор запустить и тесты погонять. Куда там, я полдня только компилятор пытался поставить. Встроенный браузер не заходит ни на какие сайты видимо из-за отсутствия поддержки актуального TLS. Актуальные лиса и хром не работают. Древняя лиса из собственного каталога приложений падает. Курл из собственного каталога приложений не ставится. Виртуалбоксовские guest additions для шаренных папок не ставятся. Короче, тупо файл в это говно передать можно только через образ диска. Конечно никакие компиляторы там тоже не запустились.
> Хотел я этот ваш ReactOs попробовать для виндовых сборок. Требований у меня ноль - плюсы ( VVM: C++) или Rust, консольные приложения, без зависимостей, нужно только компилятор запустить и тесты погонять.Рекомендую Windows Server 2003 x64 с One-Core-API :
clang из состава LLVM 18.6.X работает ( компилирует работоспособные .exe, библиотеки и .dll),
можно, скопировав установленные на Windows Server 2012 R2, использовать linker ( проверен в деле тот, что идёт в составе MS VS 2015 SP3) и SDK ( от Windows Server 2022).Для использования cl.exe потребуется перенести и соответствующие ветви реестра (registry).
> Рекомендую Windows Server 2003 x64Что ещё рекомендуешь, может ещё и заплатить за неё? Поясню - ковыряться в старье и настраивать венду в мои задачи не входит, мне нужно поставить - и чтобы всё работало. К слову, даже современная винда в это не умеет, поэтому фоново рассматриваются альтернативные варианты. И вот реактосовцы утверждают что их ось работает (и вообще говоря у них есть все возможности сделать винду нормально), вот я и проверил.
> Для использования cl.exe потребуется перенести и соответствующие ветви реестра (registry).Ого, дожили. =) раньше хватало файлов.
vc2010/bin $ ls -R -1
.:
1033
c1ast.dll
c1.dll
c1xxast.dll
c1xx.dll
c2.dll
cl.exe
link.exe
ml.exe
msobj100.dll
mspdb100.dll
mspdbcore.dll
mspdbsrv.exe
undname.exe./1033:
clui.dll
linkui.dll
>> Для использования cl.exe потребуется перенести и соответствующие ветви реестра (registry).
> раньше хватало файлов.Скорее всего, это "особенность ПО" MS VS 2015 SP3
Т.е. с файлами от MS VS 2017 - MS VS 2022 будет работать без импорта .regP.S. Новость в том, что c One-Core-API "потолок" уже не MS VS 2010 ( плюс-минус), а самые современные версии
То есть новые версии cl.exe требуют отсутствующие в Windows Server 2003 x64 экспорты kernel32.dll (или другой dll)?
( Вопрос был не ко мне, ну да ладно -) )
> новые версии cl.exe требуют отсутствующие в Windows Server 2003 x64 экспорты kernel32.dll (или другой dll)?Да. А с One-Core-Api - "всё ОКей Оби"
Благодарю. Мне слишком долго искать, качать PSDK (или что там сейчас), вытаскивать оттуда и смотреть ради праздного любопытства.Похоже, намеренно таким образом сломали совместимость со старыми ОС. Не знаю, что добавляли в последних ОС, но раньше -- вроде бы ничего жизненно необходимого для консольной программы, которая читает и пишет файлы.
Жертвы общества потребления "купи, купи,купи!!11" снова все, что не бьется в конвульсиях требуя новой цацки, называют луддитизмом, даже не понимая значения этого термина?
> В будущем автор планирует добавить поддержку Windows 3.1 и MS-DOS.Как раз недавно читал про LFB. По наводке с Опеннета, к слову. Интересно, а если видеокарта не поддерживает VBE 1.2 + LFB или VBE 2.0? Будет ли графика работать в таком случае? Или будет работать в режиме "6 кадров"?
Винда... А как? Ладно 95-я, там DX70 и DX81 есть. А на 3.1? WinG? Или дизассемблить WinG и посмотреть как он работает, чтобы сделать напрямую?
P.S. Порт Вангеров, судя по скорости работы, реализован поверх OpenGL через трансляцию вызовов DirectDraw. То же самое происходит с Героями 3, Старкрафтом, Worms Armageddon и прочими DirectDraw-играми... Порты под современные ОС у меня выдают 20 FPS (на третьепне), тогда как нативно юзая DirectDraw я получаю 100+ FPS. Интересно, возможен ли порт на DOS? Нуачо, там Glide есть... Я вообще удивлён, почему Сталкера ещё не портировали на Voodoo, код же открыт? Doom3 вон портировали ещё до открытия кода, неужели за все эти годы 3dfx стала меньше интересна народу?
Как ты собрался портировать сталкера, который использует opengl 4.1 на свое музейное старье? Это невозможно.
А ты за это деньги заплатишь, или можешь только на опеннете требовать,чтобы тебе портировали?
Требуй дальше, никто портировать это не будет.
> который использует opengl 4.1На DirectX 8 прекрасно работает. Причём это на самом деле DX70, просто через новые библиотеки. Должно работать на GeForce 2 MX в 640x480.
> А ты за это деньги заплатишь, или можешь только на опеннете требовать,чтобы тебе портировали?
Doom3 на Voodoo портировали чисто по фану.
> На DirectX 8 прекрасно работает. Причём это на самом деле DX70, просто через новые библиотеки. Должно работать на GeForce 2 MX в 640x480.Путём таких последовательных допущений он и на спектруме заработает.
Удачи портировать openxray, который не поддерживает directx8.Надеюсь ты будешь портировать движок сам, а не ныть здесь, чтобы кто-то его портировал.
> Удачи портировать openxray, который не поддерживает directx8.
> Надеюсь ты будешь портировать движок сам, а не ныть здесь, чтобы кто-то
> его портировал.Оригинальные исходники поддерживают же.
А то что исходники к опенрею не подходит - неважно. Запихнем круглое в кавадратное)
> А то что исходники к опенрею не подходит - неважно. Запихнем круглое
> в кавадратное)Ой? А что это у нас? Случаем, не оригинальные исходники?
https://github.com/OpenXRay/xray-16/tree/39c7348e42ff94b45c0...
Ну серьёзно. Это всё равно что заявлять. что Doom не работает под Windows 95, так как поддержку DirectDraw удалили из GZDoom.
По поводу "хлама". В 2024 году самым bang-per-buck объёмом памяти для эмбеддовки был 512 мегабайт. Думайте.
> а 2D-отрисовки - OpenGL 1.2.?! То-есть оно не сможет в 2D без 3D акселерации, пусть и д@рьмовой?
Может, зависит от рук погромиста.
Но я чисто физически не могу вспомнить ни одной платы которая не вывезет ogl1.x и на которой захотят гонять что-то написанное с sdl
OpenGL 1.2. работает внезапно софтово.Т.е совсем без акселерации.