mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2024-11-22 05:27:19 +00:00
Condense frame rates
This commit is contained in:
parent
e1cc25759e
commit
4775dbf27f
@ -138,7 +138,7 @@ int main(int argc, char** argv) {
|
||||
} else framesSinceLastSQLPing++;
|
||||
|
||||
//Sleep our thread since auth can afford to.
|
||||
t += std::chrono::milliseconds(mediumFramerate); //Auth can run at a lower "fps"
|
||||
t += std::chrono::milliseconds(mediumFrameDelta); //Auth can run at a lower "fps"
|
||||
std::this_thread::sleep_until(t);
|
||||
}
|
||||
|
||||
|
@ -160,7 +160,7 @@ int main(int argc, char** argv) {
|
||||
} else framesSinceLastSQLPing++;
|
||||
|
||||
//Sleep our thread since auth can afford to.
|
||||
t += std::chrono::milliseconds(mediumFramerate); //Chat can run at a lower "fps"
|
||||
t += std::chrono::milliseconds(mediumFrameDelta); //Chat can run at a lower "fps"
|
||||
std::this_thread::sleep_until(t);
|
||||
}
|
||||
|
||||
|
@ -6,15 +6,22 @@
|
||||
#include <cstdint>
|
||||
#include <string>
|
||||
#include <set>
|
||||
#include "../thirdparty/raknet/Source/BitStream.h"
|
||||
#include "BitStream.h"
|
||||
|
||||
#pragma warning (disable:4251) //Disables SQL warnings
|
||||
|
||||
typedef int RESTICKET;
|
||||
|
||||
const int highFrameRate = 16; //60fps
|
||||
const int mediumFramerate = 33; //30fps
|
||||
const int lowFramerate = 66; //15fps
|
||||
#define FRAMES_TO_MS(x) 1000 / x
|
||||
|
||||
//=========== FRAME TIMINGS ===========
|
||||
constexpr uint32_t highFramerate = 60;
|
||||
constexpr uint32_t mediumFramerate = 30;
|
||||
constexpr uint32_t lowFramerate = 15;
|
||||
|
||||
constexpr uint32_t highFrameDelta = FRAMES_TO_MS(highFramerate);
|
||||
constexpr uint32_t mediumFrameDelta = FRAMES_TO_MS(mediumFramerate);
|
||||
constexpr uint32_t lowFrameDelta = FRAMES_TO_MS(lowFramerate);
|
||||
|
||||
//========== MACROS ===========
|
||||
|
||||
|
@ -373,7 +373,7 @@ int main(int argc, char** argv) {
|
||||
}
|
||||
}
|
||||
|
||||
t += std::chrono::milliseconds(highFrameRate);
|
||||
t += std::chrono::milliseconds(highFrameDelta);
|
||||
std::this_thread::sleep_until(t);
|
||||
}
|
||||
return FinalizeShutdown(EXIT_SUCCESS);
|
||||
@ -876,7 +876,7 @@ void ShutdownSequence(int signal) {
|
||||
break;
|
||||
}
|
||||
|
||||
t += std::chrono::milliseconds(highFrameRate);
|
||||
t += std::chrono::milliseconds(highFrameDelta);
|
||||
std::this_thread::sleep_until(t);
|
||||
|
||||
ticks++;
|
||||
|
@ -2,23 +2,18 @@
|
||||
|
||||
#include "UserManager.h"
|
||||
|
||||
//Times are 1 / fps, in ms
|
||||
#define HIGH 16 //60 fps
|
||||
#define MEDIUM 33 //30 fps
|
||||
#define LOW 66 //15 fps
|
||||
|
||||
#define SOCIAL { LOW }
|
||||
#define SOCIAL_HUB { MEDIUM } //Added to compensate for the large playercounts in NS and NT
|
||||
#define BATTLE { HIGH }
|
||||
#define BATTLE_INSTANCE { MEDIUM }
|
||||
#define RACE { HIGH }
|
||||
#define PROPERTY { LOW }
|
||||
#define SOCIAL { lowFrameDelta }
|
||||
#define SOCIAL_HUB { mediumFrameDelta } //Added to compensate for the large playercounts in NS and NT
|
||||
#define BATTLE { highFrameDelta }
|
||||
#define BATTLE_INSTANCE { mediumFrameDelta }
|
||||
#define RACE { highFrameDelta }
|
||||
#define PROPERTY { lowFrameDelta }
|
||||
|
||||
PerformanceProfile PerformanceManager::m_CurrentProfile = SOCIAL;
|
||||
|
||||
PerformanceProfile PerformanceManager::m_DefaultProfile = SOCIAL;
|
||||
|
||||
PerformanceProfile PerformanceManager::m_InactiveProfile = { LOW };
|
||||
PerformanceProfile PerformanceManager::m_InactiveProfile = { lowFrameDelta };
|
||||
|
||||
std::map<LWOMAPID, PerformanceProfile> PerformanceManager::m_Profiles = {
|
||||
// VE
|
||||
@ -72,13 +67,6 @@ std::map<LWOMAPID, PerformanceProfile> PerformanceManager::m_Profiles = {
|
||||
{ 2001, BATTLE_INSTANCE },
|
||||
};
|
||||
|
||||
|
||||
PerformanceManager::PerformanceManager() {
|
||||
}
|
||||
|
||||
PerformanceManager::~PerformanceManager() {
|
||||
}
|
||||
|
||||
void PerformanceManager::SelectProfile(LWOMAPID mapID) {
|
||||
const auto pair = m_Profiles.find(mapID);
|
||||
|
||||
|
@ -8,18 +8,13 @@ struct PerformanceProfile {
|
||||
uint32_t serverFramerate;
|
||||
};
|
||||
|
||||
|
||||
class PerformanceManager {
|
||||
public:
|
||||
~PerformanceManager();
|
||||
|
||||
static void SelectProfile(LWOMAPID mapID);
|
||||
|
||||
static uint32_t GetServerFramerate();
|
||||
|
||||
private:
|
||||
PerformanceManager();
|
||||
|
||||
static PerformanceProfile m_CurrentProfile;
|
||||
static PerformanceProfile m_DefaultProfile;
|
||||
static PerformanceProfile m_InactiveProfile;
|
||||
|
@ -232,7 +232,7 @@ int main(int argc, char** argv) {
|
||||
bool ready = false;
|
||||
int framesSinceMasterStatus = 0;
|
||||
int framesSinceShutdownSequence = 0;
|
||||
int currentFramerate = highFrameRate;
|
||||
int currentFramerate = highFrameDelta;
|
||||
|
||||
int ghostingStepCount = 0;
|
||||
auto ghostingLastTime = std::chrono::high_resolution_clock::now();
|
||||
@ -300,7 +300,7 @@ int main(int argc, char** argv) {
|
||||
const auto occupied = UserManager::Instance()->GetUserCount() != 0;
|
||||
|
||||
if (!ready) {
|
||||
currentFramerate = highFrameRate;
|
||||
currentFramerate = highFrameDelta;
|
||||
} else {
|
||||
currentFramerate = PerformanceManager::GetServerFramerate();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user