Category Archives: General News

I released more upgrades to SpellDamage today. I rewrote the portion of the calculator that was responsible for DPS/DPM results.  I plugged in some better formulas and bam! it’s instantly more accurate.

Checkout the Mage DPS Calculator. Let me know if you run into any problems.

I also redesigned the homepage. Instead of focusing on news, it’s more statistical. Want to see who has the most bonus fire damage? You can. How you do you compare?

More in the works, stay tuned.

In case you missed this post, “SpellDamage to Focus on Cloth Casters“, go read it. Basically, it says that Druids aren’t coming soon anymore. Sorry Druids, Shaman, and Paladins. Perhaps someday I’ll get to you.

So, the big changes. Yes, I’m reworking spelldamage again. I don’t want to write articles, and I don’t want the homepage to focus so intently on articles. So, I’ve rewritten the homepage (and a large portion of everything else too). Read this post, “Big rework coming soon“. It goes over a bit of what coming.

Quick update here, SpellDamage:Discovery is live… check it out www.spelldamage.com. Watch this video to see the new features in action.

All you Druid players out there will be happy to know that Druids are the next class to be implemented in SpellDamage… in the next release. Check the under development page to keep informed.

Ok, so I had this problem while working on SpellDamage: Discovery. See, porting the site to the ASP.NET MVC framework has it’s many bonuses… but sometimes the red ain’t cherry.

In this case, I was trying to push calculation results to the index view, under the index action. Worked great, at first. Here is how SpellDamage is meant to work. I’ll use the mage calculator as the example. You load up www.spelldamage.com/Mage and you’ll see a blank mage calculator. Enter some data and click calculate to run some theorycrafting. That’s simple enough, and the index action handled that fine. But… (there’s always a but right?)

What about when you did a character lookup? The url for that looks something like this: www.spelldamage.com/Mage/US/Vindication/Shadowmoon/Just Us League/Echii (Echii is my twink mage on shadowmoon, remember?). Now the show action needs to “show” my mages character info, along with the calculations. No problem, that was easy too… now, here comes the problem. What about rerunning calculations? I don’t want the results page for a specific character to be some static results page. I want users to be able to mess around with their numbers, run some what-if scenarios, you know… theorycraft.

Well, doing that through standard form post backs would cause an action overload which is simply not good practice. Splitting it out into it’s own action would cause reusability problems. So what did I do? I build a standalone action, essentially taking the place of the standard “update” action. That action would output an XHTML table of the results, based on the variables that were POSTed to it.

Ok, so the action was done. Now, using jQuery I make some very simple ajax calls using .post(). jQuery’s AJAX is so simple I thought it was too good to be true. In fact, it wasn’t… it’s just what the doctor ordered. The problem has been resolved, and in fact, the overall calculation process has improved immensely.

It worked out so well, that once SpellDamage: Discovery is released, I’ll be working in earnest  on the advanced calculator so you all can calculate your spell rotations more accurately!

Stay tuned for more about SpellDamage: Discovery, you simply have no idea what’s in the next release, you’ll be astounded, trust me.

SpellDamage.com 2.0 has been released… and what a painful deployment. I don’t have time to go into details about the new version, but read these earlier posts to learn more: http://spelldamage.wordpress.com/2007/12/03/the-countdown-begins-spelldamage-20-draws-closer/

and

http://spelldamage.wordpress.com/2007/12/06/spelldamage-20-its-getting-close/

Thanks, enjoy, and let me know if you break it!

Good night.

Alright everyone, SpellDamage 2.0 is very close now. I’m just finishing up the Priest calculator, should be done by the end of the weekend. After that, I just polish the site until my host has finished setting up ASP.NET 3.5.

So what’s coming? Here’s a quick review of whats new:

  • Spell Database – Probably the single most important update. Now that I have an accurate database of the spells for each class, I can provide calculations to every level range. Yes, that’s right, you 29 twinks out there can now use SpellDamage too! I’ve even developed some back end tools to help me keep the spell data current (in case Blizzard changes things).
  • Full Level Range Calculated – I know I mentioned it above, but it’s worth making it into it’s own bullet. The entire level range, 1-70, can now be calculated.
  • US, EU, and Korea Support – Well, actually I’m not sure about the Korea support, but 2.0 fully supports the European WoW players! If you happen to know a Korean character/realm, test it out when 2.0 comes out, let me know how it works.
  • Tabbed UI – The tabbed UI saves tons of screen real-estate, which frees the site up to better display the calculation results. It also helps a ton to keep everything clean and organized. It’s a billion times better than the current UI, and it’s AJAX’d so it’s nice and fast switching between tabs. To top it off, if the tabs are in the way, you can hide them!
  • Top <class> – Each class has a Top <class> page that lets you show off! The data is filterable so you can see who’s truly top of their class. For example, the Top Mages page by default shows the mages who have the top mana, hp, spell damage, etc… with no filters. You can begin applying filters to it, such as level range, realm, battlegroup, etc… If you wanted to see only the 20-29 mages in the vindication battlegroup, you can!
  • Article System - There’ll be an article system in 2.0, where I’ll write articles about class balance, theorycrafting, and anything else I feel like!
  • LINQ - Actually, this is a feature of ASP.NET 3.5, but LINQ has allowed me to be extremely productive with the little free time I have. The auto-generated classes right from the SQL database top the cake!
  • WoWArmory Data – I’m pulling a bit more armory data than before, and storing more of it as well. This supports the Top <class> pages.
  • And more…

Hope you all enjoy SpellDamage 2.0 as much as I like developing it!

Well, since Microsoft decided to finally release ASP.NET 3.5, my host has notified me that they’d like to test the update for a couple weeks. For me, and SpellDamage 2.0, this means the countdown has begun. I’m working as hard as I can to make sure SpellDamage 2.0 is ready once my host has ASP.NET 3.5 operational.

So, who cares? What does SpellDamage 2.0 bring to the table? Well, I’ll be making a few more videos to show it off, but in the mean time, check these out:

First, just a general preview: http://www.youtube.com/watch?v=_fkdFrqWU24
Then a preview of the Top Mages feature: http://www.youtube.com/watch?v=avY6xQcb8RI

edit: New preview video, showing the “Tally” feature in action: http://www.youtube.com/watch?v=NOz1aznOuLM 

Also, SpellDamage 2.0 has changed a bit cosmetically since those videos were made. I’m streamlining the CSS to make the page load faster, and make it easier to maintain.

Anyway, more to come… back to work!

Well, I’ve found something that will require a revamp of the calculation process… the way Buffs/Debuffs/Talents are added into the calculation. Currently, they’re hand-coded into each class’ calculator. As you may be able to guess, this is a bad thing. Imagine if a buff was changed in a patch, I’d have to change each class’ calculator one-by-one in the code.

So what’s the fix? Well, first I’ll need to create a database to store the buff/debuff/talent data. Then, I’ll need to figure an efficient way to linking buffs/debuffs/talents to spells during calculation. I will also need to dynamically generate checkbox controls into the UI to allow visitors to choose which buffs/debuffs/talents are applied. Essentially I’m creating a spell/buff/debuff/talent content management system for spelldamage 2.5.

How does this help? Well, the initial programming is going to suck. It’s hard work to get something like this working efficiently and error-free. However, once it is done, maintaining the calculators will be drastically improved. No longer would I ever need to touch the code to add a new spell into the calculations. Same for buffs/debuffs/talents… I’d never have to code anything for them again (unless some new mechanic was introduced).

Here’s how I envision it to work. Lets say Blizzard decided to add a new damage doing spell to Mages. Lets call it FrostBlast, an instant cast frost damage spell with a 20 second cooldown (lol). In the SpellDamage admin panel, I’d click “New Spell”, type in the data, choose the buffs/debuffs/talents that can potentially be applied to the spell, and click save. Viola, a new spell, complete with coefficient/modifier changes from buffs, debuffs, and talents. The calculation engine automatically picks up the new spell and performs the calculations on it, and displays the results to the visitor.

Well good news,  ASP.NET 3.5 was released today. I haven’t asked my host yet, but they should be able to support asp.net 3.5 soon. Once they have upgraded, I can release SpellDamage 2.0. I don’t have time to port it to the MVC framework, so that will come later… probably version 2.5 or so.

What will be in the first release? Calculations for Mage, Warlock, and Priest. The other classes will come after that, but not too long after. Since this will be the first release of the Priest calculator, expect a few inaccuracies. I’ll get them fixed as they’re reported. There is also a top <class> feature, that is filterable and pretty fun to use. There are more features in the works… SpellDamage will never be complete, there will ALWAYS be something new to add.

I’ll be releasing a video tonight that will show a quick look at SpellDamage 2.0 in  action. It’s not much, but shows a couple of the new features. Stay tuned, SpellDamage 2.0 is coming soon!

A little while ago, Scott Guthrie introduced the ASP.NET MVC framework, you can read my initial post on the topic here. Well, today I read Scott’s next ASP.NET MVC post, and holy crap the ASP.NET MVC framework looks awesome!

What would the MVC framework do for SpellDamage? I hinted at it in my previous post, but an MVC framework enables some seriously cool features.

First, the native URL routing is simply perfect for my type of application. The URL routing in an MVC framework maps controllers to actions. A template of what a URL would look like in a MVC SpellDamage.com is this, www.spelldamage.com/<class>/<name>/<realm>/<continent>. There would be a controller for the <class> and the other parts would be variables into that controller. The controller would then call on the appropriate view to render the HTML to the visitor.

Second, AJAX! Now, I know… to most AJAX alone means diddly. And, in the world of ASP.NET AJAX it’s generally done wrong simply because the UpdatePanel control is horribly inefficient. But the MVC framework fixes that and allows for smoother calls to ASP.NET AJAX to update only the portions of the page that need to be, severely reducing the amount of traffic to the web server (in turn, increasing performance for the visitor).

Last, but certainly not least, fast, clean, efficient pages. In the MVC model, things like session state, view state, control IDs, etc… are not generated. Only elegant, clean, efficient HTML code is emitted to the browser. In the postback model, there is a ton of extra crap that gets generated into the output to the browser (increasing page size, reducing performance).

In closing, porting SpellDamage to the MVC framework makes perfect sense to me. If MS holds true to their deadline, I should have the MVC framework in my grubby mitts in a few weeks. After that, a quick port to the framework, workout some of the kinks, rework a bit of code, and voila! SpellDamage 2.0 MVC’d!