LINUX.ORG.RU

Сообщения AMDmi3

 

Незаконный контент в популярных свободных играх

Новости — Игры
Группа Игры

Вместе с радостной новостью о завершении работ над 3D action игрой Blob Wars: Blob And Conquer (выход финальной версии 1.0) и грустной новостью о прекращении деятельности студии Parallel Realities (создатели популярных свободных игр Blob Wars: Metal Blob Solid, Blob Wars episode 2: Blob And Conquer, Project: Starfighter и Virus Killer), на форуме Linux Game Tome был поднят вопрос о наличии несвободного (а точнее, взятого из коммерческих игр) контента в названных играх. Как выяснилось, автор просто нашел некоторые звуки/текстуры/музыкальные композиции в сети. В связи с этим maintainer'ам соответствующих портов/пакетов под Fedora Core, Debian, Ubuntu, Gentoo, FreeBSD, OpenBSD и NetBSD было отправлено предупреждение с просьбой удалить пакеты, дабы обезопасить дистрибутивы от возможных претензий со стороны правообладателей.

Исходники игр по прежнему доступны с parallelrealities.co.uk и убирать их не планируется, но пакеты уже удалены из большинства дистрибутивов. Урок на будущее: не берите контент из непроверенных источников.

>>> Тред на форуме happypenguin.org

 ,

AMDmi3
()

Eagle Mode

Галерея — Скриншоты

Наткнулся вот на сабж, думаю стоит о нем рассказать.

Eagle Mode представляет из себя DE+WM+GUI Toolkit с очень интересным подходом к организации пользовательского интерфейса. Основная мысль в том, что пользователь можен неограниченно приближать любую область (огромного) рабочего пространства, на котором размещены приложения. Соответственно, окон нет - все виджеты вложены друг в друга (два окна на скрине - окна Ion-3 - хотел побольше показать).

Итак, концепция zoom. Есть, например, кнопка New. Подсказка к ней написана на ней самой, очень мелким шрифтом. Приблизил - почитал.

Есть файловый менеджер (он изображен на скрине). Визуально представляет собой прямоугольник с информацией о корневом каталоге, со списком подкаталогов. `Наезжаем' на подкаталог - становится видно его содержимое. Zoom in -> идем глубже. Для текстовых файлов показывается текст, для изображений - соответственно изображение и т.д (также поддерживается видео через libxine), все это также можно приближать. Для неизвестных форматов файлов показывается hexdump файла - феерическое зрелище.

Другой пример - часы. На скрине видно их целиком. Прямоугольник под стрелками слева - будильник, можно приблизиться к нему и настроить. Если приближать шкалу, единицы меняются на более мелкие. Если приблизить карту мира, на ней точками покажутся города, если приблизиться к точке - окажется, что она тоже часы, показывающее соответствующее время :)

Насчет практической ценности em не уверен, но поиграться стоит определенно. В комплекте кроме FM и часов есть смотрелки фракталов, 3D minesweeper, шахматы, тестовая панель с логом событий и демонстрацией виджета, бесконечно вложенного в самого себя, и читалка документации. Собирается из исходников на раз (perl build.pl), из зависимостей только perl, иксы и опциональные jpeg/png/tiff/xine. Что интересно, GL не используется, т.е. antialiased векторная графика рендерится в software. При этом на моем p4-1.7 512Mb летает довольно шустро (хотя в системных требованиях у нее 3.4Ghz и гиг памяти).

Исходники - http://eaglemode.sourceforge.net, порт для FreeBSD скоро будет в PR'ах.

>>> Просмотр (1280x1024, 280 Kb)

AMDmi3
()

Phun 3.12

Новости — Игры
Группа Игры

Phun - "песочница" с 2D графикой и реальной физикой.

Позволяет создавать из примитивов (круги, прямоугольники, объекты произвольной формы) различные инсталляции и механизмы, соединяя их осями и пружинами, и пробовать в работе. Можно задавать параметры материалов (плотность, коэффициент трения), использовать двигатели, поддерживается симуляция жидкостей.

Автор планирует открыть исходники, но пока не сообщает, когда и под какой лицензией.

>>> Подробности

 

AMDmi3
()

Линкер, не удалять неиспользуемые классы

Форум — Development

Есть программа на C++ в виде статической либы и фронтэнда. У нее есть плагины, которые тоже используют эту либу (но, понятное дело, не линкуются с ней). В либе есть класс, который используется только в плагинах. Проблема в том, при линковке фронтенда этот класс выкидывается (линкер думает, что раз он нигде не используется, то не нужен). Как ему сказать, чтобы он этого не делал?

И заодно - насколько корректен такой подход к плагинам - делать .so, использующее символы, определенные в другом месте? Это будет собираться, скажем, на Windows? Или лучше сделать либу динамической и все (и фронтенд и плагины) линковать с ней?

>>>

AMDmi3
()

Hugin, не получается склеить фотографии

Форум — General

Hugin 0.6.1 никак не получается склеить фотографии. Даже если делать так, как у них в самом простом примере на сайте, с теми же фотками, настройками и контрольными точками - при optimize получаются совершенно бредовые значения - yaw/pitch/roll либо 0 либо 1000.0 либо вообще непойми что, еще часто пишет что view (v) очень маленький и результаты скорее всего неправильные. Во второй вкладке (lens кажется), fov после optimize становится либо отрицательным, либо 1 (даже если в optimize не выбрано оптимизировать v). Кто-нибудь сталкивался? Что за бред?

>>>

AMDmi3
()

Начато тестирование Linux клиента EVE Online

Форум — Games

На форуме игры EVE Online (космическая 3D MMORPG) появилось сообщение от разработчиков (компания CCP) с предложением протестировать новые игровые клиенты под Linux и MAC (до сих пор существовал только Windows клиент, который, впрочем, сносно работал под wine). К сожалению, данная возможность доступна только зарегистрированным игрокам.

http://myeve.eve-online.com/ingameboard.asp?a=topic&threadID=574782

AMDmi3
()

64 бита в выражении с unsigned short'ами

Форум — Development

Допустим есть такой код:

float op(float a, float p, float q) { return a * p * q; }

a, p, q дробные числа в диапазоне [0, 1]

нужно реализовать то же самое, но с unsigned short, т.е. fixed point:

u_int16_t op(u_int16_t a, u_int16_t p, u_int16_t q) { return a * p * q / (65535UL * 65535UL); }

я думал, что по логике оно должно без проблем скомпилиться в что-то типа:

mov ax, [arg_a] ; ax = a mov dx, [arg_p] ; dx = p imul dx ; dx:ax = a*p xor ecx, ecx mov cx, [arg_q] ; ecx = q imul ecx ; edx:eax = a*p*q idiv 0xfffe0001 ; eax = a*p*q/(65535*65535), edx = остаток ret ; результат в eax

Но op упорно возвращает 0 вместо 65535. Помогает смена типа аргументов на u_int64_t (с u_int32_t тоже возвращает 0).

Должен ли компилятор автоматически расширять операнды до 64 бит? Можно как-то заставить gcc (а в идеале, любой компилятор) юзать эти 64 бита? Или надо явно указывать преобразование в u_int64_t? Думаю, мне будет полезно посмотреть код какого-нибудь alpha blending'а в 16битах, никто не знает библиотеки, реализующей подобное?

AMDmi3
()

Hero of Allacrost demo 2.0

Новости — Игры
Группа Игры

Вышла вторая демо-версия проекта Hero of Allacrost - однопользовательской 2D RPG с геймплеем в стиле Final Fantasy VI и Chrono Trigger.

Проект отличителен командой, включающей профессиональных художников и композиторов, поэтому по оформлению игра вполне сравнима с коммерческими продуктами.

Demo 2.0 содержит 2 локации, демонстрирующих возможностей общения с NPC и, конечно же, сражений.

>>> Подробности

AMDmi3
()

поддержка юникодной локали ncurses приложением

Форум — Development

Как правильно организовать сабж?

Делаю банальный wgetnstr, при этом при вводе русских букв на терминал помимо них echo'ется мусор. В 8bit локали все нормально. Как побороть? Я вот встречал кое-где упоминания wgetn_wstr, даже man на нее есть, но grep по /usr/include ничего не дает, аналогично grep по strings /usr/lib/libncurses.so.

AMDmi3
()

паноптикум

Галерея — Скриншоты

На скриншоте можно наблюдать: FreeBSD 6.1, пропатченный ion3. В ион добавил поддержку 9 кнопочной мыши, округлые табы и возможность создавать несколько dock'ов (мне нужно два для двух gkrellm'ов слева и справа, чтобы мониторить эту машину и локальный сервер соответственно. Dock'и появляются по Alt+Space). По косвенным признакам можно догадаться о наличии mpd, который управляется ncmpc/sonata/ion'овскими скриптами в зависимости от настроения. Играет музыка из sauerbraten :)

Остальное - мои проекты. По часовой стрелке:

zenitka - клон паратрупера. Быть может кто-то ее видел под виндой - оригинальная версия была написана в 2000 году Ильей Пылёвым на Delphi/DelphiX под Windows. Ее сайт давно мертв и игра забыта, но я как-то наткнулся вот на это: http://happypenguin.org/show?Paratim, ужаснулся и вспомнил о зенитке. Выклянчил у автора исходники и переписал на C/SDL. Альфа версия, но играбельно, надо только дописать меню и highscores и выпускать в свободное плавание. http://sf.net/projects/zenitka.

wings3d - редактор lowpoly 3d моделей. К его разработке я отношения не имею, просто поставил поиграться. Понравилось, обновил FreeBSD'шный порт до последней версии, потом почему-то возникло желание сделать еще и локализацию, хотя вообще русские слова в интерфейсе мне отвратительны. Переводить там много, но результат уже видно. Кстати, работать в wings одно удовольствие - я моделлингом почти не занимался, но за пару часов освоился и сваял вот такую помесь терминатора и хедкраба и еще десяток моделей.

И, наконец, нашумевшая gaia. Разработка медленно, но продолжается. Интерфейс на Qt4. User-visible функциональности пока, увы, почти никакой. http://sf.net/projects/gaia-clean

Вот так. Времени катастрофически не хватает, а сделать хочется очень многое. Тем и живем.

>>> Просмотр (1280x1024, 275 Kb)

AMDmi3
()

QT, splitter, относительный размер виджетов

Форум — Development

Qt 4.2.2, окно на основе QSplitter. Слева - свой виджет на основе .ui с различнми контролами, справа - QGLWidget. Проблема в том, что не получается никакими средствами заставить виджет с контролами принять по умолчанию минимальный размер.

StretchFactor установлен 0/1, пробовал все что можно - и все комбинации sizePolicy, и вручную вызывал resize - пофик, хоть убейся, но виджет с контролами раза в 1.5 больше чем мог бы быть. При этом, двигая сплиттер, его можно ужать до меньшего размера без проблем.

Что делать?

AMDmi3
()

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