HLFX.Ru Forum Страницы (9): [1] 2 3 4 5 » ... Последняя »
Показать все 122 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Xash3D (https://hlfx.ru/forum/forumdisplay.php?forumid=14)
-- Xash для Linux (https://hlfx.ru/forum/showthread.php?threadid=2224)


Отправлено Zttrium 11-07-2010 в 12:57:

Xash для Linux

Не планируется ли сделать версию xash'а для linux? А то Valve свой порт source под макос и линух делать будут ещё наверное пару лет...а gold source и вовсе не увидеть...


Отправлено Дядя Миша 11-07-2010 в 15:47:

Ну в теории, я думаю, сложностей особых нет.
Можно попробывать перекомпилить. Проблема в том, что у меня нет компьютере Линукса (и никогда не было), и я про эту систему наслышан исключительно от знакомых линуксоидов и от чтения ITHappens.
Поэтому вопросов масса возникает:
1. будет ли, скажем, ксаш, скомпиленный под убунту, работать под каким-нибудь дебианом? Или там еще под ред-хатом к примеру.
2. Если он работать не будет, как мне исправлять ошибки? Ну под виндой я не первый год сижу, механизмы взаимодействия программы с ОС знаю немного. А под линуксом - што?
3. Ксаш превосходно работает под WINE (со слов тех же линуксоидов).
Чем так важна нативная поддержка? Думаете FPS сильно вырастет?
Я почему-то в этом не уверен.
4. В идеале бы неплохо выложить сорцы движка со словами "сами адаптируйте", но исходников я пока что выкладывать не планирую.
Равно как и ставить линукс. Как быть?
5. Неплохо бы опрос проверсти на предмет действительной полезности сего мероприятия. Может быть товарищи линуксоиды скажут что их работа под WINE вполне устраивает.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Zttrium 11-07-2010 в 17:41:

пишу сообщение 3 раз ибо нечайно закрывал в опере страницу
1. Конечно было бы не плохо выкладывать с исходниками, но если хотя б выкладывались сборки под несколько самых распространённых дистрибутивов, то было бы очень хорошо
2. Это конечно проблема Но если возникнет возможность и потребность думаю найдутся люди которые согласятся помочь в написании порта.
3. Не знаю как у других, но под моим дебианом х86_64 wine категорически отказывается работать с 3D графикой, а ставить 32 либы как-то не хочется Нативные игры под линукс работают на ура! Так что у xash'a у меня загрузилась только одна консоль (кстати, не плохо было бы сделать юзабельными в консоле таб и стрелки, а то писать команды не много геморно), хотя может так оно и есть) я не видел пока работу xash под виндвс...
4. Думаю для коммерческого проекта выкладывать сорцы не рентабельно, но если найдутся люди которые дадут "клятву гипократа" и захотят помочь с портом, то думаю можно им показать...Хотя решать не мне.
5. В интернете много информации одинаковой информации как запустить под вайном хл и о том что все жалуются что нету порта на линукс. Но так чтобы кто-то проявил инициативу, разве что "вентиль" со своим 2 летним молчанием по этому поводу...А тут увидел что xash пишут с нуля (если я правильно понял ) вот решил поинтересоваться ведь пока проект в стадии разработке его проще портировать...Хотел добавить опрос, но изменить сообщение мне не дали, поэтому если есть возможность добавьте опрос.


Отправлено Дядя Миша 11-07-2010 в 17:57:

Цитата:
Zttrium писал:
(кстати, не плохо было бы сделать юзабельными в консоле таб и стрелки, а то писать команды не много геморно)

там всё работает. И автокомплит есть.
Цитата:
Zttrium писал:
А тут увидел что xash пишут с нуля (если я правильно понял )

Скажем так: исходников GoldSrc я никогда в глаза не видел.
При разработке ориентировался на механизмы от id - движков и HL_SDK.
А так же немного на HL2_SDK (темп-энтити).
Цитата:
Zttrium писал:
ведь пока проект в стадии разработке его проще портировать...
Ксаш изначально задумывался как портируемый движок.
Я предполагаю изначально отловить все баги и реализовать задуманное, а уж после скомпилить под линукс. Механизмы взаимодействия с ОС в любом случае максимально абстрагированны от основого кода и вынесены в одну дллку. Поэтому, по моим рассчетам портирование не займет сильно много времени и усилий. Максимум - пара недель. Причем большая часть времени уйдет на установку линукса и попытки в нем хоть чего-нибудь понять.
ЗЫ. Опрос создам.

Добавлено 11-07-2010 в 21:57:

ЗЗЫ: проще замутить опрос в новой теме, чем здесь.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Zttrium 11-07-2010 в 18:12:

Цитата:
Дядя Миша писал:
там всё работает. И автокомплит есть.
ну видимо wine так неуклюжа эмулировал...
Цитата:
Дядя Миша писал:
Скажем так: исходников GoldSrc я никогда в глаза не видел.
При разработке ориентировался на механизмы от id - движков и HL_SDK.
А так же немного на HL2_SDK (темп-энтити).
Ну исходников кроме "вентилей" по моему никто не видел... А насчёт ориентации можно думаю использовать исходники беты хл2.
Цитата:
Дядя Миша писал:
Ксаш изначально задумывался как портируемый движок.
это отлично
Цитата:
Дядя Миша писал:Я предполагаю изначально отловить все баги и реализовать задуманное, а уж после скомпилить под линукс.[/B]
эх...ещё долго ждать наверное...
Цитата:
Дядя Миша писал:
Механизмы взаимодействия с ОС в любом случае максимально абстрагированны от основого кода и вынесены в одну дллку. Поэтому, по моим рассчетам портирование не займет сильно много времени и усилий. Максимум - пара недель. Причем большая часть времени уйдет на установку линукса и попытки в нем хоть чего-нибудь понять.
ставь debian 5.0 lenny amd64 для лучшей совместимости


Отправлено thambs 11-07-2010 в 18:16:

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

3) ещё есть winelib -- позволяет перекомпилить win32 приложение в почти нативное.

>разве что "вентиль"

так вроде в конце лета обещают. сам стим, по крайней мере, уже портировали.

>Может быть товарищи линуксоиды скажут

нативный или с winelib надёжней.


Отправлено ffelix8 11-07-2010 в 18:27:

Если что могу потестить потом эти порты. Очень уж интересует порт под линукс. Вай конечно же неплохо эмулирует, но нативное с ним не сравнить.


Отправлено Дядя Миша 12-07-2010 в 09:02:

Цитата:
thambs писал:
ещё есть winelib -- позволяет перекомпилить win32 приложение в почти нативное.

Можно чуть подробнее? Сильно размер приложения вырастает после таких извращений? Просто ксаш имеет достаточно мало точек соприкосновения с операционкой, только самое необходимое:
звук, openGL, окошко консоли, окошко openGL, таймеры, обработка ввода.
Остальные функции по названиям совпадают с таковыми из всяких линуксов, либо имеются собственные аналоги из CRT.
В любом случае сначала я его допилю под виндой, а уж потом - всё остальное и никак иначе.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено thambs 13-07-2010 в 08:55:

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

а звук у тебя через что?


Отправлено Дядя Миша 13-07-2010 в 11:33:

thambs waveOut.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено LeXa2 19-01-2011 в 15:24:

Цитата:
Дядя Миша писал:
1. будет ли, скажем, ксаш, скомпиленный под убунту, работать под каким-нибудь дебианом? Или там еще под ред-хатом к примеру.

Если делать так, как делают в nVIDIA с их бинарными драйверами под видеокарты - то работать будет. Ключевой момент - компилировать движок с линковкой с как можно более старой версией libc, и с как можно более меньшими зависимостями от прочих сторонних библиотек. Можно обойтись без C++ - зашибенно, разом решается проблема с libstdc++. Можно обойтись без связей с GTK/QT - отлично. Ну и т.д. С теми библиотеками, от которых избавиться нельзя - по возможности либо статически линковать, либо нужную версию библиотеки поставлять в комплекте с движком.

Второй вариант - делать отдельные билды под наиболее популярные системы, типа Fedora, RHEL/CentOS, Debian и Ubuntu. Причём, скорее всего, придётся делать по билду под каждую версию этих операционок, иначе будут проблемы с зависимостями.

Цитата:
Дядя Миша писал:
2. Если он работать не будет, как мне исправлять ошибки? Ну под виндой я не первый год сижу, механизмы взаимодействия программы с ОС знаю немного. А под линуксом - што?

Ну, тут несильно отличается. Stack backtrace от версии движка, скомпиляченой с debug-символами. И длительное задумчивое чесание затылка в попытках понять, как же программа дошла до такого печального контекста, что выпала в корку.

Цитата:
Дядя Миша писал:
3. Ксаш превосходно работает под WINE (со слов тех же линуксоидов).
Чем так важна нативная поддержка? Думаете FPS сильно вырастет?
Я почему-то в этом не уверен.

Wine - это всегда некоторый геморрой. Его разрабы постоянно в новых версиях добавляют регрессий, только и успевай строчить багрепорты. Говорю "со знанием дела" - на сегодня являюсь мэйнтейнером HL2 и ещё нескольких игр в вайновской AppDB. И пары минорных релизов не проходит, чтобы что-нибудь новое не сломали в эмуляции Direct3D. Что до увеличения FPS - будет, но не радикальное. Тут проблема в том, что у Wine эмуляция системных вызовов для Win32-приложений идёт через механизм обработки исключений. Т.е. программа вызывает там какой-нибудь код, как ей кажется, из user32.dll или kernel32.dll. А в реальности - уходит в эксепшн, который обрабатывает специально обученный процесс wineserver, который смотрит, куда это программа ломанулась и зачем, ну и либо отфутболивает эксепшн к ней на обработку, либо эмулирует выполнение вызова той функции, на которой програ в экспешн свалилась. Понятное дело, что эксепшны сами по себе не добавляют скорости работы (как минимум идёт перезагрузка конвейера процессора на каждом из них). Ну и обработка в wineserver тоже ресурсы кушает. Так что нативный порт - он таки быстрее. Но для OpenGL-движков - не радикально, как правило - процентов на 10-15.

Цитата:
Дядя Миша писал:
4. В идеале бы неплохо выложить сорцы движка со словами "сами адаптируйте", но исходников я пока что выкладывать не планирую.
Равно как и ставить линукс. Как быть?

При таком положении вещей - только пропадать :-).

Цитата:
Дядя Миша писал:5. Неплохо бы опрос проверсти на предмет действительной полезности сего мероприятия. Может быть товарищи линуксоиды скажут что их работа под WINE вполне устраивает.

ИМХО, большинство заинтересованных - вполне устроит. Нативный порт - это так, глазурь на вкусном торте. Разумеется, каждый линуксоид мечтает, чтобы поиграть в халфлайф можно было тупо установив из репозитория его дистрибьютива пакет xash и указав в графической конфигурашке движку путь до папки valve оригинальной игры. Однако сколько уже лет через Wine играем - и ничего, не развалились. Дык шо... :-)

Добавлено 19-01-2011 в 18:24:

Цитата:
Дядя Миша писал:
Цитата:
thambs писал:
ещё есть winelib -- позволяет перекомпилить win32 приложение в почти нативное.

Можно чуть подробнее? Сильно размер приложения вырастает после таких извращений?

Смысл winelib - дать возможность скомпилировать Win32-приложение с почти не изменёнными исходниками в псевдо-нативный linux код. Оно было придумано создателями wine как способ облегчить разрабам "портировать" код под *nix/*BSD. ИМХО, по моему опыту использования, особой разницы с запуском этого же приложения под Wine - нет. Да, работает такой франкенштейн чуть пошибче, чем просто под Wine (ибо часть эксепшнов, обрабатываемых в случае обычного запуска под Wine процессом wineserver просто не возникает - используются напрямую механизмы нативных системных вызовов), однако эмуляция - она таки эмуляцией остаётся, и оверхед вносит.


Отправлено Дядя Миша 19-01-2011 в 19:34:

Проще будет выложить сорцы. Потом.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 20-01-2011 в 03:55:

Да, выложи сорцы. Пусть товарищи линуксоиды сами напишут код FunctionFromName/NameForFunction для ELF-формата. Я когда волатилу портировал - кучу форумов обегал и товаищей опросил, никто толком не помог. В итоге написал сам, и фиг я этим кодом поделюсь теперь со славным линуксоидным комьюнити.

__________________

xaerox on Vivino


Отправлено LeXa2 20-01-2011 в 06:47:

Цитата:
XaeroX писал:
Я когда волатилу портировал - кучу форумов обегал и товаищей опросил, никто толком не помог.

Речь идёт о получении указателя на функцию в solib по её имени и обратном преобразовании типа указатель -> solib/название функции? Если оно так, то неудивительно, что вышеозначенное комьюнити толком помочь не смогло - красноглазые громкоголосые гордецы, увы, редко когда в деталях знакомы с тем, как работает ld-linux.so, и уж тем более с подробностями о формате ELF/solib и процессе relocate. Дальше dlsym большинство т.н. линуксоидов вряд ли что подсказать сможет. Тут реально ИМХО проще самому вкуривать исходники libc и libelf и потом реализовывать нужный функционал.


Отправлено XaeroX 20-01-2011 в 07:28:

LeXa2
Да, именно об этом.

Цитата:
LeXa2 писал:
Дальше dlsym большинство т.н. линуксоидов вряд ли что подсказать сможет.

Ну отчего же, подсказали смотреть сорцы nm (как бы кэп), и даже дали их.
Правда, я в них ничего не понял. В итоге пришлось читать детальное описание elf-формата и вот уже на основе него...

Добавлено 20-01-2011 в 13:28:

Хотя этот формат несколько проще PE/COFF, что порадовало.

__________________

xaerox on Vivino


Временная зона GMT. Текущее время 17:58. Страницы (9): [1] 2 3 4 5 » ... Последняя »
Показать все 122 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024