Battlefield 3 – Best and worst FPS ever

Although game development and application development differ in many ways, the delivery of a product, to a standard is still the end game.

Since its release in late October, I’ve had both the distinct pleasure and single-most painful gaming experience with the video-game, Battlefield 3.

If next week, after having run a beta test on our software for a month, knowing there were issues in it, went on a massive marketing campaign and released the software, I’m pretty sure the company would be hurt badly. But, in the same, I think we would do everything we could to repair the damage done, and work hard to get the problems fixed.

When EA/Dice released the beta of Battlefield 3, I was quick to give it a try. I loved its predecessor and looked forward to playing it. Once downloaded, I accepted certain quirks, certain difficulties in the interface and the potential for bugs. Overall, it ran well and my machine was coping great. The feedback all seemed to be on the missing parts from Battlefield 2, dislike of the UI, but nothing particularly unmanageable.

1 month later, after the release of the product, the forums were full of “I can’t get this to play”, “keeps crashing”, and comment upon comment showing anger and frustration at having spent money on a game that (seemingly) nobody could play. To make matters worse, EA/Dice were boasting about being one of their biggest game launches ever, that they had sold so many copies of this game, and if you logged in you could see that. Reading through the issues, I find some people having success with port forwarding, that they are able to get consistency that way. Looking at the list of ports, this doesn’t sound like a good idea. I have to forward a whole bunch of ports (include 80 and 443) to my machine, I have to disable UPnP . I’m liking this less and less. To make matters worse, it doesn’t even make a difference.

Considering the number of people on the beta, I find it hard to understand how an issue such as this didn’t delay the game. They must have seen it. The beta showed some issues up, but nothing you couldn’t put down to test software. And, if they didn’t find something that means changes to net code were done after the beta code had been finalized that broke this in a really bad way.  Maybe EA noticed it and decided to release anyway,. because they had sunk millions into advertising. I’ve downloaded two huge updates for this game, and still nothing seems to work. I get one maybe two games in (if I stay in a session, that works), but if I log out, or try and do something else on MY computer, I have to restart the machine and try again. This is ridiculous.

Yesterday, I spent a great deal of time wandering around the system trying to find some logs that could show me what was failing. But, it seems that the web based system EA/Dice have chosen to use doesn’t really do logging. The game doesn’t seem to produce any logs, and I can’t find a way of enabling a debug mode to at least show me what’s failing. This suggests that EA has been completely useless at providing any sort of advanced troubleshooting and/or this feature doesn’t exist, because this information would make it out quick considering the number of issues out there. What makes it all the more frustrating is the error messages. They’re downright insulting. “An error occurred”, “You’ve been disconnected from EA”. WHY?!!

Assuming that the issue isn’t hardware based (I have a machine capable of taking the game on the highest specs), and it isn’t software based outside of EA/Dice software (drivers are all updated, Windows is updated). Where does the issue lie? Adding to the frustration is that the single player game is “online” too, and crashes within 2 minutes of playing. I didn’t buy the game for its single player campaign, so this doesn’t bother me too much, but I can’t get any satisfaction out of this product.

I can’t send the game back, you get a code that you activate when you try to install the game. Once that’s activated, it’s bound to your account. I can’t sell the game for the same reason. So, the normal consumer action of returning the product, not fit for purpose, is unavailable to me. I’ve seen logs of conversations with EA support, and they seem as useless as a chocolate fire-guard.

EA have taken some really horrible approaches to their software lately, all in the name of anti-piracy and whatever marketing goals they have. I don’t need everyone to see that I achieved the single worst score on a server, or that I couldn’t shoot my way out of a paper bag. I don’t need to share with someone that I managed to beat their time in a race. If Madden 2013 uses this sort of system, I know for sure I’m boycotting all things EA. Go back to making and publishing awesome video games, leave the online gaming arena to the guys at Valve. They would have made this far less painful for you EA, I have never had issues like this with games distributed through Steam.  I don’t care about all the fluff, I do care about being able to play a couple of hours of a game. Especially one that ranks as one of my favorites if I can get past the issues.

So, seriously, what am I going to write?

I’ve been a programmer for over a decade and in that time, I thought I had grown enough to call myself a developer. Over the past year, I’ve spent a great deal of time deep in code, from the database to the UI and back again. The arrival of a new colleague has forced me to go back through some of that code again, explain the decisions that got me to where I am and understand my own reasons for some design. It’s made me consider myself less of a developer overall, but given me a lot of enthusiasm for learning to become a developer instead of a guy that just sits down and puts code together, a programmer.

Going through this process has given me pause for thought. Have I studied and more importantly, learned as much as I had thought over the past decade? Or is there a lot of room for improvement?

Well, going through the code showed me that I wasn’t a complete amateur at this, I obviously got the idea. But when you find yourself defending or quantifying what you did, it’s a red flag. “Well, I chose to do this here because.. ” and “I know I missed the mark here”. If I knew, why didn’t I fix it? Well, it’s because I’ve not understood as much as I’ve read. Applying the principles taught over the years is a lot more difficult than it might appear. Nothing is perfect, no code is perfect and there’s always imperfection. But, applying principles new to my every day working practice such as test driven development, have already shown me holes in my code that I didn’t see (or chose to accept). So it’s time to learn more about these practices, adopt more modern methods and see if I can’t become a better developer from it.

What I’m going to start with here is writing down all the things I learn. Either explaining them, sharing code, sharing links or just dumping them in a page. I’m going to plan posts, rather than just writing on a whim, see if I can’t give structure to them.  And most importantly, I’m actually interested in what others have to add here.

That’s a rubbish title

I’m sure I’m not the only person to ever try and document what I’m trying to do. But, I’ve never tried it before. So, it’s new to me.

I’ve recently had the opportunity to start asking myself questions about the way I think about code, the way I do code and what’s right and what’s wrong in my methods. I’ve never worked in any agile or xp process. I’ve not studied domain driven design enough to be able to say, “well… here’s how I did it”.

I’ve been given the chance to learn more about this, start doing some unit testing, some real software development and I intend to write down what I learn.

I had to do something

So, a couple of months ago now, my blog was taken off-line by some malicious idiots looking to amuse themselves by destroying what others had written. Not that I wrote anything of substance or anything worth keeping for that matter. The point is that I wasn’t harming anybody, I wasn’t speaking out against anything, I wasn’t even writing anything interesting!

So, at the time I vowed not to use WordPress again, but here I am, back using WordPress. Why?

Well, I’ve finally decided I have something to write about, so I need a blog. I can’t spare the time to put my own software into use, and the alternatives to WordPress look pretty poor by comparison. So, we’ll see how this goes.