30 July 2006

Taking a small vacation

The last week or so nothing important happened in EL, just various bug fixes, and some frustration regarding the 1.3.1 update, where I released 2 clients already, and none of them work properly.
The first one didn't have the proper version number, the second one crashed on exit, and this 3rd one still has a problem with the music, so I am waiting to see if it's going to be fixed tomorrow. If not, we'll go for the update anyway, because we'll be going over to Romania for 2 weeks on 3rd of August, so I'd like to have this update before I leave.

After I come back, I'll start working on some new stuff, such as a slightly smarter AI, summoning stones, and so on. Meanwhile, Learner will start working at importing and porting the BM stuff to Eternal Lands, so that we can have dynamic maps, dynamic resources, and so on.

My solar panel USB charger is finally ready, I got the USB charger from Hong Kong a few days ago, so I can charge it from the solar panels, then I can charge my cellphone from it (so basically it acts as an energy storage, for those cloudy days, or for when I take the cellphone with me).
I will take some pictures of it before I leave, and post them when I get back.

On a totally different note, Iron Maiden is going to release their newest album on 5th of September, and I can't wait to buy it. Meanwhile, they were nice enough to make available for free one of their new songs, which you can find here:

21 July 2006

Solar power on the go

On 3rd of August we'll be going to Romania for two weeks, and I want to test a 'theory' of mine regarding powering my mobile devices only by using solar power.
Since April I am using a system of solar panels in the windows, connected to a 7A 7.2V Lithium Ion battery, which is connected to a 5V voltage regulator so I charge my cellphone that way.
However, taking this system with me is impractical for quite a few reasons:
1. The solar panels are big.
2. The battery pack looks pretty much like a bomb, with scotch tape, voltage regulator with aluminium heatsink and wires sticking in an and out of it. I highly doubt they'd let me on the plane with that thing :D And for good reasons, because you can actually use those batteries as a bomb. Have you seen that video of the Dell laptop exploding in Japan?
3. That system is a little inefficient, and it's not designed for portable use.

Now, I will have two portable devices with me:
AAA powered MP3 player.
My cellphone/PDA.

My estimate is that the cellphone will require at least 1 Amp/hour per day, possibly more if I plan to use it for games as well.
So two 225 mAh 6V solar panels should be enough. The problem is that I want to actually store that energy during the day, and recharge it at night. This turned out to be quite problematic. One option would be to use 4AA NiMh batteries, but I tried this already and it doesn't work very well. Apparently 6V - 0.2v for the diode is not enough to charge them fully. Making a DC-DC converter to increase the voltage is out of the question, because I am not really that great when it comes to electronics, and it would look ugly anyway.
So what I did was to buy an USB charger, that has an input of 5V, and an output of 5V, using a lithium ion battery. It should have it's own DC DC converter, it's small, and relatively cheap. Something similar to this one: http://cgi.ebay.com/5000mAh-external-portable-battery-for-PSP-NDSm-GBA-SP_W0QQitemZ230009146028QQihZ013QQcategoryZ122516QQrdZ1QQcmdZViewItem but it has an USB male and an USB female connector, and it's only 2.5A.
Should be here just in time, it ships from HK.

Once I put everything together, I will post some pictures.

19 July 2006

Moving the website

Today I got an e-mail from our host, letting us know he is moving our website on some other machine. He did most of the stuff, I just had to change the name servers.
It took a while for the DNS changes to propagate, but now everything seems to be working fine.

Speaking of moving servers, we are also in the process of getting a new machine for the EL server. This current machine is a Dual P3, 1GB RAM, 1.1 Ghz.
Initially we wanted to get an AMD FX2 3800+ (dual core), but it seems that FreeBSD 6.x did not work on the MB we were supposed to get, so we'll go for a Xeon 3 Ghz, double core.
We'll still use the same host, we are with them for 3 years now, and never had problems (we had maybe 50 hours of total downtime in 3 years).

The whole server should be around 950 Euro, but we also have to pay the VAT for it. So with the bank fees, VAT and other things, we'll be paying something like 1700 USD. Not bad, considering that this server should last for quite a while.
If everything goes as planned, we should be on the new server somewhere in late August or September.

Speaking of that, me and Learner talked about the 1024 files/process limit in FreeBSD. Our server uses only one process/thread, so we will need to lift this limit to something like 4096 (each socket connection counts as a file).
Fortunately it seems relatively easy to increase this limit, but it requires recompiling SDL_net and using ulimit as root, to increase the global file limits.
So anyway, as son as we get that server, we'll start playing with the files limit, and once we fix it, we'll switch the servers, which should be relatively easy to do, although it will require some downtime (something like a few hours, if everything goes well).

T-Mobile charging for incoming SMSes

Today I just found out that T-Mobile in the US wants to charge their prepaid customers for the incoming SMSes. This seems totally outrageous, and one of the reasons I decided to chose T-Mobile was the free incoming SMS option.
I tried to contact them and send them the following e-mail, but unfortunately you can not contact them unless you give them the last 4 numbers of your SSN, and since they don't have my SSN, I don't see how this would help them validate my identity.

So since I was unable to send it to them, I'll post it here, as some sort of "Open Letter". Not that I expect they will read it, but why not?

I just wanted to let you know that I am very dissapointed at the "pay 5 cents per incoming SMS" idea.
From now on, I will not use the SMS service again, and as soon as another GSM operator will come in my area (Besides for Cingular/AT&T) I will switch away.
I don't find this kind of changes acceptable.
It's not about the money, it's about trying to steal from the customers.

With more and more free WiFi hotspots, you guys will soon have to realize that your services are becoming obsolete, and you should treat your customers better if you expect to keep them.

16 July 2006

The new camera system

Eternal Lands was originally meant to be a 3d Isometric game. The reason for this was that at the time I started to write the client I did't have enough experience for fancy 3d stuff such as frustrum culling, binary trees, portals, LOD, and so on.
The Isometric perspective also allowed us to have more polygons in the objects, because at a given time only so many objects could be on a map.

A while ago, I think it was last year, some client programmers have implemented a perspective view, and while the viewing distance increased a little and the distant objects were smaler than the close objects, the looks were still reminescent of the original game. In order to keep the frame rate manageable, someone else has implemented a binary tree system for the objects, so that only the necesary ojects will be shown, based on which objects intersect the view frustrum.

Now someone has implemented a 1st person style camera, and the game looks GREAT with it. Unfortunately, there are many issues with yet, so it can not be used right now.
For example, the speed is really low, just a few FPS.
Some distant objects are improperly culled, and they fade in and out of existence, which looks ugly.
The lack of a sky makes the game look kind of not so nice.

However, once those issues will be addressed, the game will look so much better, as good as the commercial games.
Take a look at the following images.

And this is a fake (photoshoped) screenshot, with a sky in the background. The scene is rendered by the game engine, but the sky is photoshoped.

Nice, isn't it?

11 July 2006

Some gameplay adjustments.

The past week I worked at some little adjustments in the game system, as well as adding 3 new potions (Invisibility, True Sight and Poison Antidote).
Some of the adjustments included making some combat spells more expensive to cast, but have a greater effect based on the caster's level.
Some people liked that feature, but many didn't, and as usually, they do not give it some time to see how it works, but bitch before they even try it. Some complained the spells are too powerful. Some complained they are too expensive. Some suggested a 'compromise', making them less powerful and expensive (as if I just slapped the formulas together without giving it a lot of thought).
A simple request for feedback resulted in over 225 posts, in one day. For more info, you can view the thread http://www.eternal-lands.com/forum/index.php?showtopic=26840 here.

I got frustrated and decided to return the spell system to what it was before this tweak: boring, not very useful, but easy to level up. This should teach the players to actually give the new changes a chance, rather than shooting them down before they try them out for a while. For me, it doesn't really matter, I am OK with both the systems, but I believe that, ironically, it's against the mage's best interest to revert it to what it was. And I say it is ironic because the mages complained the most about how hard it is to level the magic skill now that the spells require more ingredients and mana.

A similar problem occurred with some potion changes, where I made a few weaker potions slightly more useful, and now people are complaining that higher level potions are useless. So I am going to revert those potions to the previous levels as well. Again, I don't care too much about that, it was just an experiment which failed.

Some other changes were relatively well recieved, because most of the people wer enot affected by them. Such as, for example, the newbie helper will heal newbies for free, up to level 17 (exclusive) attack.

I wanted to write more about those tweaks but I didn't sleep one minute last night, so I am up for about 34 hours, which makes writting any coherent though a challange.

05 July 2006

The update, and what went wrong

We had our update 2 days ago, and it went relatively well, but being the exigent people we are, we are more interested in what went wrong, not in what went right.

One of the first problems was that the monsters definition file had some problems, namely a monster having the wrong name. So we had to fix that problem. Then we've also noticed a few map problems, having to do with wrong data in the map definition files. A map definition file is an ASCII document, which stores info about that map, such as teleporting areas, damage areas, if the map is PK or not, and so on.

One other problem was that the Windows client was compiled using SSE instructions, which has caused some people with older CPUs to not be able to play the game. I compiled a client with 386 instructions, which solved the problems for most of the people.
There were some problems with the Linux download, mainly about mismatched libraries and stuff like that, which is relatively common to Linux. Given the fact that Debian is such a popular distro, and a lot of distros use it's packet management/archive, we'd like to find someone to do a .deb archive for us.

Other problems had to do with a few server bugs, such as the new fire/cold/radiation spells did not reset properly, enabling people to cast the same spell multiple times and basically have immunity to that kind of damage. This and other minor server issues were solved yesterday, and the server was restarted.

Most of the players were happy with the update, although there was some bitching at the fact that the hydrogenium (an ore required for high level armors) is past a PK map, so that not everyone can go and harvest it there. This was, of course, anticipated, and I believe it adds a little more strategy and tactics to the game, as well as some additional guild/interguild cooperation.

A cool thing related to this update was that we made it in to 20 on the Freshmeat, in the Vitality section. We were on the 12th position, which is really cool :)
I've been waiting for this ever since we released the first version of the game, more than 3 years ago.

We are expecting another minor update in about 2 weeks, which won't really bring anything new, but fix some of the minor problems we still have in this client, as well as adding two compiled clients, one for SSE2 and one for 586 so people with newer CPUs will be able to have a speed increase, while people with older CPUs will still be able to play the game.

01 July 2006

The day the counters were reset

On the EL server, there are a few millisecond counters. Some are used for the walk requests, to prevent lots of walk requests from the same player in a short interval. For example, only 3 walk requests per second. Otherwise someone could send 1K walk requests, which would slow down the server a lot.

Another MS counter is for the harvesting, to prevent people from harvesting too fast.
One problem with those counters is that they are 32b values, which means that in an interval 2^32/(1000*60*60*24)= ~49 days they will reset (overflow, then start from 0).
We never had the server up for that long, so there was a concern on possible problems that might happen when they overflow.
Because of the modifications of the test server for the update, and because of the fact that no critical bugs were discovered in the current server, we just let it run without restarting it. Yesterday it happened that the server was up for 49 days, so the counters restarted.
As expected, there were a few problems, such as people not being able to walk or harvest. However, when they disconnected and reconnected, those problems were solved.
So at least now we know that this is not a really big problem, which is pretty reassuring.

In other news, we released the updated Windows client, so that people can predownload it, which will avoid a big strain on the server that host our update/download files. The server is still strained a little bit, because almost 200 people download the update now, but that's better compared to 500 people downloading it at once. Besides, this way, at the time of the update people with slow connections won't have to wait and download it, as they already have the client. All they will have to do is install it.