25 June 2007

PK points

A while ago, I added a feature where guilds can declare total war, and whenever someone killed a player from a guild they are mutually at total war, his guild would win a point, and the opponent's guild would lose one.

This system isn't very popular, most guilds avoid total wars at any cost.

However, someone proposed extending this system to individual kills. I was also thinking of something similar a while ago, but my main concern was cheating (someone creating an alt so that he can kill that alt and gain points, or have a friend's alt do that).
Today, I think I came up with a solution to this problem. Not a perfect solution, but it should solve most of the cheating problems: Only the players with a relatively high attack and defense rating would be able to participate in such a system. So if you attack and kill a newbie, or if a newbie attacks and kills you, no one gains or loses a point. Besides, leveling an alt to a very high level, just so that you can gain points with it is impractical; you can use that time to actually level your main char and get more points.
As a failsafe, we will monitor suspicious fights, and if we determine that someone is cheating, he will lose all the points.

There are two possible systems we can implement: Symetric and asymmetric.

The symetric system is the easiest: You lose a fight, you lose a point, you win a fight, you gain a point. This way, the sum of all the points in the game is close to 0, but not necesarly 0 (for example, if someone destroys their character, or if someone is punished with a points reduction).

The asymmetric system differentiates between combatants. If you kill someone of a lower level than you, you get little points, and the opponent loses few points. If you kill someone of a higher level, you gain more points and the opponent loses more points. Determining the levels of the players is tricky, some suggested to use the number of points each combatant has, and implement something close to the ELO Rating System. Another way would be using their skills and attributes as a level. Both methods have various shortcomings, and I will ask the players which system they would like most.

15 June 2007

Land Mines

In the last few days, I started working at the land mines.
First time I wanted to have land mines in the game was about 4 years ago, but I always had other things to do. In addition to that, some people (like Roja, for example) complained about them not fitting in the game theme.

After doing some research, it seems that the first documented explosive land mines were developed in 1530, which is at the end of the medieval period. That means, they fit the game theme.
Of course, those are the explosive mines. However, devices such as caltrops were used thousands of years ago.

Anyway, originally I just wanted to make a mine that goes boom when you step on it, and hurts the person that does so, and the nearby people. Then I came up with the idea of having proximity mines, which explode when someone is near them.
And when I started implementing them, I started with the data structure that holds them (I always do the structures first, and the code later). And it dawned to me that there are so many other things I can do. For example, I can make wards.

A ward can have multiple uses, such as:
Heal the person that placed it when nearby.
Make invisible players visible, when nearby.
Drain the mana of nearby people (including the caster's mana).
Increase the skill of the caster when nearby.
Decrease the skill of everyone nearby.
And many other cool stuff.

Then we can also have traps, where when you step on them, they will prevent you from moving for a few seconds. Or caltrops, that will damage you and possibly destroy your boots. Or, poisoned caltrops, that will poison you.

And, finally, we can have barricades. They will be temporary walls that can be used for defense or even offence (like trapping someone inside them).

Obviously, there will be some restrictions concerning the and mines and related objects:

1. The person that places them needs to have a certain engineering level, the more lethal/complex the mine, the bigger the level needed. So engineering will be the only skill that is required to actually USE some item, not only manufacture it.
2. They can only be placed in PK maps (not in PK areas, such as arenas).
3. In order to prevent their abuse, the land mines and associated objects will have a limited time, after which they will dissapear. The time will be probably around 10 minutes or so. They will dissapear if the player that placed them leaves the map (including death and disconnection). Most of them will be indiscriminate regarding who they affect. So if the person that placed them is not careful, they will hurt him too.
4. The proximity mines needs to be activated by a remote control device. Otherwise, they would prematurely detonate when the person that placed them moves. In order to activate them, you will need to be pretty close to their location, but outside of their sensitivity radius (you can activate them inside the sensitivity radius, but that might not be a good idea).

The mines will be implemented relatively soon (in a month we should have at least some working kind of mines). But, since they require client support, they will not be in the game until the next client update, which should be around november. However, we will have tests on the test server, for people willing to compile their own client from the CVS. We will annouce such tests, so everyone that can compile (or get acompiled client) can test them.

10 June 2007

EL Player Statistics

Until recently, I had no idea how many active players we have. Now, I have all the data avaialble (the logs) but no time to process them, or to make a script that does.
A few weeks ago, I was talking with Scafativ, who is the owner of Gossip, an offline messaging bot. Our game does not have offline messaging capabilities, and we didn't really want to add such a thing, because the forums can be used for that.
However, some players wanted some ingame offline messaging, so a few bot owners implemented that. Gossip is the most popular bot. In addition to that, it has some other functionality, such as matching people for PvP training, and so on.

I asked Scafativ if he can compile some statistics about our player base, because his bot 'spiders' the online players page every few minutes. Being a data analyst, I figgured that he would be the perfect person for such a job. He agreed, and today he PMed me the results, and I decided to make them public:

date, #characters, #char_minutes, #char_hours, avg_min/player
20070518, 2115, 591448, 9857, 279
20070519, 2237, 649464, 10824, 290
20070520, 2255, 693748, 11562, 307
20070521, 2090, 565108, 9418, 270
20070522, 2028, 549622, 9160, 271
20070523, 2008, 536354, 8939, 267
20070524, 2014, 546426, 9107, 271
20070525, 2051, 550980, 9183, 268
20070526, 2166, 618758, 10312, 285
20070527, 2203, 645926, 10765, 293
20070528, 2230, 658270, 10971, 295
20070529, 2160, 589010, 9816, 272
20070530, 2115, 559502, 9325, 264
20070531, 2096, 566532, 9442, 270
20070601, 2128, 556018, 9266, 261
20070602, 2215, 649506, 10825, 293
20070603, 2236, 641708, 10695, 286
20070604, 2122, 580180, 9669, 273
20070605, 2159, 596986, 9949, 276
20070606, 2173, 599336, 9988, 275
20070607, 2246, 600140, 10002, 267
20070608, 2219, 592132, 9868, 266
20070609, 2324, 707704, 11795, 304
20070610, 1606, 306690, 5111, 190 (partial)

Anyway, we both remarked that the numbers are surprisingly consistent. As you can see, the number of players per day fluctuates around 2150 per day. Now, when he will compile weekly statistics, we should be able to determine the total active population (for example, not everyone logs in every day).
I am not sure what the numbers will be, but I am guessing it will be around 4K.

08 June 2007

Roadmap for the next update

We are planning to have the next client in November, but this is, by no means, any promise. It's just what I would like.

If all goes well, we'll have the following things:
1. Working landmines/proximity mines.
2. Missiles (mainly arrows, but hopefully also stuff like 'medieval hand grenades' and smokebombs).
3. 3D terrain.
4. New special effects.
5. Speed improvements.
6. Normal maps.

Now, I am not really sure we'll have all that in November, or even at the next client update, whenever that will be. However, we will have at least some of those features.

One feature I want to talk about now is the 3D terrain.
As you probably know, our terrain is mostly flat, with some mountains or mounds here and there. The water is also slightly under the ground, at the same level allover.
Daniel is working at a 3D terrain, based on heightmaps.
The pros:
1. The game will look nicer.
2. The game will be slightly faster, especially on newer video cards.
3. Newer maps could be easier to make.
The cons:
1. The maps will be bigger.
2. Since we will use multitexturing for the terrain to blend two texture layers together, older video cards that have only two texturing units will not be able to display the clouds shadows and the normal shadows.
3. All the maps in the game will have to be re-created to some extent.
4. We will get rid of the 2d objects layer (the stuff on the ground, such as leaves, etc.)

Now, there might be some issues with getting rid of the ground tiles, and having only a height map. Especially in some inside maps, where the floors are littered with lots of 2d objects, such as blood, bonse, etc. So we might keep the tile mode as well, but we'll need to see about it.

We are also thinking of adding some new features that would make the game incompatible with some very old video cards (most of the computers in the last few years should still work, we are talking about really old videocards, older than a GF2). Again, we are not sure of this yet, we'll need to have some sort of poll on our forums and see how many people would be affected by such a change.

04 June 2007

The update, finally done!

Yesterday we had our update. A few weeks later than originally planned, but it went remarkably well.
99% of out players had no problems, the rest had some problems with the sound, which caused their client not to start. We fixed this problem by telling them to disable the sound (it took a while to figure the source of the problem).
Now only a few players (less than 5) have some other problems that prevent them from playing the game, and we are trying to help them too.

We did, however, forget to include some #defines in the client, and the windows version is compiled without a few bug fixes, so there are some minor problems affecting other players. We are planning to release a patch soon, that should fix them.

We also moved all the downloads off our website, to external mirrors, which made the forums and the rest of the site more responsive. We are still pulling between 2 to 4 mbps every day, mostly because of the forums. We might have to get another server for the forums alone, and use the current one for the rest of the website. Or just move to a more expensive webhost.

03 June 2007

Ode to Intel

Ever since we started working at EL, there were times we had to contact a hardware manufacturer (usually video card manufacturers) for some problem or another.
Until recently, we only got in touch with nVidia and ATI/AMD. Both were pretty responsive, and were willing to assign one of their driver engineers to work with us.
Nvidia actually helped fix one bug in their Linux drivers, without us even contacting them (one of their developers seen my post on a forum, and volunteered to come to our game and reproduce the problem). It's worth mentioning that this happened in 2003, when EL was still in it's infancy, and we didn't have more than a few hundred users (in total, not online at a time).

Last week, I sent an e-mail to the Intel tech support people, explaining that we have a problem with some of their OpenGL drivers, and asked if they would be willing to assign an engineer to work with us.
To be honest, I expected a negative response, something like: "We don't have time to help you", but I figured that hey, what can I lose?

And even though I was expecting to be disappointed, Intel's response was perplexing..
They basically told me that the game is not officially supported by them (duh!) and to either update my drivers, or go to the game's website and see if they released any patch that maybe addresses this issue(!!!)

Which means that they didn't even READ my e-mail, but just sent me a canned reply, probably generated by a machine.
This is totally outrageous, especially since I have two Intel computers (and two AMDs). And our game server runs on an Intel CPU. It shows that Intel doesn't give a fuck about it's customers. In fact, we care more about their customers than they do, we held back the update for two weeks just to fix this particular problem with their video cards.

Because of this, I will never buy anything made by Intel (CPUs, network cards, video cards, and so on). One good thing about capitalism is that it gives people the option to vote with their wallets.