tag:blogger.com,1999:blog-247817282024-03-14T05:39:37.811-04:00Eternal Lands development journalRaduhttp://www.blogger.com/profile/06176696907020090166noreply@blogger.comBlogger183125tag:blogger.com,1999:blog-24781728.post-30532711439632209272011-12-26T00:01:00.001-05:002011-12-26T00:03:21.923-05:00Second set of statsChars created: 878<br />Tut started 514 (58%)<br />Got Reca 330 (64%)<br />Finished harvest 246 (47%)<br />Killed rats 211 (41%)<br />Made fe 196 (38%)<br />Found Kane 181 (35%)<br />Got sulphur 158 (30%)<br />Got Novac 146 (28%)<br />Got Xaquelina 113 (21%)<br />Got money 89 (17%)<br />Got sigils 83 (16%)<br />Got reading room 78 (15%)<br />Finished tutorial 62 (12%)<br /><br />It seems that there is virtually no change in the numbers that started the tutorial, just 1% more. With the new trail of markers towards the tavern, there are a bit less finishing the first objective. Of course, it can be just some random fluke, not a big enough sample size.Raduhttp://www.blogger.com/profile/06176696907020090166noreply@blogger.com0tag:blogger.com,1999:blog-24781728.post-15240108677715230452011-12-01T17:47:00.002-05:002011-12-01T18:19:50.380-05:00Some statisticsAt the last update, I added some tracking code, to see how many of the new players start the tutorial, and how many finish it.<br />Here are the results (for 15 days)<br /><br />1 log ins: 1907<br />3 log ins: 1428<br />5 log ins: 1267<br />Chars created: 740<br />Tut started 429 (57%)<br />Got Reca 294 (68%)<br />Finished harvest 226 (52%)<br />Killed rats 207 (48%)<br />Made fe 190 (44%)<br />Found Kane 175 (40%)<br />Got sulphur 144 (33%)<br />Got Novac 120 (27%)<br />Got Xaquelina 99 (23%)<br />Got money 85 (19%)<br />Got sigils 79 (18%)<br />Got reading room 73 (17%)<br />Finished tutorial 49 (11%)<br /><br />The numbers are not too bad, but I want to see if I can improve them a bit, especially the percent of people starting the tutorial, and the percent of how many finish the first objective.<br />So for the next update there are two minor changes: The tutorial NPC is a bit bigger, and has white clothes, so he is more visible. The other change is that there are more map markers towards the tavern, so it should be easier to find even without the Tab map.<br />I am going to post the new results in two weeks.<br /><br />For the next client update, sometime in late December or early January, I want to have a new tutorial island, with a new tutorial quest, which should slightly improve the number of people that don't give up.Raduhttp://www.blogger.com/profile/06176696907020090166noreply@blogger.com3tag:blogger.com,1999:blog-24781728.post-77113185398497368952011-02-11T23:24:00.002-05:002011-02-11T23:43:04.283-05:00Eternal Lands's is 8 years old nowActually, it will be 8 on Sunday.<br />8 years for an online game is a long time. Some our first players were young children, and now they are college age. Some were 15, and now they finished college and got a job. During these 8 years, some people met and got married. There are even a few children born because of EL. And, unfortunately, some of our players died too.<br /><br />The game graphics quality has improved every year, and we have big plans for the near future. I hope to finally have some terrain in the game by the end of the year, and a better lighting model too. There are also some new changes to the texturing management system, which will bring faster map changes time, and less delay when walking in crowded places such as storages. We are also thinking of moving the engine to OpenGL 2, which will remove compatibility with some older video cards some people still use, so that we can focus on even more graphic and improvements. But we won't do that any time soon, probably not earlier than late 2012, so people will have plenty of time to update their systems.<br /><br />One last thing: We are going to have some contests and events this weekend, to celebrate EL's 8th anniversary. Some of those contests were announced on the forums, while other events were not. So if you want to win some nice stuff, try to be online this weekend.Raduhttp://www.blogger.com/profile/06176696907020090166noreply@blogger.com4tag:blogger.com,1999:blog-24781728.post-47926294882952619572010-11-30T17:38:00.004-05:002010-11-30T17:43:31.461-05:00Achievements and more web site stuffNow that the new web site is almost done, I want to add a bit more integration between the game and the web site.<br />Recently I added some achievement system, where after finishing some quests or other tasks you would get a mention about it on your player page. The player page is located so far on the game server, and I want to change this.<br />Ghrae worked at a nice caching system, where the player statistics are cached in an MySql database on the main web site. When requesting the player stats, it will check first if the information is already cached, and if not it will get it from the game server and cache it. This system makes it easier to integrate it with the web page layout and saves quite a bit of bandwidth. It will also display the achievements nicely, with graphical icons. Hopefully this new page should go live in an few days.Raduhttp://www.blogger.com/profile/06176696907020090166noreply@blogger.com3tag:blogger.com,1999:blog-24781728.post-18903953272662157722010-10-15T02:37:00.003-04:002010-10-15T02:46:59.122-04:00Website redesignWe are focusing a bit on modernizing the website and forums.<br />We upgraded to the latest version of IPB forums and gallery, and since the IPB 3.x skins are not compatible with the 2.x skins Roja is remaking the whole website (forums skin, web pages layout and theme, link locations, etc.)<br />Hopefully everything should be ready in about 2 to 3 weeks, possibly earlier.<br />We also want to add a bit of dynamic content to the main page, stuff like displaying the latest news, latest forum posts, and possibly latest events. Of course, we need to moderate very closely what ends up on the main webpage, we don't want links to penis augmentation or Nigerian scams being displayed prominently on our site. So we might have to restrict the posts displayed to forum sections where only moderators can post.<br /><br />Right now I am not sure how to get the data from the IPB forums. I know that the IPB guys have an add-on, called IP.content which can do something like we want to do, but we are also looking at other available options. I think we only takes a few lines of PHP to extract the info we need, and it doesn't make sense to pay for money and tech support for IP.content. I will have to look more into it.Raduhttp://www.blogger.com/profile/06176696907020090166noreply@blogger.com0tag:blogger.com,1999:blog-24781728.post-9444874995267979162010-09-22T01:20:00.001-04:002010-09-22T01:22:14.860-04:00Webserver problems resolvedFortunately, our host got the web server back up pretty fast. The motherboard died, and it had to be changed, then there were a few problems with the Linux kernel not booting, but everything is back up, with no loss of data and relatively minor downtime (only a few hours).Raduhttp://www.blogger.com/profile/06176696907020090166noreply@blogger.com0tag:blogger.com,1999:blog-24781728.post-7330141478920494102010-09-21T14:03:00.002-04:002010-09-21T14:05:00.384-04:00Web server hardware failureMy webhost contacted me about a hardware failure with our web server. It seems that the motherboard died, but the data is intact. They changed the motherboard, and the stock kernel won't boot, so now they have to see what is the problem. Hopefully it should be back soon.Raduhttp://www.blogger.com/profile/06176696907020090166noreply@blogger.com0tag:blogger.com,1999:blog-24781728.post-58569284460540587532010-04-20T00:35:00.007-04:002010-04-20T20:09:04.992-04:00Some advertising and a "Facebook, WTF?" [update]Many of our players suggested that we create a Facebook page for Eternal Lands. After a lot of reluctance, I finally got to it, and it's been pretty popular so far. The address is here, for those of you who are interested: http://www.facebook.com/pages/Eternal-Lands/102799149763320<br /><br />At the same time, I wanted to spend some money on online advertising, and was trying to sample a few sites and advertising networks, to see where we can get the best result for the money. The Project Wonderful network is nice, and we got a lot of views and clicks, especially from The Noob comic, which is right on our target.<br />I tried Google AdWords, where I managed to get a lot of displays and clicks (about 400 clicks for 30 bucks), but they are low quality clicks, most of the people not creating an account with us.<br /><br />Then I wanted to see if we can get a better result using the Facebook advertising network. So I created a FB advertiser account, carefully read the rules, and started to create an ad. In my humble and uneducated opinion, the ad was pretty tame. I added my CC info, and waited for the ad to be approved. I got no response over the weekend, then on Monday, I see the ad being rejected, for a violation of their guidelines: "Per section 5 of Facebook's Advertising Guidelines, this content is prohibited from being advertised on Facebook." <br />Their guidelines are here: http://www.facebook.com/ad_guidelines.php<br />For the life of me, I can't understand how our game violates that section (or any of the subsections). I took a screenshot:<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_9HoN5tHnmyY/S80xHeGQ2uI/AAAAAAAAAF0/fu1a6dn_HXs/s1600/fb_disapproved.gif"><img style="cursor:pointer; cursor:hand;width: 320px; height: 137px;" src="http://1.bp.blogspot.com/_9HoN5tHnmyY/S80xHeGQ2uI/AAAAAAAAAF0/fu1a6dn_HXs/s320/fb_disapproved.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5462075927478459106" /></a><br /><br />This got to be one of the must puzzling and WTF moments of the year. I wrote them an e-mail, asking for more info about what part of their guidelines we violated, but I doubt they will respond. Meanwhile, we will use our advertising budget on Google and some other sites. I guess our game (and money) is not good enough for FB.<br /><br />Update:<br />Got a response from the FB people, just as descriptive and helpful as the original one:<br /><br /><i>Hi Radu,<br /><br />Thanks for writing in. Over the past few months, we've received significant user feedback about the quality of ads running on our system. As part of our continued efforts to improve our ads system, we're taking care to ensure that all ads adhere to the high standards that help to uphold the user experience on Facebook. These standards include accurate and truthful representation of the product or service advertised, the disclosure of all relevant consequences of participating in the advertised offer, as well as the protection of all user information received as a result of advertising on Facebook.<br /><br />As a result, we will not accept ads that we've identified as promoting misleading offers. This includes ads for toolbar and game downloads that may affect the user's computer or browser performance in unexpected or undesirable ways. Please delete any ads that violate this policy within 48 hours in order to bring your account into compliance. We will not allow the creation of any further ads for these types of products or services. We appreciate your cooperation.<br /><br />Thanks,<br /><br />Lola<br />Online Sales Operations<br />Facebook</i>Raduhttp://www.blogger.com/profile/06176696907020090166noreply@blogger.com17tag:blogger.com,1999:blog-24781728.post-41613402184104730572010-02-14T01:58:00.005-05:002010-02-14T02:04:24.617-05:00Finally an updateI've been very lazy lately, didn't update my blog in over 6 months.<br />Well, this is going to be a short post, but I promise I will update the blog more often in the future. I don't have time to respond to the many comments I got since my last update, but I did read them all.<br /><br />Anyway, Roja almost finished an overhaul of the most of the artwork, and we are now having higher resolution textures, better looking 3d objects, and a cleaner interface. We are going to hopefully have a public test client in about a week.<br /><br />Meanwhile, a small preview of the new artwork:<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_9HoN5tHnmyY/S3ef9nIHqKI/AAAAAAAAAFg/4Kb5E7TGfmA/s1600-h/irinveron_new.jpg"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_9HoN5tHnmyY/S3ef9nIHqKI/AAAAAAAAAFg/4Kb5E7TGfmA/s320/irinveron_new.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5437990955897039010" /></a><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_9HoN5tHnmyY/S3egMj57ZoI/AAAAAAAAAFo/gAlEmvIfD5c/s1600-h/ws_new.jpg"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_9HoN5tHnmyY/S3egMj57ZoI/AAAAAAAAAFo/gAlEmvIfD5c/s320/ws_new.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5437991212730246786" /></a>Raduhttp://www.blogger.com/profile/06176696907020090166noreply@blogger.com10tag:blogger.com,1999:blog-24781728.post-1430488238616964142009-07-17T02:48:00.002-04:002009-07-17T03:01:06.358-04:00Quests and new NPCsAs posted in previous blog entry, the current focus is on the quests and NPCs.<br />I added 45 new NPCs, and 3 quests, and I don't plan to stop from doing that any time soon. Most players seem to enjoy the quests, and a lot of them actually talk to the NPCs and finish the quests. The increased rewards do help a little, I guess.<br />I also started to upgrade the scripting engine, such as adding the ability to make objects dissapear, and get notifications when a monster is killed. There were very few improvements to the scripting system since I originally added it in 2004, so now it's time to add a few more things to reflect the changes in the game since then. For example, there is no way for the script to know if mines or wards are in an area, and that can be used for some interesting quests.<br /><br />There are a few quests that are kind of hanging in the air since 2004, and some players expressed their desire to have them continued, so I am brainstorming on a big quest related to the pirates that plague Portland.<br /><br />Hopefully, by the end of the year we will have at least 10 NPCs in almost every map of the first continent, an by the next summer in almost every map of the game.Raduhttp://www.blogger.com/profile/06176696907020090166noreply@blogger.com15tag:blogger.com,1999:blog-24781728.post-68199143176209088152009-06-02T15:11:00.002-04:002009-06-02T15:25:23.349-04:00QuestsI kind of run out of ideas for new things to add to the game, and I decided to focus on one aspect we were lacking: Quests.<br />In fact, I always wanted to have a game with lots of quests, that can be played much like a single player game, if the players chose to. But there were always other things getting in the way, so for the past 4 years there were no new quests (besides for a few new god quests).<br /><br />Adding quests is a lot of work, and you have to be really careful and test them properly, or else there will be problems. Implementing a good quality quest can take 20+ hours, but since I have to do other things as well, it can take more than a week to add a new quest.<br /><br />One of my dreams was to have about 10+ NPCs per map, all which are part of quests, or at the very least give some background information, to make the game feel more alive. All those NPCs must be connected in some way or shape, for example the NPCs on one map will talk about the NPCs on that map and even NPCs on nearby maps. Ultima 7 and Ultima 7 II do exactly this, and for this reason they still have a pretty big fan base.<br /><br />Anyway, for the next few months I will try to focus most of my development work on adding more quests, and I hope people will enjoy it.<br /><br />P.S. Most, if not all of the future quests will give experience in some skill[s], which will eliminate part of the boring, repetitive aspect of the game, and will give the new players a chance to level up faster. For example, if a quest gives 10K attack and defense exp, that's a lot for a level 20 newbie, but very little for someone who is level 80+Raduhttp://www.blogger.com/profile/06176696907020090166noreply@blogger.com8tag:blogger.com,1999:blog-24781728.post-72733936643918940612009-05-02T23:18:00.002-04:002009-05-02T23:40:52.886-04:00Cellphone gamesI've been thinking more and more lately about trying to enter the cellphone/PDA/PMP game market.<br />The advantages are quite big:<br />1. Big companies don't compete, so there is enough room for the small guy.<br />2. Those devices have limited capabilities, so there is no need for fancy graphic (3D) and anything complicated. Many devices don't have a touchscreen so the control has to be done with just a few buttons.<br />3. Since the development time is relatively small, you can sell the games for cheap (1-2 bucks), and most people would buy such a game if they like it, since no one cares about 2 bucks.<br />4. It MIGHT be possible to find some manufacturer to license your game and include it by default on their device. I am thinking mostly of the chinese PMP makers.<br />5. Porting the game on different platforms should be relatively easy, because we are talking about 2D games here. No external libraries are needed except for Zlib, which can be statically linked with the code, and all I need is to access the frame buffer, read/write files, read the buttons state, and sleep(). <br /><br />The only problem is the different screen sizes and orientations. Probably a different set of artwork would be required for each screen size, so the scene will look the same. I think it is poor taste to resize images on the fly on such limited devices, because it consumes CPU time, and, implicitly, battery.<br /><br />What I have in mind for my first game is 2D quest game. It will look similar in a way with the Mario games, or the old Dizzy games, but, of course, with better graphics. So you'd be able to move left, right and jump. There will a key for accessing your inventory and using objects. In total, 4 keys, perfect for a cellphone or small device.<br />This game will use artwork from EL (pre-rendered), and will be based on the EL universe. I'll let you know if/when I have something to show.Raduhttp://www.blogger.com/profile/06176696907020090166noreply@blogger.com12tag:blogger.com,1999:blog-24781728.post-82334232089164850052009-04-17T00:33:00.002-04:002009-04-17T00:49:08.433-04:00Harvesting changesRecently I made a few changes in how the harvesting works. Mainly, I increased the number of events, which force you to actually pay attention to the harvesting process, to restart it when it stops due to those events.<br />Now, for those who don't harvest AFK, and harvest only resources that require a level smaller than their harvesting level, the change is not too drastic. There will be a slight decrease in the rate of the harvesting, perhaps 5-10%, but since it happens to everyone equally, I don't consider it to be a problem.<br />There were 3 reasons for this change:<br />1. The economy was flooded with too many items and resources, and almost every day more gold was coming in the game than going out, by about 15% on average.<br />2. Gold farmers had many harvesting characters which were used to make gold and then sell for RL $$$. Now, I don't have a huge problem with the gold farming, so long as you have to actually work for it. But having multiple harvesting characters that generate gold is not good for anyone except for the farmers.<br />3. Some players had harvesting characters which they used to supply their main character. While that is illegal, not everyone gets caught, so this will have a negative impact on the cheaters.<br /><br />I expected that most of the people will welcome the changes, since it fixes some of the inflation, while at the same time impacts the cheaters and farmers, with relatively little impact on honest players.<br />But it turned out that I was pretty wrong. A lot of players complained that, omfg, now they can't harvest from school/work, or harvest while eating breakfast and taking a long crap in the bathroom. Others complained that now the harvesting is too boring because they actually have to pay attention(!) while harvesting.<br /><br />Based on my tests, and the tests of some other players, if you don't harvest AFK, you don't have much to worry about, the resources harvested are about the same as before (and you get more harvesting exp in the process). Nevertheless, the rate of the random events was slightly higher than I wanted, so I will drop it down just a little bit.<br /><br />Unlike most of the other games, in EL harvesting is almost painless and automatic. We have map walk, so you can get to the storage with just a few clicks. Harvesting id done with a few clicks as well. I think that those complaining should try some other games, and see if they enjoy it more there.<br /><br />Anyway, the end result is that some people quitted, and many of them don't bring their harvesting alts online anymore, resulting in a players drop of ~10-15%. I am not really crying over that loss, but we will have to focus more on bringing new players and increase the player retention rate.Raduhttp://www.blogger.com/profile/06176696907020090166noreply@blogger.com17tag:blogger.com,1999:blog-24781728.post-17350596383014064152009-03-31T01:24:00.003-04:002009-03-31T01:44:05.064-04:00New stuffI have decided to focus a bit more on events and bringing more strategy to invasions.<br />Until recently, the invasions revolved around being strong and using the best gear. For the high end monsters, only the fighters had a real chance, and there was very little team spirit.<br />With the last monster, Mare Bulangiu, and to some extent with the Bulangiu, the things changed a little. Those monsters are pretty hard to fight in melee combat, due to their high armor and damage. In order to kill them, it is best if you employ some different methods at the same time.<br />For example, people can harm them, while the archers can shoot at them, and the summoners can summon rats to save the tanks some hit points. And with the last Mare Bulangiu, people actually did that.<br /><br />So now I was thinking to improve that a little. I want to implement a few new things:<br />1. New summoned monsters that will be relatively cheap, but be better tanks than the rats, who die in one hit. Another monster would have the mirror skin perk, which can help a lot. Maybe even something with the self destruct perk. This new monsters would need a relatively high summoning level, however.<br /><br />Then I can add some special mines that do more damage vs invasions, and some special arrows and bolts that can have some new effects over invasions as well. I am not sure when I will add all those new things, but I hope I'll do it in a month or less.<br />Afterwards, a lot more people can contribute to the defeat of the evil forces :)Raduhttp://www.blogger.com/profile/06176696907020090166noreply@blogger.com6tag:blogger.com,1999:blog-24781728.post-31991029238499339492009-03-07T01:36:00.002-05:002009-03-07T01:59:08.407-05:00The economyEL has a really big economic side to it, and although players often complain about stuff, they mainly like it if they keep playing the game.<br />One of the biggest problems is that the manufacturing skill does not bring enough income. This is mainly due to the fact that there is a very fierce competition between the players, and often the end product is sold at a loss. Many players try to make great swords, in the hope that they will get lucky and produce an enchanted version. The non enchanted versions are sold at very low prices, because the demand is smaller than the production rate.<br />I always told those who complained about the economy, as though it is my fault, to actually take the matter into their own hands, and not lower the price to below the value of the ingredients. Now, it seems that they finally realized that it might be a good idea to do so, and they agreed to go on 'strike' and not sell items at a loss, which is great.<br /><br />Now, there are a few solutions to this problem, but, as with anything, some people will love them, and others will hate them. For example, one solution would be to increase the break rate of the great swords (which I did). Before doing that, there would be one or two great swords breaking each day, which is not that much considering that there are probably 100+ players using them. Assuming a totally equal chance to break one, that means that each player has a chance of about 1.5% to break a sword in a day, which means that a sword would last, statistically, 2+ months. Given the fact that the cost is only around 20-25Kgcs, that's about 400 gc per day, which is not that much.<br />Another solution would be to make a formula that produces the enchanted version of each sword, so that the manufacturers can reliably make them. Of course, the formula would have to be quite expensive, and use ingredients that cost at least 200 Kgc. The formula would also need to require a very high manufacturing level, in order to reward those who worked harder.<br /><br />Another way to help the economy in general is to add new gold sinks. The more important the gold becomes in the game, the more valuble it is, which drives costs down. On a related note, the archery skill is not that useful (although it has some uses).<br />So to address both issues at the same time, I came up with a new potion that cost 15Kgcs, available for now only from the NPC (which means, it is a gold sink). This potion permanentely increases by 1%, up to 60% the chance to do a critical shot with the bows and crossbows. A critical shot means that all the armor penalty is removed.<br />So a player who spends 900Kgc and has a high ranging skill can be quite competitive in PKing (especially if they are in a team).Raduhttp://www.blogger.com/profile/06176696907020090166noreply@blogger.com11tag:blogger.com,1999:blog-24781728.post-86128280298934014432009-02-15T03:05:00.002-05:002009-02-15T03:17:46.515-05:00New stuffWell, it seems that it will take a little while until I'll start working at the map editor, so in the past few weeks I did some 'clean up' stuff. Things like adjusting some monsters to be more useful, changing some spawns, removing the TS 'loop hole', adding a few new special days, etc.<br /><br />Right now I am working at two potions that will decrease the attack and defense levels by 5, up to -30 of your current level. They will use dragon scales, and will require a high potion level, which takes care of a few issues: Too many dragon scales in the game, top potioners not having enough potions to do for their levels, and some fighters who fall in between monster levels will now be able to gain more exp. Now the attack and defense levels increase every minute towards their nominal value, even if you are hungry, so this kind of training will be quite expensive.<br /><br />I am also working (right now in the design stage) at an awards system. It will be similar to the top players list, but it won't be based on levels. Instead, it will be based on 'achievements', like how many rostogols stones lost, how many rare items harvested or manufactured, how many Leonard kills, etc. It will be reset every month, so even somewhat new players will have a chance to be there. There will be no in game advantage if you win those awards, it will be just for fun (and some glory :D). I am hoping to have this sytem implemented by the end of March or earlier.Raduhttp://www.blogger.com/profile/06176696907020090166noreply@blogger.com7tag:blogger.com,1999:blog-24781728.post-22037080797132149982009-01-25T01:36:00.002-05:002009-01-25T01:46:19.793-05:00Update on the new engineThe new engine Xerafax has been working at is going pretty well. Right now, it can load and display all the EL maps. It is not yet ready to be integrated in the client, because there are a few things still missing (LOD for the objects and reflections, the shadows system is buggy, the water is not displayed properly yet, and all kind of other small issues).<br />However, it should be good enough to finally start working at that map editor.<br /><br />While I've been waiting to start working at the editor, I did a few nice things on the server side:<br />Implemented the potions god quest.<br />Added a new random day, where there invasions happen more often and are stronger.<br />Made a new potion, called potion of Speed Hax. What it does is double your speed, but will consume 1 unit of food every 2 steps (50% chance per step). Once the food level gets under a certain number, you will stop for about 1 second, then you will revert back to walking.<br /><br />I have a few other things in mind, such as some new random days, an archery god quest, and maybe a new shape shifting form. I am not sure how many things I'll be able to do until I start working at the map editor, but I will probably be able to work at the editor and server without neglecting the other.Raduhttp://www.blogger.com/profile/06176696907020090166noreply@blogger.com4tag:blogger.com,1999:blog-24781728.post-39381382633219329822009-01-09T02:49:00.002-05:002009-01-09T02:54:40.556-05:00Update tomorrow.We are ready for the 1.8.0 update, I uploaded the clients, and the update and download page.<br />This client should be pretty stable, and it is, hopefully, going to be the last client using the current engine. I am not sure when the next update will be, probably by the end of the year or in early 2010.<br /><br />There are a few nice features we have in the 1.8.0 client:<br />1. Support for riding (for now, we only have horses, but in the future we can have other mounts).<br />2. Support for running. This feature has been requested for ages, and we finally decided to implement it.<br />3. Some GUI improvements and minor bug fixes.<br />4. Updated artwork (3d objects, monsters and textures). Now some parts of the game look much nicer with larger textures.Raduhttp://www.blogger.com/profile/06176696907020090166noreply@blogger.com1tag:blogger.com,1999:blog-24781728.post-16831315636132824922008-12-27T02:57:00.002-05:002008-12-27T03:25:31.279-05:00Update coming soonWe 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.<br /><br />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.<br />This test had a few objectives:<br /><br />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.<br /><br />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.<br />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..<br /><br />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.<br /><br />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.<br /><br />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.Raduhttp://www.blogger.com/profile/06176696907020090166noreply@blogger.com4tag:blogger.com,1999:blog-24781728.post-58096886009921090122008-12-10T14:40:00.002-05:002008-12-10T14:54:05.314-05:00New engineNow 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.<br />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.<br />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.<br /><br />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.<br /><br />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.<br />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.Raduhttp://www.blogger.com/profile/06176696907020090166noreply@blogger.com9tag:blogger.com,1999:blog-24781728.post-17420556272120222582008-12-02T00:38:00.002-05:002008-12-02T00:43:57.262-05:00Instances (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.<br /><br />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.<br />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.Raduhttp://www.blogger.com/profile/06176696907020090166noreply@blogger.com0tag:blogger.com,1999:blog-24781728.post-75009746093397181592008-11-19T01:12:00.002-05:002008-11-19T01:23:36.154-05:00InstancesI decided to add some instancing to EL, to spice up the fight.<br />This is how it will work (although some things might change).<br />There will be a few new maps that are instanced, and the following conditions will apply:<br />1. One player can go there every so often, which is defined by each instance type. The time between going there again will be something like 100-200 hours.<br />2. Most, if not all of the instances will have minimum and maximum a/d requirements, so for example a pr0 player won't be able to go and spoil the fun for the newbies.<br />3. Each instance type will require a certain number of players to go in (a minimum and maximum number).<br />4. There might be a cost associated with going in an instance.<br />5. Most (or all) of the instance monsters will be unique monsters, with unique drops.<br />6. To join an instance, a group of players will have to join a secret channel that they chose. Then they will all go to an NPC which will teleport them to the desired instance. To prevent abuse, all the players from that channel must stay near the NPC.<br />7. If you die in an instance, and you have a rostogol stone, you will be placed at the beginning of the instance, so that you can rejoin your friends.<br />8. There will be 5 (or more) monster waves, that is, if you kill a wave, the next will spawn shortly after. Those waves will be somewhat random, from a predefined set of possibilities. The final wave will be a 'boss' type of monster.<br />9. The drops will be unique items that can not be obtained in any other way. My current plan is to make some really powerful items, but they will have a high chance to degrade, so the game won't be full of them.<br /><br />That's pretty much it. I don't know exactly when they will be in the game, probably in a month, if everything goes well.Raduhttp://www.blogger.com/profile/06176696907020090166noreply@blogger.com12tag:blogger.com,1999:blog-24781728.post-24986937532505508222008-11-16T14:31:00.002-05:002008-11-16T15:36:37.874-05:00Kqueue implementation doneLast night I fixed the last remaining bug in my Kqueue, and now everything works great.<br />Right now, there are 823 connections, and the server is taking less than 7% CPU. Before implementing this, it would have taken close to 20%.<br />And there are some other, non network related optimizations I can do (especially the stuff that trashes the CPU cache), so it's a good thing.<br />But more about them later.Raduhttp://www.blogger.com/profile/06176696907020090166noreply@blogger.com0tag:blogger.com,1999:blog-24781728.post-20436369479643944352008-11-13T23:00:00.003-05:002008-11-16T14:31:25.273-05:00Kqueue workingSometime last week I finished the Kqueue implementation, and after a failed deployment (where it crashed the server an hour after the restart) I did some final touches and now it works great. There is still a bug to fix where sometimes a socket attempts to send data to an nonexistent client, but this is pretty rare and will only cause someone to be disconnected from the server.<br />I am, however, trying to see what causes that problem.<br /><br />And now for the performance results:<br />Using SDL_net to check which sockets had data, the server was taking about 15% of the CPU with 700 connections. Now, with Kqueue, it rarely goes over 6%. The nice thing about Kqueue is that it scales very well. For example, if it takes 0.01 ms to check a socket, it will take 1 ms to check 100 sockets. With select() or poll() it might take 0.01 ms to check a socket, but 5 ms to check 100 sockets, and 20 ms to check 200 sockets (all the data is made up, just for an illustration purpose).<br />What this means for those who do not understand technical terms is that before this change, the server couldn't have handled more than, say, 1500 connections (with enough spare CPU for an invasion). Now, I think it can handle up to 5K connections or more.<br />It also means that the server should be more responsive than before, although there is not much of a difference if the server responds in 130 rather than 140 ms (most of it being the network latency).<br /><br />The conclusion of working with Kqueue is that it is well worth the effort to implement it, and it is also pretty easy to do so, once you understand how it works. However, the documentation is not very good, and it is wrong, or at least misleading in some areas.<br />For example, if you try to change an event in the same call where you also get the pending events, your pending event will not be changed until after, which can cause problems.<br />And there is a nasty bug where if you add a listening socket to a kqueue, the sockets added after that via accept() will become, for kevent, listening sockets as well, so you won't get any notifications from them. The way I did it was to create two kqueues, one for the listening sockets and one for the normal sockets.Raduhttp://www.blogger.com/profile/06176696907020090166noreply@blogger.com3tag:blogger.com,1999:blog-24781728.post-20572774512995492382008-11-04T02:36:00.002-05:002008-11-04T02:55:18.871-05:00Last week's workThere has been something in the last week that significantly reduced the time I spend working at EL. That something is Fallout 3, a game I've been waiting for almost 10 years.<br />I ordered it off Amazon and got it delivered on 28th, and ever since then I am playing it like a maniac. Usually, I don't play video games, maybe I spend 50 hours a year playing video games. But Fallout 3 is way too addictive, and I think it is the best game I played so far.<br /><br />Anyway, this past week I almost finished the server programming for horses. We tested them on the test server a few days ago, and there are very few bugs left, so if everything goes well, we'll have the client update sometime in December. And as expected, everyone who tested the horses loved them.<br /><br />Regarding my optimizations, I finally finished setting up a local FreeBSD machine for my tests. This test machine is an old laptop, a Pentium M 1.7 Ghz with 1 GB of RAM. I had some problems with the standard FreeBSD install, so I used PCBSD instead.<br />So today I ran the server for the first time on my FreeBSD test machine, and I've noticed something perplexing: It is orders of magnitude faster than the machine we currently use for the main server!<br />That machine uses an older Xeon @3Ghz (made in 2004 I think), and runs FreeBSD 6.x and gcc version 3.4.6 [FreeBSD] 20060305<br />My laptop test machine thingy runs FreeBSD 7.x and gcc version 4.2.1 20070719 [FreeBSD]<br />On the main server machine, an empty (just the AI) server takes about 1% CPU. On my laptop, it takes 0.00% (!) CPU. Now, you might think that an empty server shouldn't take more than 0.00%, but the thing is, there is a lot of AI (over 1.3K entities, most of them moving around).<br /><br />This is very strange, and I am not sure why my laptop is so much faster. It could be that GCC 4 does a much better job, or the new FreeBSD is much better at handling stuff, or maybe the main server machine is not configured properly? I'll have to ask my host to do a few hardware tests, and possibly update the OS as well.Raduhttp://www.blogger.com/profile/06176696907020090166noreply@blogger.com2