What's new?
- Bugfix: Tempfix for Force Blinding showing SSAO over the ColorAdd blending
- Lots of multiplayer menu implementations (WIP! extremely WIP, expect crashes in anything MP right now):
- Character profiles can be added and edited (the model display is not drawn currently; the original game used software rendering)
- Game host setting/map selection menus are working
- Hosted games can be started, but all network packets are currently not sent anywhere (or read). Basically if you were itching to explore multiplayer levels, you can now.
- Initial DirectPlay stubs have been added and show under Host/Join as "OpenJKDF2 TCP".
- Initial multiplayer implementation will not be compatible with JK.EXE
- Backward compatibility is ~maybe planned for later, not sure how much I want to deal with DirectPlay.
- Backward compatibility will require locking the framerate to 50fps, but misc synchronization patches are planned for the non-DPlay implementation.
From 0.4.2:
- jkgfxmod displacement maps are now supported
- Overhauled the bloom lighting:
- Explosions no longer have their color blown out
- Palette-based emission and bloom no longer use ambient lighting as a factor
- Blur stages now use mipmaps as their input (each also had their resolution halved as a performance optimization).
- SSAO blur stages now use mipmaps from previous blur stage as their input.
- jkgfxmod caching was optimized to not perform lookups for textures that do not have cached entries.
displacement_snip.mov
(depth exaggerated for visual debugging)
About these builds
Currently, I am only providing 64-bit builds for Windows and MacOS to find regressions and undefined behavior; Linux users have to compile for now (See BUILDING.md for instructions). It is recommended to backup any savedata you place significant value on before running.
Running
Windows: Extract the distribution zip so that openjkdf2-64.exe is in the same directory as JK.EXE and then run openjkdf2-64.exe.
MacOS: Copy OpenJKDF2.app into your Applications folder and run it.
Linux: Copy openjkdf2-64 into the same directory as JK.EXE and run.
If game assets are missing, an install prompt will show on startup and ask for either:
- An existing GOG/Steam/original installation
- An original Disk 1, followed by Disk 2
To transfer saves, copy your old player folder to %appdata%/Local/openjkdf2/ on Windows, or ~/.local/share/openjkdf2/ on macOS/Linux following installation.
If you are not using custom shaders, delete resource/shaders/ to revert to the default graphical settings.
My game crashed, what do I do?
I'm looking for regressions and crashes! File an issue or email me at mtinc2@gmail.com with a crash stacktrace. If it's reproducible, a savefile or instructions to reproduce would also be appreciated.
Linux: Copy the crash log from crash.log or the console output.
MacOS: Cmd+Space, type Console.app and copy the entire crash report from openjkdf2-64. Alternatively, copy the crash log from crash.log
Windows: Copy the crash log from openjkdf2-64.RPT.
Crash logs will be located in directory assets are located. If you cannot find them, be sure to check %appdata%/Local/openjkdf2/ on Windows, or ~/.local/share/openjkdf2 on macOS/Linux.
QoL feature notes:
- Built-in jkgfxmod texture pack support
- Emissive textures and bloom rendering pipeline.
- Screenspace Ambient Occlusion (SSAO)
- Music is loaded from audio tracks at
MUSIC/Track<12..32>.oggin Ogg Vorbis format (same as the GOG/Steam releases), if they are present. Music can also be loaded fromMUSIC/1/Track<1..11>.oggandMUSIC/2/Track<1..11>.oggfor installs made from original disks. The music looping bug is also fixed. - Menus and the game viewport auto-rescale to the window size, with appropriate aspect ratio vertex projection (ultrawide, or at least wide-er monitor support).
- Game runs at full framerates by default instead of 30FPS/50FPS in Singleplayer (validated up to 144FPS)
- FPS can be capped to any value in Setup > Display
- VSync can be enabled or disabled in Setup > Display
- Weapon waggle is scaled properly with FPS
- FOV is adjustable in Setup > General
- HiDPI is configurable in Setup > General
- HUD elements are scaled with screen resolution
- LOD and mipmap distances are scaled with render resolution to ensure textures and models don't degrade noticeably on higher-resolution screens.
What isn't working:
- Joystick menu in Setup > Controls (input bindings are still loaded and written to config, though)
- Load Configuration and Save Configuration in Setup > Controls > Options
- Multiplayer menu and all submenus
- Multiplayer tally screen
- Multiplayer character builder
- Using plus or minus to resize the screen (with SDL2, resolution auto-resizes to window size)
- In-game screenshots