What's new?
- Bugfix: Fixed crash on Win64 when typing in the address box.
- Bugfix: Fixed mouse/keyboard input getting passed to game while in the multiplayer ESC menu.
- Bugfix: Updated to SDL 2.24.0, SDL2_mixer 2.6.2. This fixes a bug in HiDPI mode where the mouse would run off the right side of the window instead of being captured.
- Bugfix: Clients now see server disconnects and exit accordingly.
- Improvement: Framelimit menus to 60FPS to save power.
- Improvement: Server enumeration is now done in a separate thread, so the UI will no longer hang randomly.
From 0.5.2
- Added support for changing the MP server port; Ports can be changed and then appended to the end of the hostname textbox like so:
Also note that the textbox supports DNS resolution, so yourcoolservername.biz:12345 will also work.
- Bugfix: Fix IP/hostname textbox to accept more than 16 chars.
From 0.5.0/0.5.1
- Bugfix: Fixed a longstanding type confusion bug with Player/Actor things. Saves made before this point may exhibit some buggy behavior when loaded.
- Bugfix: Fixed a crash on exiting multiplayer, caused by a type confusion between sithSoundClass and sithPlayingSound.
- Bugfix: Fixed chat messages not working in multiplayer.
- An initial Multiplayer implementation is now working on macOS/Win64/Linux
- Things are 100% expected to be a bit buggy, but for the most part it's functional.
- Based on Valve's GameNetworkingSockets, so IPv6 is supported and all messages are encrypted.
- LAN discovery is currently unsupported, however an IP address textbox is now present in the Join Game menu.
- Currently all communication happens on port 27020, and servers broadcast to all IPv4/IPV6 interfaces.
- Any and all protocol compatibility is subject to change between versions, for now. I'm still working out a lot of the details. Make sure all users are using the same OpenJKDF2 version tag and you won't have any issues.
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
- IPv6 Multiplayer support, based on Valve's GameNetworkingSockets
- 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
- Using plus or minus to resize the screen (with SDL2, resolution auto-resizes to window size)
- In-game screenshots

