OK abieber@
Quake 2 was released 20 years ago
and this the anniversary update.
Tested with abieber@, bmercer@ and many others
fragging on an OpenBSD server.
Port changes:
- reworded README to more
prominently point at the
upstream documentation and
mentioning the 3.20 patch
which is needed for
multiplayer
Upstream changelog:
https://github.com/yquake2/yquake2/blob/master/CHANGELOG
OK abieber@
Port changes:
- bump version
- everything now lives under /usr/local/share/yquake2
this has been asked by upstream and outlined in
their porting guide that was created after
I started complaining that they want relative
paths between the binaries:
https://github.com/yquake2/yquake2/blob/master/stuff/packaging.md#where-you-should-put-the-executables
- adding a new wrapper for the quake2 binary
to cd into the port directory before executing it
as we provide no way for a binary to get its executable
directory
- drop the patch that hardcoded the executable directory
upstream accounted for us not supporting that feature
and defaults to returning cwd (./) instead of bailing
out with an error
- modified the q2ded rc.d script to account for the need
of changing the working directory before starting the
server
- note I am not providing a separate wrapper for q2ded
in /usr/bin on purpose - I don't see a need for running
it outside of the rc.d scripts for any reasons other
than debugging and that's rare enough that people can
just cd to the game folder themselves
- we can drop the Makefile compilation flag diff as
upstream took our patch
Upstream changelog:
Quake II 7.01 to 7.02:
- Fix several corner cases regarding render library loading. The game
should now always fall back to the OpenGL 1.4 renderer if the new
OpenGL 3.2 renderer can't be initialized. Also the game aborts if no
useable OpenGL implementation exists.
- Refactor the search path code. This should fix several bugs with
Quake II writing to the wrong directories or being unable to find
some / all assets.
- Reimplement portable binaries. If called with the -portable command
line option Quake II saves all data (configs, savegames, screenshorts
etc.) into it's systemwide installation directory and not users home
directory. In contrast to the old implementation on Windows stdout.txt
contains all output, the first lines are no longer missing.
- vid_fullscreen set to 1 now keeps the desktops resolution. Set it to 2
to change the resolution.
- Instead of a list with precalculated FOV values the video menu now
shows a slider with possible values from 60 to 120. Horplus is now
always enabled, set the horplus cvar to 0 to disable it.
- The game is now able to hold the requested framerate (either by the
vsync or the gl_maxfps cvar) with an accuracy of about +/- 1% as long
as the hardware is fast enough. The framecounter was reimplemented
to be much more precise.
- Fix misspredictions if an original client running on Win32 connects
to a Yamagi Quake II server running on Linux/i386.
OK abieber@
Port changes:
- bump version
- install new ref_gl1 / ref_gl3 shared libraries into
/usr/local/lib/yquake2
- patch the Makefile to not pass -Wl,--no-undefined to
the linker, change already merged upstream:
https://github.com/yquake2/yquake2/pull/213
- patch backends/generic/vid.c to dlopen libraries
from /usr/local/lib/yquake2 instead of relying
on Sys_GetBinaryDir() that thinks the OS can tell
it the executable path
Regarding the .so changes, please see the following 2 github links
- https://github.com/yquake2/yquake2/pull/213
- https://github.com/yquake2/yquake2/issues/214
especially the second one. In short, it's possible that upstream will
add a way to define /usr/local/lib/yquake2 as a compile time option
which would make this patch obsolete. Note that I did not move the game.so
file on purpose, as upstream mentioned in 213 that mods expect it to be
in that specific spot.
If you want to test the new renderer just execute the game with:
$ quake2 +vid_renderer gl3
after first run it will be added to your config, or you can add it
yourself by adding:
set vid_renderer "gl3"
to:
/home/mulander/.yq2/baseq2/config.cfg
Upstream changelog:
Quake II 7.00 to 7.01:
- Fix build of GL3 for platforms without SSE.
- Fix Jennel Jaquays name in credits and quit screen.
- Make Quake II high DPI aware on Window Vista and above.
- Fix some problems with loading dependend librarys on Windows.
Quake II 6.00 to 7.00:
- Remove the broken multitexturing render path from the OpenGL 1.4
renderer. It was switched off by default in 6.00.
- Reimplement the support for shared renderer libraries. Please note
the this is an incompatible implementation with an custom API. The
original renderer libraries will not work!
- Implement an OpenGL 3.2 renderer. This renderer has the same look
and feel as the old OpenGL 1.4 renderer but makes heavy use of
modern OpenGL and GPU features. An OpenGL 3.2 capable GPU (Intel
starting with Ivy Bridge on Windows or Sandy Bridge on Linux, Nvidia
staring with G80 and AMD starting with R600 / HD2000) is required.
- Fix OpenAL compatibility with modern openal-soft versions.
- Several fixes and optimizations to OpenAL, implement support for
doppler effects. (by xorw)
OK abieber@
Upstream changelog:
Quake II 5.34 to 6.00:
- Make the client asynchronous. The old behaviour can be forced by
setting cl_async to 0. Please note that asynchronicity can lead to
problems if the old SDL 1.2 backend is used and vsync is enabled.
- Implement gl_overbrightbits in the non multitexturing case. A value
of 1 just fixes lighting on water surfaces, higher values increase
the brightness of everything.
- General renderer overhaul for better compatibility with modern GPUs.
OpenGL 1.4 is now required, older versions are no longer supported.
Multitexturing was deprecated and will be removed in a future release.
- Fix some longstanding AI problems.
- Several general gameplay fixes.
OK abieber@
Changes in the port:
- taking MAINTAINER, agreed with bmercer@ who provided the initial port
- added a q2ded rc script in a similar fashion as the games/ioquake3
port does
- the existing /usr/local/share/yquake2/q2ded binary from previous
port did not work as it was searching for games.so from a relative
path. I found a way to make both quake2 and q2ded work with an
upstream supported MAKE variable to provide the system wide quake
data directory. Thanks to this change we can drop the wrapper script
and use the binaries directly.
- adding a new _yquake2 user/group plus /var/yquake2 for the dedicated server
binary
- updated the port to version 5.34
Additional notes:
- make port-lib-depends-check complains on:
Extra: openal.2 pthread.22
ktrace tells me that the check is wrong. Openal and pthreads are both
used.
- upstream said in their changelog that they are changing their
platform policy 'Switch from an arch whitelist to an "all archs are
supported" approach.'. I saw in our tree a change by landry@
specifically limiting the supported platform to the upstream
supported versions
(http://cvsweb.openbsd.org/cgi-bin/cvsweb/ports/games/yquake2/Makefile?rev=1.2&content-type=text/x-cvsweb-markup).
I am not removing this restriction until I get some feedback from
people able to test other platforms than currently
listed in ONLY_FOR_ARCHS.
Upstream changelog:
Quake II 5.33 to 5.34:
- Add support for stereo 3D (by Valery Guskov)
- Make gibt solid so they move with conveyor belts.
- Disable gl_ext_multitexturing by default.
- Switch from an arch whitelist to an "all archs are supported"
approach.
- Add a new README.
Quake II 5.32 to 5.33:
- Add OGG volume slider in settings menu
- Fixed some bugs in volume settings
- Replaced HUD scale option in video menu with generic UI scale
- General UI upscaling improvements
- Better support for keyboards with AZERTY layout