mirror of
https://github.com/InstanceBrick/nightcap.git
synced 2026-10-17 14:00:46 +02:00
Add a pre-commit check for added changelog lines over 110 characters. Roblox has no Nintendo glyph set, so the roadmap item cannot be met.
3.2 KiB
3.2 KiB
Nightcap roadmap
What Nightcap is working toward, in priority order. Items move to
Shipped when they land on main. Open an issue to propose a
change to this list.
1. Settings UI
Nightcap is configured by editing ~/.config/mocktail/config.yaml. Most
people never open it, so they never find the FPS unlock or the vsync switch.
Goal: a small GTK4 settings window, reachable from the app menu and from a
--settings flag, that reads and writes the same config.yaml.
- Graphics tab: backend, frame rate limit, vsync, small texture upscale.
- Input tab: the
input.raw_mousetoggle and controller options. - Advanced tab: FFlag overrides with a plain text editor for
fflags.json. - Discord tab: every field in the
discord_rpcblock, so a friend can see what you are playing and you can switch it all off in one click. - Changes apply on next launch. A restart button restarts Nightcap.
Done when every option in config/mocktail.example.yaml that a player would
touch can be set without a text editor.
Shipped
- Lower input latency: frames are presented as soon as they are ready.
- Controllers hot-plug without a restart, and a pad that is unplugged mid-game releases its held buttons and sticks instead of leaving them stuck.
- Mouse look keeps responding after a long turn, instead of going dead until the pointer travels back from past the screen edge.
- Optional raw mouse input:
input.raw_mouseinconfig.yamlsends look deltas in host units, so fractional display scaling no longer changes first-person sensitivity. - Small textures upscaled 4x by default, with PNG overrides in
~/.config/mocktail/textures. - ETC2 textures decoded on desktop GPUs without stutter.
- No more error 319 kicks after joining a server.
- Roblox sees the real host RAM and screen size.
- Desktop launcher that works on Wayland and finds the installed binary.
- Discord Rich Presence on by default, with the experience name, creator, elapsed time, the experience icon with a Roblox badge, and a join button when the server is public. See the FAQ to switch it off.
- Custom Discord presence: title, details, state, and large and small icons
from
config.yaml, with{place_name},{place_icon}, and{creator_name}placeholders. --profilewrites a Chrome-format trace of the Vulkan adapter's work, including shader and pipeline creation, readable inui.perfetto.dev. BENCHMARKING.md fixes the experiences to measure andscripts/summarize_profile_trace.pybuilds the before and after table.- Texture uploads no longer stall the frame they land on: ETC2 decode and resampling run on a persistent worker pool.
- Less stutter while joining an experience and while textures load in. See the changelog for the numbers.
- The host main thread rests between engine polls instead of spinning, and GameMode's core pinning is released, so Roblox's workers spread across every core. See PERFORMANCE.md.
- Own app ID
io.github.CoderDayton.nightcap, so Nightcap installs next to upstream. - AppImage and signed Flatpak releases on every
v*tag, with the Flatpak repo on GitHub Pages.
Not planned
- Replacing the
mocktailbinary and config names. Keeping them makes upstream merges clean.