Friday, February 06, 2009

EQII Update

Well, its been quite awhile since I've blogged about work. It seems that since November I've been working only on big projects that I can't talk about until they are released. Then, once they are out there, they aren't near as exciting to talk about. :)

Lately the team has really been focusing on performance optimizations to try to combat lag and improve overall performance both on the client and server. Josh (Autenil) has been making some great improvements to the server which should hopefully go out in the next week or so. Ryan Favale, our graphics guru, has been working on some really amazing things for the client but unfortunately I can't talk specifics. I was given the task to try to improve how our servers provision hardware for zones. Without going into too much detail, our zones are dynamically created when a player needs them and our server software determines which piece of hardware is best suited for the zone based on memory usage and CPU activity. This is working as it should, but I was able to make some optimizations that should improve this process a bit. Hopefully these changes will go out today or Tuesday and if all goes well we will see some improvement to the lag spikes.

Lately I've also been able to focus some time on improving the user-interface and provide more capabilities to the modding community. The group window was modified to include the pet health bar. The raid window was modified to include an advanced mode that will show detrimental effects for the entire raid. Hopefully these changes will help the healers out there. :)

One of the big changes that I made to the user interface will go out with GU52 and if all goes well, players won't even notice the difference. Currently, all of your UI Settings are stored in INI files in a binary format. Binary is the most efficient when it comes to space, but it can be a real pain to work with. I've recently modified the client to store the settings in XML format. The advantage from a code-standpoint is that its now much easier for us to add and modify the values that we store without breaking older versions of the file. Previously every change had to have a version number associated with it and the code had to be prepared for loading a file of any previous version number so we could properly deserialize the binary information. Now with the XML format, its much simpler. The big advantage for players is they can now easily see what information is stored there and manually tweak this file if they wish to. You can easily do things like remove pesky chat channels or modify the channel number that is associated with them. This change also paves the way for giving modders the ability to store custom data in the settings file for their UI mods.

In addition to these changes I've been quite busy with random bug fixes and improvements to the game. I'm also working on another "big" project that isn't due for release until GU53, so again, I'm being a tease and can't really talk about it. :) EQII has some of the richest lore in any MMO out there and one the most creative groups of players I've seen. I think it will be a very fun addition to the game.

13 comments:

Taymar said...

I've recently modified the client to store the settings in XML format.

You are my hero! :)

Can't wait to see what else is coming. Do you mean GU53 or is it what was GU53 before 52 became 51? (Have I got that right?)

Greg Spence said...

Taymar, honestly I'm not sure, it still depends on when we push out the remainder of GU51. Kirstie was talking about shooting for the week of Feb 16th, but if that happens, I don't think GU52 features will go with it because they haven't been on the test server yet.

I think what is likely to happen is that our next push will be what is on the test server. As soon as that hits live, we can then move the GU52 features to test.

Heading hurting yet? Mine is. :)

Greg Spence said...

err "Heading" = "Head"

Why can't I edit a comment? lol

Lord Ebon said...

Hehe, can't edit a comment on your own blog, don't you love technology some times?

But I think what Taymar is talking about is how the recent Lavastorm revamp preview is saying its going in with GU51...

Frankly, the decision not to call this hotfix GU51 combined with that has lots of folks confused, hehe.

But anyway, whoo can't wait until the XML uisettings goes live. Also looking forward to the optimization code... Antonia Bayle needs it, bad.

Greg Spence said...

I've just pushed out the config changes to our live servers so we can monitor it this weekend. I'm not expecting this to be the cure-all for lag, but it should hopefully do a better job of spreading the zones out on the hardware. Existing zones will stay where they are, so it could take a few hours for things to start to even out.

Björn said...

Lots of tantalizing tid-bits dropped! Thanks! Personally I'm a bit excited and hopeful about the graphics stuff.

Nice to see you blogging a bit (again). I missed it.

MJ said...

"You can easily do things like remove pesky chat channels or modify the channel number that is associated with them."

Yay! Nevermind lag fixes, this is awesome ;-)

KC said...

Hiyas Greg! Lots of cool things hidden up your sleeve for the future i see!

Oh i came across this link... I thought you guys used Maya for Eq2? Autodesk says you use Max....

which is it? o.O?

heres the link:

http://usa.autodesk.com/adsk/servlet/item?siteID=123112&id=5078135&linkID=5572942

Greg Spence said...

We probably have some 3DS Max licenses but as far as I know we mainly use Maya.

KC said...

aha! i figured it was all lies :) I was sure you guys used maya.

Not like the good old days of Bryce or Lightwave hehe

Clint V said...

Heyas Greg,

Are the lag fixes already implemented? Seems like you guys rolled out some changes that made backwards progress in the last week or so(got to love software engineering). I have been seeing people randomly get booted to the loggin screen. Also, there is a bug my guild sees on raid wipes sometimes that causes some players to be stuck in zoning. Neither of these seem to be predictable, though they are fairly reproducable. That reminds me of another bug =P

If you revive and the raid is standing nearby, the mob will agro the raid. The psuedocode is prolly somethinglike, 1) heal player/toggle alive flag 2) move player to zone safe point. If thats the case and you just moved the player first, it wouldn't agro them and in turn the raid. It might be more complicated.

Keep on doing what you do.

Mustang| said...

I always like reading the things you implement, if we could just make GU51 the "Rothgar update" and toss out everything Aeralik did you would be a hero.

KC said...
This comment has been removed by the author.