GuildPortal Dev Blog

Updates from Aaron Lewis, GuildPortal Code Monkey

Posted 10/4/2009 10:05 AM by Aaron Lewis. 108698 reads. Share:

A small disclaimer: I'm speaking solely from the perspective of the early levels, with no knowledge of the end game content.  There are people, I hear, who have reached the latter levels of the game, but I'm nowhere near that. Now let me say, this game is amazing.  In my personal opinion, it is what every RPG MMO that has been released since WoW (and one released slightly before WoW) should have been.  No further details on that, since I'd have to list specific titles in doing any type of compare/contrast.

However, the biggest problem to me as a player is the inordinate amount of Kinah seller spam I see immediately upon logging into the game.  It's unbelievable.  The general channel, the LFG channel, and private whispers immediately fill up your screen with garbage ads, some of which lead to key logger sites.

I won't pretend to know how difficult (or trivial) it might be for the developers to implement an on-the-fly, configurable, timed-cache string pattern matching system to detect the spam -- perhaps based on the sites they're telling people to visit -- in order to auto-ban accounts (or at least mute for, say, an hour).  Instead, I'll just tell you what I did to cut down on the mass of garbage for myself.  Many will say you should just block the spammers individually, but that only works for about a day.  Next day you login, there will be a host of new spammer accounts at it, all over again.

  1. Open the Chat Preferences menu to the left of the chat window by clicking on the little sun-looking icon.
  2. Click Add Tab.
  3. Call it something like "No Spam" or whatever.  An options window for the new tab pops up, where you can check the channels you want visible in the new tab.
  4. Check the root Chat box.  Then check group, alliance, legion and alert.  Optionally, expand the Combat - Self node and select things like My Critical Hit and Critical Hit against.  Finally, check the root node for System Information.
  5. Click Change.
If the new chat tab isn't selected for you, hover over the chat area and select it (along the top). 

Three things to note: Under the root Chat tree, there is a Shout option.  I haven't seen the spammers use shout yet, but they might, and if they do you may want to disable it.  Also, they do use whisper, but not nearly as frequently as General and Trade.  But if you un-check whisper, you'll miss tells.  Finally, the "Find Group" channel is useful for group quests.  If you need to find a group, just pop into the "All" channel, do a /3 LFG [quest name/link/whatever], then pop back into the "No Spam" tab.  Odds are good you'll get picked up if others need to do the same quest.

I hope this helps!

Posted 9/15/2008 10:13 AM by Aaron Lewis. 11625 reads. Share:

Dear Game Company,

Thanks for the great game!  As you know from your numbers, people are, in great numbers, choosing interactive, virtual worlds like yours over static forms of entertainment like television.  As you also know, as the customer's computing power increases, so will your budgets for creating even more compelling, interactive, immersive and content-rich worlds to pull them (and their friends!) even more deeply in.

This is a good thing.  As is plastered all over research sites like this one (though it's not the only one; a person only need Google to find a plethora of research on the topic), the brain may actually be more active while sleeping than while watching TV.

However, there's a problem.  Your game runs on an operating system (or systems, huzzah Blizzard!) that is also used to download keyloggers, which, in turn, can send a player's login name and password to a database on the other side of the globe, which can then be used to login to the game in order to steal the player's virtual currency, items, and above all else -- the time spent working for it.

Now, keyloggers such as these do not appear on CNN or MSNBC.  They show up in "comments" areas of sites that provide anybody the ability to post their opinion on a quest, item, or something else pertaining to your game. 

Some sites take action to prevent this kind of thing (like GP does, after having been burned once a couple years ago), but as everybody knows, your general channels in-game are filled with people asking questions and being answered with "look it up at ..." followed by the latest info site.  These sites are popping up all the time. 

Some of them, if you take a look at the juggernaut of RMT (real money transactions for virtual items/characters/etc., which is against the EULA in the vast majority of games), IGE and their Zam/Wowhead/who-knows-who-else networks, are merely different skins wrapped around the same core engine. 

Some however, are start-up sites with little to no experience in the security realm, using open-source or other software with frequently exploited vulnerabilities, unable to protect their users.

Which of those two is a bigger threat is up for debate.  Some of them might even be in place solely to gather game logins and passwords, even though the percentage of people using the same login and password on a web site that they do to login to their game may be quite small (as was the case for a specific forum site that was just for players on a single server in a single game).

By the way: if you're one of the game companies that has your users login to your official web site using the same credentials they use to login to the game with, you might be contributing to the problem.  Just an FYI!

Now, let's consider possible reasons why people go to these 3rd-party database sites:

  • The official game web site you provide does not have the data they're looking for.
  • The official game web site is too hard to use.
  • The official game web site is too slow.

Any one -- or a combination of -- the above would be enough to provide a niche market for these sites to exist. 

Remedies include:

Providing data on items, quests, etc.  Open it up!  Either you will provide the data, or someone else will.  If you don't want to write an interface for all this, that's fine; provide it via an API and license sites you approve to use it.  Require that they only send a certain number of requests to your servers over a given time period, so that you don't get hammered, and the licensed sites will then only need to build a responsible request/caching system.  The licensing is there to ensure that sites you don't approve of, such as RMT sites, don't have the data.

The licensing is particularly important.  Demand full disclosure of company ownership, including parent companies, and parents of parent companies, until you know who's really running things, at the highest level, for your licensees.

The other two bullet points are purely design/scalability issues, to be addressed by your own web team.  The best search sites are Google-like in simplicity and minimal overhead.  AJAX is great, but if 1MB of slow javascript is in the header of every page, maybe a different approach is in order.

If the data comes from you, then third-party sites can only provide value-added features or integration with what they provide, that you do not.  Using GuildPortal as an example, the biggest overhead outside of the hardware and people required to make it run, is the amount of support required for a relatively complex web application with lots of customizable options.  Add on top of that the expectation that more features be added and the interfaces both for the administrators (guild/clan leaders) and members be updated to Web #.# standards as they emerge, and the additional support incurred by doing that, and you have something that goes well beyond the scope of what a gaming company's web presence department would want to -- or should have to -- support.  After all, do you make a game and have a web site that provides info/support for it, or are you in the business of making games and also in the business of hosting web sites?

Our members are constantly asking us to integrate with 3rd-party sites to provide game-specific data.  Usually, we can't, because we have a policy against any kind of integration or partnership with sites that are owned by or even advertise for (even through multiple levels of parent companies) RMT companies, since the very existence of their business is unethical -- they sell products and services that require the customer to break an agreement they've made, every time they login to the game.

So then, providing the data you have openly (with the only option being users needing to go elsewhere for it), with an API for sites you license (can we be one, pretty please?) to provide value-added content/functionality (again, using GP as an example, having an active guild web site that people can visit outside of the game does keep them engaged in the people they play with and the game they play), is the best option.

Mythic did it for Dark Age of Camelot, Blizzard did it for World of Warcraft, and Mythic is at it again with Warhammer Online.

Maybe they're on to something!

Posted 9/4/2008 6:27 AM by Aaron Lewis. 9599 reads. Share:

As a web developer, I normally cringe whenever a browser receives a major upgrade.  There's a ton of regression testing I need to do, and since WYSIWYG editing on GuildPortal is provided by a third-party component (for the obvious reasons if you're in the software industry), sometimes incompatibilities with the browser upgrade and GP aren't even something I can immediately address, instead needing to rely upon the third part to provide a patch to deal with whatever changes in the browser has caused the problem.

Recall now, that I'm just talking about what happens with a browser upgrade.  The only thing worse than a browser upgrade, for web development, is an entirely new browser.  

However, in the case of Google Chrome (which, incidentally, I'm typing up this blog entry from within), Google has done something beyond bizarre -- they've actually built that fastest, most stable, sexiest browser ever.  And that's just the beta version.

At the moment, it's only available for Windows XP/Vista, but they're working on Mac and Linux versions.  More information and the download is available here.  So far, compatibility testing with GP is producing nothing but positive results, and hey -- faster and more secure browsing couldn't be a bad thing.

Posted 4/25/2008 12:06 PM by Aaron Lewis. 78955 reads. Share:

It was only 10 months ago that we moved to the .NET 2.0 framework, and this week we're going to be moving up to .NET 3.5.  Aside from productivity improvements that come along with the new features of the latest IDE (Visual Studio 2008), there are a number of enhancements to the underlying framework, as well. AJAX built-in, LINQ, intellisense for JavaScript, etc.  The LINQ and intellisense parts will be helpful in more quickly getting features and bug fixes out onto the production environment.

AJAX and some of the new controls, combined with our recent upgrade of the Q1 2008 Prometheus suite of controls for .NET 3.5, will make it possible to bring more "compelling" user experiences to both the Control Panel (IMO fairly dated and more difficult to use as the features kept getting piled on) and individual content types on the guild pages.  I put the word compelling in quotes because, while marketing people always use that term when describing the user interfaces you'll be able to whip up with their latest tool, I never quite understood its placement.  What, after all, does a treeview compel a person to do?  That is, other than click the nodes on it. 

Beats me!

Anyway, this transition should be a bit smoother than the last one, since we'll be pulling the web servers out of the load balancer one at a time, upgrading to the 3.5 framework, and then pushing the migrated code to the servers.  Once there, we'll do full regression testing on each server to make sure everything's working as expected.  After that, we put the server back into the load balance mix and move to the next.

I think we'll be moving away from the "Service News" type of thing and focus more on keeping the new Change Log current.  Writing news about enhancements to the site is normally done after the fact, and some things that have been done are inevitably left out.  By going the route of the change log, we'll be keeping you up to date on changes as, or before, they're being worked on.  There might be some kind of summarized grouping by time, or by release version, but really, what does the version number mean to anybody anyway?  For us, it's helpful with our source control system, but for end-users, it's odd.  It's like in WoW, you'll hear "oh, that's been that way since v2.4.1041blahblahblah."  What's wrong with, "oh, that's been that way since December?"

I guess the geeks (not excluding myself -- my son will testify to my lack of "coolness") are still allowed to name things!

Speaking of coolness, I'm writing this blog entry using Windows Live Writer.  I was working on the API's to make it possible for people to post to their GuildPortal blogs with richer tools like WLW and others when I realized how long it's been since I updated mine.  It's neat -- you can save a draft locally and publish it to your GP-hosted blog only when you're completely done with it.  Even if you're offline.  The code that GuildPortal needs to make it function with WLW will be going live along with the framework upgrade, sometime over the next week (we're still ironing out the best time based upon bandwidth usage and the availability of caffeine if it ends up being like, really really late).

Makes me wonder about the possibility making other parts of GuildPortal able to disconnect and let you browse forums, post replies, send web-based mail, etc., and then upload what you've done the next time you're connected.  We had an offline forum viewer for a while back in the days of .NET 1.0, but it was a serious dog (the networking code wasn't all there and, honestly, XML containing all the information is too verbose -- we'll probably look at JSON or something more lightweight).

We have been extremely cautious in our moves to new versions of our development tools, servers, frameworks, and just about everything else.  We'd rather put off throwing shinies out there for a bit, if it's a trade-off between that or performance/reliability.  The new version of the framework is very stable, full of goodies, and ready to go. 

It'll also help us justify the ungodly amount Microsoft is charging for licensing! 

We're looking forward to supporting Age of Conan, Warhammer Online, and other hotly-anticipated titles (I only remember those two right at this moment because I'm going nuts waiting for them), enhancing support for games that have been around since the start, and yes, introducing a shiny or two.

As always, thank you for choosing GuildPortal as your guild's home on the web! 

Posted 6/26/2007 7:13 PM by Aaron Lewis. 76486 reads. Share:

To more fully explain exactly what we've been up to around here, I'm going to add a blog entry along with the accompanying news item

For starters, we've migrated to the latest version of the .NET framework.  For those of you in the field, we're not running "Orcas" or anything in beta.  We'll leave the testing of production applications on beta frameworks up to the Fortune 500-type companies.  For the end user, this doesn't mean a whole lot at first, but it does open up the GuildPortal platform to move in some pretty compelling directions.

For starters, the whole "Ajax" thing that's been circulating the web, annoying anybody with a low tolerance for the latest thing that some of the most ADHD people in the world latch on to (I'm talking about us programmers here), is now something we'll be able to integrate into the application. 

Now, before anybody gets dizzy or starts to feel their lunch coming up, we're not going to toss everything out and start from scratch with a ton of useless Ajax-for-Ajax's sake widgets. 

As an example of a (hopefully) not pointless implementation of Ajax into GuildPortal, you can see a bit of it at work with the image gallery control on your pages.  Of course, if you don't like the scrolling, you (guild admins) can shut it off by hitting the Edit icon and then clicking display options.  We'll try to provide as much user choice in any Ajax-y enhancements moving forward.

Next, security has of course been a continuing area of focus, eating up a lot of development time.  Of course, I can't disclose too much about the specifics, but I can tell you that the vast majority of the attacks we had a while ago took advantage of a misconfiguration (our bad) that has since been all sealed up into a little plastic tube and had the oxygen sucked out until it died.  

In completely unrelated -- heavy sarcasm -- news, several well-known hotbeds of hacker activity in certain Chinese provinces have been blocked from accessing the site for a bit, until their ISPs decide to cooperate a little bit in getting these people shut down.

A revamping of the style controls is coming up, with a whole lot more control over individual elements of your site, without the need to resort to doing up your own custom style sheet.  Of course, those of you who like that kind of thing (a lot of you are on the spotlights page!), will still be able to do so, and we'll be adding a few more classes that will give you an even finer level of control over the appearance of your site.

The Control Panel as a whole will be seeing some updates, with changes made to the applications system, content editing, and a few other odds and ends.  The effort will be to provide a more consistent user interface.

As always, thank you for choosing GuildPortal as your guild's home on the web!