27 June 2006

The update delayed for a few days

We were planning to release the update today, but unfortunately Learner had to go away for a few days, I can't really update without him; there have been a lot of changes, some mine, some his, and it's a good idea to have him around in case something goes wrong with the server.
This is not really a bad thing, because this way the final release candidate can be tested a little more, and the test server can also be tested. Better to have a nice and stable update than having to have a rollback a few days after.

Other than that, it would seem that everything is good, the final RC seems pretty stable, the map bugs have been pretty much ironed out (and the remaining bugs can be fixed with only a small server update).

Some people have requested a few more high level monsters, because there is a fight on their spawns. This is resonable, since the oldest player is playing for at most 2 years (in fact more than that, but 2 years ago there has been a total crash, and all the data was lost).
So now a lot of players are pretty high in their fighting skills, which means that more high level monsters are needed.

We have anticipated such a request, and now there are 3 new monsters. One monster is a hobgoblin (not really high level, just fills in some gaps), a giant (the strongest monster in the game, will require a team to take down), and an yeti, which is a little lower level than the giant, so really high level players with good gear can take him down. There are about 5 spawns for the yeti, and about 5 for the giant.
Those monsters are already on the test server, so people can go and try them out. In fact, we encourage them to do so, because this will allow us to tune them in case they are too weak. So if you are a high level EL player, grap the RC2 from here: http://www.eternal-lands.com/forum/index.php?showtopic=26343 and go find them :)

As for an ETA for the update, we really HOPE we can get it done this weekend or earlier, but no promise, ok?

23 June 2006

Did you ever have a day when nothing works?

Well, today is one of those days.
A few days ago I bought an "as is" laptop off eBay, for 75 bucks. The problem was that it didn't have any RAM or HDD, and the screen was dim. And no battery/adapter either.
Not a problem, I had a spare laptop HDD and I bought some RAM from NewEgg. And I can use one of my lead acid 12v batteries with it.

Well, to make a long story short, after I cleaned the CD ROM drive and opened the screen, I almost got it to work. I tried to install PCBSD on it, but it died at 3% during the installation. I tried to install Ubuntu 6.06, it died at 9% when loading the kernel..
Then it just died. Didn't start up at all, the power LED was blinking... The battery was fully charged, so that wasn't the problem. It didn't even attempt to start, because I was monitoring the current drawn from the battery, and it never exceeded 0.4A. I opened the whole thing, removed everything from it, hoping it might have been the HDD or the CD ROM or something that was defective. Well, despite for my best effort, I couldn't get it to work. I guess I'll try to see if I can sell some parts on eBay.

The EL client, for some reason, won't play the music. That's really annoying as well, especially because we are so close to the update, so I don't know what to do. I don't want to postpone the update too much, so I guess we'll just release it as it is, and then when the music works, put the new client in the archive with the music..
I really hope to have the update Monday, hopefully everything will be fixed by then..

20 June 2006

Opera 9 finally released

Today Opera 9 (non beta) has officially been released.
It fixes quite a few problems the various beta versions had, and it also imports the previous settings and bookmarks, which is very good. The beta versions didn't, and it was annoying.

If you never used Opera, then you owe it to yourself to at least try it. Go to www.opera.com and download the latest version, for whatever OS you are using.
It is a very small download, just 6 MB.

Some of the reasons I like it:
1. Very fast, much faster than IE and FF.
2. Very secure, much fewer exploits than the competing browsers.
3. Works on pretty much any OS in the world, from Windows to Linux to FreeBSD, to PocketPC, Nitendo DS, Nitendo Wii, Linux PDAs..
4. You can customize the interface a lot, and, IMHO, it looks and feels better than any other browser I ever used.
5. The ability to start from where it stopped. If you close it, or it crashes, next time it starts it will ask you if you want to start from where you left, so you won't have to open all the tabs manually.
6. Unlike the previous versions, Opera 9 works with most of the websites out there, with very few exceptions.

In conclusion, give it a try, you have nothing to lose and everything to gain.


The release candidate for this update was just released today. We are a little behind the schedule, but this is mostly because of the invisibility spell, which required some extra work and some protocol changes.

And since we alread had some protocol changes, we decided to actually go ahead and make some additional ones as well, in order to save some bandwidth.
For example, we were wasting 6 octets for every animal and monster, because we were sending unnecesary data. That code is there for years, and it totally slipped our attention. We don't expect a dramatic improvement in the bandwidth, but hey, it was a matter of just a few hours, so why the hell not do it?

Today I had also decided to make the steel and titanium armors a little bit more close to eachother in terms of usefulness. So I actually increased the steel armor defense, making it more useful in blocking damage and radiation. On the other hand, the titanium armor offers better protection against heat and cold damage, weights less, and won't give you any penalty. The prices are unchanged though.

Some people were complainig that there are very few not combat related spells, and that the magic skill is pretty much just an extension of the combat skill. This is true to some extent, which is why I am going to implement some other spells such as:

Anti-hellspawn: will remove the hellspawn chance to go to hell when changing a map, while the spell is active. It will not be a cheap spell in terms of essences, probably requiring about 10 essences to cast.
Cold/heat/radiation protection. One spell for each. Will increase your protection against those elements.
Anyway, those spells will be added soon, and as I have some time I will think of more, so that the magic skill will be slightly more useful.

14 June 2006

Sending the player buffs

The way things are now, only a player can see his or her own buffs (modifiers). This is not necessarily bad, because I am not sure whether or not we should let the other players see all the modifiers a player has (such as the shield spell, poisoned or not, and so on).
However, for some buffs it makes sense to let other players know. For example, it's important to tell all the clients that can see an invisible player that this player is invisible, so it will be rendered in a semi transparent way.

So the idea is that SOME buffs should be sent to the other players, while some should be private.
There are two cases:
1. A player gets/loses a buff while others are near him.
2. A new player request the info about that entity. For example, when you move and some other entities apear in your range, the server will send you the information about that entity; stuff such as the name, location, clothes, and so on.

The first case is straightforward. When an entity aquires or loses a buff that is to be sent to the other players immediately, then we just send it's buffs in a single packet (sending the actor_id and a 32b integer that acts as a bitmap; each bit indicates a flag).

The second case is a little bit more tricky. I really didn't want to send more octets down the network each time the entity information is sent to the nearby players. That particular operation is one of the biggest bandwidth sinks in the game.
So what we will do is use the currently unused bits.

For example, the x and y positions are 2 octets each. That means 65536 values, but the biggest map ever will not be bigger than 2048 steps. So that means we have 5 bits at the end of x pos, and 5 bits at the end of y pos that are unused.
We also have some unused bits in the rotation field, and we can find even more bits in other places.

For the time being, we do not need more than 10 'public' buffs, so we will use just the x and y pos extra bits. Later on, when we will need more, we'll 'reclaim' other fields.

Everyone who runs a bot in EL should change their code in order to zero the last 5 bits of the x and y position of any entity in it's range. This can be done by doing a logic AND between the position and 0x7FF
Given the fact that those bits are unused anyway, you can implement that change in your bots right now, as there will be no problems prior to the update.

12 June 2006

Why are all the MMORPGs the same?

If you are an MMORPG player, or even if you aren't but have friends who are, or have a keen interest in virtual worlds and societies, you already know that most of the MMORPGs are pretty similar, and they are based on the same abstract game mechanics.
There are, of course, many differences between the game settings, artwork, time period, theme, items, spells, power ups, level ladder, etc.

But they still have a few things in common:
1. A lot of repetition.
2. Superficial quests (not a lot of a storyline, many times randomly generated).
3. Unstable economies.
4. Lack of a "world changing" ability, where one player or group of players can forever alter the history and the direction of the game.

Now, let's analyze each point, and see why all the MMOs, from those created by small, indie teams, to those backed by big corporations, which require millions of dollars to produce, and see why is that none of them tried to solve those abovementioned issues.

The repetition, AKA "Level Grinding"
There are two distinct kind of online games: those where there is no persistency, and implicitly ingame-experience and ingame-skills, and those with a persistent world, experience, and skills, which are saved when you log out, and restored when you log in.
Games such as Counter Strike, Quake, Doom, DotA and so on rely only on the experience and skill of the human playing them.
The average MMORPG is part of the first category, where the ingame status is preserved between sessions.

Each type of game has it's fans. For example, Counter Strike is an extremely popular game, played by many millions each and every day, for many years.
WoW has millions of fans as well.
Some people play both kind of games; they are not mutually exclusive.

Every once in a while, someone on some forum, chatroom or article will come up with this very original idea of combining both worlds. For example, they envision a virtual world where you don't really have ingame-experience, and you would play the game the FPS style, only that instead of having 16-32 players on a server, you'd have maybe 1-2K players.

Unfortunately, this is not possible. Why? Well, the first thing is technical reasons. A FPS game requires a very low latency, preferably under 100 MS. FPS games are also very bandwidth hungry, because they have to send a lot of data, such as the position of every entity, speed, direction, bullets and so on. Unlike a MMO, the FPS has to send this data many times each second, because it is critical that "what you see is what you get". The MMO can get away with that, since it is less critical for all the players to be perfectly synchronized. The result of a spell or missile collision is often calculated by the server based on some formulas having to do with the distance, weapon accuracy, player skills, and usually a random number as well. Therefore, rather then attacking in the direction where a player is, hoping to hit, most of the MMOs will let you directly select which player you want to hit.

The second reason why a massive FPS is not possible has to do with the "fun" part. It would quickly becomes boring to play a FPS in a world with 1000 players online.
Now, I am not saying it wouldn't be fun to play some sort of FPS castle siege sort of game every once in a while, but playing it every day, for hours? The fun of FPSs is the teamwork, and teamwork is impossible in very large numbers. You can't coordinate people very effectively, you wouldn't remember their name, skill, etc.

On the other hand, a castle siege type of event in a MMORPG would be fun EXACTLY because of the repetitive nature of the game.
Think about it: In real life, where do you make most of the friends? For most of the people, the answer is: At school and at work.
Now, most of the people would agree that school and work are both boring and repetitive places, where you spend a lot of time doing things that are not so fun, but vital in the works of the society.
In a similar manner, the MMO players usually make friends in boring places. Do you want to increase your mining level? Well, my friend, you have to spend many days in the mines, mining for ore. This is quite boring, and for this reason many miners start chatting about various things. Eventually, you will realize that you have things in common, and become friends. Or, the opposite, you realize you hate this guy and become enemies.
Same thing with the other skills; you will need to interact, more or less directly with a lot of people. Some games require player cooperation, while other games make it optional. Either way, the player interaction in a MMORPG is frequent.
Now, after a while you will want to start a guild/group or join one. Obviously, you will want to have as many friends in that guild, which is why you will recruit your friends.
In games that allow guilds to build/buy territory, that can be attacked/conquered by others, it is normal for all the owners of that territory to come together and defend it against the attackers. So we have a castle siege, but this time the two teams (those who attack and those who defend) have a very strong motivation to defend/attack the territory. And unlike in a FPS, the defenders have invested a lot of time and pride in that castle, so they organize better, and put more passion and effort into defending it at any cost. Would they have such a strong motivation to defend it if they knew the game will be restarted once they win or lose the battle, and they will have to fight again, and again and again, to no end?

So you see, the repetitive nature is not something bad; it is something that, just like in the real life, motivates you to strive for more, and work more. It makes you put more value on your virtual possessions, and on your character. It leads you to make new friends, and have more goals. It gives you the reason to live in a virtual world. It is in the human nature to do the same thing every day, over and over again.

Superficial quests
The reason so many MMORPGs have little or no quests, most of them being: "go kill 10 rats", is not necessarily because the developers lack the imagination to create a big storyline, revealed in quests.
Most of the time it is due to the players themselves. Let's admit it. You (I am talking about the average MMO player) do not think the storyline is very important. You never bothered reading the stories on the website, or going to the game's library and reading all the books about the history of the world.
If a quest is too demanding for you, you will go to Google and search for an walk through. Or perhaps just go to a site with 'tips' and read which is the fastest way to solve the quests, and what the prizes are.
Yes, I know, some of you would really, really like to have good quests, with a lot of story. You like to read everything about the game world, it's history, and even go and read fan fiction stories. Unfortunately, you are a minority. The development teams have limited resources, and so many things on their "to do" list. A lot of their "to do" list is already taken by stuff such as find this bug, fix this bug, verify this bug report and see if it's there and if it can be reproduced, adjust the drop chance of an item, adjust the stats of a monster, and so on.
The little remaining time has to be divided between adding new features (such as spells, weapons, monsters, locations, skills) and writing/implementing a new quest.
Given the fact that pretty much everyone likes a new location/monster/skill, only perhaps 20% of the players would truly appreciate a new quest. From this 20% percent, some will like the new quest, while some will criticize it, and complain about various issues, such as: the quest is too easy/hard, the story line takes a turn they don't like, etc.
So, in conclusion, the MMORPG quests are lacking due to the fact that most of the players would rather have the development team focus on other issues.

Unstable economies
A lot of complaints are targeted at the fact that the MMOs have a very fluctuating economy. Some people consider this a bad thing, while a few of them see this as an opportunity for them to affect the economy of the game in their favor.
The reason why the virtual economies are so fluctuating is the fact that the number of players is usually constantly rising, while the number of resources is usually the same (infinite). I am talking about resources that can be exploited in a reliable way, for example the ore in a mine. The monster drops are not reliable, therefore I do not consider them a resource.
Why are the resources infinite, unlike in the real life? Well, the number one reason is that the real life and the MMORPG life are very different.
For example, in the real life you die once, and that's it. No more respawns. When you die, you become, again, a resource, so all your minerals return to the environment. The quantity of everything is finite, which makes some resources very valuable (such as the gold). Because of this, many people are very poor, and a lot of them die of hunger every day. A lot of wars are started to control the resources, and in those wars a lot of people die, and even more have their lives turned into a living hell. There is a lot of misery in the real life.

In a MMO, on the other hand, you want to avoid this misery. People play games to feel entertained, not miserable. As such, the developers must implement different rules, and distribute the resources in an equitable way, so that everyone can have access to them.
Limiting the quantity of resources to an arbitrary number each day would make a lot of people unhappy. Limiting the quantity of resources a player can harvest each day would create an artificial barrier and wont help that much either, as one player could for example just go kill monsters after he can't harvest anymore for that day. And by killing monsters you still get some drops, which contribute to the "infinite wealth" problem.
In many games, there are NPCs which will buy items from the players. Those items can come from loots, or, if the game permits it, from the manufacturing process, where the player creates his own items using resources. This will cause a limitless influx of money in the game, because if the resources are infinite, so is, in theory, the production.
Such a limitless influx of money will of course create inflation. And the inflation will create some discontent with the players, which is why they are often heard saying: "the economy of game X suckkx!!11".

Are there ways to control the economy, so it won't quickly degenerate to a point where it is irrevocably ruined? Sure, there are some ways to do that, and, indeed, many games implement some countermeasures. But given the fact that the players have this affinity for finding ways around those countermeasures, and the goal of the developers to make the game fun, the result will be, inevitably, a very fluctuating economy.

Lack of a "world changing" ability
I heard some complaints about the MMORPG developers not giving their players the ability to "change the world".
Now, I am not going to get into the technical implementation of such a design, but I am going to answer with a question: "Do you want OTHERS to be able to change your world? Or do you perhaps want only YOU to be able to change the world?"
Let's imagine a MMO so advanced that it replicates the real life.
How would you feel if, after working a few years with your friends to build this greatest city ever, The Griefers Guild decides to sneak in a 50 GigaTon nuke in your city and destroy everything? Would you like that?
Sure, it would be very cool if that would happen to someone's else city, but not to yours.
How about if the development team spends a few weeks to create this brave new, world changing quest, where, of course, only one player can win? Obviously, nothing else will be implemented in the game during that period, because the development team was busy over their head working at that quest.
So with great anticipation you prepare for that great quest, and just before it starts, your Internet connection goes down? Or maybe you live on another continent, and the quest takes place at 4 AM, and the next day you have to finish a very important project at work, or have a decisive exam at school?
What if you are in a small vacation, on some tropical island, away from the computer?
Would you like to come back and find out you just missed the event of the year?

Wouldn't it, maybe, be better for the developers to spend their time adding normal quests (the trivial, non world changing), or perhaps working on some bug fixes or balancing issues?

In conclusion, the MMORPGs are done the way they are because people like them as they are. Yes, many people complain, but when you put so much work into a product, you kind of want to please the people who appreciate it, not those who just spend their time criticizing it.
Those who want more quests, and "save the world" stories, they should perhaps play a single player RPG, such as Fallout 1&2, the Ultima series, or whatever else you like.
The MMORPGs are not for everyone, and you shouldn't spend your time playing a genre that you hate in the first place.

I hope you enjoyed reading this article, and feel free to leave comments.

Radu Privantu

05 June 2006

Player housing and more

Runescape has recently announced that they are having player housing.
While we do not directly compete with Runescape, our games are similar in a few ways, and our players expect us to compete with them, if possible.
Now, we are not stealing ideas from Runescape. Having player houses in a MMO is an idea as long as the MMos themselves, even earlier, as some MUDs did have it.
The first MMO to have it (I might be wrong) was Ultima Online, about 10 year ago.

There are basically two ways to add player housing in EL:
1. Make use of the hidden map objects feture, which is already present in the EL server and client, thanks to Learner. This can be exploited by placing hidden houses on the maps, and unhide them once they are bought by the players.
This is relatively easy to implement, but not very flexible.

2. Make use of some of the Barren Moon code, which already almost supports dynamic maps. I am saying almost because it's only about 70% done, and there are some bugs.
This method allows infinite versatility, and allows the players to build their houses in such a way so that they can plant flowers, trees, possibly building farms, etc. Some other code can be reused as well, such as the growing plants for example, and planting seeds wich will end up in mature plants.

After much thought and talking to Learner, we decided to go for the BM code, and merge it with EL. This is really a lot of work, possible a few months. It will require having two map formats, on the client and on the server. One format for the static maps, one for the dynamic maps.
The already existing maps will not be dynamic, but there will be a few new maps where players will be able to buy land for a house and a farm.

Like I said, this will take a lot of time, so if everything goes fine, they might be available in the fall, maybe November or so. A lot of testing will be required.
But when this is done, EL will be a much more interesting game.

04 June 2006

The update tests, phase 2

Right now, we have reached the second phase of the update test.
The first phase was releasing the new maps and monsters, so that people can test them on the test server. There were many map related bugs, which most were fixed.

This current phase focuses on finding the remaining map bugs, and possibly testing the repair NPC.
Once those bugs are detected and fixed, we'll start phase 3, where the new weapons and armor will have a real price (right now they are cheap so that people can buy and test them). Phase 3 (or maybe 4) will also include another new ore, the Wolfram (Tungsten), which is one of the heaviest elements ever. It will be used mainly for the new swords, and a Wolfram bar will require a steel bar, some Wolfram ore, and one or more binding stones (the number will be decided soon). So the bar will technically not be Wofram, but a Steel/Wolfram alloy.

The 4th phase will be actually a release candidate, which is expected to have no bugs. If there are no client side bugs indeed, for a week, then it will become the actual update package. If not, those bugs will be fixed as well, and another release candidate will be.. released.

Right now, it takes about a month of testings to prepare for an update. I remmeber that 2 years ago, we updated and then tested, and many times we didn't even do a full backup. Of course, at that time we didn't have that many players, and the updates were usually much smaller than now. Nevertheless, we had many problems when we updated the lazy way, so for about 2 years we actually test the updates on the test server.

02 June 2006

Power outage

We had a sunner storm today, and at 2 pm the electricity was out, only to be restored at 11:30 AM. Very annoying, I couldn't do anything but read at the light of a fluorescent 'lamp' (actually, a small fluorescent tube connected to an inverter, connected in turn to a 12V battery).
Since we couldn't cook anything, we went out to eat, there is a Greek food festival in Scranton, so we went there to see how their food is.
I must say that I am pretty impressed, I wish they had a Greek restaurant around here.

Other than that, in the last few days we had some minor problems with EL.
The biggest problem was that we started to offer 'size changes', where someone would pay 10 USD to have his or her size adjusted by 10%. A maximum of 30% limit was in place, to prevent awkward looking characters.
Learner was in charge of those changes, and the sales went well, a lot of people were interested in buying the new sizes.
The problem was, however, that we didn't realize that 30% is a little bit too much.
So now we placed the limit to 5%, and the players who got a size over than percent have been reimbursed.

The first pre update preliminary test has revealed a lot of problems with the maps, so poor Roja has to fix a lot of problems. Meanwhile, I am working a little at the summoning stones, and at a 'repairer' NPC, which will repair some of the new items.