Need I say more?
Tuesday, April 10, 2012
Wednesday, April 4, 2012
EVE’s in-game browser – tying your code into the game
Yesterday I wrote a little about EVE Online’s database dump and API Functions, and mentioned some funky tools people had developed with them. These tools are generally Windows desktop apps, which allows for great functional interfaces, but sees you alt-tabbing out of the game if you want to fiddle around with a training plan in EVEMon, or brainstorm some ship fitting ideas in EFT.
But of course, as well as desktop apps, a popular way to present an application is via a web interface into a browser. And, as luck would have it, EVE has a browser built into the game client, the “in-game browser.”
I do a lot of different things in my day job, but the biggest part of what I do is ASP.NET web development. So this is right up my alley – I can write some code, put an ASP.NET front-end on it, run it on my local PC, and then hit http://localhost/ from the in-game browser. Neat!
It gets a lot neater, though. The in-game browser isn’t just a Webkit-based browser, it has some extra customizations that allow interaction between the game client and a trusted website. So if you add a little bit of Javascript to your page, it will pop up a message in EVE asking if you want to trust the website. Say yes, and communication can now occur in two ways.
First of all, any page requests from the in-game browser to the trusted site will have some extra HTTP headers. These are all documented on the EVE wiki’s “IGB Headers” page, but basically, it passes across useful information like your character’s name and ID, where in space you are currently located (down to the star system, or the station if your are docked), what type of ship you’re flying, etc. Obviously any type of market-related app can be greatly enhanced if it can make its recommendations based on where you are currently located.
Secondly, there are a bunch of other Javascript calls that can be made on the page to cause the EVE client to do various thing. These are all documented on the EVE wiki’s “IGN Javascript Methods” page. Useful things that can be done include setting your autopilot destination (e.g. to take you to a system that a bargain has been located at), opening the info window on an item (no need to display all the details on an item within your web app if you can just pop up a proper info window in-game), opening the market details window for an item, even sending in-game mail or a fleet invite. You can see why you need to explicitly trust a website for this functionality to be enabled!
Anyway, I did a little more hacking last night, whipping up some code to parse a market export file. While looking at an item on the market, you can hit a button to dump the buy and sell orders to a CSV file in your EVE folder. Now I have code to parse that file and store the orders into a database.
Next step – find profitable trades, and use the pathfinding code I wrote earlier to determine how far the seller is from me, and how far the buyer is from him!
Tuesday, April 3, 2012
Also I redesigned my blog
I know everybody reads blogs via RSS readers, and never actually sees the layout of the site, but anyway, for the first time since creating this blog two and a half years ago, I changed the layout away from the first default Blogger theme that caught my eye.
Now it uses the second default Blogger theme that caught my eye, with a background image that caught my eye, and a few tweaks to colours and fonts.
EVE Online, the MMO for programmers?
So EVE Online has been in the news again lately. Scandal, cyber-bullying, banhammer wielding, resignation from the CSM, all manner of general angst.
But even before that, it has been more prominently on my radar for a couple of months now due to increased activity amongst the bloggers I read. SynCaine had been writing a fair bit about his corporation’s activities, and Wilhelm Arcturus, the Ancient Gaming Noob, has entertained with lively accounts of nullsec warfare going down.
I’ve played EVE. I played the free trial roughly four years ago, created an account and played for a month. Reactivated about a year later and played another month. But that’s it – the actual gameplay never grabbed me enough to keep me subscribed and playing.
Also there seems to be a bit of a vicious circle: to really appreciate EVE, I’m told, you need to be in an active corporation doing interesting things. To be in an active corporation requires quite a level of commitment. And I’m not prepared to make that level of commitment to a game that I’m not yet really appreciating.
But anyway, with the game being on my mind, I thought it might be worth another look. I didn’t reactivate my account, I thought I’d just quickly create a new trial account, jump on that, and refresh my memory about how the game played.
And that led me to check out an aspect of EVE that I had a vague awareness of previously, but no more: the scope for tool development using the EVE API.
Now this is really quite neat, the sort of thing to really catch the attention of a programmer who might be up for some hobbyist coding. You can download an EVE data dump in the form of an SQL Server database backup from here. There’s all the information you could want on the game’s star systems, items, all sorts of stuff. And then there’s the API documented here which allows you to retrieve specific info on your characters, etc.
There are many wonderful tools which make use of this data and API, such as EVEMon and the EVE Fitting Tool.
What I’ve done is write some code which takes the tables of star systems and jumpgates from the EVE data dump and figures out routes from one system to another, limited to high-sec systems. What I’d like to do next is combine that with some market data, which I can either save to a file from the game, or pick up a feed from EVE-Central’s API, which is itself fed by volunteers saving data from the game. Then, I’m hoping I can generate some trading opportunities.
Another possible step is spotting reprocessing opportunities. The EVE data dump, combined with my character’s skills (obtained from the EVE API), can be used to calculate what minerals I can reprocess a given item into. So I should be able to spot bargain items that I can buy, reprocess, and sell the minerals.
I have to say, cutting this code strikes me as being potentially more fun than orbiting a rat and plinking it with a railgun!
Friday, March 16, 2012
Greatly irritated with Diablo III pricing
So the big news of the day is that Blizzard have finally announced a release date and opened pre-orders for Diablo III. I’ve been waiting for this moment enthusiastically since getting into the beta a few months ago, but my enthusiasm rapidly dimmed when I clicked through to the pre-order page.
The last thing I bought from Blizzard was WoW’s Cataclysm expansion. It was the first time I’d bought a direct download from them, after getting boxed copies of WoW and its first two expansions from local stores. And I was delighted that – despite the behaviour of some in the industry – Blizzard charged me the same price as people in other territories, rather than trying to charge what the market will bear.
Well, that policy of not screwing over Australian consumers has now officially been abandoned. Despite the strong Aussie dollar, Blizzard’s pricing now bears no connection to their costs, nor to exchange rates: it is purely price-matching local retailers in order to maximize profits.
Suggested price of $59.99, actual price of $84.10.
The ironic thing is that this is going to cost them money, on my sale at least.
Publishers love digital downloads because apart from the small expense of bandwidth, it’s all profit. Far, far more profit than selling boxes wholesale to retailers. They could have had $US59.99 out of my wallet right now if they hadn’t gotten greedy.
But instead I’ll be purchasing Diablo III through an alternative avenue, which will net Blizzard a lot less money.
Amazon are selling boxes for the recommended retail price of $US59.99. Shipping is expensive, though: $16 for standard or $25 for priority courier to Australia. Still, it works out to a similar price to Blizzard’s rip-off price, and you get a physical box not just a code.
Not much point, though, when JB Hi-Fi are selling it for $A79.00. Yes, I can get a physical copy (either in store or with free shipping within Australia) for less than Blizzard’s rip-off price. Hard to think of a single reason to buy directly, isn’t it, when JB Hi-Fi can manage to pay rent, staff, make a profit for themselves, and still undercut Blizzard by a dollar?
And of course, there is always the option of buying just a code from a code-vendor. Some people are reluctant to go down this road, since some of these vendors seem not quite reputable, but if you want to do it, OffGamers are taking pre-orders for Diablo 3 keys for $A57.87.
It all makes me a bit sad. I’ve been delighted to buy directly from Blizzard in the past, it made me happy that my money was going directly to the company that developed and published the game, rather than a middle-man. But I’m not prepared to pay a lot more money for a lesser product in order to do so.
Monday, January 30, 2012
Three reasons why giving Rift a second chance was a pleasant surprise
March 2011. Trion Worlds launches “Rift”. A lot of people think it is very good indeed. However, my reaction after playing open beta had a lot in common with my reaction to playing Allods Online’s beta, which I wrote about a couple of years back.
Look, it's all very slick and polished .. I'm sure a lot of people will enjoy it .. But I've probably played ten or more sword & sorcery MMOs, to various degrees, and I really need something different if it's to stand any chance of luring me away.
Rift certainly was slick and polished – much more slick and polished than Allods, which was impressive for a free-t0-play title, but Rift was impressive full stop. But it just felt painfully derivative. It felt like the work of a bunch of people who really wanted to work for Blizzard, and settled for their second choice, which was cloning WoW and adding a few features (rifts, invasions, much more flexible talent trees) that they thought would be really cool additions to WoW. It made my teeth hurt and I just couldn’t be at all nice about it.
However, March 2011 was also the time that I was finishing off my last spell of being subscribed to WoW, a five monther going from the launch of Cataclysm to the point where my guild had devoured all the content. We had levelled to 85, done heroics, geared up, beaten Blackwing Descent, Bastion of Twilight and Throne of the Four Winds in normal mode, then fallen apart messily as some people wanted to do hardmodes and others didn’t. Having done all that, and also levelled a worgen alt through the revamped old world (which was absolutely fantastic, I must say), it was time to unsubscribe.
And in that frame of mind, having just spent five months devouring what was imho Blizzard’s finest work to date on WoW, I really wasn’t inclined to be receptive of something which felt like a WoW clone.
But that was eleven months ago. Last weekend, Trion offered a free weekend in Rift, which I took advantage of out of curiosity, and you know what? The frame of mind I’m in right now is one in which Rift entertained me thoroughly, to the point that I whipped out my wallet at the end of the weekend and activated an account.
Here are three things which pleasantly surprised me, and have made me glad I decided to subscribe.
I love what the rifts do to the flow of the levelling game
I think we would all agree that WoW made a pretty fundamental change to MMORPG gameplay by making questing the way to level. Few games released since have strayed from this model, which many people enjoy, but which can get a little tedious. Go to quest hub, pick up a set of quests, go out, do them, come back, turn them in, get next set. Repeat a few times and then get a breadcrumb quest to the next quest hub. I certainly don’t want to go back to camping and grinding mobs, as I’ve said before, but you really need something to break up the grinding of quests.
Rift’s eponymous rifts, as well as invasions and footholds, seem to do this pretty well. While you’re out doing your quests, you will see rifts and invasions and footholds on the map. Sure, you could ignore them and carry on killing those ten rats, but I found the quantity of them was just about right that if you took a detour from your questing to clear any rifts you saw nearby, it gave the gameplay a nice balance. And then when a zone event occurs, which seems to be every few hours, you can totally forget about questing for a bit, fall in with a public group, and run around dealing with the event’s masses of rifts and invasions for a while. Again, it feels like the frequency of these events is nicely tuned, rare enough to feel special, but not so rare that you get the angries too hard if you miss the end boss or something.
It makes me feel that exploration is rewarded
One of the reasons some people dislike the questgrind model of gameplay is that it funnels you through the gameworld, discouraging you from ever stepping off the beaten track. When I’ve wandered off the track in Rift, I’ve made some satisfying discoveries. These include a few caches of items (ancient cairns, dead bodies, etc.) which even contained a couple of blue items. Also I have found many more artefacts (Rift’s equivalent of EQ2’s collectables) when exploring – I have no idea if this is deliberate or just that when they spawn in questing areas, they get found quickly, whilst when they spawn in the middle of nowhere, they don’t.
Add to this some achievements beyond the traditional “explore the whole zone” – like “climb to the highest point in Silverwood” – and it really helps make wandering around feel like fun, rather than a distraction from the serious business of questing and levelling.
Bard healing feels different to any healing class I’ve played in other games
In a fit of nostalgia, I tried to make my Rift character a copy of my very first WoW character I created on release day. Same race and class (human rogue), same name, same haircut, and I focused on the rogue’s Assassin soul, which feels a lot like WoW’s “stealth & stab” vision of a rogue.
However, this weekend, I decided to try out the Bard soul and do some healing in PvP.
First off, to be fair, a Bard is not defined as a healer. They are technically “support”, which means they heal, they buff, they debuff, they DPS. However, while they might not be suitable for main-healing an instance, they are certainly powerful healers in PvP – the three warfronts I ran, I topped the healing charts (by quite a bit) in all three, despite being level 31 in a level 30-39 bracket.
The Bard has no direct heals. None. All your heals affect your nearby groupmates, and your main heal is a channelled attack which generates combo points, does damage, and heals equal to that damage. Then you have a finisher that spends to combo points to do a burst heal. So the effect of this was that I spent the entire match focused on the objectives and the enemies, never even glanced at my groupmates’ health bars, and still as I said topped the healing charts.
Does that mean Rift is a good game?
Yes, it’s a good game. It is still very derivative, it’s certainly no second coming, and I’d still rather be playing something genuinely different to what has gone before (hello Guild Wars 2, please hurry up and release). But in the world of WoW-inspired themeparks, it’s as good as I’ve ever seen it get, and I do enjoy a good themepark, it’s true. It’ll satisfy me for a while.
Monday, January 9, 2012
So I played a bunch of games over the last 5 months
First of all, let me get the 2011 Awards out of the way.
Worst Blogger: Me, for posting five posts all year, all of them in August, for no apparent reason.
I’ve meant to write a bit about some of the old and new games I’ve been playing over those five months, but I always want to write massive walls of text like I did for Runes Of Magic and Atlantica Online, and I never feel like I have quite enough free time. So instead, I’m going to try to bang out a paragraph or two about a few new games, a couple of old games, and a couple of betas.
Without further ado, here is the last five months in gaming!
Rusty Hearts
I picked up this free-to-play title in order to complete an achievement and get another entry in Steam’s Holiday Sale Gift Pile competition. I’ve slagged off Perfect World in the past for making an excessive number of excessively similar games, but this ”gothic themed beat-em-up” is actually quite a different kettle of fish.
Set in a Transylvania distorted by a heavy filter of Asian sensibilities and dialogue translations at the “martial arts movie subtitle” level of quality, the story is some preposterous tosh about heroic vampires that try not to drink blood and a village menaced by the shadow of Vlad’s castle. Gameplay is you versus swarms of enemies, smashing them to pieces with grand sweeping blows – it actually reminded me of some classic arcade games like Golden Axe. But then combine that with traditional MMORPG mechanics like levelling, skill cooldowns, “! over the head” quests, etc.
I’ve certainly gotten my bit of fun out of this. Steam says I’ve played for 17 hours, and I enjoyed them. I’ll fire it up again next time I’m in the mood for some bash and slash, and I’d say it was well worth a download if you think that sounds like fun.
Spiral Knights
Another free-to-play game I picked up for the Holiday Sale Gift Pile competition (by the way, I didn’t win anything worthwhile at all, just some discount coupons for games I had no interest in buying). This is a cutesy action RPG, I guess you’d call it somewhat Diablo-esque in style, with its view from above, running, dodging, kiting, shooting, etc.
I did spend a few more hours playing this after completing my competition achievement, so I’d have to say it was at least OK, but it didn’t grab me in any really meaningful way. I don’t regret the download (it was fairly small, well under a gigabyte iirc), but I don’t really see myself launching it again.
Uncharted Waters Online
This one was mentioned on a forum as an example of a shamefully overlooked “AAA sandbox MMO”. AAA is an exaggeration – it’s at a level of polish I’d say was roughly on par with Atlantica Online. It’s not bad but you’d never mistake it for a genuine AAA commercial title from a major studio. But with that out of the way, I’ve got a lot of good to say about this game.
Set in a sort of mashup of 15th and 16th century history, you play a sea captain, sailing ever-finer ships as you travel the world exploring, trading and fighting. You know what game it actually most reminds me of? EVE Online. You have a similar mix of non-combat activities (trading, exploring, manufacturing). You can learn to fight by hunting NPC pirates, and then venture into “hostile waters” to either hunt player pirates, or become one yourself. Your capabilities are heavily defined by the ship you are currently captaining. And you have that real sense of distance – travelling takes quite some time, and there are no hearthstones to magically take you back home again!
There are three main paths in the game – Adventure (exploring and discovery), Trading, and Battle. I’ve been dabbling in them all over the last week and am not sure which one I most want to follow, because I’m enjoying all three. Luckily the game allows you to develop your choice of skills, with a class system that allows you to switch classes, and where your current class really only defines which “favoured” skills advance more quickly than others. You’re certainly not locked into any one path.
Anyway, I’d like to write more extensively about the adventures of Banquetto the Portuguese chandler at a later date. Maybe I will even manage to do so.
The Lord of the Rings Online
This continues to be a bit of a “go to” game for me. I picked up the “Rise of Isengard” expansion – foolishly paying full price at release, since it went on sale before I got to the point where I was actually high enough level to visit the new lands. Anyway my Guardian main is now level 68 and questing in Dunland, and LOTRO continues to be a perfect “pay as you go” title for me. Sometimes I’ll play heavily for a couple of weeks. Sometimes I won’t even launch it for a month or two. But when the mood takes me and I do play it, I always enjoy myself.
Guild Wars
I did ease off on Guild Wars quite a bit, after playing heavily throughout June to August. However I had a few more good sessions which led to me completing my “Legendary Guardian” title – doing every mission in the three campaigns (58 missions in total, iirc), with bonus objectives / Master rewards, in hard mode. I’m actually pretty proud of this, since a number of the missions are regarded as being rather rough to solo. This was an achievement which made me feel that I had actually achieved something, in terms of testing my skills, and having to improve them in order to succeed.
I have 19 points in my Hall of Monuments, just one more needed to get another Guild Wars 2 title and pet. I could get that in the blink of an eye just by going to Kamadan and buying a miniature off someone. And if the mood takes me to go for the “Ascendant” title in GW2, I can probably get up to 25 HOM points just by splashing around some of the cash in my stash, on more miniatures, armour and weapons.
EverQuest II
So when EverQuest II merged their free-to-play “EQ2 Extended” model with their regular EQ2 model in December, I decided to take another look at it. Thought it might be fun to dig up the level 30-something Brigand I played for a month way back when. As it happens, I couldn’t actually track down the details of that account, so I just started a new character.
I got all enthused for a few days, and even dropped twenty bucks to buy the latest two expansions when they had a “triple Station Cash” sale on. And then I got sick of it for exactly the same reason I’ve gotten sick of EQ2 the last couple of times I’ve tried to play it: the combat is boring boring boring. By far the worst implementation of the “tab target, autoattack, buttonbar full of skills” MMO combat system I have ever seen.
Once my new Guardian got to the point where I had more than a full button bar’s worth of marginally different attack skills, all on 10-30 second cooldowns, I knew it was time to stop. Again. Oh well, enjoy the twenty bucks, Sony.
Diablo III Beta
Yes, about a month ago I finally got an invite to the D3 beta!! I wrote up some impressions over at the D3 forums, but here’s the conclusion I came to after playing through the (very short) beta with two of the five classes:
I have zero doubt that we're onto a huge winner with Diablo 3. I can't wait to get home from work and play the other three classes, and I really can't wait for release!!
It feels good. It feels really good. I have a few concerns regarding linearity and difficulty, which may be premature since the beta is so short (just part of Act 1 of the game), and I have some other concerns about the lack of reason to replay with new characters, compared to Diablo 2 which – for better or for worse – did force you to start fresh if you wanted to pick different skills.
But the day this title goes on sale, I will buy it. No doubt, no question, this is a release day purchase for me.
Path of Exile Closed Beta
Given my excitement about Diablo 3, it’s ironic that just a few days ago I got an invite into the closed beta of the earnestly D2-influenced indie title Path of Exile!
Now, there’s a lot of angst on the D3 beta forums from fans who see every divergence from D2 as a personal insult. It’s clear that what they want is Diablo 2, with ten years newer technology behind it. Well, they’re going to get their wish. It’s called Path of Exile.
I’d been following this game with some interest, thought it looked cool, and expected (being an indie title and all) that it would be pretty rough visually and technically, since small teams generally find it impossible to match the polish that a major developer can bring to the table. According to my beta NDA, I’m allowed to post “general opinions on the game,” so here’s one: I was completely wrong about that. This game absolutely oozes polish and the graphics are simply stunning.
The minute-to-minute gameplay is incredibly closely influenced by Diablo 2, right down to the near-identical health and mana balls. The character progression is quite different, but it’s identical to D2 (and very different to D3) in one important way. Let me quote from the developer’s Beta Manifesto:
We do not want players to be able to completely respec their entire character easily. The game is designed to be fun to play, so if you want to play a Bow character rather than an Axe character, you’re meant to start a new one.
Now that’s the Diablo 2 spirit!
This is another game I’d like to write more about, although I’ll have to take some care to abide by the beta agreement – I’m allowed to discuss “publicly available information” but not “unannounced information”, so I’d need to investigate what exactly has been made publicly available.