I've gotten several e-mails asking questions about the project and myself. Although I've talked about both of those things during radio interviews, I thought I would put up the information for everyone to see. None of this is really organized at all, I just got really bored at work and decided to type all this up. So here goes.

Your say your project has been approved by GM's?

Updated April 16 2006
Please note that my project is NOT approved by SOE, and this project is not affiliated with SOE in any way.

How did it all start?

Back in the day, and I mean way back in the day, Everquest II had a really crappy guild window. It listed the members in your guild and had almost zero functionality short of promoting and demoting members. Oh yeah and there weren't "ranks" like there are now. I think there was Member, Officer, and Leader. That's it. Yup, it was bad times for the guild window. But I wanted to fix that.

It all started with our silly joke guild, Ninja Border Patrol...I won't bother going into how we came up with that name. We thought hey, it would be cool if we could see when guild members logged in and out. Oh yeah, and it would be awesome to be able to chat to our guild from work. And have an automated guild bank. Yeah pretty much everything they have now, we not only dreamed up, but created.

I had to employ a rather devious program to do this. With the help of Acid's EQ2 Packet Sniffer I was able to build off of it and create a working guild bot. It would notify when guild members logged on, keep track of what people have in the bank and let them withdraw or deposit them based on permissions set by a guild leader or officer. We could chat with the guild via IRC from work. It was a pretty neat piece of software, if I do say so myself.

One day I was looking through my log and I noticed something strange. Where I had linked an item to a friend, it showed \aITEM 1961133364 Ghoulbane:Ghoulbane\/a instead of just Ghoulbane, or something more legible. "That's kind of cool" I thought. It wasn't until the next morning when I was taking a shower that it hit me. I thought to myself, I wonder if I can just take that item link and paste it back to somebody? Sure enough I could.

Now, I played Everquest I for at least six years, and during that time there were several link bots. You could send it a tell and it would send you back the link for an item. Pretty sweet, except what I didn't know was that the Devs for EQ2 did something smart. They made a random, totally unrelated (as far as I can tell) unique ID to go with the item. In other words, I had to have this special number that goes along with the item in order to link it to somebody else. I started the enourmous task of collecting items, and I made a program for all my friends to run to help us collect them.

I was also forced to write another program specifically for this Link Bot. I knew it had the potential to be huge, but I also knew that the fatal flaw in the EQ1 link bots (which ultimately led it to be banned) was that they grossly violated the EULA. I wrote the Link Bot to read from the log and literally type out the tells on the screen. I also paid for an account, because I knew Sony wouldn't want me bumming one via their "Trial of the Isle".

I thought we had a pretty decent database. About three thousand items just from the three of us. It wasn't until one day when someone asked for an item link in the Traders channel, and me responding with instructions for using Linky, that the Linky's popularity exploded. We were up to 7,000 items and quickly growing. Unfortunately until September sometime, the bot only worked on the Crushbone server. But it was still very popular. And when it worked cross-server, the items flooded in. And the rest is history.

I'm a techie. Give me the low down on how your project works.

Originally the Link Bot was written in C++, but I've since ported it to C#.



The really old bot which was used for our guild.



Main screen of the current link bot



Options



options & authentication methods



Test mode. Used to enqueue a command to linky without having someone send it a tell

The item database is a MYSQL database which simply holds the ID and name of an item. I wanted a way to interface with it easily without any setup, so the Link Bot could be easily moved if necessary. I decided to use PHP by writing a custom function which simply sends an HTTP request to a given URL and returns the results as a string. So I browse to eq2linky.com/search.php?item=foo. PHP looks up the info in the MYSQL database and writes out the results to the webpage, which is then returned as a string to the Link Bot, who can parse the results into a tell. Easy peasy, and now the Link Bot can be run on any computer behind any firewall with almost no setup.

The Link Bot keeps the log file from EQ2 open and simply reads it line by line as it's written to. When a line is read, it's processed and if necessary, the user who sent the request is authenticated. I wanted to keep it scalable, so I added in a bunch of ways to authenticate a user. Just a few are by guild tag, the username itself, a password, or a combination of all three as well as others. Also a priority is assigned based on user and command. Once processed the output is shoved into a priority queue where it is then typed into EQ2. Linky sends out tells about once every 700 milliseconds I believe. The reason for this is because EQ2 has built-in spam control, and 700ms was about as fast as I could make it go without having EQ2 think it was spam.

Updated February 26th, 2005

Some people have asked what the deal with item links are. Some of them look like this:
\aITEM 123456789 Some Cool Item:Some Cool Item\/a
And some of them look like this:
\aITEM 123456789 48010644:Some Cool Item\/a
When EQ2 first came out, no items had colons in the name, so the first method worked for all items. However after DOF came out, some may remember a period of time where the Ancient Teaching Scrolls item links didn't work. That's because the colon that was in the item name was confusing the game. It would have looked like:
\aITEM 123456789 Ancient Teaching Of: Some Cool Thing:Ancient Teaching Of: Some Cool Thing\/a
So, SOE instead changed the first instance of the item name (before the first colon originally) to the crc32 of the item name, with the sign flipped. So now, Linky's item in the database just looks like Some Cool Item, and it generates the crc32 on-the-fly when it sends out item links.

Thanks to someone (please e-mail me, I can't remember your name) for this neat little script.

Item name: "Prismatic Rod of the Scale"

CRC32 (Signed): -350845799
CRC32 (Unsigned): 3944121497

EQ2 Item Name Checksum: 350845798

Old code: \aITEM -95676486 Prismatic Rod of the Scale:Prismatic Rod of the Scale\/a
New code: \aITEM -95676486 350845798:Prismatic Rod of the Scale\/a


I'm not sure what else to write here, so e-mail me with your suggestions.

Who are you Nalandial? Tell me about you!

Errrm....well I'm a 20 year old college student majoring in computer science. I like playing a lot of games, not just MMO's. I like playing FPS games too. Some of my favorite FPS games are Far Cry, HL2 (and subsequent mods), and Unreal 2k4.

But, I mostly like RPG's. I like a game with a great story. To this end, I would have to say my favorite game of all time was Star Wars: Knights of the Old Republic, followed by Chrono Trigger, FF3, Secret of Mana, and Zelda 3.

Some other MMO's I've played are Everquest I (6 years), Planetside (6 months), Lineage II (4 months), and Star Wars Galaxies (1 day). I also play Guild Wars, though I'm not sure if that counts as an MMO. I guess it sort of does.

I also like playing paper D&D, although I haven't played as much recently as I have in the past.

I used to be in the Guide Program which was tons of fun, but I guess I decided to stir things up a bit. No hard feelings or anything, I did kind of break the rules. However I would suggest everyone check it out; it is really a lot of fun.

My diet mainly consists of Kraft Macaroni & Cheese and Ramen, although I usually eat out on weekends with my friends.

For some reason a popular question is what kind of music I like. Well I don't really have a preferance, although I really do enjoy listening to remixes of video game music from OCRemix. I just feel like listening to it takes me back to the moment in the video game. Good stuff.

I'm currently employed by Exceptional Software Strategies. Yeah i don't know what else to write, but if you e-mail me with your questions I'll be glad to answer them.