27 December 2008

Update coming soon

We released the second RC a few days ago, and almost everything works fine, with some small problems that were fixed. I'll release another RC tomorrow, then if there are no other problems, we'll have the update sometime during the first week of January.

Today me and Roja did some tests with polygons and textures. I told her to make some spheres with 180K triangles, and map them with 4 4096x4096 textures, then place about 40 of them in a map with few other objects.
This test had a few objectives:

1. See if on modern video cards the fill rate is a concern (and it isn't, replacing the textures with 256x256 variants didn't affect the frame rate at all.

2. See if the camera rotation jerkyness in some maps is due to the number of triangles or the number of objects. The results of this test were a little surprising. All those objects were placed in a small map with water all around them. The shadows were on too, so the scene had around 15 million triangles. With reflections, the frame rate was somewhere around 35 fps. The camera was very jerky, even though at that framerate it should have been pretty smooth. Disabling the reflections increased the FPS to about 45 (a little less than I expected), but the jerkyness was virtually eliminated.
Furthermore, in Kusamura Jungle, a map with 15K objects, if the reflections are on the camera movement is very sporadic, and the FPS is around 25 FPS. With the reflections off, the FPS is just a little higher, but camera is very smooth. Even stranger, by limiting the reflection distance to 30 meters (it was 100 before), the camera is as smooth as when there are no reflections at all. I really have no idea why the reflections cause this problem..

3. See if there is any speed benefit in consolidating a few objects into a single one (same number of triangles, but fewer objects for the scene management.) This test is not done yet, we'll have to do some more tests tomorrow to see.

All in all, this test took very little time to do, and the results were pretty useful. One idea I came up with is to add in the map editor a way to automatically flag the objects that should not cast a reflection. For example, an object that is far from the water, or near the water but very small, should not cast a reflection. Similarly, a bigger object like a cliff should cast a reflection even if it is further from the water. Right now, all those decisions are made in the scene management routines at runtime, which is not the best way to do it.

In other news, Xerafax went on a nice vacation and will be back sometime in mid Janaury, and I won't start working at the map editor until then, because I need his help. That means I'll have some time to work at the potion god quest.

10 December 2008

New engine

Now that the first instance is on the main server, and I almost finished implementing the next instance, for levels 80 to 100 a/d, it is the time to disclose my plans for the future.
After finishing the second instance, I'll take a break from server programming for a while, and work at the new map editor, that is using a new engine written by Xerafax.
This new engine is quite nice, because it will use vertex programs only, so there is a significant performance increase. It will also work on most of the video cards our players have, including the Intel 950. Unfortunately, we'll have to drop the support for some really old video cards, such as Intel 8** cards, TNT 2 and other cards that don't support vertex shaders. Based on the information the client sends to the server about the video card capabilities, less than 5% of the players will be affected, and those people will have to update their computers/video cards.

So anyway, I am going to spend some time working at the new map editor. I would like to do some texture painting for the terrain, implement a function to randomly add detail 3d objects such as vegetation, small rocks, etc, and other misc. things to make the map editor usable.

I am not sure how long this will take, but I am looking forward to do it because for the last few years I've only done server programming, and it gets a little boring after a while.
Of course, that doesn't mean there won't be any more server updates soon, because I'll still add new items and more instances, but there won't be a lot of new features until the map editor works the way I want it to work.

02 December 2008

Instances (again)

I finished about 70% of the instance work, and have a limited test yesterday with a few moderators. I am still working at adding more unique monsters and some unique items for prizes, and I hope that in a few days the instances will be available for everyone to test.

For now, there will be only one instance, for those over level 100 a/d (although on the test server everyone will be able to go). The reason why there will be only a high level instance available initially is so that if there are any bugs, the problems will be limited to only a few players.
Since the instances take place on maps not available on the client yet, those who want to participate will have to manually download the maps. This will, of course, be fixed with the next client update, which I hope to have in a few weeks.