openarena / engine Goto Github PK
View Code? Open in Web Editor NEWThis project forked from ioquake/ioq3
OpenArena modifications to the ioquake3 engine
Home Page: http://openarena.ws
License: GNU General Public License v2.0
This project forked from ioquake/ioq3
OpenArena modifications to the ioquake3 engine
Home Page: http://openarena.ws
License: GNU General Public License v2.0
During startup, after "unable to get SHFolder.dll" it sends openarena.x86.exe to Dr. Watson with an illegal exception.
I believe it may be related to creating a PID file. Dummying out the Sys_WritePIDFile stuff in common.c lets the game start properly.
This cvar is intended to select different GL ICDs and MiniGL drivers, most importantly for using secondary video cards (i.e. 3Dfx Voodoo Graphics / 3Dfx Voodoo2) or using certain wrappers (i.e. GLDirect, AltoGL) or even some software rendering drivers (i.e. SGI OpenGL for Windows)
Currently this is not present, and it causes the game to be forced to use opengl32.dll via SDL.
"but why? No one uses these operating systems!!!"
???Possible Solutions???
This thread is more about question than issue. The following code is extracted from RE_RenderScene in tr_scene.c
parms.fovX = tr.refdef.fov_x;
parms.fovY = tr.refdef.fov_y;
if (!( fd->rdflags & RDF_NOWORLDMODEL ) ) // don't affect interface refdefs
{
float zoomfov = tr.refdef.fov_x / 90;
int thisisit;
float erspact = tr.refdef.width / tr.refdef.height;
float aspact = glConfig.vidWidth / glConfig.vidHeight;
if (erspact == aspact) thisisit = 1;
if (((tr.refdef.fov_x / tr.refdef.fov_y) > 1.3) && (thisisit))
{
// undo vert-
parms.fovY = parms.fovY * (73.739792 / tr.refdef.fov_y) * zoomfov;
// recalculate the fov
parms.fovX = (atan (glConfig.vidWidth / (glConfig.vidHeight / tan ((parms.fovY * M_PI) / 360.0f))) * 360.0f) / M_PI;
parms.fovY = (atan (glConfig.vidHeight / (glConfig.vidWidth / tan ((parms.fovX * M_PI) / 360.0f))) * 360.0f) / M_PI;
}
}
It boil down to
parms.fovX = tr.refdef.fov_x;
parms.fovY = tr.refdef.fov_y;
if (!( fd->rdflags & RDF_NOWORLDMODEL ) ) // don't affect interface refdefs
{
if ((parms.fovX > parms.fovY * 1.3f) && (tr.refdef.width * glConfig.vidHeight == glConfig.vidWidth * tr.refdef.height ))
{
// undo vert-
parms.fovY = parms.fovX * (73.739792 / 90.0);
// recalculate the fov_x
parms.fovX = atan( tan(parms.fovY*(M_PI/360.0)) * glConfig.windowAspect ) * (360.0 / M_PI);
}
}
because:
glConfig.windowAspect = glConfig.vidWidth / glConfig.vidHeight
is already computed previously, don't compute it every time in the main loop.
parms.fovX = (atan (glConfig.vidWidth / (glConfig.vidHeight / tan ((parms.fovY * M_PI) / 360.0f))) * 360.0f) / M_PI
are equivalent to parms.fovY = (atan (glConfig.vidHeight / (glConfig.vidWidth / tan ((parms.fovX * M_PI) / 360.0f))) * 360.0f) / M_PI;
because:
glConfig.vidWidth / glConfig.vidHeight = tan( parms.fovX * M_PI / 360) / tan( parms.fovY * M_PI / 360)
there no need to compute parms.fovY again, right?
I don't know how 1.3f and 73.739792 this two parameters comes from. Can someone tell something about that?
This is something we talked on Discord.
3DJ implemented support for OpenAL Soft. The problem is that such support replaces OpenAL HW rather than having it as an alternative. And, well, we don't have exactly a fond memory of when IOQ3 implemented SDL in an invasive way (long story short: it was the beginning of all the big problems).
The ideal solution would be two engine cvars controlling the audio and video devices. This has lots of utilities, among them helping troubleshooting and allowing new devices to be integrated.
That said, unlike gamecode, I don't have enough knowledge of engine to do something about it. So I'm leaving this as just an issue.
I have downloaded many maps files, but none of the download rate can exceed 13kb/s, I uploaded a video to show the case:
lowDowloadRate.mp4.zip
My OS is Ubuntu16.04, win7 don't have this issue. Onetime when I play OA on WIN7, I find that the map download speed is much faster than my ubuntu, so i try to figure out where the problem is.
It may cause by libcurl 7.35.0 lib.
As I remove the libcurl-7.35.0 folder from the engine SDL2 codebase, then make it link the system default libcurl (7.47.0). After that, the download rate up to 100+kb/s, sometime i can get 1Mb/s.
My system default libcurl is installed by sudo apt-get install curl
, the following is the returned information.
Reading package lists... Done
Building dependency tree
Reading state information... Done
curl is already the newest version (7.47.0-1ubuntu2.6).
Integrating latest libcurl can be done in later time.
You can try my code repository( https://github.com/suijingfeng/engine )๏ผ to see if the download speed can be improve in ubuntu16.04.
Reason: filling in/substitute specific missing textures with special placeholder scripts if a texture is missing. for q3 mapmodels particularly (i.e. generic stone for major/visor/gargoyle/fem/jesus statues, metal for lampposts)
Right now it's
Desired behavior:
Jedi Academy has a way of doing this and is open source, but under the GPLv2 (with no later version) so that may be incompatible.
Earlier Q3Tests also had a way of doing this by the old Q2-ish way of updating the lightmap, but I think this is all torn out on the source release anyway and it's unlikely that Carmack has kept an archive of the older code and it's also legally unlikely he can clear it for release anyhow.
OA's paletted texture feature is designed for an Index w/ transparent color format, which the 3dfx Voodoo Graphics GL ICD does not support (but all the later Voodoos starting from Voodoo2 do). As a result, all the indexed alpha texels on paletted textures are not rendered transparent.
A solution would be to have them processed as 16-bit RGBA (with a paletted processing, how GLQuake and Quake2 did it) and upload them as that, though it would be trickier to detect the V1's palette support limits to determine this behavior.
In the leidev branch i've realized how bad the vertex shader code has become after cleaning up some of my deprecated shader stuff. Problem is, debugging gdb with it leads to a segfault in other parts in the code (like bots), when there's obvious visual symptoms of a memory issue:
Dynamic light texture sometimes gets corrupted
Whiteimage sometimes gets corrupted
in a debug build, tcMod atlas effects pick the wrong subimage (smoke images becoming shockwave images)
I'm getting an error 0xc000007b when opening the latest nightly binaries in Windows 10. The last binary known to work was the 2019-dated one.
I've downloaded the latest stable SDL2 binaries from here. The 64-bit version throws that error, the 32-bit version doesn't open.
Pros:
Cons:
In Arch under a Wayland GNOME session, I get the following error when I try to launch OpenArena using Wayland:
[luke@lt-arch openarena-0.8.8]$ SDL_VIDEODRIVER=wayland ./openarena.x86_64
ioq3+oa 3.0.0a_GIT_e120f49e-2018-06-16 linux-x86_64 Jul 24 2018
Have SSE support
----- FS_Startup -----
Current search path:
/home/luke/.local/share/OpenArena/baseoa
./baseoa
./baseoa/pak6-patch088.pk3 (711 files)
./baseoa/pak6-patch085.pk3 (559 files)
./baseoa/pak6-misc.pk3 (229 files)
./baseoa/pak5-TA.pk3 (139 files)
./baseoa/pak4-textures.pk3 (1753 files)
./baseoa/pak2-players.pk3 (669 files)
./baseoa/pak2-players-mature.pk3 (231 files)
./baseoa/pak1-maps.pk3 (100 files)
./baseoa/pak0.pk3 (1042 files)
----------------------
5433 files in pk3 files
execing default.cfg
execing q3config.cfg
couldn't exec autoexec.cfg
Hunk_Clear: reset the hunk ok
Gtk-Message: 14:48:09.764: GtkDialog mapped without a transient parent. This is discouraged.
----- Client Initialization -----
----- Initializing Renderer ----
-------------------------------
QKEY found.
----- Client Initialization Complete -----
----- R_Init -----
SDL_Init( SDL_INIT_VIDEO ) FAILED (No available video device)
SDL_Init( SDL_INIT_VIDEO ) FAILED (No available video device)
Setting r_mode -1 failed, falling back on r_mode 3
SDL_Init( SDL_INIT_VIDEO ) FAILED (No available video device)
----- Client Shutdown (Client fatal crashed: GLimp_Init() - could not load OpenGL subsystem) -----
RE_Shutdown( 1 )
Hunk_Clear: reset the hunk ok
-----------------------
GLimp_Init() - could not load OpenGL subsystem
Gtk-Message: 14:48:16.548: GtkDialog mapped without a transient parent. This is discouraged.
I am running the latest version of the OA3 engine...and I noticed that the game looks a lot worse than it usually does. I tried setting r_tvfilter to 0 to see if that would help at all.
...what settings should I set so it looks clear again?
The console window that would appear on startup on Windows is missing.
Why this is a problem:
OA textures are 2x the resolution at least. Addons for Q3 don't obey this rule so they would look visually inconsistent with their texel density.
The proposal/idea I'm thinking is a text script (scripts/*.texsize) that specifies the "reasonable base width" for each hi-res OA texture so it would be consistent with Q3 picmip values. like
textures/gothic_block/killblock69tall 256
textures/gothic_block/killblock69short 256
which resizes the 512x1024 texture (of any image format) to 256x512 at upload32 time. Specifying height won't be neccessary
To disable it would be r_picmip -1.
Setup:
macOS Big Sur 11.6.1 (20G224)
Apple clang version 13.0.0 (clang-1300.0.29.30)
When compiling the game through the make-macosx.sh
script, generating app bundle (through make-macosx-app.sh
) fails. The openarena.x86_64
binary compiles successfully and can be launched from the Terminal (although you can't really play: #61).
The error message:
./make-macosx-app.sh: no ioquake3 binary architectures were found for target 'release'
After a quick investigation of the make-macosx-app.sh
it seemed to me that the PRODUCT_NAME="ioquake3"
should be changed to PRODUCT_NAME="openarena"
(I don't know how this script ever worked before as-is), so I changed that.
But then, I got many errors similar to...
error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo: no input files specified
usage: lipo <input_file> <command> [<options> ...]
As I'm not familiar with these Xcode command line tools and I'm not sure how/if that worked before, I don't know what's the solution here.
The "Raspberry Pi version" of OA has mysteriously disappeared, the ioquake3 Raspberry Pi build is over 4 years old, and the latest ioquake3 requires compiling your own kernel to build properly on Pi.
The OpenGL wrapper for the Pi 3 is experimental, and while it "works", it's extremely slow (worse than Rage Pro performance easily), and crash-prone. So that's not a good solution either.
Perhaps an no-nonsense Pi port is in order? Tons of deb packages of everyone reinventing the wheel, but no source code.
if rocket blows up towards opponent vector say a ground shot directly at them it should spray more damage to make it more realistic as peices of shrapnel and floor would still hit them. also ricashae's would be neat.
Filing this issue to remind myself.
For example, marks are half the opacity when overbright's on. Vertex-baked colors in maps are also affected
This is entirely my fault and I've just got to figure out where I screwed up in renderer_oa/tr_shader.c
I'm sure my original intent for this was to get the rgbGen vector values shifted down for more practical use with consistent visuals.
I got this error when compiling. was this just a typo?
sys_unix.c:(.text+0x1e63): undefined reference to `fesetround'
The particle system in renderer_oa has trouble initializing new particle effects for a reason I overlooked.
Filing this issue to remind myself.
r_slowness and related are a series of cvars introduced by leilei. Here's what they do:
r_slowness
r_slowness_cpu
r_slowness_gpu
should roughly fake the speed of the MHz you set CPU to (based on p2 performance, default is 300) GPU is much looser and is based on mhz (like 93-96 for Voodoo2) and also scales the slowness by screen resolution. There's even a synthetic bottleneck. It won't be practical for play, but may be useful for content production (like for realizing the critical performance choke points in the maps - oa_spirit3 has a BAD one thanks to the portal in the water, for example)
What it really is, is just a sleep command called every finished backend buffer determined by a bunch of division on numbers of vertices, indices, surface count, etc... It's much better for nailing low performance that com_maxfps can't reach.
Currently no way to simulate texture thrashing (r_slowness_vram would be such a cvar, notably R_SumOfUsedImages does not function at all - and would have been great for doing this)
Such useful feature for development should be platform-agnostic, since it currently works only in Windows. How can this be achieved?
By default, the game has very bright dynamic lights and bold chiaroscuro effects on models around dynamic lights combined with a bright muzzleflash that happens in almost a single frame which may be a seizure risk when repeated. This is a bad idea nowadays with high framerates.
Plans:
A new cvar, r_dynamicStrength (0-1), 1 being default, 0 being none as if it were off. Affects dynamic lights on models
A new cvar, r_flashOpacity, (0-1). 1 being default, 0 being off.
A new rgbGen identity clone, which is controlled by r_flashOpacity, and is to be assigned to 'flashing' shaders like weapon's muzzleflashes.
You can't adjust brightness or have overbrights on a 3dfx card.
Not an issue in q3 - both can be done. The extension WGL_3DFX_gamma_control is used for this.
Q3 had this from the start, defaulted it enabled (s_loadas8bit 1 / s_compression 1 would use this) and had significant memory/performance differences. It was gutted out in some 1.30+ version with no trace in the released source nor the released sources of RTCW and JK2.
Reimplementing this might take some work.
FUN FACT: the 4-bit ADPCM painting is still in the code (what used to be s_compression 2) but that's generally slower, but had larger memory savings.
Clicking the "driver info" button in old menu modules with a really long extension list would cause a crash.
I'd probably want only showing the available extensions that the renderer actually uses and leave off with "and x more" exposed to the modules.
This bug happens in both Linux and Windows.
Am I missing something? using stock ubuntu 16.04 in a vm
At some point when the video code is restarted, these two textures can be corrupt with noise artifacts showing
I've yet to investigate why.
https://github.com/OpenArena/engine/blob/master/code/renderer_oa/tr_model.c
code/renderer_oa/tr_model.c:202:11: warning: comparison with string literal results in unspecified behavior
if(ident == MDO_IDENT)
^
ident is a int, while MDO_IDENT is defined as a string in tr_mdo.h
#define MDO_IDENT "OPENMDL2"
On 3dfx hardware with 3dfx drivers, the game will set off 3dfx's splash animation two or three times when initializing a video mode. This takes up a lot of time and is bad.
Q3 did not do this.
Currently the compiler emits warnings: https://travis-ci.org/OpenArena/engine/builds/187753304
Warnings in the CI system are unacceptable.
Code that are incomplete should be "#if 0" (if it will be completed later) or removed (if not).
Problems like the Linux 64 bit version crashing would have been much easier to spot if the code had been warning free.
Q3 used to do this, and this was removed in 1.27b (around the same time they removed A3D support)
Why this is necessary? The quad damage sound distortion is terrible
One computer, via gamepads
Spearmint allegedly does it (haven't tried) but that's GPLv3 which is venturing into license toxicity. I'd like to keep GPLv2+ as much as I can
Currently the Windows nightly builds (http://openarena.ws/board/index.php?topic=5263.0) are compiled without XMP support.
The nightly build are compiled with static linking in an MXE environment.
I have constructed a Docker image with a static version of libxmp-lite but I get the following linker errors:
LD build/release-mingw32-x86/openarena.x86.exe
/tmp/ccX69R76.ltrans4.ltrans.o:<artificial>:(.text+0x19fb): undefined reference to `_imp__xmp_get_frame_info'
/tmp/ccX69R76.ltrans4.ltrans.o:<artificial>:(.text+0x1a11): undefined reference to `_imp__xmp_get_module_info'
/tmp/ccX69R76.ltrans4.ltrans.o:<artificial>:(.text+0x1a5d): undefined reference to `_imp__xmp_play_buffer'
/tmp/ccX69R76.ltrans4.ltrans.o:<artificial>:(.text+0x1ce5): undefined reference to `_imp__xmp_end_player'
/tmp/ccX69R76.ltrans4.ltrans.o:<artificial>:(.text+0x1cf3): undefined reference to `_imp__xmp_release_module'
/tmp/ccX69R76.ltrans4.ltrans.o:<artificial>:(.text+0x1d01): undefined reference to `_imp__xmp_free_context'
/tmp/ccX69R76.ltrans4.ltrans.o:<artificial>:(.text+0x234a): undefined reference to `_imp__xmp_create_context'
/tmp/ccX69R76.ltrans4.ltrans.o:<artificial>:(.text+0x2364): undefined reference to `_imp__xmp_load_module_from_memory'
/tmp/ccX69R76.ltrans4.ltrans.o:<artificial>:(.text+0x242b): undefined reference to `_imp__xmp_start_player'
/tmp/ccX69R76.ltrans4.ltrans.o:<artificial>:(.text+0x2445): undefined reference to `_imp__xmp_get_module_info'
/usr/lib/mxe/usr/lib/gcc/i686-w64-mingw32.static/4.9.3/../../../../i686-w64-mingw32.static/lib/../lib/libxmp.a(control.o): In function `xmp_free_context':
/tmp/libxmp-lite-4.4.1/src/control.c:57: undefined reference to `_imp__xmp_release_module'
/usr/lib/mxe/usr/lib/gcc/i686-w64-mingw32.static/4.9.3/../../../../i686-w64-mingw32.static/lib/../lib/libxmp.a(load.o): In function `xmp_release_module':
/tmp/libxmp-lite-4.4.1/src/load.c:604: undefined reference to `_imp__xmp_end_player'
/usr/lib/mxe/usr/lib/gcc/i686-w64-mingw32.static/4.9.3/../../../../i686-w64-mingw32.static/lib/../lib/libxmp.a(format.o): In function `format_list':
/tmp/libxmp-lite-4.4.1/src/format.c:62: undefined reference to `xm_loader'
/usr/lib/mxe/usr/lib/gcc/i686-w64-mingw32.static/4.9.3/../../../../i686-w64-mingw32.static/lib/../lib/libxmp.a(format.o):format.c:(.rdata+0x0): undefined reference to `xm_loader'
/usr/lib/mxe/usr/lib/gcc/i686-w64-mingw32.static/4.9.3/../../../../i686-w64-mingw32.static/lib/../lib/libxmp.a(format.o):format.c:(.rdata+0x8): undefined reference to `it_loader'
/usr/lib/mxe/usr/lib/gcc/i686-w64-mingw32.static/4.9.3/../../../../i686-w64-mingw32.static/lib/../lib/libxmp.a(format.o):format.c:(.rdata+0xc): undefined reference to `s3m_loader'
collect2: error: ld returned 1 exit status
As far as I can see the "imp_" means that the binary expect to be linked against a DLL instead.
The solution likely involves a strategic placed "#define" somewhere.
I admit that it is a little late to move the home folder to a more standard location but I think it should be done.
This is why there is a "?" in the title.
Currently "$HOME/.openarena" is used.
This should be "$XDG_DATA_HOME/openarena"
Where XDG_DATA_HOME should default to "$HOME/.local/share" if not defined.
A possible solution could be to check for presence of "$XDG_DATA_HOME/openarena" if it exists and then try "$HOME/.openarena" if it does not exist: Create "$XDG_DATA_HOME/openarena" and create a symbolic link in "$HOME/.openarena" to it. After a couple of years then all the documentation has been updated we stop creating the symbolic link.
A way to make the transfer easier is to move the .openarena folder to "$XDG_DATA_HOME/openarena" and create the symbolic link in case .openarena exists and the other does not. It can be a bit risky. We need to test the case where .local/share is mounted on a different disk than .openarena.
Furthermore the engine currently assumes that $HOME is defined. This is normally the case but it should continue to look for passwd in case it is not. I don't think it is worth looking into. People would have complained.
I'm using clang 6.0.0 on Ubuntu 18.04.
OpenArena compiled with address sanitization crashes on startup with the following error: Full output
Blacklisting this allows the game to start up, but crashes upon entering a map with a different error: Output
Moving mouse to the borders of window results lag/crash.
Also in-game mouse not moving with mouse.
Unfortunately current build doesn't work with newest Mac OS Catalina, since they dropped support for 32 bit applications. I tried to compile using included make-macosx.sh script after installing libogg libvorbis sdl12 from brew. Using resources from original build 0.8.8 the app starts fine. Menu works fine. Unfortunately as soon as there are 3d graphics involved (for example Player settings in menu, or starting or connecting to any game) the app crashes with the following log
stitched 20 LoD cracks
...loaded 4106 faces, 90 meshes, 0 trisurfs, 0 flares
----- Client Shutdown (Received signal 6) -----
----- FS_Startup -----
Current search path:
/Users/user/Library/Application Support/OpenArena/baseoa
./baseoa
./baseoa/tr1ckhouse-beta3.pk3 (27 files)
./baseoa/pak6-patch088.pk3 (711 files)
./baseoa/pak6-patch085.pk3 (559 files)
./baseoa/pak6-misc.pk3 (229 files)
./baseoa/pak5-TA.pk3 (139 files)
./baseoa/pak4-textures.pk3 (1753 files)
./baseoa/pak2-players.pk3 (669 files)
./baseoa/pak2-players-mature.pk3 (231 files)
./baseoa/pak1-maps.pk3 (100 files)
./baseoa/pak0.pk3 (1042 files)
----------------------
5460 files in pk3 files
forcefully unloading cgame vm
RE_Shutdown( 1 )
OpenAL capture device closed.
-----------------------
----- Server Shutdown (Received signal 6) -----
==== ShutdownGame ====
AAS shutdown.
---------------------
Is there any direction i should follow to find the problem or maybe there will be an official build with Mac OS Catalina support?
command line show couldn't exec autoexec.cfg
Hello.
Trying "TrueCombat" Q3 mod (http://www.moddb.com/mods/true-combat/downloads/true-combat-13-full) with OA, it has been noticed that trying to load the map named "Bahamot" casuses the game to crash (tested on Windows with nightly build binaries), with an error saying "Unsupported color conversion request".
The bug happens with nightly builds, while the map works flawlessly with old OA 0.8.8 Windows binaries. Crashing isn't a nice thing, so, although not urgent, I think this may be worth a look before OA3 will be released.
Probably the crash may be caused by some texture with some strange encoding, but I don't know which one.
Probably not the same problem which causes the game to crash in "oacmpctf1" map in OACMP Vol1 v3 (IIRC, jpeg "progressive encoding" not supported in Windows binaries -while supported in Linux binaries-), because that crashed in OA 0.8.8, while the TC "bahamot" map works in 0.8.8 binaries.
Searching a bit, I found this https://dev.etlegacy.com/issues/993 (Enemy Territory Legacy): there, they said the problem was due to a jpg file using "CMYK" color mode. But in their case, it wasn't a crash, it was just a texture not shown, with a warning. So maybe it's yet another thing (grayscale maybe?)...
https://gist.github.com/suijingfeng/92e510aafe0e0246b3b4648c2c5eac21
To reproduce:
This might have also been related to using an outdated (2014) libxmp while trying this though, Have not yet updated that to see if it's reproducable in it, but there's still the possibility it's OA's fault here
My plan was to take TinyGL from the ResidualVM tree and integrate it into renderer_soft or replace the sdl_glimp.c for it
Pros:
Cons:
Hi, I noticed a glitch which happens with current Windows nightly builds (and, although it looks a bit different, also in the Android port, at least on my old S4), while it works correctly with old 0.8.8 binaries.
It looks like that if a sky with a "farbox" (http://toolz.nexuizninjaz.com/shader/shader/section3.htm#3.1) is visible in a mirror, it is drawn very glitchy inside the mirror.
You can test in q3tourney6ish map (http://www.mapraider.com/maps/openarena/free-for-all/5586/q3tourney6ish), which uses skies2/nebula2 shader, but I did some try with some other shader including a farbox such as skies2/nebula and another one, and the result was the same, while "standard" skies were correctly drawn instead. To me it looks like the glitch is somehow related with the presence of a farbox.
Screenshots show comparison of 0.8.8 binaries with 2019-09-29 nightly builds. Windows 10 64 bit with an ATI card.
I didn't know if I had to open a distinct "issue" for each one.
These bugs have been tested with engine and gamecode nightly builds from July 2016 (see this forum post). I haven't noticed changes related to them in these last months, so they should still be there.
Also, small differences I noticed between DSL and OpenAL modes are yellow warnings related to sounds:
I do not know if there are other entities capable of playing user-defined sound files.
An user on Discord reported to me about a problem he noticed while using a certain third party model with OA nightly build binaries.
The model is this one
http://en.ws.q3df.org/models/downloads/q3mdl-q4hybrid.zip
it's a quite "heavy" model, the zip even contains two pk3 files, one with lower and one with higher polycount.
If using nightly builds binaries, the model's face is shown as "missing texture", as are the "holograms" it generates during its idle animation. In console there is "WARNING: Ignoring surfaces in 'models/players/q4hybrid/lower_classica.skin', the max is 32 surfaces!" message.
If using classic OA 0.8.8 binaries, instead, that specific warning is not shown and model's face and its "holograms" are shown correctly.
Here you can see a comparison between classic 0.8.8 binaries and nightly build binaries:
(By the way, by doing this test I see that playing the game with nightly build binaries -with same settings- it looks noticeably darker - I was using Windows 10 with an ATI card, with the game in "windowed" mode, but the same also happens in "fullscreen").
Side notes: using the model shows some issues in general, I just mention them here to say it's not a model I think I would actually use, despite some cool things:
Any flare can induce a stuttering ro players that use r_swapInterval 1 (or higher). The framerate will fluctutate rapidly when one is on the screen. These happen with r_flarequality set to 1 or higher, and/or r_flaresun and r_flaresdlight set.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.