This is meant to explain why Eclipsis (and other games too) lag and why it takes a long time for it to be fixed. This will be focused on Eclipsis and clearing up some misinformation specific to Eclipsis.
Does server lag effect FPS?
Nope, not at all. Server lag and FPS are similar but they are actually two different things.
Your game has something called frames per second, which is how many times the game “takes a picture” of what’s happening. The game does a lot of math to decide what that picture will look like, and some things take more time to add to the picture.
Server lag is similar. Servers in Roblox has something called ticks per second, or more commonly referred to as its “heartbeat.” The TPS of a server is similar to FPS, and in fact, your game has TPS too, your FPS is your TPS. The difference is that the server never “takes any pictures” of what’s happening so it has a lot less work to do, but, the server has to also send a lot of information to your game.
Roblox servers run at 60 TPS just like your game runs at 60 FPS. If one tick on the server takes too long, the TPS will be lower. Each tick, the server tells your game about what has changed, and your game tells the server what it wants the server to do. The server will let your game control your character, fire weapons, click buttons, etc. Unfortunately, if the server TPS is low the server will take more time to do what you wanted it to, and, if your game is running faster than the server the server can become overwhelmed.
On top of that, a lot of things in games use time, and, if things happen at the wrong times they can appear to speed up or slow down. The game looks a certain way when the server is at 60 TPS. If the server has a lot to do, and, it goes down to 30 TPS, a lot of things can actually appear to happen twice as slow. The server is actually doing a lot every tick, for example, in Eclipsis, well pumps produce some energy every tick.
But, how can Eclipsis, or any other game fix that?
A leak in a pipe leaks 5 iridium per second in Eclipsis. One way that the pipe might do that is to wait a second, leak 5 iridium, wait another second, leak 5 iridium, and keep doing that. The problem is, what if the server lags for 2 seconds? Well, we should have leaked 10 iridium in those 2 seconds, but, instead we actually only leak 5 iridium, and then we wait another second.
That’s usually not a problem when you are waiting a long time. But, server TPS is just like that! Instead of waiting 1 second, we wait 1/60 seconds. That means, if the server takes more than 1/60 seconds for one tick, the next tick will happen late, so things will happen slower.
How can that be fixed then? Well, the solution is to measure how much time actually happened. The code can ask the server what time it is before it starts waiting, and then once it finishes waiting, it can ask what the time is again to see how long it really took. That time is called “delta time” (meaning difference in time) or sometimes “frame time.” The game’s code can then calculate things based on that time.
So, let’s go back to the leak example. Let’s say the game leaks 5 iridium, but, the server lags for 2 seconds while its waiting. That means that when the server stops lagging, it will have waited for 2 seconds instead of 1, so it will have waited twice as long. Our delta time, so the time we really waited for, will be 2 seconds, we would normally want it to be 1 second. Again, we want to have leaked 10 iridium instead of 5 iridium. Well, the solution is actually pretty easy, we just need to multiply 5 by the delta time! That even works when the server lags for 3 seconds, or 4, or 5.1235 seconds.
The problem is, there are a lot of places where Eclipsis needs to use delta time, and, not all of them are as simple, so, it takes a long time to find them and figure out how to fix them.
Why is my FPS so low in Eclipsis if it isn’t because the server is laggy?
When Eclipsis was originally made, the game was not meant to be as big as it currently is. Most of the features in Eclipsis were not designed to be very fast, and that has a big effect on your FPS. A lot of the time your FPS is low because the game takes a long time to come up with a “picture” of what’s going on.
When the game needs to show a solid object, it knows it doesn’t need to show anything behind it so it won’t need to. But, if an object is transparent, and we don’t show the objects behind it, they will be missing. That means that the game has to show things behind it.
That also happens for textures, or really anything the game needs to show you. If something is transparent the game always has to show it and what’s behind it. Eclipsis has a lot of examples of things that are transparent.
On top of that, a lot of things like textures, glowing objects, lots of lights, shadows, etc can take a really long time for the game to show you since they involve a lot of really complicated math.
In order for FPS in Eclipsis to get better, things that take a long time to show have to be reduced. The problem is, its often not obvious what things do take a lot of time to show, so, its hard to find them. Over time things will get better, but, there is no easy way to speed up your FPS in the game unless something slow is found.
Conclusion
Eclipsis will get better over time, but, unfortunately its really hard to make it faster quickly. It almost always takes a lot of trial and error and a lot of work to make a game faster than it already is, and, in Eclipsis there are a lot of things that need to get better first. The game’s developers know the game is laggy and want to fix it, and, eventually the game will be better, especially if more time is spent on the issues.
If you have any questions about this or have something to say, feel free to ask me. You can PM me by logging into the devforum with your Roblox account, or you can contact me anywhere else.
Additionally, if you know of something specific in Eclipsis that causes a lot of lag, please feel free to tell me what it is or report it in the game’s community. I am an experienced Roblox developer, especially with optimization and lag, and I usually have a good idea of why something might cause lag and how it can be fixed. I can always use that sort of information to help reduce the work that needs to be done to optimize Eclipsis and am very glad to.