LINUX.ORG.RU

Немного исправленный квейк 2

 


3

3

У меня вейленд без xwayland, и мне захотелось поиграть в quake2. Для начала нашел единственный работающий порт (games/quake2lnx) — тот вариант, что лежит на сайте icculus.org.

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

Я взял и выпилил все лишнее, а часть работающую на sdl 1.2 перевел на sdl2. В итоге на вейланде игра заработала. Олсо, теперь она компиляется более-менее без варнингов на clang и gcc.

Код q2 — просто ад, куча выходов за пределы массива, куча глобал стейта, размазанного по коду итд. Обнаружил сдедующие проблемы:

1) В софтварном рендерере падение при отрисовке прозрачных поверхностей (не пофиксил, просто выключил).

2) Там же баги при отрисовке, когда камера под водой (пофиксил).

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

4) Падение при выводе звука, если вывод графона притормаживает (пробовал запускать через remmina).

А тут на тебе, поменял работу, так что комплюктеры больше видеть не могу))) Поэтому выкладываю как есть и жду пул реквестов. Игра играбельна при использовании OpenGL рендерера (который по графену сильно уступает софтварному, на мой взгляд).

https://github.com/shamazmazum/quake2sdl

Устанавливаете, а потом ставите оригинальный pak0.pak в /usr/local/share/quake2/baseq2 (или /usr/share/quake2/baseq2, смотря куда ставили игру) При компиляции с -DRETEX=ON ставите другие паки отсюда http://icculus.org/quake2/files/. При компиляции с -DQMAX=ON ставите maxpak.pak в /usr/local/lib/quake2sdl/baseq2

Для FreeBSD есть порт https://github.com/shamazmazum/freebsd-ports/tree/master/games/quake2sdl (скопируйте в /usr/ports/games)

Ответ на: комментарий от the_real_kinik

E680 это не P2K, P2K это их собственная операционная система была. E680 работал на форке Linux, с RT-патчами, который назывался HardHat или же просто MontaVista Linux. А поверх ядра была оболочка прикладного ПО, которая называлась EZX.

И E680 это второе поколение Linux-телефонов для ARM, первым был, например, A760 а это, на минуточку, 2003 (!) год. Это первый телефон который использует Linux в мире.

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

Не, ARM доминировал давно. У Motorola было несколько собственных мобильных процессоров вроде DragonBall EZ – наследие легендарного Motorola 68000K и ещё у них была сумрачная RISC-архитектура M·CORE, которая до 2005 года была очень сильным конкурентом для ARM, но в итоге все полимеры были просраны, Motorola Semiconductor выделена во Freescale, а подобные разработки забыты.

Спасибо, скачал исходные коды для E680

А где скачал-то? Тут? https://sf.net/motorola

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от EXL

Удивительно, сколько у них было передовых разработок. Жаль, что компании, фактически, больше не существует.

А где скачал-то? Тут? https://sf.net/motorola

Да. Там только opensource компоненты их ОС, как оказалось. Исходники P2K закрыты, получается?

the_real_kinik ★★
()
Ответ на: комментарий от EXL

Спс)

Я в неё особо не шпилил, но наблюдать в разных злачных местах доводилось. А интро увидел на какой-то выставке, тогда они были в тренде и я их активно посещал в перерывах между ночными зависаниями в разных злачных местах.

Deleted
()
Ответ на: комментарий от the_real_kinik

Там только opensource компоненты их ОС, как оказалось.

Да. У Motorola, увы, тивоизация была во все поля. То есть они открывали ядро, кучу системных утилит, компиляторы, webkit и прочее, но их прикладной фреймворк основанный на Qt 2 был закрыт, доступного SDK для обычных разработчиков не было тоже. Поэтому лет 15 назад на форуме MotoFan.Ru существовала особая хакерская романтика – реверсить прикладные so-либы и делать на их основе собственные программы для этих телефонов.

Исходники P2K закрыты, получается?

Да.

Удивительно, сколько у них было передовых разработок.

Ага, один Motorola A830 чего стоит. Наверное первый телефон с 3G-видеозвонками. Так просрать все полимеры, как Motorola, это надо уметь. У них был шанс монопольно выпускать CPU для IBM PC и кто знает, может быть сегодня вместо костыльного наследия x86 была бы адекватная архитектура: https://habr.com/ru/post/406077/

EXL ★★★★★
()
Ответ на: комментарий от EXL

это надо уметь

Делается это просто до охреневания.

Deleted
()
Ответ на: комментарий от Deleted

А меня почему-то интро и демки Quake II всегда цепляли. Видимо с той поры, как их в конце 90-ых крутили в компьютерных магазинах.

https://www.youtube.com/watch?v=1qT7_yFcOpA

И, кстати, в Quake II тоже ведь офигенный soundtrack от Sonic Mayhem, в частности Quad Machine вообще шикарный получился:

https://www.youtube.com/watch?v=Z6VpX-feA2M

EXL ★★★★★
()
Ответ на: комментарий от EXL

Кста, интро кью2 никогда до этого не видел. Спс)

Deleted
()
Ответ на: комментарий от Deleted

и кусков из win2k

я смотрел оттуда сорцы notepad, меня удивило, что он был написан на native api.

vvviperrr ★★★★★
()

Код q2 — просто ад, куча выходов за пределы массива, куча глобал стейта, размазанного по коду итд.

Потому что целью было написать прогу, а не подрочить на best practices (и в них завязнуть).

anonymous
()

Играю иногда в игры так - ищу на https://www.youtube.com/ video прохождения игры ... /обычно просмотр игры занимает не более трех минут/.

anonymous
()
Ответ на: комментарий от Deleted

Это ты ещё не видел кода кью4

А его разве выложили? Я как-то раз ковырял код движка Doom3 (у Q4 он же, вроде), и это, пожалуй, чуть ли не самый читаемый код на плюсах что я видел.

hateyoufeel ★★★★★
()
Ответ на: комментарий от EXL

кажется запуск игры в оконном режиме вместо полноэкранного.

Там при маленьких разрешениях ещё работает, а на современных — нет. Но я даже у себя это пофиксил

deadplace
() автор топика
Ответ на: комментарий от WitcherGeralt

Вот потому я и отметил в этой теме, что кому-то нравился программный рендеринг в Quake II, кому-то мыльно OpenGL’ый. Моё мнение просто совпало с мнением ТС.

EXL ★★★★★
()
Ответ на: комментарий от EXL
https://github.com/id-Software/Quake                       Just kind of shoving the QuakeWorld QuakeC source in here

https://github.com/id-Software/Quake-2                     Quake 2 GPL Source Release

https://github.com/id-Software/Quake-III-Arena             Quake III Arena GPL Source Release

https://github.com/id-Software/DOOM-3-BFG                  Doom 3 BFG Edition

https://github.com/id-Software/DOOM-IOS2                   Doom Classic for iOS version 2

https://github.com/id-Software/DOOM-3                      Doom 3 GPL source release

https://github.com/id-Software/RTCW-SP                     Return to Castle Wolfenstein Single Player GPL Source Release

https://github.com/id-Software/DOOM                        DOOM Open Source Release

https://github.com/id-Software/wolf3d-browser              WOLF3D Browser Version GPL source release

https://github.com/id-Software/DOOM-iOS                    DOOM Classic for iOS Source Release http://iphone.keyvisuals.com/apps/doom-classic-for-iphone-source-code-available/

https://github.com/id-Software/Quake-Tools                 The source release of the Quake tools and utilities

https://github.com/id-Software/idsetup                     This is the source for the setup program included with DOOM, Final DOOM, Strife, etc.

https://github.com/id-Software/Quake-2-Tools               Quake 2 Tools GPL Source Release

https://github.com/id-Software/GtkRadiant                  GtkRadiant GPL Source Release

https://github.com/id-Software/Enemy-Territory             Wolfenstein: Enemy Territory GPL Source Release

https://github.com/id-Software/RTCW-MP                     Return to Castle Wolfenstein Multiplayer GPL Source Release

http://fd.fabiensanglard.net/quake3/The-Quake-III-Arena-Bot.pdf

https://habrahabr.ru/post/170139/                          Обзор исходного кода Quake 3: Архитектура (Часть 1)
https://habrahabr.ru/post/330818/                          Исходный код Quake III

https://github.com/graphitemaster/gmqcc                    An Improved Quake C Compiler
anonymous
()
Ответ на: комментарий от anonymous

Осталось понять, зачем ты это запостил мне в ответ.

EXL ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.