LINUX.ORG.RU

Half life


10

5

Всего сообщений: 4

Azure Sheep на Xash3D

Решил я протестировать Blue Shift Unlocked на Xash3D. Мод не заработал на Xash3D. Вольво в GoldSrc на Blue Shift что-то наворотили при этом никаких фишек не принёс (HD-pack не в счёт, потому что HD-pack есть и в ванильной Half-Life). В общем Blue Shift не помешала бы адаптация аля Enriched под Xash3D.

Потом я вспомнил про Azure Sheep. Azure Sheep в отличии от Blue Shift без проблем заработал на Xash3D Linux. Произошёл какой-то баг: по какой-то причине в шкафчике Джастина Барнса (который главный герой Azure Sheep) пропала броня.

64-битный Q4OS. Я уважаю Xash3D.

 ,

ConLenov
()

Добро пожаловать в Сити 17!

Так получилось, что на днях мне наконец доставили Valve Index, предзаказанный ещё в начале марта. Как раз к выходу нативной линуксовой версии Half-Life: Alyx!

Решил тут кратко описать впечатления от железа и софта, на случай если кого-то интересует насколько все эти VRные дела сейчас юзабельны под линуксом. До этого опыта с VR у меня не было вообще.

( читать дальше... )

 , , ,

im-0
()

Пишу новое меню для Xash3D FWGS

Примерно полгода занимаюсь разработкой новой меню библиотеки для движка Xash3D FWGS. Причины того просты для любого, кто когда-либо читал исходный код старого меню — работать с ним возможно, но очень сложно. Растёт оно ещё из Quake II, где глубоко уважаемый Джон Кармак не тратил много времени на написание игровых меню, которое в свою очередь растёт из Quake I. И наверное правильно делал, тогда это банально не ценилось, вплоть до Doom III.

Изначально идея была в том, чтобы перенести код с чистого Си на С++, но как и бывает — многие моменты пришлось переосмыслить и внести нововведения. Вот о них я и постараюсь рассказать.

  • Добавлены ивенты, чтобы задавать действия разным контролам, вместо их обработки по захардкоженным ID, в которых можно ошибиться и вообще.
  • В старом меню никакой системы элементов-родителей. Всё было статично и захардкожено. Я внёс новый элемент управления, который может содержать в себе другие элементы управления. Развив эту мысль появилась даже очень упрощенная система окон. (в правом верхнем углу видно список текущих окон)
  • mittorn-ом был написан очень красивый прогресс подключения к серверу, который в свою очередь и является окном. Его можно увидеть в видео по ссылке ниже.
  • Каждое окно имеет возможность отрисовать свою анимацию. В главной ветке я реализовал плавной смены прозрачности между окнами для соответствия с анимацией старого Half-Life. Для демонстрации я писал такое
  • Старое меню использовало моноширинные шрифты родом из Quake III Arena. Я от них наконец полностью избавился, как и от кода а-ля
    width = charWidth * strlen( sz )
    , заменив собственным шрифторендером. Под Windows используются возможности GDI, для всех остальных есть FreeType2 и stb_truetype.h рендеры. Поддержка последнего была добавлена специально для мобильных устройств, дабы не тащить по зависимостям достаточно крупный FreeType2. ШГ осталось, но всё-таки меньше, чем было.
  • Из предыдущего пункта вытекает и этот. Ранее таблицы эмулировались кучей отступов из пробелов, а каждый пункт таблицы был всего-лишь очень длинной строкой. Поэтому я написал настоящие таблицы, которые могут отображать не только текст, но и картинки. В будущем хочу добавить фичу отрисовки даже контролов внутри ячеек. Собственно, это и на скрине.
  • Динамически построенные меню! На основе так называемых Script Config-ов строится вот меню конфигурации. Сами конфиги пишутся моддерами и вообще эта фича присутствует начиная с самых ранних версий GoldSource и есть даже в движке Source. Про Source 2 не знаю, игр на нём ещё нет(DotA2 за игру не считается). Пример.
  • Возможность настроить положение, стиль и ограниченно логику контролов через resource-файлы. Пример.
  • Так же в планах написать поддержку переводов, дабы не оставаться с текстом, как в скриншоте выше.

Поскольку я хочу, чтобы мой код попал не только в форк движка, но в оригинальный Xash3D, а его автор(Дядя Миша) требует возможность сборки с MSVC 6, я сделал опцию сборки с отключенным требованием С++11. Собрать его можно задефайнив макрос MY_COMPILER_SUCKS.

А при чём тут Linux? Меню написано для форка игрового движка, который почти 3 года как работает под Linux. А ещё под кучей других платформ, вроде Windows, Android, *BSD, OSX, iOS. Недавно благодаря тому же mittorn появилась даже поддержка запуска сервера под Big Endian платформами и улучшена поддержка 64-битных ОС.

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

 ,

a1batross
()

Xash3D на SDL2

Доброго времени суток, ЛОР. На этот раз я не пришел показывать вам свой десктоп, рабочий стол или как вам угодно это называть, поэтому заранее извиняюсь за оскорбленные чувства прекрасного.

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

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

В целом, сейчас работают уже многие вещи: рендеринг графики, звук, ввод с клавиатуры и мыши, поэтому проехать на поезде с c0a0 до c0a0e возможно, но дальше уже ничего не сделаешь. Неведомым мне образом не работает половина скриптов, поэтому Барни просто не открывает вам дверь поезда, а жидкости выглядят... ужасно. Короче говоря, работы еще много и очень много.

После того, как движок будет адекватно работать со стимовскими библиотеками, обрабатывать AVI видео, MP3 и так далее, у меня в целях или отвязывание клиентской библиотеки и движка от VGUI(благо, вся она есть прямо в репе вальвы в SDK, ибо откомпилированная оттуда она работает), или написание собственного VGUI. А все для чего — я всего лишь хочу поиграть в старую добрую халфу на Android. В первом случае я потеряю совместимость со многими модами(если еще не потерял, лол), а во втором не потеряю и будет чем гордиться.

Ну и это, исходный код у меня на гитхабе и битбакете, а Славя — няшка. :3

 , ,

a1batross
()