performance, remove the forced renders
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 17.4k
- Forks
- 3k
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 14
Description
as once discussed in discord developer chat,
release latest. at Game.cs Loop().
the game main loop use a force render. on systems where rendering becomes slow the force render causes the main loop to become slower and slower - ending up loop resulting in 120% cpu usage, locking up multi player games.
the game also forces a minimum of 16 fps at the default game speed.
background: i have the issue that render time drops from 6-9ms to 20+ ms at times. likely gl, driver, cooling related. but i assume the full CPU usage happens on any slow systems.
request:
- let the game detect if rendering is slow, skip frames
- let the game detect that in general it can't keep up in both rendering and logic frames, perhaps drop in game speed or log console message, pause to catch up, exit
- let the game skip render frames - rather than forcing them
- send warnings to the console, indicating
- bring back the possibility - like in previous releases - to run the game at 10 to 20 fps. works fine.
additional:
- register also a network delay, next to render and logic delay
- differentiate in the network ping/latency stats between network delays and render delays, allowing players to determine if the network is causing the issue or their PC
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at Game.cs Loop() and inspect the forced-render and minimum-FPS behavior described in the issue. Determine how rendering, logic, and network delays are currently tracked, then define tests or observable checks for skipped render frames, slow-system warnings, configurable lower frame rates, and distinct network versus render latency.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- game-dev, performance
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100