• Dear forum reader,
    To actively participate in our forum discussions or to start your own threads, in addition to your game account, you need a forum account. You can
    REGISTER HERE!
    Please ensure a translation into English is provided if your post is not in English and to respect your fellow players when posting.
  • We are looking for you!
    Always wanted to join our Support or Forum Team? We are looking for enthusiastic moderators!
    Take a look at our recruitment page for more information and how you can apply:
    Apply
  • Forum Contests

    Won't you join us for out latest contest?
    You can check out the newest one here.

Not a Bug: Performance : Less calculations / more gamespeed / less serverload

DeletedUser

Hi,

yesterday @ open beta start many users saw some real performance issues regarding the server(s) :
http://forum.en.forgeofempires.com/showthread.php?837-Server-offline

So let's say the overall input / output performance was not really good.

But why ?

At first much more players are playing the game on the same? server
This causes a much bigger load in communication with the server
From what I have watched by playing the game, every action you take must get a response from the server.

Example 1 : You collect 1 house, the server says "OK" and the gold gets added to your ingame goldaccount, the timer for the house restarts (this is on clientside)
Example 2 : You collect 20 houses in a row, the server needs to send you 20 x OK and the gold is added

Then you see the single calculations below your gold/supplies account (+21, +21, +21 and so on)

So how to improve it ?

We've allready got enough timers on clientside in the game, so it won't be a problem to create another one.
Let's call it "The Collector :rolleyes:"

The Collector takes any action a player makes in a fixed timeperiod and after the time is up, it submit's all playeraction taken to the server as a single transaction - the Server gives only 1 OK and any collected resource is free again for playeractions.

So let's try this :
The Collector gets a 30(20/10) second interval.
You collect in this timeframe 20 houses and 4 productions, all without any response from the server.
After the interval the Collector communicates to the server that all 20 houses + 4 productions are collected.
The server says OK and the player get one calculation on the two accounts (lets say 420 gold + 384 supplies), after that the collector sets the collected resources free for any action.

If there is no player action at all ... the Collector does nothing and restarts it's timer waiting for input.

But what would happen if The Collector is busy with sending and I want to collect ?

To prevent this case, we need to add one memoryspace which saves the playeraction and gives it over to the collector after it's
free again -> Problem solved

Where is the performanceboost here or any advantages ?

1. Much less communications between client <-> server
2. Less calculations on the client
3. Much faster responsetime for any playeraction
4. You could support much more players on the same server without any issues
5. Cities could be bigger as they are now with much more objects to interact

Any disadvantages ?

Need to be programmed and tested, but we are still in beta ... and normally you do exactly this on the beta stage.

Greetings
Funonline
 
Last edited by a moderator:
Top