LINUX.ORG.RU

Сообщения a1batross

 

Почти переехал на ARM, не знаю зачем

Доброго времени суток.

На фотографии можете созерцать два Android-девайса с загруженными на них GNU/Linux.

Собственно, что за устройства(слева направо):

  • NVIDIA Shield Tablet с Tegra K1 SoC;
  • Razer Forge TV с Qualcomm Snapdragon 805.

Недавно приобрёл к планшету чехол с встроенной клавиатурой. Клавиатура самобытная, китайцы ничего лучше не придумали, как напихать клавиши куда попало. Поработать за таким не получится, по крайней мере я не привык, а вот побездельничать сёрфя интернеты или упорно печатать текст, вроде лекций, можно. Для таких целей хватает старенького порта Linux4Tegra с Ubuntu 14.04. Возможно, в свободное время займусь тем, чтобы обновить и поставить что-то более адекватное к тачскрину, чем Unity. Помнится, разработчики одного DE всё с пеной у рта утверждали, что разрабатывали DE под тач. Вот выдалась и возможность проверить их заявления.

Пишу я сюда, собственно, из-за второго устройства. На него я GNU/Linux водрузил своими собственными силами. Мне повезло, что system раздел оказался размером ровно 1 ГБ, поэтому я радостно туда распаковал stage3 и пошёл править boot.img. Вырезал оттуда всё, а вместо добавил busybox и простой init-скрипт. К счастью, в девайсе есть Ethernet, поэтому в качестве отладки в busybox были вкомпилены сетевые утилиты и telnetd. Поэтому в случае ошибки, скрипт поднимал сеть и запускал telnetd. Таким образом мне удалось выяснить, что немодифицированного ядра от Android прошивки не хватает, поэтому я выкачал сорцы и собрал своё ядро с включенным devtmpfs. И о чудо, Gentoo корректно загрузилась. Впоследствии я заменил Gentoo на Arch Linux ARM проведя ровно ноль изменений над boot разделом. Для работы WiFi достаточно было вернуть на место все фирмвари из Android прошивки. Графику не проверял, поскольку с мониторов с Hipster's Dumb Media Interface(HDMI), не имею и приобретать конвертеры или мониторы желания тоже нет.

Сейчас девайс имеет запущенный Xash3D FWGS сервер из под NAT(между прочим, в движке есть поддержка обхода некоторых видов NAT) и tuntox, чтобы так же иметь доступ по SSH из других сетей. Есть желание найти/написать бота, который бы таймеру проверял содержимое файла по HTTP и при его изменении писать в Telegram канал.

P.S. Да, снимал на тапок.

P.P.S. Вот же приспичило написать на ЛОР ровно в тот момент, когда на главной висит другое ARM устройство. :)

>>> Просмотр (1280x960, 215 Kb)

 , , , ,

a1batross ()

Пишу новое меню для 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-битных ОС.

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

>>> Просмотр (1920x1080, 895 Kb)

 ,

a1batross ()

Samsung Z300F на Tizen. Свобода без свободы действий

Пришёл ко мне вчера Samsung Z3, благодаря этому конкурсу.

Сам девайс, что характерно, получил без какой-либо упаковки. Просто смартфон, запакованный в пупырчатый полиэтилен, который завёрнут в картонку.

Личные ощущения от аппарата пока только с «потребительской» стороны, тем не менее, положительные. Шустрый GUI, разумное использование аккумулятора, обязанности телефона выполняет на ура. И выглядит как привычный гнусмасовый Android, что хорошо для тех, кому не хочется привыкать к новой ОС. Есть забавная фича смены цветов. Ну хоть от вырвиглазного синего можно избавиться.

А вот покопаться в системе, попробовать скомиплировать первое приложение у меня ещё не удалось. А почему? Потому что заголовок. А конкретно: на данном устройстве предустановленный Samsung KNOX и нескучный российский MDM, который не даёт доступа по SDB (тизеновый форк Android ADB), а в Tizen Recovery даже нет нескольких пунктов, всего лишь ребут и сброс. Снимать дамп прошивки пока ещё не пытался. Выведать какой-либо ключ к устройству тоже не вышло, уважаемый организатор молчит по почте. Ну да ладно, всего один день прошёл. :)

Тэг enlightenment тут стоит не зря. Судя по SDK, в этой системе очень сильно используется известный E17. Конечно, я уже начитался о том, как создать здесь OpenGL|ES контекст. Наверное, вы подумали о libEGL и прочем, но нет. libEGL тут часть приватного API, а для разработчика есть некий Evas GL, который и есть часть упомянутого E17.

Такие дела. Надеюсь, в следующий раз выложу скрин уже с каким-нибудь портированным под него софтом.

>>> Просмотр (3600x2560, 2306 Kb)

 , ,

a1batross ()

Xash3D на SDL2: Го, я создал!

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

Что изменилось с прошлого поста? Честно говоря, очень многое. Начиная с того, что теперь есть организация на Github, заканчивая тем, что теперь Half-Life работает под Android.

Собственно, про порт на Android я и хочу рассказать. Спасибо товарищу Unc0nnected/nicknekit с форума cs-mapping.com.ua, который, пока я дорабатывал порт нового Xash3D, запустил старый порт на андроиде. Вот с тех пор, я, он и, с некоторых пор, mittorn занимаемся портом HL на эту мобильную платформу. Конечно, работа далеко от идеала — отсутствует сенсорное управление. В целом, с клавиатуры играть можно, поддержка джойстика пока неполная. А под линуксом так уже давно можно пройти HL полностью.

На скрине видно, что под линуксом с портом создан сервер, к которому присоединились клиенты с Android и оригинального Xash3D под Wine. Эта возможность нашлась совершенно случайно, когда я исправлял баг обнаружения серверов в локальной сети.

Я не хочу говорить, что сетевая игра под Xash3D идеальна. Она есть, но недоделана. В частности, из-за отсутвующего предиктинга, о чём говорит и сам автор движка.

Кому интересно, вот APK. Ресурсы игры можно взять прямо из стимовской версии, просто скопировать папку valve в /sdcard/xash/. А, ну и наложить сверху вот этот архив.

>>> Просмотр (1600x1380, 1986 Kb)

 , , ,

a1batross ()

Xash3D на SDL2

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

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

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

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

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

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

>>> Просмотр (1600x900, 849 Kb)

 , ,

a1batross ()

Учим С++ в последние дни каникул

Добрый вечер, ЛОР. У меня для вас тот же KDE4, тот же Gentoo. Все же постарался сделать получше, чем предыдущий мой скриншот. Чем я на данный момент занимаюсь? Потихоньку учу С++ по книге Г. Шилдта, в то же время переписываясь в Jabber и слушая приятную музыку.

Итак, что же я сделал с прошлого своего скриншота:

  • Перенес панель влево, аки Unity. Просто потому что так удобнее и места меньше занимает. Трей и часы переехали в правый угол и появляются по наведению мыши.
  • Jabber-клиент заменил на Psi+, так как мультипротокольность мне не нужна. Оказался шустрее и удобнее.
  • Одна крылатая единорожка заменена на другую. (Haters gonna hate!) К сожалению, более высшего разрешения не нашлось, приходится смотреть на растянутый JPEG.
  • Поменял скин у Steam подходящий под цветовую гамму.
  • Clementine пришел на смену DeaDBeeF. Только потому что нужен был быстрый поиск. На деле же еще пригодилась функция музыкальной коллекции, добавлять в общий плейлист стало удобнее.
  • Использую Kate в качестве редактора. Да, никаких заумных vim и прочее, просто очень лень запоминать клавиатурные аккорды, привыкать.
  • PT Sans Caption в качестве основного шрифта.

Два остальных скриншота: Steam, Clementine. И PNG оригинальной для любителей.

И все это работает под KDE 4.10.0 и Linux 3.10.9-geek. А послезавтра мне уже в школу, 10-ый класс. =)

>>> Просмотр (1600x900, 318 Kb)

 , ,

a1batross ()

Удобное KDE и любимый Gentoo

Примерно с два месяца я поменял дистрибутив с Debian на Gentoo. Он гораздо удобнее и быстрее, чем Debian, при этом даже в KDE ощущается различие по скорости.

  • KDE: 4.9.4
  • ШГ: Liberation Sans
  • Иконки: KFaenza
  • Оформление окон: Elementary

В качестве Jabber-клиента используется Pidgin, а браузера - Mozilla Firefox и luakit.

>>> Просмотр (1600x900, 305 Kb)

a1batross ()

CrunchBang: Почти идеал

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

Обоина: CLI commands Conky: Допиленный дефолт Браузер: Chrome, в котором можно увидеть локальный форум, LOR, MotoFan и YouTube с очередной серией My Little Pony Джаббер: Psi Шрифты: Liberation Sans(на моем экране прекрасны) Открыт Skype, DeaDBeeF, Chrome, Psi и Terminator

Критикуйте!

>>> Просмотр (1600x900, 402 Kb)

 ,

a1batross ()

RSS подписка на новые темы