A quick how-to on building a GPU crypto-miner

So, several people have asked me for the basics on building a GPU based crypto currency miner (more specifically for Ethereum, or ETH). Previously I outlined how to setup up an Ubuntu one for the very, very basics with existing home PC hardware, but they’ve wanted more details for a full fledged setup. Now that I have mine in a happy place, tweaking-wise, I think I’m ready to share my findings. Please do note I am not a complete expert, and you might find better advise elsewhere or additional tweaks I didn’t suggest. I’m not saying this is perfect guidance, but I will stand by it being good. ūüėÄ Additionally, I’m going to make some assumptions to avoid bringing too much into-scope on this write-up, and expect that you already have an Ethereum wallet setup, and have chosen a mining pool to join mining within.

(Oh and to answer the question that comes up a lot: Yes, mining ETH¬†is still practical. ETH was specially designed that custom mining hardware like ASICs will never be a thing like they were with BTC. It’s designed to¬†always live on GPUs. Eventually the difficulty will curve enough that you need tons to do it practically, but right now my¬†5 GPU rig brings in 3.9 ETH ¬†(or $700 after power costs). Investing and buying it might still be better for the average Joe, but if you are a tinkerer and tech guy, this is just plain fun to do!)

First off, if you want to build a solid, full fledged rig, there’s a few things to keep in mind before you set down this path.

  • It won’t be cheap. You are going to want to max out at 5-6 GPUs and a quality power supply. My rig was $2400 all-in.
  • It needs to live somewhere.¬†It will produce¬†continuous fan noise, and you want it to sit where that won’t be an issue. (though quality fans, like Frozrs or the stock MSI Gaming X’s are¬†very quiet. Mine are near silent and sit at 30% at load!)
  • It needs internet.¬†You’ll need a constant connection, though wireless will do just fine.
  • It’s going to produce heat. My cards are air-cooled and hover around 70c. This causes my open floor-plan¬†condo to kick over the AC every 2 hours or so for 10 minutes to keep it around 74f. By comparison, last year our AC turned on for 20 minutes once a day, this does have a $$ cost for me here in SoCal!

The hardware:

So first off, let’s talk parts. You’re going to need to get all this stuff gathered from a few places on the internet before you get rolling. The majority can be bought at Frys, Amazon, etc, but some of the parts, specifically the case and risers, may require some extra leg work depending on availability.

  1. Motherboard: any board that supports 5-6 GPUs will do. Asrock makes a miner-specific “BTC” series boards for hella-cheap in the 60$ range, but mining-whales grab up the market every time they ship and flip them for $300, so good luck. I just went with an MSI gaming series. Do note that bus speed bandwidth is important with this many video cards, so try to avoid specifically the z170 line of boards due to their bus low bandwidth.
  2. CPU: go cheap here. A Celereon will be *too* cheap, but an i3 is plenty power and cheap. If you go with an older board then you can probably get an older i5 or i7 for cheap as well, up to you. In either case, you are *not* going to be CPU mining, it is a complete money sink to try, just don’t¬†do it okay?
  3. Ram: you want 16gb min, but you don’t need high end gaming shit. Quantity not quality here. (Generally speaking you want 3x the number of GPUs in RAM or 12gb, whichever is larger.. but RAM is cheap so just go all the way now if you can.)
  4. GPUs: you are going to want anywhere from 1 to 6 GPUs, the more the better. AMD is light years ahead of Nvidia in this space due to complex technical reasons I won’t get into. If you have some old 7990’s dust those babies off because they are KING, but impossible to find anymore (we’re talking 75% faster than an RX 4/5xx series!). Other wise you want RX 470/480/570/580s. As of right now, 5xx’s run roughly the same hashrate as 4xx’s. but might be improved over time with new BIOS tweaks. However, they use more power and produce more heat so if you can get some 470/80’s still at this time (it’s hard), go for it. In either case, the only difference between a 70 and 80 is about 1.5 mh/s hashing power and a 70 will use 45% less power, so aim for a 70. Also an 8GB card will get you 1.5 mh/s more than a 4gb, not because of the memory size but due to the types of chips used being better quality on the 8GB resulting in better hashing. In short, get what you can within your budget from the above, aiming at 7990, 470, 480, 570, 580 in that order.
  5. An SSD: doesn’t matter what size, just big enough for the OS and some other stuff, anything over 126gb will do.
  6. Power supply: this is important! There is where those “gold” and “platinum” ratings actually matter. We’re going to put 60%-80% load 24/7 on this supply so the quality does matter here for longevity. You want a gold or higher, and the power output should be relevant to how many cards you ¬†have. For a full on 6-GPU rig you can get by with 1100w but 1300w is better.
  7. Case: Obviously you cant fit 6 GPUs in a tower. Additionally, air flow is hella key. That’s why you work with open framed cases for this, meant specifically for mining. I use this one.
  8. GPU Risers: You are going to need what are called “GPU risers”. Most mining cases come with them, if not.. this is what they look like.
  9. HDMI Emulator: You are going to run a headless windows system, and when you remote in with something like Teamviewer, you will be stuck with a desktop resolution matching that of the monitor attached, or a tiny ass 400×600 pixel view otherwise. Plugging in a little 7$ HDMI emulator dongle will trick the system into thinking a full res display¬†is attached instead!
  10. USB WiFi adapter: Pretty straightforward… your miner will need to phone home to it’s pool every 5-20 seconds, and I doubt you will want wires running to wherever it lives.

Here’s my own parts for reference:

 

The build:

Okay now you have the core hardware, let’s talk setup. You’re going to want to hook everything up in the case you’ve obtained. Those risers? the small breadboard goes into you PCI 1x/16x slots and the usb cable connects it to the long board that slots into your GPUs. Each one needs power over Sata connectors, and I would not suggest more than 3 risers per power rail. The GPUs themselves should each be powered via their own cable and rail… this is where having the high quality PSU helps because it should have rails galore… for example mine has 8 dedicated to GPU’s alone. (A power rail is basically just an individual cable all to itself).

Next up, the OS. Now in the word of headless servers, Ubuntu is king.. but guess what? We’re putting Windows 10 on this thing. Yes, I know that sounds insane but bear with me! You are going to eventually want to custom flash the BIOS’s on each card to squeeze out every last Mega-hash per second (mh/s). You’re also going to tweak the settings, overclock the GPU memory, etc. This is all really hard, and in some cases impossible, to do on Linux. Also, the custom Drivers you will need need don’t work so well on there either as while AMD officially supports Ubuntu, their track record is quite spotty.

The nice thing about Windows 10 is that Microsoft really, really, reaaaaaly wants the whole world moved onto it. They are all-in on this OS cycle due to some long term world-domination stuff¬†I won’t get into here, and as a result they were willing to make some concessions. One being, you can install it without a key for free and it’s going to pretty much run just fine for you, so long as you don’t mind an obnoxious watermark down in the bottom right popping up. Now, if you plan to do this long term, I think it’s safe to say you can easily afford less than 1/2 of an ETH worth of money on paying for a key, but for the initial tinkering/learning phase, if you are on a tight budget you don’t have to fork that over right away if it’s going to be a blocker.

So get your parts installed, and with only¬†one video card connected, boot it on up up and go ahead and install Windows¬†like you normally would, and we’re almost good to go. First up, we need to install some very specific AMD drivers. Now, you can install the latest and it’s going to work fine, but if you want to squeeze every last mh/s out of your cards then you want to tweak your GPU’s BIOS. Unfortunately, last year with driver v. 16.12, AMD added a BIOS check to the drivers. Moving forward from there, if you have a custom BIOS on your card, then windows will not detect the cards properly because “reasons”. To avoid this, we’re going to install OLD drivers from AMD, 16.11 ones to be precise since we need the¬†16.x drivers to detected 4xx/5xx cards, but not past 16.12. You can grab those bad boys right here.

Lastly, there is one other little Windows tweak you need to make: You will want to go into your system profile settings, find the “Virtual Memory” option, and you’re gonna crank that baby all the way up to 16GB. There is a long technical explanation behind this around DAG files, GPU memory etc… suffice to say though, this is a very important step.

Once installed, we want to go ahead and do a test run before we start to screw with the BIOS on them. Both to just rule out variables if something is wrong, and two, to help set a baseline so you know what your improvements did. Go ahead and shut the system down and hook up the other cards now, and then we’ll move on to the software side of things.

Next up you want to get the actual miner software installed. There are a ton of options but one of the best in class is Claymore’s Ethereum miner. We’re gonna grab the latest one from here. As of this writing,. 9.4 is the newest, but the main post is updated each time he changes it, this forum thread is the definitive resource for all things Claymore Eth Miner. Download it, and extract the folder to wherever makes sense for you.

We’ll need to make some quick tweaks to the default start.bat file to make it’ll mine for you and not Claymore’s default wallet¬†first though. By now I assume you have an Ethereum wallet address and have chosen a mining pool to be a part of. Getting one, setting up a wallet, choosing/joining a pool, etc, is beyond the scope of this, so I’m going to assume you have one. Open up the start.bat file and edit the existing command line to read like the following:

EthDcrMiner64.exe -epool pool.hostname.com:port -ewal YOURETHWALLETID 

for example:

EthDcrMiner64.exe -epool us1.ethpool.org:3333 -ewal 0xD69af2A796A737A103F12d2f0BCC563a13900E6F 

Now save that bat file, and run it!

(Worth noting here, Claymore has a *plethora* of command line options you can explore and experiment with. Custom tweaks per-gpu.. dual mining for SIA or Decred with unused GPU cycles, fan, power, and heat limiters and optimizations, auto restarts, logging, remote management, you name it! Make sure you dig deep into that Claymore forum thread and learn how to really have fun, once you’re comfortable with the ¬†basics!)

You should get some pretty output in a console window that looks similar to this example:

(This is just a generic example, you’re version, card identifiers, and other data will be different!)

If it doesn’t look like this, or you have a lot of red, then we’ve got some errors that you’ll need to triage, most of which should be self explanatory thanks to the error reporting, and easy to find answers to in the Claymore thread you got the file from.

Let it run for a bit, and what you’re going to want to look for, is a reporting of stats showing that all of your cards are working as intended. It will be the teal text (for Claymore that is) reading total speed/total shares followed by a second line with each GPU listed in numerical order with it’s individual stats. Pressing the “S” key will force this to appear rather than wait for it’s timer:

Congratulations! You are now mining Ethereum!

The customization:

If all of your cards are showing similar numbers then things are looking great! Now, you can call it a day here and let it do it’s thing, and life will be good. If you’re a real min-maxer though, you’re¬†gonna want to do the “fun” stuff¬†and play with the BIOS settings of your GPUs by tweaking the memory timings.

The problem is, this is where it gets hard for me to walk you through things directly, since it all depends on the specific cards you have, and even the types of memory chips among lines of cards. Some cards have custom BIOS files the community has released, ready to go for you. Some have people who have trialed and error many different memory timings and settled on accepted good ones. Others need you to explore on your own, it varies. To be honest, your best bet here is to do a LOT of googling and research before taking any actions… a wrong step here can brick your GPU.

Just to give you a rough idea of what to expect though, I’m going to walk you through exactly what I did for my own setup, which has MSI RX 480 Gaming X 4Gb cards, but I cannot stress this enough…¬†DO NOT DO THE EXACT STEPS BELOW OR USE THE EXACT BIOS FILE BELOW IF YOU DO NOT HAVE THIS EXACT¬†CARD!¬†This is meant to be a learning example to point you in the right direction only. If you flash the wrong BIOS on the wrong card you now own a $300 brick, okay?

In any scenario however, mine or yours, we will want to grab ATI-Flash to copy the BIOS files off the card. I then made a backup of that BIOS in a folder somewhere safe and put an additional working-copy somewhere easy to get to. You can grab the utility here: ATI-Flash Download

I then used the Polaris Bios Editor to open the working-copy of that bios file, and made the following changes to the memory timings before saving the BIOS to a new file with an easy to reference name:

  1. Copy the 1500 strap string to the 1625, 1750, and 2000MHz fields.
  2. Then copy the 1425 strap string to the 1500 MHz, 1375 and 1425MHz fields.

I then re-opened ATI-Flash and flashed this newly edited BIOS back to the cards, one at a time. Once done, I rebooted the computer and assuming all was well, fired back up Claymore’s miner by launching the start.bat file.

Voila! ~25.5 mh/s per card!

This was by no means fully comprehensive, and I’m not perfect… but this should be enough to get the average person going, and I plan to come back and make edits from time to time as needed!

Oh by the way.. if this helped you at all and you want to thank me.. you’re welcome to donate any small amount of ETH you would like to the following address! ūüėȬ†0x53705931eC12cAd966B7E9Fdc6FEEc3756B71beb

Rito Points, an Ethereum blockchain token!

So a bunch of us at work are into Crypto currencies,  both investing and mining, as well as some tinkering around with some of the more technologically-fun things we can do with it.

As a means to tinker even more with some of the exciting fun stuff you can do with custom tokens on the Ethereum block chain, I’ve created a custom token for us, playfully named the Rito Points. It can be stored/sent/received with any Ethereum wallet, just like any other Token, so long as your wallet software supports tracking them (also known as contracts). ¬†(In the event your wallet does not already know how to “watch” the Token, you can still receive them, but just not see or interact with them until you load the contract.)

MyEtherWallet.com¬†is a great place to start if you need a wallet that can be taught to see custom tokens, and the default Ethereum Wallet/mist installs work well too (but they do require downloading and indexing the whole Ether chain!) Since I expect I’ll be sharing instructions a lot for folks on how to configure their wallet to “see” Rito Points¬†on the blockchain, I figured I’d just document it here for easy reference. Know that any Ethereum address can receive any custom token, including Rito Points, regardless of if the below steps are done, but you won’t be able to see them or manipulate them until you do so. My instructions will be for MyEtherWallet.com but will work for any wallet that supports smart contracts.

  1. Log into your MyEtherWallet, and on the left hand menu select “Add Custom Token” (in some other apps this will be called¬†“Watch Contract”¬†or¬†“Watch Token”.)
  2. Under address, enter 0x8ea88ddefa3b470b51c108475ed2073845a3944c
    (In a perfect world, the remaining fields will auto-complete for you. In case they do not, use the following:)
  3. Under Token Symbol enter RP
  4. Under Decimals enter 4 (I tried to keep it simple yet flexible.)
A screen shot of the contract watch panel within Ethereum Wallet/Mist

That’s it! Your wallet now “knows” about Rito Points¬†and can track it’s balance of it as well as send it!

Update! After tinkering with learning more about the Solidity¬†scripting for the smart contracts, I whipped up a new contract that will accept ETH (in incredibly small amounts) and in return send you some RP to the same address that sent the ETH. The conversion rate is roughly 1,000 RP per .01 ETH (Just under a $1 at current rates). This was purely a learning test as well as a method to automate sending our RP to select interested parties while maintaining an ETH balance to cover TX fees… not an attempt to make any ETH, so please don’t wipe out my account! ūüėČ To leverage it, just send ETH to the following:¬†0xdFD326B2C0627Cf37757A790cb72a7861bc72037

Contract Explorer, for the curious: https://ethplorer.io/address/0x8ea88ddefa3b470b51c108475ed2073845a3944c

Accepting Trump is President does not mean you have to ignore that he is a terrible person.

Here’s the thing… yes I have a lot of negativity about Trump being president, but I do¬†accept that Trump is the president. I do… but just because I accept he is the president, it does not mean he represents me. He may represent America on the international stage, and our government at the highest level, but he does not represent my moral values or the ethics my family instilled upon me growing up. He does not represent my ideological values that I have gained from a lifetime of growth and development.

I condemn his open bigotry. I condemn his hateful comments about Muslims. I condemn his hateful comments about Hispanics. I condemn his hateful comments about Women. I condemn him for mocking a disabled man. I condemn him for pandering to white supremacists purely for the sake of votes, for welcoming them directly into his administration, and even having one write his inauguration speech. I condemn him for running a campaign based on openly and unabashedly lying to Americans. I condemn him because he instructs his staff to brazenly lie to people over and over again until the entire point is lost and people move on. I condemn him for basing his campaign around dividing the American people against one another to his own advantage. I condemn his inability to admit personal fault in even the slightest way as a form of personal growth. At the core, I condemn him as a human being who does not represent even a sliver of a percent of the best of what an American can, and should, be.

Accepting that he is my President doesn’t mean I have to root for his success. If he somehow made America a better place, I would be thrilled… however Trump’s concept of “better” is directly the opposite of mine and anyone I hold dear to me. I don’t want him to succeed in banning Muslims or Hispanics from the country. I don’t want him to succeed in building a titanic wall along the border. I don’t want him to succeed in unwinding key parts of healthcare reform that protects people against bullshit “pre-existing conditions” clauses or 5000% drug price increases based purely for profit. I don’t want him to succeed in filling his administration with opportunists who are looking for personal gain over the best interests of Americans. I want him to fail at these things, because I think America will be a far, far worse for the wear if he succeeds at all of this.

Razer Blade woes round 2, the Amazoning

So¬†if you aren’t familiar with my pain trying to buy a Razer Blade from the Razer Store, I suggest reading it… it’s a hilarious good time of a comedy of errors.

(Note, only reason any of the below really matters is I want this thing sorted and ready before I fly to Tokyo early AM Thursday.)

After giving up on the Razer store, I move on to Amazon.com once I learn in the 11th hour, Friday morning, that they carry them. I quickly placed an order at 1pm PST with next-day shipping for 9.99 (god bless Prime!)

At 2:30 PM on Sunday I get notification it has shipped, this gets me really excited, since I bought next-day shipping! However I look on Amazon.coma and it still shows an estimated delivery date of Tuesday. What?

screenshot-2016-11-06-22-26-54

I check the UPS tracking number on UPS’s site instead of amazons to see what it shows for comparison.. it shows it as a 2-day package with delivery due Wesdnesday.

screenshot-2016-11-06-22-31-32

WHAT?!

I figure I may as well call Amazon and see what happens, so at 8pm Sunday I give them a ring. A very nice lady tried to help me and offers to call UPS and see what she can do. She puts me on hold, while checking with UPS, but I end up being able to overhear the conversation plain as day. Their UPS agent informs her that only a label had been made, but there had been no movement on the package itself and they had not yet taken possession of it. They are anticipating actually having the package Monday morning.

THEN WHY DID THEY TELL ME IT SHIPPED?!

She also said that “the shipping had been ordered for 2 day, so a wed delivery is the correct estimate.” Her only suggestion for expediting it was to contact the Amazon shipping department at the warehouse in question and have them manually change it to next day (for a tuesday delivery) by creating a new label before UPS takes possession of it. If that wasn’t done in time, she said, there was nothing UPS could do about it as 2-day shipping was already locked on that label and can’t be changed once possession is taken.

She comes back to me and relays some of this (minus the part about Amazon buying a 2 day label) and was nice enough to offer to try to contact shipping herself and fix this for me, but they are closed till tomorrow and she is not in until 2pm EST. I asked if she could hand this off to someone who will be in sooner, and she said she would offer to try but that realistically the only way she is certain this will be reliably followed up on is if she does so herself once she is in. (Which logic would tell the astute reader is going to be too late to change things.)

Reluctantly, I tell her I guess we’ll just let things lie where they are right now, and I’ll wait to hear from her sometime tomorrow afternoon.

Considering I paid amazon for next day¬†shipping on an in-stock item on 1pm on a Friday¬†afternoon.. I’m a little peeved!

screenshot-2016-11-06-22-29-30

(Amazon’s shipping reliability is getting consistently more and more unreliable… -_- I’ve had over 11 credits to my account for delayed shipments in the last 12 months.)

 

UPDATE- Monday 1:30pm PST:¬†So, no call yet from Amazon following up on the issue, but I got an urge while relaying this story to a friend to check the UPS tracking number just to see if anything changed before I published this post. Lo and behold, it looks like Amazon managed to fix it before UPS took possession! The Expected delivery has changed from “By end of day¬†Wednesday” to “Early Tuesday”!

screenshot-2016-11-07-13-31-57

I’m going to withhold my elation and celebration until it is actually in my hands, but things are starting to look promising!

The comedy of errors that is the Razer Store.

So, for many months now I’ve been extolling the virtues of the killer combo that is a Razer Blade paired with a Razer Core. I know of 3 colleagues I talked into the pair, plus many more whom I’ve planted the seed in and may or may not have pulled the trigger without me knowing. It’s a great setup, especially if you want to move away from having “too many computers” and, like me, have a core gaming desktop as well as a day to day laptop.

In August, my MacBook Pro’s video card started to give out. It’s 4 years old, so it’s understandable and no hard feelings. After much research I decided to take my own advice and buy the recently released New Blade from Razer and pair it with a Core with a 1080 inside. About the start of September, I went to pull the trigger and that’s where the fun began. What follows is a timeline of the absolute comedy of errors that began that is so¬†ridiculous I can’t even be mad… and only just laugh at this story. It’s a long read, but that’s because it’s a meticulously detailed timeline of events for maximum impact and reliability. I promise you it’s worth the read.

Sept. 5th РI finally decided to pull the trigger and to order a Core and Blade combo to replace my desktop and aging (and literally melting) MacBook Pro laptop all in one go. First tried to go online to the special Partner store, since as a employee of a game studio partnered with Razer, I am able to get a few minimal but none the less nice discounts. Unfortunately, the promotion they are running for $100 off a Core when purchasing a New Blade is not offered on the Partner store. Also, no New Blade’s are listed on the store either, only the legacy ones. (As I learned later there is a 3 month lag for new products on the partner store. Lame, but I can rationalize the reasoning on that to some degree and no major complaints). 

I then went to the regular store url/login with my personal account. The promotional bundle was offered, but the New Blades were¬†currently listed on back-order with no date for future availability. The only option is to sign up to be notified when on sale… so I signed up and eagerly wait!

Sept. 21st (ish) РI receive an email stating the New Blades will once again be shipping in October, and are preorder-able on Oct 2nd at 9 am PST. I set an alarm to remind myself to hop on immediately at that time and preorder one, just in case.

Oct. 2 – I hop out of bed bright and early in my hotel room at Twitchcon and ordered my New Blade and Core together at 9:02 AM just as it unlocked. The Core is listed to ship on Oct 14th, and Blade Pro is listed on back-order until Oct 28th. Remember this. ūüėČ

While ordering, I found code online for a free $49 messenger bag if ordering a Blade. I put the code in, because I love free stuff! The order form accepted the code and confirmed the free bag. 6 hours later, the order confirmation was emailed to me (seems kind of long? Was a bit worried something went wrong up until then due to demand or something.)

I also discover at this time that the $100 off discount was not applied. Apparently you don’t get it automatically? The discount appears to be emailed as a promo code as part of the order confirmation email, once your order has been processed and subsequently confirmed. Instructions state it must be applied separately to a different Core order to be claimed?!

Oct. 4th РAfter chatting options with a friend at Razer for advice, I reached out to Support to find out how to get the $100 credit applied to my order. unfortunately, the support form is limited to 550 characters only. No email, no phone. Very hard to explain most problems in so few words but I managed it. The Support form gave me an auto email to expect a reply in up to 1-2 business days, as to be expected. Later in the same day, I received an unrelated email stating the following: 

“Thank you for ordering from the RazerStore. As indicated during checkout, one or more of the products you ordered is currently unavailable and cannot be shipped. You will receive an email notification when your order has been shipped.

Estimated shipping period

Razer Basic Messenger Bag: null‚ÄĚ

Looking farther down email, there is an additional section: 

‚Äúnote:The item(s) in your order will only ship once all item(s) are ready for shipment.”

Wait, does this mean that even if the core and blade are ready to ship, the whole order will be held for this mystery bag with a ‚Äúnull‚ÄĚ ship date? In paranoia, I¬†open second support ticket, asking about this issue in detail.

Oct. 5th РSupport has replied to my first ticket. They explained that they are unable to apply the promotional credit, and that if I want to get the $100 off of my Core, I must cancel my order and start over by ordering the blade first, wait for the confirmation email with code, then use that code to order a core separately.

“Hi, J.

Thank you for contacting RazerStore.com

We are sorry that we are unable to add promotional code in any order that has already been placed.

https://store.razerzone.com/DRHM/store?Action=DisplayHelpPage&SiteID=razerusa&Locale=en_US

At this time, we can cancel your order and allow you to submit a new order. Please let us know if you want us to attempt a cancellation.

If we attempt the cancellation, you will be notified by email that the cancellation was successful. If unsuccessful, your order will ship as originally placed.

Hoping to hear from you for your decision.

Thank you for your time and understanding.

Sincerely,

Team RazerStore.com‚ÄĚ

Later that day, the other ticket is replied to saying that they cannot confirm for sure if the order status of the messenger bag would hold up the rest of the order or not. I’m told that it should not have actually been made available and is indefinitely out of stock and no longer officially offered as a promotion. Additionally, they are unable to make any changes or adjustments to my orders promotional codes and that if I wanted to cancel the order and start over they were happy to do so.

I responded to the first email confirming that yes, I would like to cancel the order and start over, in that case. (Especially in light of all the above nonsense).¬†They respond they have ‚Äúrequested‚ÄĚ a cancellation, and stressed this is not actually confirmation it has been canceled. Was told I need to wait for a cancellation confirmation email before it‚Äôs *actually* canceled. The confirmation eventually came about two days later. Why on earth does that need to happen or take so long? Who knows. I then¬†tried to make two new orders. First I ordered the New Blade, in HD (not the QHD+) with a 1TB HD.

However, the order form rejected my billing address confirmation, telling me I needed to enter a ‚Äúvalid value‚ÄĚ for State and country, highlighting them in red. Note: These are pre-filled drop downs, not text. I simply picked the options that applied (CA, US). It kept rejecting them over and over again, until I hard-refreshed the page, wiping out the form entirely and starting over.

screenshot-2016-10-05-12-53-11

Oct. 6th – Still no order confirmation the following morning. Without it, I can‚Äôt order the Core, and I’m also becoming worried that I may slip back into a further batch of Blades. On a whim, I decided to check my order history, out of idle curiosity. It actually showed duplicate entries for every order! There were 12 line items for 3 simply orders, each repeated 4 times. This is really weird and confusing, and obviously a bug of some kind. Also still showed my recent order as ‚ÄúIn Process‚ÄĚ a whole day later.

screenshot-2016-10-05-15-41-38

Later that day, roughly 26 hours after the initial order, I finally get my order confirmation with a discount code for the core. (Irony… the discount code looks to be the SAME as the one from the first ever order.. It‚Äôs apparently not a unique code? Either that or it’s keyed to my email or something and the same for just me. Had I known that, I wouldn‚Äôt have waited!) I order a Core it using this code, getting my nice $100 discount. Again however, I experience the EXACT SAME¬†bug with the state/country drop down!¬†I hard refresh once more, and this fixes it. I think it‚Äôs possibly related to chrome’s automatic filling of known address info at this point.¬†At this time, it‚Äôs important to note for reasons below that the Razer Core still has a shipping date of October 14th and the New Blade is Oct 28th. Sounds good to me!

Oct. 15th – Still no shipping confirmation for my Core, which was due out the day before. I begin checking the order status page daily because I am an impatient nerd who wants his shiny toys!¬†The store site still says it’s shipping Oct. 14th when I checked on the 15th, and 16th, and I believe I looked again on the 17th (my notes are fuzzy there). My order confirmation also says the 14th still, I checked to make sure I wasn‚Äôt crazy.

Oct. 18th – I check the order status, still no updates! However, the Core listing in the Store *now* says ‚Äúback ordered, ships from 10/28‚ÄĚ. ¬†I¬†was given zero emails or heads up about this new delay however. A¬†silent stealth update to the site? Not great customer service experience. Totally understanding things happen, but an email/update would really have been nice.

Oct. 19 РA New Blade Pro has just been announced. Shit. Do I still want a New Blade, or do I want the Pro? Is a pro better for my needs? Does the Pro even need a Core with it’s sexy new gpu? It the Pro too big in size for my needs though? I almost have buyers remorse before I even have the product. I don’t know what to do. The New blade doesn’t ship for another week. Also I now know details about the rumored MacBook Pro refresh coming next week. It might be a better solution and at this rate will arrive sooner .Maybe it’s better to cancel and wait and see how reviews pan out? I reach out to cancel my Blade order (even though it risks missing out on another back-order window) to wait and see the right options for me, since this is no small investment. Definitely lots of sudden decision making to be made.

I am told by support that because I used the discount code for the Core, I have to cancel the Core order also. Fair enough, that makes total sense to me, so I cancel both orders. I am again told the order cancellation has been requested, but not confirmed, until I receive such an email.

Oct. 20th – The email confirmation that my Blade order was successfully canceled arrives. (but I failed to notice there was not one about my core).

Oct. 24th – 4 emails came in at the exact same time together (3:39AM) in one batch with identical time stamps.

  1. Shipping confirmation of Core stating it has just gone out.
  2. Email stating they were unable to successfully cancel my core order (duh?).
  3. Email stating they have put in a request to issue a return order for my core as a courtesy due to my existing cancellation request. (Wow thanks!)
  4. Email confirming the cancellation request and accepting my return order, with return instructions and a mailing address. (With the implied instructions that I need to pay the cost of shipping myself to return it to the listed address in Hong Kong, to get the refund.)

Then, at 9:30 am that same morning my core arrives at my office suddenly!

Yeah. That happened.

I run the numbers on FedEx and UPS¬†to estimate shipping costs to return the core for my refund. Retail costs for a one-off shipment of this size and weight come back at $300 and $250 respectively. Totally impractical to do in order to get a refund on a $400 order! Both return-related emails come from ‚Äúdo not email this address‚ÄĚ accounts so following up on this hurdle is now difficult for me.

Well, I guess I‚Äôll just sit on this Core for now… I may still end up with a blade, and in THEORY it’s supposed to work with any USB C laptop, including that plan B mac.

Oct. 27th РAfter reading initial reviews on the Pro, it seems it really isn’t the laptop for me. Additionally I am not satisfied with the details on the new MacBook Pro so I went ahead and placed a fresh order for the New Blade, in the HD 1TB model. Since I’m stuck with this Core that I can’t really return easily, I figured why not. I placed the order, and as expected, I was told it is still on back-order, due to ship on October 28th (the next day) as before.

Oct. 29th – Checking to see if my Blade has shipped yet, I now see that the QHD+ model is currently shipping as of the day before, as is expected, but that the HD model that I had ordered now reads ‚ÄúAvailable for Pre-order. Ships from 11th November, 2016.‚ÄĚ It would appear it has slipped 2 weeks‚Ķ sadly for me this is the day after I leave for Japan for a week so it leaves me without the laptop for my travels. ūüôĀ

Nov. 2nd – On a whim, I‚Äôm not sure why, I felt the urge to check the pre-order status of the laptop again. It now reads the following: ‚ÄúAvailable for Pre-order. Ships from 28th November, 2016.‚ÄĚ Well, guess we had ourselves yet another stealth slip it would seem… *sigh*

screenshot-2016-11-03-16-41-09

Nov. 4th – I woke up to the following email:

Hi.

Thank you for your order of Razer Blade with FHD – 1TB.

Order number: ****************

We regret to inform you that due to unexpected shipment delays, we can ship the product only from November 28, 2016

Our bad. We are sorry.

We do have ready stock of the upgraded Razer Blade QHD 512GB or Razer Blade QHD 1TB, and would like to give you priority to purchase it. In addition, we will offer you a Free Gift of a Razer Blade Armor Caseif you wish to take up the offer.

To take up the offer to upgrade,

  1.       Please make the purchase within the next 5 business days

http://www.razerzone.com/store/razer-blade

  • Provide us the new order number so we may cancel the old order.
  • Once your new Razer Blade QHD 512GB or Razer Blade QHD 1TBhas shipped, you will receive an email with your tracking information.
  1.       Instructions to redeem Free Gift of a Razer Blade Armor Casewill follow 7 days after your order ships.

Should you choose to continue to wait for your Razer Blade with FHD – 1TB, we will go ahead to keep you in our waiting list.

Once again, our sincere apologies. We value your business and appreciate your patience and understanding.

Sincerely,

Team RazerStore

Well, at least you guys emailed me this time I guess… Though 2 days late.¬†I then went to the store to look up the listing for shits and giggles. The order page for the 1TB HD Blade no longer has a ‚Äúpreorder/shipping 28th‚ÄĚ status. The purchase button has now been replaced with a ‚Äúnotify me‚ÄĚ button, and the release date has been replaced with ‚ÄúRegister your interest‚ÄĚ.

screenshot-2016-11-04-12-32-34

Oooookaaaaay. Let’s just say at this point I have¬†zero fucking confidence that this thing is actually shipping Nov 28th.

After sharing this story around with some friends, I learn from one of them they had a very similar experience and ended up buying theirs on Amazon.com. Wait what?! I look and lo and behold Amazon has them currently in stock!! I just ordered it there, right now, with overnight shipping for an additional $9, and requested to cancel the previous order via the Razer store once and for all.

screenshot-2016-11-04-13-02-33

JEEZE!!!

Any one of these things, or even two, is likely a minor annoyance, but the combined force of this ridiculousness is beyond ludicrous. C’mon Razer ūüôĀ Just ditch Digital River as your store vendor already and do this in house. I know you could do so better at this if you ¬†just put a vested ownership into the experience!

EDIT- 11/6/16:  Just got the shipping confirmation from Amazon.com! The laptop HAS shipped. a Razer Blade DOES physically exist with my name on it and is en-route! It was set for next day delivery, and due to ship out Monday, so there is even a chance it may arrive tomorrow!

EDIT 2 – 11/7/16:¬†So everything wasn’t *quite* as sunshine and rainbows as the last update seemed. For the next stage in the saga, check out part two of this adventure!

The 4 month saga to the perfect gift

So, back in the late spring/early summer a new regular popped up in the League of Legends subreddit. His name was /u/Xplo85 aka ThatJewelryDesigner (more properly known as Christopher) and he was doing a kick ass job designing jewelry based on champions from League of Legends (and now other games too).

I thought about it a bit, and realized this was my chance to finally one-up my girlfriend, Victoria (@Aoitsukihime), on all the PAX presents she has gotten for me each year and put myself in the black on the balance for a long time to come. ūüėČ
So, I reached out to Christopher and we started a dialogue about what I had in mind. In short, I wanted something Sona inspired, with blue sapphires (blue being her favorite color and appropriate for the design).

Sona, for those who don't play LoL

He got to work on some initial ideas, and came back with some amazing renders. I opted to go the route of white-gold, given that she is most prone to wearing that over yellow gold, even though the yellow is more in line with Sona’s color scheme. (This, by the way, explains why for months now people on Reddit have been begging him for a Sona inspired design, but he keeps deferring the requests for “reasons”… he didn’t want to spoil the surprise!)

perspectivex2

I gave him some feedback and he noodled over the design a bit more, and after a while¬†he came back with an excellent rendering of the ring that I was totally sold on: The crown is covered in filigree that represents Sona’s etwahl (her instrument that doubles as her weapon). The outer edges of the band is covered in similar designs that match her instrument as well as her clothing. The interior of the band itself is covered in a chain of her iconic hair pieces that hold her pigtails, and while the outer band in the original design had a row of Tears (Fully stacked Tears of the Goddess!) they were omitted from the final for practical reasons. Lastly, the gems… the original design called for yellow-gold with blue sapphires, to evoke her gold and blue color palette of both her and her etwahl, but as I said I opted to change the gold to white-gold for practicality, as my girlfriend does not really wear yellow-gold. ¬†(As some have pointed out, Blue, Purple, and Green gems to represent her key abilities would also have been neat.. but as I was going for an every day piece to wear I wanted to keep it simple to her favorite color and gem.)

At the time, he was working at a jewelry store back in GA not far from where I used to live in Atalanta, so I quickly commissioned them through him to make it a reality!

detailsx4

They made an initial run of the materials, and came back with a casting that was not ideal, but a great first attempt to help them find some of the flaws in the design. This allowed him to refine things a bit and retool it for maximum awesomeness. After some changes, they were subject to yet another processing run. About this time, Chris moved on to freelance on his own to take his new found passion of gaming-inspired designs to the next level, but he was absolutely amazing in making sure this was not lost in the transition and worked tirelessly to keep tabs on the project with the store long after he left.. a true dedication to the craft.  From there, I continued working with the owner of the store, Angie, directly.

second_runx4

After the subsequent run, some of the issues still remained and it became clear the design had some inherent flaws. Namely, there was just too much filigree and wire-work and not enough substance to hold the structure soundly or the gems in place. This was not really Chris’s fault and I can’t blame him. He was a burgeoning designer and as a 3D printing Maker myself, you learn quickly that a lot of the limitations when designs become reality are not inherently obvious and you only learn how to anticipate them from trial and error over time based on pure experience. Angie, the owner, was great about resolving this and enlisted the service of a master craftsman the shop has used for decades to retool the design into something a little more amenable to the laws of physics. Sadly it meant losing some of the pure filigree and converting it to a decorative surface on a solid materials, but none of the sexy lines or slimness of the design was lost!¬†They sent over some gorgeous re-designs, (seen below), and I was happy to approve them for what was hopefully going to be the final casting.

finalsx4

The result? Well… it made her cry so that’s a good start! I think it’s gorgeous and so does she. (The video doesn’t show it cause she hid from the camera squealing, but she began flapping her arms like a happy little penguin, and orbiting¬†around me while simultaneously twirling in place like a cute little moon, giggling nonstop. It was adorable.)

2016-10-10-13-09-30-1

The only problem?

I really painted myself into a corner with how high I set the bar for a future engagement ring…

So I finally got around to The Witcher 3

I was a bit late to the Witcher 3 party. I’ve owned the game in my expansive (5 figure count) steam library for some time, but just never played it. I saw the praises, I saw the awards, I saw the review scores… but for some reason nothing ever made me feel compelled to play. Then, this summer, I took the plunge.

Wow.

I know you’ve probably read a million reviews, or played the game yourself. Still, I¬†want to write my thoughts down, if anything, for myself. I understand the praise now, I truly do. I play a lot of games… a¬†lot.¬†Yet nothing compares to this experience. I truly feel, without any hyperbole, that this game was the best game I have ever played.

RPGs are tricky beasts. You want a lot of engaging content, but that means you need to fill that content out thoroughly. Usually, even the best games of the genre have this quasi three-tier system to their content: The main story, the secondary stuff, and the tertiary random filler. The first of the three usually has well thought out, well scripted, well voiced content that’s fully engaging and advances the story. The second, usually is a little less on those marks, but still of an okay quality and sometimes affects the story as an option. Lastly,¬†the third is basically quickie throw away “go fetch me X number of Y” content, sometimes without even VO and interactions. With this game however, it’s more like a two-tier system, with the second tier only barely sitting below the first. Even the most fluff of fluffy filler content felt compelling, engaging, fun, and I had to stop to think to even realize it wasn’t actually part of the main quest. The “secondary” quests felt every bit as well thought out and written as the primary arcs, and there was never a time,¬†ever, where I was off killing something or collecting some item going “why the heck am I doing this? It means nothing to the end-game! I should be getting back to getting into Yennifer’s pants!”

Few of the games mechanics or systems felt like they were without thought or careful design as well. The one complaint I had was, quite frankly, that I’m a busy person and I don’t have time to devote to “busy work” within a game like I used to. Because of that I loaded up a few basic mods to make my life easier… I removed the rather restrictive weight limits and enabled the ability to fast travel from anywhere, not just a sign post. That was pretty much about it, other than graphics tweaks however.

screenshot-2014-08-12-15-55-29

The scenery and views were amazing, I caught myself framing perfect shots for my collection just because. (having a beefy enough system to run the game at max helps with this!) The world is so open and fluid that it was a genuine treat sitting on top of a fortress on a mountainside, looking miles off in the distance, across the water at times, and seeing buildings and towns far away that I knew I could just walk right on over to any time I want.

1379952562840114576

The characters were endearing, well fleshed out, and quite personable. I found myself looking forward to engaging with them and continuing the story, and did not find myself perusing romantic engagements not on a whim but because I had a natural desire to see my Geralt grow as a person and find some sense of harmony in his turbulent life.

Then there is the writing, the VO, the Lore, the environment design, just… man it’s overwhelming, the content and world.

fd674ed8df3b03f84dd0b9c9043f4a2d

For the first time in my life, I have put down a game and felt a sense of loss. There is a part of me that now feels empty and hollow because I am no longer Geralt of Rivia. I wore him like a second skin in my free time for weeks, and now it just feels weird to close that chapter for good. (DLC not withstanding!)

Before I go though, I have to admit one thing, the game is not without it’s bugs. Aside from one that broke a side quest that basically prevented me from accomplishing something major that I¬†really wanted to do for the game-world to make it a better place, they were mostly comically and quickly went away. I think I’ll share my favorite with you because it left me in stitches for the entire day…

The DMV should not be this hard to deal with in 2016

You might think that by the year 2016 some of the more backwards and bureaucratic aspects of dealing with the CA DMV would have evolved. You would be wrong.
So the first week of April I got a notice in the mail (at my current address.. I updated it when I moved) from the CA DMV that my drivers license expires in June and the instructions on how to renew it online. I then thought to myself “my car registration is due in May as well, might as well do both at once!” This is a rare instance of being a proactive adult in my life and I’m rather proud of it.
 
I hop online, renew my ID and my registration both in one transaction, and pay all the various associated fees. A few weeks later the shiny new ID card shows up, in the mail, but no sign of my registration paperwork or new sticker. After a more than a month goes by and now its the renewal date for my registration, I call in to find out just what exactly is up. I’m told there is a 2 hour hold time, and naturally opt for the “Call me back later” option.
 
I get the¬†call back, and after giving my info the agent on the phone, she informs me that the renewal was sent to the wrong address, not the one I just gave her “Weird” I say “I updated it at the same time I updated my ID back when I moved in February, all at once”. I’m told it apparently didn’t “take” for the registration part, and am advised to do it again online, and that once it’s in the system to call back and they will resend me my sticker and paperwork. I ask if I can just change it with her over the phone and she says the system does not allow for that.
 

I hop off the phone and go online and do so.. ¬†but it took a few days and another phone call to the DMV get it done. When you update the car’s registered address, you have to include not only the license plate number and VIN, but also the “Effective of” date of your current registration.¬†Since I had paid my renewal in April and we were now past my renewal date of May 20th, it was now in the system as a given day sometime in May 2016, not the 2015 on my old paperwork that I was mistakenly referencing. I didn’t think about that at first and it wasn’t until i began to randomly try various dates in a week long window around the date stamp on my email receipt for my renewal that I finally got it to accept the update submission.

I then decided to wait a week or two, because lord knows government¬†systems are probably slow to share info among themselves… ¬†and call back in today. After putting my number in the queue and getting a call back, I explain my situation to someone and ask to have the sticker resent to me. He asks for my my address again, which I give. I’m then asked for a possible previous address I may have had… oh boy.. here we go. ¬†I give my previous address, but I’m told that’s not on file either. I then offer up my address before THAT, my first one in LA and where I lived when I bought the car in 2014. He says THAT is the one on file.

Flabbergasted, I ask how this can be. I updated my contact info when I moved in Nov 2014, and again in Feb 2016. Clearly it worked because my ID contact info was mailed to the right place! He informs me that online updates do not work for leased vehicles. What?!? I ask why is it the system¬†behaves¬†as though it¬†works then, and why it does not give me any error telling me this.. (also for the record, you online profile for the CA DMV does not reference your address to verify what’s on file. This is by design, I’ve been told.)

He then tells me I can *only* update the address by coming into a local DMV branch in person, (if you live in CA you know what THAT entails, if not, just look at the pic below!) and that I have to fill out a change of address form by hand to do so. After which, I’ll have to fill out another form for a duplicate registration copy, which requires a $50 fee.
customers_waiting_outside_dmv_LA_CA

Seriously… I did everything they told me to do in the way in which they told me to do it (proactively I might add!)¬†and now I have to pay a fee for a second copy because *they* gave me bad instructions.

In 2016, I can’t believe dealing with the DMV is still this convoluted and archaic. The only relief is the fact that my registration IS up to date, I just don’t have the piece of paper to go in my car and a shiny new sticker to go with it.

UPDATE! @ 4:50pm 6/9/16

Whomever said complaining about something on twitter doesn’t fix it clearly underestimates the CA DMV!

So I emailed the address in question with my email and phone number. Just now, about 15 minutes ago, and *exceptionally* nice lady called me and asked to hear my story. I ran her through the whole shebang, and she was super apologetic and asked if I would be willing to fill out the PDF of the change of address form and email it to her. Once I did, she would process it within the next business day and have the new registration in my mailbox within the next 7 business days.

Wow! The CA DMV is NOT whom I expected this kind of personal touch from! The systems and processes may still be a little convoluted and janky, but at least there’s a light at the end of the tunnel!

My franken-code

So i have this little hobby, 3D Printing. You may have seen one or two (or fifteen) mentionings of it before. I love it, and I even make a reasonable amount of money on the side that covers the costs of my hobby and then some.

The one thing I love is numbers, tracking, and data all nicely packaged up in nice report with¬†charts and graphs. Since plastic filament is the one main consumable in this venture, and it’s important to know how much filament you have left on a spool before starting the next print, I made a mildly complicated spreadsheet to help with this.

It’s a fairly straightforward spreadsheet. One tab holds the data for each spool of¬†filament I own, another is a list of every print I have made over the last year (time spent, amount of filament used, profit/cost of prints, and so on. Lastly, a pretty little tab that shows cost/expenses, wear and tear on particular nozzle heads and other consumables. All in all it does the job, but the one thing that bugs me is that it’s just a spreadsheet. I want a web app that I can use anywhere any time, even mobile, to help make it easier (so I’m not batch logging prints days later because I’m lazy or was in a hurry) and more importantly one that supports multiple users so that others can use this same thing. I tried poking around on the web, but just couldn’t seem to find anything of the sort.. I find this kind of weird, but also may just be that due to some of the common search terms that have some crossover meaning here I might just have a blind spot in my google-fu.Screenshot 2016-05-28 22.12.51

Enter my project, AnvilTracker.¬†It’s basically an attempt to convert the functionality of that spreadsheet to a Ruby on Rails app. The fun part?

I have no idea what I am doing.

Basically I’ve gotten it to a mostly functional state. It’s not pretty (virtually no styling or UX work at all has been done) and the functionality is basically 75% of the spreadsheet minus a few cosmetic enhancements. I more or less started off with following some tutorials, cherry picking stuff that did what I wanted (just had a different use case) and renamed some stuff, gave variables more contextual names, and commented things up properly. So far so good..

Screenshot 2016-05-28 22.08.56

I think the biggest thing from holding me back is the freaking UX. I don’t have the patience to learn CSS on top of everything else. I’ve also created a monumental backlog of features I want to add, learning them incrementally as I go. So far it’s going ok, but the backlog is getting progressively harder and sooner or later I’m gonna hit my skillcap… oh yeah, don’t even ask me about Unit Tests ok? ūüôĀ

Anyone care to lend a hand?

https://github.com/sargonas/AnvilTracker/issues

The (not so insane) case for omitting Punkbuster in Battlefield 1

The early 2000s were a dark time in the FPS world. In the days of old, cheating was rampant, as anyone from the original Counter-Strike days can tell you. There is a saying in the anti-cheat world: “Build a better mousetrap, and they will build a better mouse.” The problem, however, was that for a many number of years, no one was even building¬†mouse traps.

Enter Punkbuster, a creation of a coalition of angry gaming community people who were tired of the rampant cheating. At the time time, it was a godsend. You, the run-of-the-mill server administrator, could drop this module into your game server, tweak a few settings, and now the mice had a mousetrap to contend it. Was it perfect? No. Was it infallible? Nope. Did it at least help? You betcha!

pb_logo.jpg.001df605df50c667e70c4a0ffad2d609.jpg.3f648d6a10f78a71f65f28fe881890b3

The mice evolved, and so did the mouse trap. Over time the storied tug of war of hacks vs. anti-cheat escalated as they always do, but this option held back the great unwashed masses of many an offender. There were false positives, there were people who would steal others GUIDs (Global Unique ID) and get them banned for fun, and there were other headaches… but it was an opt-in system. A game server admin could elect to turn on or off any part of the system at will, (or the whole system entirely). The cost benefit analysis was up to the server admin and their community to agree upon, so there were few surprises and consequences were manageable.

This brings us today… 2016. A far, far cry from the early 2000s. These days, first party anti-cheat systems are on the rise… and they are quite impressive pieces of technology. Blizzard’s “Warden”, Valve’s “VAC”, and so on, have set the standard for first party solutions. These systems¬†outclass Punkbuster in many ways, especially in the false positive category, but most¬†importantly, they are¬†in house. The studio using them, also controls them. This is key! Accountability of the actions (and results) of these systems lie within the same walls as the platform on which they operate. It’s quite easy for Blizzard to go “oh crap, something went sideways for this guy, let’s reverse this ban.” or, as has happened before here at Riot, for a player to be banned for botting, only for our support staff to see clear evidence of an account compromise during that time frame and go “yeah it’s plain as day this wasn’t you” and reverse the ban during account recovery.

So, let me explain why this whole thing is in my head, and why I think Punkbuster has no place in Battlefield 1…

ea-origin-logo

In 2011, when Battlefield 3 came out (and repeated again with BF4 in 2013), DICE made the curious move to incorporate Punkbuster into the game as a required component. If a Battlefield 3(or 4) server is publicly accessible (meaning, not flagged to private and locked out to most folks), PB *must* be enabled on the server. No exceptions. This wasn’t, to the best of my knowledge, common before now. Some other studios had indeed bundled PB with their game’s dedicated servers, sure, but a forced-on implementation¬†was a new one, at least from my understanding. Now, to be sure, it helped. It kept the game a lot saner than it could have been, that’s for sure!

Now, BF3 was one of the first major¬†EA releases¬†to come out in 2011 after the launch of Origin, and as such, was only available on that platform. One of the side effects of this was that your GUID tracked within Battlefield (and consequently PB) is keyed off of your Origin ID. No longer a hash of your computer hardware and game-specific username, this new format essentially “follows” your Origin account wherever it may be logged in, regardless of the computer in question.

For a while, when Origin was new, it was a bit behind in some technical areas. Having been around the team during that time, some really tough decisions had to be made about what was required for launch and what could be added down the road. This is a common decision making process at any studio and tech company, to ensure something was there for players in time for some key milestones and dependencies. This meant account security was a bit hit or miss for the first two years due to a lack of 2 Factor Authentication, for example. As a result, in late 2013 or early 2014 (my memory is hazy) there was a rash of account compromises in bulk that were seemingly part of some form of data breach. I, like many people, had my account compromised by (what at least appeared to be) a conglomerate of Russian hackers.  This went unnoticed by me for a few months, as no new releases came out to garner my attention and warrant logging into Origin. Then, along comes Dragon Age: Inquisition, (SUCH a good game by the way!) and I tried to log in. Uh oh! I went through the account recovery process, turned on the newly established 2FA, and life was good.

Then recently, in a wave of nostalgia with friends, I fired up Battlefield 3. Imagine my shock when I find out that every server I connect to instantly kicks me. Reading through the logs on a server I had control over, I come to find out my GUID is¬†on the Punkbuster master ban list, and was added to it in early 2014! This ban extends to not only BF3, but *ANY* game that leverage Punkbuster who’s authentication methods stem from Origin. (IE all Dice games).

I have a string a documentation proving my account was compromised, Origin willingly acknowledges this issue. Punkbuster? Not a care is given to this. If one tries to appeal to Origin, they response is always the same “We have no control or authority over Punkbuster and all concerns on that need to be addressed to Even Balance.” On the Punkbuster side, any appeals¬†to Even¬†Balance fall on deaf ears. “We have no ownership over account security for Origin. Our only concern is that your GUID was linked to cheating, and placed on the master ban list. All decisions are final and irreversible.”

DICE_EA_Logo_Black

So, this brings me to the point of this post: EA/Origin, by way of DICE, has turned over the keys to the kingdom for account bans for a subset of games to Punkbuster, a community controlled system. This third party, with no accountability or liability to EA, has the ability to say “you are hereby banned from all Origin games using PB” (which is this case is all DICE titles), because We Say So.

How is it, that a multi-million dollar publisher thinks it is a player-friendly, pro-consumer policy to say “you know what, let’s allow this other company whom we have no influence over to unilaterally ban our players, with no avenue for recourse by them or even ourselves.”¬†Seriously. How does this make sense to anyone? If Battlefield 1 decides to ship with Punkbuster support, my account will be locked out of playing in any public online servers because of an account compromise that was beyond my control. Why on earth would I pay money for that experience?

Cheating is bad. It needs to be guarded against… but why can’t Dice/EA/Origin, make an in-house solution instead? One that they can have oversight on? Blizzard does it. Valve does it. Riot does it. Tons of studios do it. You are telling me EA thinks this is a better plan? Please.

Edit – 5/17/16 @ 10:23am:¬†Curiously enough, when I woke up this morning I discovered my GUID was no longer on the master ban list. How it was removed I do not know, and I while I am grateful I can play again, it doesn’t really change how I feel about this situation, or the intent behind my post. Still, I¬†am grateful to whomever looked me up and removed it.