07 January 2007

Yet another new record


Today we had 766 players online. Counting the bots too, there were almost 850 connections, and the server load was minimal, as it can be seen on the graph.

The last few updates were met with almost unanimous approval from the players, which means that either we are doing something right, or that they got too tired of complaining :D

I miss doing some programming. In the last few months I did very little programming for the server; mostly I did edit the definition and scripting files to add the new items and monsters. This is somewhat reccurent, I felt like that many times.
Sure, there was some little programming here and there, like adding new special days, but it was mostly copy and paste. The scripting (Small) also requires programming, but, again, is mostly copy and paste.

One thing I want to do soon is to make a 'light map' for the server. This light map would precalculate the luminosity of each step tile in the game, taking into account the nearby light sources and the background ambient light in the caves, dungeons and inside maps. Ideally, the nearby objects should also be taken into account, some sort of ray tracing.
There is a problem with this though; the dynamic maps (player based houses, factories, etc.). Such a precalculated map would need to be changed each time a new lightsource or object is placed there.
If we are going to do a raytracing to each nearby light source, recomputing the map would require a lot of CPU time. One possibility would be to have a background thread doing that each time something changes. The problem is, right after a map change the light map will be wrong (not yet computed), which could cause all kind of problems.

Perhaps you are asking what is the point of having such a light map anyway.
Well, the idea is that I want the server to take that into account, so depending on a variety of factors (the light level of each tile, the items a player is wearing, the perception attribute of other players) one player will be able to see or not another close by entity (another player, monster or NPC).
Similarly, a player in the dark fighting another player in the dark would have some penalty if his perception skill is not high enough. I don't know yet what kind of penalty that would be (how severe). It will have to be determined through additional testing.

Once we have this system in place, we can add a lot of neat things, such as spells to reveal players in an area, a perk such as "night vision", and so on.

7 Comments:

Anonymous Anonymous said...

Have you considered doing light map calculations locally on each player's machine and combining the result on the server? I once wrote some software to do this for ray tracing shadow maps. Let me know what you end up doing...
ashesfall at gmail.com

8/1/07 13:02  
Blogger Radu said...

No, I nevered considered that, and for a good reason. You should never trust the client in a MMO.

8/1/07 15:59  
Anonymous Vytas said...

As far as I understand you are talking about the player built constructions that even aren't in game yet. I can't be sure what they will be like, but I've got an impression they won't be very easy to build/destroy. Thus, how about you divide a map into many small pieces (1 piece being approximately the size of light-source max. possible distance/2, like 8x8 or w/e), and recalculate only adjacent pieces when some new buildings arise? Also, if building doesn't appear immediately, you can notify user about completion when nearby map pieces are updated :)

Of course, I was assuming monster/player shadows are ignored.

8/1/07 19:19  
Blogger Radu said...

Yes, what we are going to do is invalidate the heightmap around the area where a new module is built/destroyed/removed.
But that means we need some runtime calculations, we can't precalculate everything.

9/1/07 00:21  
Anonymous Anonymous said...

It's good to see Atribs being made more useful, while at the topic of stuff, when will Charm (being one of do-nothing cross-atribs) do something?...

However, it's going to be funny, majority of top lvl fighters will be blind LOL.. almost

9/1/07 16:07  
Anonymous Anonymous said...

Server load may have been minimal, but what about use of bandwidth? It is kinda laggy now when nearly 800 players are on :/

13/1/07 12:17  
Blogger Radu said...

If there is any lag, it is not from us. It might be from your ISP, or from some congestions in between.
The bandwidth is about 1.2 MBPS up (and 1MBPS down) with ~800 connections, and our pipe is 10 MBP (our ISP's pipe being considerably higher than that).

14/1/07 04:56  

Post a Comment

<< Home