Проект переноса Half-Life на Linux

Для тех, кто хочет сделать мир лучше.
Сообщение
Автор
Fire666
Эксперты no-Steam
Эксперты no-Steam
Сообщения: 2600
Зарегистрирован: 15.02.2007
Откуда: Москва
Благодарил (а): 2 раза
Поблагодарили: 43 раза
Контактная информация:

#1 Сообщение 03.09.2012, 17:46

Уважаемые товарищи, сообщаю вам о создании проекта по портированию игрового движка Xash3D Engine (OpenSource клон GoldSRC) на Linux платформу.

На данный момент портированы:
  • game launcher
  • game menu
Проект размещен по адресу: http://code.google.com/p/xash3dlinux/

Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#2 Сообщение 03.09.2012, 17:54

Там ничего нет. Размести чтоли сам Xash3D Engine для начала %)
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

Fire666
Эксперты no-Steam
Эксперты no-Steam
Сообщения: 2600
Зарегистрирован: 15.02.2007
Откуда: Москва
Благодарил (а): 2 раза
Поблагодарили: 43 раза
Контактная информация:

#3 Сообщение 03.09.2012, 18:04

Ок, вот сам движок и исходники: http://www.hlfx.ru/xash/Xash3D_build2015.rar

Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#4 Сообщение 03.09.2012, 18:07

Уф, а что за *.dsp-мейкфайлы?
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

Fire666
Эксперты no-Steam
Эксперты no-Steam
Сообщения: 2600
Зарегистрирован: 15.02.2007
Откуда: Москва
Благодарил (а): 2 раза
Поблагодарили: 43 раза
Контактная информация:

#5 Сообщение 03.09.2012, 18:19

NiGHt-LEshiY писал(а):Уф, а что за *.dsp-мейкфайлы?
Как это что, это файлы проекты для Visual C++ 6.0

Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#6 Сообщение 03.09.2012, 18:30

Ок, это я понял. Не дописал предыдущий пост.. Хотел спросить, как их можно конвертнуть во что-то читаемое? В обычный мейкфайл, например.
Ну или просто - как их интерпретировать? Ничего ж не ясно.
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

Fire666
Эксперты no-Steam
Эксперты no-Steam
Сообщения: 2600
Зарегистрирован: 15.02.2007
Откуда: Москва
Благодарил (а): 2 раза
Поблагодарили: 43 раза
Контактная информация:

#7 Сообщение 03.09.2012, 18:37

NiGHt-LEshiY, я использую Code::Blocks, он нормально конвертирует проекты, но правда не в мейкфайл, а свой формат.

Пример:

Код: Выделить всё

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<CodeBlocks_project_file>
	<FileVersion major="1" minor="6" />
	<Project>
		<Option title="game" />
		<Option pch_mode="2" />
		<Option compiler="gcc" />
		<Build>
			<Target title="default">
				<Option output="game" prefix_auto="1" extension_auto="1" />
				<Option type="0" />
				<Option compiler="gcc" />
				<Compiler>
					<Add option="-m32" />
					<Add directory="../common" />
				</Compiler>
				<Linker>
					<Add option="-m32" />
					<Add library="Xm" />
				</Linker>
			</Target>
		</Build>
		<Unit filename="game.cpp" />
		<Extensions>
			<envvars />
			<code_completion />
			<lib_finder disable_auto="1" />
			<debugger />
		</Extensions>
	</Project>
</CodeBlocks_project_file>
Насчет конвертера в мейкфайл, http://www.codeguru.com/cpp/v-s/devstud ... kefile.htm

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#8 Сообщение 03.09.2012, 20:43

А Xash3D, он совместим с оригинальным GoldSrc на уровне протокола? В смысле, можно ли на GoldSrc сервере играть?

Fire666
Эксперты no-Steam
Эксперты no-Steam
Сообщения: 2600
Зарегистрирован: 15.02.2007
Откуда: Москва
Благодарил (а): 2 раза
Поблагодарили: 43 раза
Контактная информация:

#9 Сообщение 03.09.2012, 20:50

MOZGIII, нет, только на бинарном уровне, т.е. dll от других модов прекрасно работают в этом движке.

В ксаше к тому же недописан предиктинг, так что при игре по сети возможны лаги.

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#10 Сообщение 03.09.2012, 21:26

Fire666
А как ты собираешься его портировать? Есть какой-то общий план, или главная идея?
Если пока не понятно можно посмотреть на то, как Valve свой Source портанули (например под Mac или, когда появится, под Linux... хотя сервер уже давно есть под линух).
Ещё, я не очень понимаю, как в таком порте обстоят дела с бинарной совместимостью с сторонними модовскими .dll - раз уж она там есть, то что с ней делать, пробовать портировать как есть для .so, или переписывать ту часть (раз уже она собственная реализация LoadLibrary)?

Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#11 Сообщение 03.09.2012, 21:34

А зачем оно нужно, если нет протокольной совместимости?
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

Аватара пользователя
Megalan
Разработчик
Разработчик
Сообщения: 335
Зарегистрирован: 02.04.2007
Благодарил (а): 1 раз
Поблагодарили: 29 раз
Контактная информация:

#12 Сообщение 03.09.2012, 21:57

MOZGIII писал(а):Fire666
А как ты собираешься его портировать? Есть какой-то общий план, или главная идея?
Если пока не понятно можно посмотреть на то, как Valve свой Source портанули (например под Mac или, когда появится, под Linux... хотя сервер уже давно есть под линух).
Ещё, я не очень понимаю, как в таком порте обстоят дела с бинарной совместимостью с сторонними модовскими .dll - раз уж она там есть, то что с ней делать, пробовать портировать как есть для .so, или переписывать ту часть (раз уже она собственная реализация LoadLibrary)?
Вальв в сурс встроили транслятор DirectX вызовов в OpenGL вызовы. Костыль, да. Бинарная совместимость вполне себе неплохая, вот краткий список:
These following mods is succesfully completed under Xash3D/Sing engines:

Point Of View
Snark Planet (demo)
Rumble
Lost In Black Mesa (HLFX version)
Ispitatel
Ispitatel II
Ispitatel IV
HLFX Single (demo)
Blue-Shift
Cleaner's Adventures
Uplink
Spirit 1.0, 1.3, 1.7 (demo maps)
HLFX 0.5 (demo maps)
Azure Sheep
Paranoia
Retribution
Invasion (increase max_tempents up to 1024 to prevent possible crashes)
Half-Quake 2: Amen
Half-Quake 3: Sunrise
Half-Quake
The Trap (toggle sv_fix_pushents to '0')
Gunman Chronicles
Black Ops

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#13 Сообщение 03.09.2012, 22:04

NiGHt-LEshiY
Мне интересно было-бы поупражняться в портировании игр под Linux. С точки зрения играть на этом деле - мне это вообщем-то не интересно (пока-что по крайней мере).

Fire666
Эксперты no-Steam
Эксперты no-Steam
Сообщения: 2600
Зарегистрирован: 15.02.2007
Откуда: Москва
Благодарил (а): 2 раза
Поблагодарили: 43 раза
Контактная информация:

#14 Сообщение 03.09.2012, 22:32

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

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

Задача состоит в другом, создать игровую платформу для Linux, чтобы разработчики модов, могли выпускать их не только под Win, но и под Linux.

Да и дальше будет уже легче, при необходимости сделать порт на Андроид.

В качестве образца, я использую частично Quake linux порт, частично декомпилированные файлы движка GoldSRC из Linux HLDS.

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

Все желающие принять участие, пишите ваше мыло в личку.

MOZGIII
Разработчик
Разработчик
Сообщения: 910
Зарегистрирован: 09.01.2009
Откуда: Переезжаю в /dev/null
Благодарил (а): 7 раз
Поблагодарили: 65 раз
Контактная информация:

#15 Сообщение 03.09.2012, 23:10

Megalan
Насчёт транслятора DirectX - это я знаю, но это то, что касается графики, там всё понятно, картинку нужно выводить и все дела. У нас вроде даже нету такой проблем здесь, так как тут и так OpenGL.

Добавлено спустя 1 минуту 34 секунды:
Fire666
Я пока даже не читал толком код... Но поучаствовать было-бы интересно.

Ответить