Friday, September 25, 2015

[Eon Altar] Bottled Awesome--Reconnecting Mobile Devices to the Game

One of the things that makes Eon Altar unique is we use mobile devices--phones and tablets--as controllers to the primary game. Of course, this kind of connectivity means that some state needs to be communicated to the mobile devices as you play. But even more concerning is how to get all that data back to the mobile device when it crashes, or you answer a text and iOS kills the app due to memory pressure, or your battery runs out.

Flying Helmet Games playing a test build on their phones.
Interestingly enough, we went for a very long time without a robust reconnect feature, which actually spoke pretty highly of the quality of our controller builds, but now that we have one, I definitely regret leaving it as long as we did.


The First Solution

The hardest part about reconnecting, of course, is what I hinted to in the first paragraph: ensuring your state on the controller is correct. The easiest way of doing this, without having to think of any special logic is to copy/paste the state from the main game onto the controller over the network. In programmer terms, serialize the state, and deserialize it on the other end. Given our time/budget constraints, we thought this was a pretty good idea.

However, once we implemented it, it turned out to be terrible in practice. The performance was abysmal, primarily because of how we organize our data on the main game. When we serialized the state, we also ended up picking up character models, animations, textures, and so on. And not just for your character, but for all player characters. We had reconnect times upwards of 8 minutes per controller when playing with 4 players. That was...not so hot.

We left the problem for a couple months, though, because we had more pressing needs in keeping the designers unblocked (which is another interesting discussion entirely). We'd lived that long without reconnect, what was a few more months?

Once we got back around to it, it was also clear from a design perspective that what we were doing wasn't going to hack it. Sending all of that data to the controllers was far too much on 512 MB devices. We were also using the same code to save our game to a file, and that was problematic due to the fact that patching the character or level data after the fact was pretty well impossible, not to mention save files bordering on 1GB+ of data.


The Final Solution

So serializing the state naively wasn't going to work, which meant that we were going to have to dig in and actually reason about what data we needed to send across (or save to disk!). Turns out it wasn't too bad at all.

Thanks to Unity's RPC framework guaranteeing delivery and order, it "simply" became a matter of writing a new network model on top of Unity's to decouple how they instantiated objects over a network, and then reinstantiate the player actor we needed on the controller. Since we knew what we started with baseline, it then became an exercise in determining how that state changed from the baseline. What abilities do you have unlocked? Gear and recipes? Treasure? Renown? Current attributes and status effects? Skills? Lore? Are we in the middle of a dialogue?

It was slightly more complex than that in the end, because we have a bunch of other synchronized tracking variables that had to be transferred as well, but most of our "state" in the previous paragraph are just prefab objects, so the majority of controller reconnect rehydration is telling the controller, "Hey, go instantiate this actor, and then go grab prefabs A, B, and C for lore, and unlock skills 1, 2, and 6. Also, update these synchronized variables." It's simple, and quite robust.

Unity Project Setup
What also helps us here is the fact that our Controller app and our main game executable actually share resources and code. Unity is (mostly) smart enough to only pull in assets based on what scenes we include, so in the picture above, when we build the game executable, Unity pulls in a bunch of data to spit out for the build, and if we build the controller app, same deal, unity pulls in the correct data.

I say mostly because the Resources folder is special in Unity. We had to do some...shenanigans around Resources folders to get this system to work, and it's not quite perfect. but in terms of reconnect, it's great because when reconnecting, as long as the builds are compatible, I can be guaranteed that the correct data will be there on the controller. And if not, oh well. Think of it as the equivalent of updating tooltips in WoW. The backend server data might change, but the tooltips are local client data, and may get out of date. A patch will fix that right up later.

There are definite cons to this setup as well, like requiring patching the controllers more often, and the Resources folder shenanigans means sometimes extraneous data gets pulled into the controller build. But it's also super fast from a CPU time and networking perspective. We're not serializing tonnes of data to send over the (local) wire, so the reconnect now takes about 1 - 3 seconds rather than 8 minutes. Actually, the grand majority of the reconnect time is actually just loading the controller UI textures, the same as a normal load rather than anything reconnect specific.


Bottled Awesome

The best part about the latest version of reconnect? It's ultra solid. Our lead designer told me it was "bottled awesome". Pretty much any controller app bug we get can be worked around by killing the controller app and reconnecting, which has been an immense boon now that we're in Early Access. 

We haven't seen many bugs come out of it either, which makes me pretty proud of the quality of the feature as a whole, too. The lack of bugs isn't for a lack of testing, either. We use reconnect all the time. I actually really regret not having a robust reconnect completed much earlier in the project. Mind you, part of why it's so robust is probably because it was done in a single 2-week period after most of the game was already complete. It's "easy" to build something like this and get it right in a single go rather than finish something nascent and update it as you add other systems.

We probably spent a good 5 - 6 weeks at a minimum between two senior engineers to get this feature correct. When we're talking about only having around 36 engineering months across the whole team, eating up 3% of total engineering project time on a single feature is pretty significant. Granted, it could have been a lot more, but when you look at the list of features as a whole, it's a bit scary how much of our schedule this took. We definitely underestimated as a team when we made the schedule.

Overall, this is a pretty interesting look at how many things are interconnected: reconnect and save rely on the same code; reconnect relies partly on how our builds are generated; reconnect and other systems such as dialogue, skills, powers, and so on rely on each other. Not to mention how the feature affects the technical requirements, such as build size, performance, and RAM usage. A bug in reconnect can cause display bugs on the controller, or bugs where the controller and the game get out of sync which would likely stall the game.

I'm glad it's done and it works like a charm, and it was a super interesting feature to work on. We've a few more rough edges to iron out around the reconnect experience, but otherwise, it's been great!
#EonAltar, #GameDevelopment, #IndieDev

Thursday, September 17, 2015

[WoW] The Show Must Go On -- Agile Development vs. Content Pipelines vs. Social Media

Alternative Chat has an interesting blog post where she talks about the tension between what some devs call "open development", and the fact that Blizzard is basically the Titanic as far as steering the product goes.

For those not in the know, #RaveholdtOrRiot is a hashtag used by the WoW Rogue community who're upset that the Rogue Class Hall was said to be in the sewers of Dalaran. See, Ravenholdt was the defacto Rogue central in Vanilla, and that was reinforced by the legendary daggers quest at the end of Cataclysm largely taking place in and around Ravenholdt itself. When you have Blizzard stating that Paladins are going to get Light's Hope Chapel in the Plaguelands, and Shaman are going to get a cavern system by the Maelstrom, of course Rogues will want something that's tethered in their history as a class, and not in the basement of the floating Mage city.


 
Timelines

Of course, as Alt points out--and Blizzard has confirmed multiple times--Legion has been in development for well over a year now already. Since before Warlords was even released. And despite Blizzard's insistence for folks to wait for the full reveal, as the tweet above indicates, waiting often means it's too late. By the time it's polished and ready for reveal, there's no going back. In fact, it's honestly probably already too late today.

I hinted at this a year and a half ago with my post Should Monolithic Expansions Be Obsoleted?. There's just way too much pipeline in a giant expansion in a giant game like WoW to switch directions. A timeline might actually look similar to this:
  • 2012 -- Figure out if Warlords or Legion should come next, begin planning Warlords
  • Sep. 2012 -- Mists Released
  • 2012 - 2013 -- Heavy work on Warlords, Begin Planning Legion
  • Nov. 2013 -- Warlords announced
  • 2014 -- Heavy work on Legion, Presumably planning next expac
  • Nov. 2014 -- Warlords released
  • Jul. 2015 -- Legion announced
The groundwork for Legion started 3 years ago, probably slightly more. Based on my experiences as a game developer and as a software engineer, plus the data they gave us via the linked interview above, the timeline for Legion might look something like:

High Level Planning (2012)
  • Basic Concept
  • Basic Story/Continent/Raison d'ĂȘtre, Concept Art
  • ~1% of staff

Mid-Level Planning (2012 - 2013)
  • Zone flow, dungeon concepts, story flow
  • Feature planning (ie: artifact weapons, class halls, PvP talents)
  • Concept art for zones/dungeon/major story scenes
  • Engineers start prototyping features
  • Ramp to ~25% of staff by next phase

Low-Level Planning, Level Design, Feature Coding (Late 2013 - 2014)
  • Start fleshing out individual zone design, quest hubs
  • Fleshing out dungeon/raid designs
  • Blocking out the above in rough
  • Start coding features and new tech for server/client
  • Artists start turning concept art into in-game assets
  • Ramp to ~50% of staff by next phase

Full Production (2014 - 2015)
  • Zones get filled (interview linked above states they had 2 zones in production by 2014 Gamescom) with terrain, art assets, quests, quest hubs
  • Features get design iteration with engineers
  • Dungeons get similar treatment to zones
  • Classes get design attention for new abilities/talents, may need engineering help
  • Artists churning out artworks/music/sound effects for design to use/by design request
  • Probably ~75% of staff

Beta Release (Late 2015)
  • Most zones, class halls, artifact weapons will likely be mostly done, aside from certain design tweaks.
  • Dungeons and raids may be mostly complete, but missing balance passes, or some encounters, loot, etc.
  • Ramping down to ~25% of staff again.
  • Artists and engineers are likely already working near full time on next expansion by this point, if not a bit before, leaving mostly designers (quest, encounter, class, systems)
I'm probably off a little bit between phases, and likely pretty off with the staff percentages but eh, I'm more interested in magnitudes than actual percentages. Also keep in mind their production phase was probably side-lined by doubling their staff in the 2013 - 2014 era.

I don't know precisely how Blizzard pipelines their work, but it most definitely is pipelined. Interestingly, graphics cards and CPUs may provide a good analogy to this. The deeper your pipeline, the more work you can parallelize. But if you have to do a context switch? Dumping the entirely of your multiple parallel pipelines sucks hardcore.


Agile Development and Content-Heavy Games

So to get more content out faster, Blizzard has probably built a very deep pipeline. They'd have to, really. There's only so much in a single expansion you can parallelize since you'd have designers waiting on engineers, artists waiting on designers, artists waiting on engineers, engineers waiting on designers, and so on. Having a deep pipeline means less downtime due to waiting on others; you're almost always busy, which is good from a financial and throughput perspective. But having a deep pipeline also means you're very much not agile.

That being said, consumers generally don't care about the why something is not responsive, even if that something is as huge as World of Warcraft. Consumers see an issue (lack of flying, rogue class hall being in the "wrong" place), and they speak up. If Blizzard can't or won't change in response to that--whether it's for practicality of development reasons, or because they want to stick to their guns--then as Alternative Chat suggests, perhaps they shouldn't be interacting with the community on these issues.

Maybe discretion is the better part of valour here, and despite the fact that they listened to the community and changed their mind on flight--something they allowed themselves to do because they developed Warlords with the possibility of flight in mind in the first place and probably pulled a bunch of QA and designers from Legion to pull it off--a class hall may have a bunch of art assets, quests, level design, and the like already done likely a year or more in advance is not able to be changed without throwing out a bunch of work and starting from near-scratch. It's like Karabor vs. Stormshield in Warlords all over again, really.

Using my game, Eon Altar, as an example, having to radically redesign one of our stages is probably outside our current capabilities as a studio. Tweaks to improve quest flow, or encounter design, sure. But re-creating an entire chunk of the level? That'd take our current staff an immense amount of time--time that would be taken from other features/levels/encounters. Time we literally cannot afford. And we have maybe at most 1/30th of the raw content WoW throws into an expansion.

Agile development can be powerful, especially for programming. But for heavy content games, I'm not sure agile is really possible at the content level, at least not for monolithic expansions the way Blizzard does them. For one, you'd think the film and television industry would've figured something out on that by now, and they haven't really in nearly 100 years, and they're a decent analogue to the content portion of game development. For a small team, with a game that's more features than content, like a match-3 game, or Geometry Wars? Yeah, agile works well to change things up really fast. But WoW? Not so much. Even FFXIV's content pipeline is probably pretty deep. It'd have to be to put out patches like clockwork the way they do.


Social Media

Blizzard has a choice to make here: try to make agile work for content and keep responding to content-based feedback as if it matters for the present, rather than as data points for future content; or just...stop responding to that kind of feedback, because right now the halfway point they're hitting feels more frustrating than helpful. People think they have the developers' collective ear, and then folks are told to sit tight, and the devs are clearly frustrated with consumers banging on their window since said consumers don't have the full picture yet (which, to be fair, is Blizzard's fault for giving only a piece of the puzzle).

Something you learn in music theory very quickly is that silence can say as much as any note. Blizzard may need to learn to exercise that when dealing with feedback that cannot be actionable, rather than being defensive. Even if it hurts to see people upset about your work.
#WoW, #GameDevelopment

Monday, September 14, 2015

Party Progression Problems

Recently I've been playing some Diablo III, and it was a lot of fun for a bit of time. A friend and I played together a fair bit, and running some rifts/bounties was a good time, especially once we figured we could bump up the difficulty a bit. Playing with friends usually makes the game better.

I had the unhappy event of having to turn a different friend down who wanted to play with me though. See, my first friend and I were about Paragon level 20, and just peeking over the Torment II boundary. This 2nd friend was Paragon level 580, and trounced Torment VI+ with ease. We literally could not keep up with him. He ran by monsters, and they exploded, and his movement boosts put him well out of our reach. The game devolved into us chasing him around and picking up leavings, which frankly wasn't fun, at all.

I don't blame the 2nd friend at all, and he understood when I asked him to leave that I want to play the game--I'm not interested in power leveling at all. I like to play it on my own terms, which includes friends who are at a similar point in the power curve.


An approximation of Diablo III's power curve.
Diablo III suffers from this issue pretty massively because just how fast power goes up, especially once you're at end-game levels. Honestly, if I had just bit the bullet and let myself be power-leveled, I'm sure I could've gotten close enough to 2nd friend's power level in a few hours, but again, that's not fun. That's a chore.

Interestingly enough, most MMOs suffer from this issue as well. WoW and FFXIV are a couple of the more active games that exhibit this behaviour, but in a sense even a game like Minecraft has this problem. One of my friends joined my Minecraft server, and he's a helper, but I already had everything I ever needed, so him helping was basically useless. He showed up, and we basically had tamed the wilderness, even providing a train stop for his base.


Possible Solutions?

WoW solves it to an extent by basically resetting progression every raid tier, let alone every expansion. You get catch-up mechanics (Timeless Isle, Tanaan Jungle, Isle of Thunder, End of Time Cataclysm heroic 5-mans) to bring you to the power level you need to perform in current content.

This has the problem that it invalidates older content, and has the player base playing only the most recent content with any sort of ardor.


Another option some MMOs use--Guild Wars 2 and FFXIV come to mind--is mentoring of sorts. They drop your power level down to the one that's appropriate for lower level content.

Mentoring works quite well in FFXIV in my experience, though I find losing half my keybinds when I enter a dungeon that's 40 levels below mine really frustrating. Or having to keep Stone I on my keybinds because Stone II might not be available due to the level down system. Guild Wars 2 felt worse in my opinion. Everything you did leveled you down, to the point where it didn't really feel like levels were worth anything. What's the point of having levels at all if you never get to use that power? There are better gating mechanisms than using a number to prevent players from skipping content.


Or as Diablo III shows, you can just have players start over. Seasons performs this admirably--and as a bonus aside, I really enjoy the new task list they have for Seasons so it's not just you wandering aimlessly. Minecraft and Terraria also have this option, where starting over in a new world is easy, and often fun.

For a persistent MMO, starting over isn't a great option, because as mentioned above most of the progression in the game is invalidated by the the resets every tier, and the population doesn't exist to support the game at lower tiers of play. And even games that support starting over well, as 2nd Friend showed, you can still easily find a gulf in your powers that is too large to be bridged short of asking the other person to stop playing while you spend hours to catch up.


Others?

Those are three techniques I could think of off-hand to allow parties to play together without ruining the others' experiences because of a gross power disparity. Are there others out there? Or is this a mostly intractable problem with RPG progression mechanics that we'll only mitigate, but never overcome? I don't really believe it's impossible to overcome, and mentoring comes close to a good solution, but with a few kinks--to the point that WoW has started using it with Timewalking dungeons to great effect as well.

But overall, I wish there was something because it really sucks having to tell your friend, "Sorry, I don't want to play with you."
#GameDesign, #DiabloIII, #Progression

Wednesday, September 9, 2015

[Eon Altar] Post-PAX, Post-Release, and Developer Empathy

I promise that soon I'll talk about other games (I've been playing some Diablo III and Armello in my spare time), but I did want to touch on how our PAX weekend ended up.


PAX and Early Access Release

Four days is a long time to be standing and talking with folks. I haven't done that much hawking my wares at people since I worked retail back in University like a decade ago. While I was extremely excited all weekend, by day 3 I was pretty strung out, as the Aggrochat podcast mentioned. Day 4 I ended up doing an interview on video with some lovely folks, and the only thing I remember from it is that I'm pretty sure I came off as a little manic and under slept. I don't think it's up yet for perusal, though.

I'm in the upper-left here, demoing our build. This was a relatively quiet period.
I'll be honest, when my coworkers suggested that we release the game on Early Access Steam just before PAX Prime, I thought they were nuts. We're all at PAX, who's going to be on support if things explode in a bad way? Thankfully, the launch went quite smoothly, excepting a crazy bug I had in my server discovery code. The good news is thanks partly to Fierydemise, I figured it out quite quickly and had a workaround up for folks, and then we patched it on Android immediately. Still waiting for Apple to say 'yes' on the build on iOS though.

We ended up playing support in the evening when we weren't on the floor, and it worked out pretty well. Being able to say to folks at PAX that "hey, we're on Early Access right now for $5 US," was a pretty decent draw for folks, so I think it was worth it in the end, even if I was more than a bit frazzled from the attention split by the end of the weekend. Add to that the emergency patch for the IP Address issues the Tuesday after PAX.

Slightly different angle here, getting more of the convention in frame.
I didn't really get to enjoy much of PAX at all as a con-goer, though. I spent 90% of my time at our booth. I got like 45 minutes to wander the floor and get a quick look at the other indie games (which there were some pretty sweet ones there). I also did a lunch with a bunch of other blogger friends from Twitter, some of who are on the aforementioned Aggrochat podcast. And I ended up taking an evening to myself and hung out with Fierydemise, which was a total blast just talking about various things, from eSports to philosophy to programming.


Developer Empathy

If folks follow me on Twitter, or read my blog, you'll know that I'm usually a strong developer advocate. Communication, bugs, game design, etc. I find myself defending devs more often than loud consumers, but now that I'm in the hot seat, I feel I can defend both sides a bit better.

Eon Altar is basically multi-platform in a way nobody else is. You need to have iOS/Android mobile devices to play the PC game. It's a bit weird, and trying to message that hasn't been easy. We've certainly goofed on the message before.

So when we started getting forum posts from people angry about our game requirements, I suddenly got why WoW devs often mention that level of passion might be a good thing, somewhat. These are folks who want to play our game, which is great, but are frustrated that they can't because they don't have the prerequisite equipment, which isn't so great. To be fair, one could post a game that requires the Oculus Rift and get the same sort of response, but the mobile/multiple screen thing really does throw folks for a loop. Again, comes back to maybe we're not communicating why we use mobile devices well enough.

Once I figured out that, it totally changed how I approached people at PAX. I'd very quickly dive in to not only what made our game unique, but why we used multiple screens. I found that turned around the interest factor significantly on the PAX floor, even for folks who don't normally like RPGs or games like D&D.


Active Development

We're back to fixing up the game, and incorporating some feedback we got from PAX itself, as well as folks who've written about or played the game already in Open Access. The feedback has been absolutely fantastic. Some things we need to improve, and a few places where we've nailed the experience. The next month promises to be busy, but I can say that manning the booth at PAX, and doing Early Access on Steam? Both immensely worth it already. #EonAltar, #PAXPrime, #EarlyAccess

Friday, August 28, 2015

[Eon Altar] We're Live! Early Access and PAX Prime

Last post I promised I'd let folks know when we were live, and well, we're live! You can check out Eon Altar on Steam Early Access here: http://store.steampowered.com/app/382050

You can grab the controller apps on iOS and Google Play. Just make sure your mobile devices are on the same network as your PC for Steam, and you should be off to the races!

Booth Under Construction
Our booth has been super busy, and we're loving showing off our game! I admit, our game is a bit hard to describe sometimes. But when people have gotten their hands on the game and played through it a bit, you can see their faces light up as the whole thing just clicks. It's been an absolutely amazing experience watching folks play and have fun with it.

 I think this Steam review actually says it really well:
The shining point here is how much the game feels like a computer aided D&d session. The second screens also pop up with secret quests, individual responses and reactions just for that character. Just like a GM passed you a private note. Player dialogue is not voiced, but pops up ONLY on your screen and you are expected to say it in your best full-on Renn Fair voice. This is totally stupid and totally awesome, especially when the dialogue goes all high fantasy cliche.
Watching players actually perform voices was fantastic. Totally not required, not everybody was that into it, but watching some folks really get into it was deeply satisfying. So many laughs and smiles.

Nicole Tanner of Pixelkin stopped by and played our game for a bit, and had this to say about Eon Altar:
Since I’ve been playing games for more than 30 years, I’m always delighted when I see a game that’s innovative and truly unique...I really can’t overstate how impressed I was with this game. I encourage everyone to check it out.
I admit, the rush is almost overwhelming. I'm pretty sure I was running solely on adrenaline by the end of the day, but that kind of fantastic feedback is beyond what I personally expected. Not because I don't believe in our game, I just...it's so hard to be objective when you're so close to it. It's too easy to see even the most minute "warts" and be really hard on yourself as a content creator. That's not to say we don't have work to do--we do, and a fair bit of it--but getting the game out there has been quite affirming so far. Absolutely nothing like working on application software. Nobody got this excited about OneDrive and Office. Well, almost nobody.


We're on the floor for the rest of PAX still, so if you're around, come by and give the game a try. We're happy to answer questions, let folks give it a whirl, and hear feedback--both the good and what needs improvement. Same with our Early Access build. We want to hear what folks really like, and what needs more work, tweaking, or what just isn't working for you. You can find our primary forums here, but we are taking a gander at the Steam discussions, too.

We need to get some more photos of folks playing from tomorrow. I'll be at the booth tomorrow and Monday (I'm personally taking Sunday to see a bit of the show and visit some friends), but we're so stoked to be there, and be (somewhat) released!
#EonAltar, #PAXPrime, #EarlyAccess

Monday, August 24, 2015

[Eon Altar] PAX Prime and Steam Early Access, Soon™



The past couple weeks have been absolutely insane as we've been trying to get stuff "done" and aligned for this week. With our handset builds out the door to Apple and Android, and our Steam build in review, all we can do now is generally wait as we prep our showing at PAX Prime.

<RonPaulItsHappening.gif/>
We don't have an absolute date at the moment, and until we know we do have a date, we don't want to make liars out of ourselves, but ideally we'll have something up on Steam for PAX Prime. If we do, and you bring your phone with our (free) handset app already loaded on it to play with us, we'll give you an exclusive pin.

But even if you don't bring your phone loaded with the handset app, you'll be able to play a bit of our game at PAX itself, as we're on the expo hall floor! I'll be working at PAX Prime for the first time ever, and it's gonna be so much fun. And so tiring and long, no doubt. I personally won't be on the floor every day, I think we have like 8 people and we only really want 4 employees in the booth at maximum at any given time.


We are choosing to go Early Access to begin with. My personal feelings on Early Access are...complex. I can't say I'm a big fan of purchasing games in Early Access (though I've been known to do it on occasion), but that's mostly because I prefer to play complete products myself. I play enough buggy software for my job, thanks :P But, on the other hand, as a tiny studio we could use the additional gameplay/balance/fun feedback, testing, and so on that Early Access can provide us, and it does give folks the opportunity to get in and let us know what works and what doesn't. Who knows, maybe one of my blog readers will have a massive impact on the final product!

It also allows us to soft launch, so to speak. With having to coordinate Steam, Android, and iOS, our patching/engineering process is likely going to have a few bugs unto itself, let alone the game. Having to be really careful about how we roll out the handsets and the central game, as well as engineering ways to have compatibility across devices that aren't necessarily up to date is going to be a difficult process. I personally have experience doing this sort of updating thanks to my time at Microsoft Office (because compatibility is king for Enterprise software), but still, I imagine we will end up making at least one mistake. Best to get that figured out before we release for real.

Still, I cannot believe we're already putting our game out to the world. It is exciting and terrifying simultaneously. Will people like it? Will they hate it? Will we get love letters and hate mail? I really hope to see folks who are going to PAX Prime drop by our booth and give the game a shot. And to just say hi! When I figure out what days I'm on I'll pop a schedule here. But looking forward to it!

#EonAltar, #PAXPrime, #EarlyAccess

Saturday, August 22, 2015

[FFXIV] Extrapolating the Subscriber Count

Recently Square Enix released their yearly Eorzea Census for 2015 and it has some really interesting numbers. They've also talked about how they have over 5 million registered accounts now. Syncaine believes this directly correlates to active subscribers, but at first blush I'd say that assumption is unsubstantiated hogwash.

However, thinking on it further, I'm not actually completely sure off-hand. So between the census and some other "registered accounts" numbers I figured I'd perform some numerical analysis to see if he's really off-base or not.

First of all, let's talk about the numbers Square Enix has released. We know they were relatively flat at 2M accounts registered from April 2014 to 2.5M accounts at December 2014. Then they jumped like crazy, reaching 4M nearly 3 months later in February 2015. Finally, they've hit over 5M in August 2015.



I still think it's fallacious to directly correlate accounts registered with active subscriptions, however, if we keep in mind FFXIV is still early in its lifecycle, and the meteoric rise in accounts created relative to the previous year, I imagine that slightly more than doubling their registered accounts in a year probably means that they've more than doubled their active subscribers. For example, if you're not generating new accounts, you're extremely likely to be losing active subscribers over time. Natural attrition as folks decide they have played enough and drop their subscription. By that logic, it's likely that the more recently someone has registered an account, the more likely it is that someone is still subscribed.

That's not a perfect assumption--there are plenty of counter-examples--but it would support Syncaine's theory to a certain extent. So why don't we take a look at the Eorzea Census 2015 data under the assumption that registered accounts is equivalent to active subscribers and see if it makes sense.

Side note: I'm going to work under the assumption of one character per account. This isn't strictly true, but given FFXIV's ability to be whatever you like on a single character, removing the necessity for alts that other games generally have, I think this is an okay assumption to make to give us an upper bound of subscriber number estimates.


Total Playing Hours



The first metric I want to look at is total playing hours of all characters. Nearly 97B hours of play time since the inception of the game. Thankfully, they give us the total playtime a year prior, which reduces this number to just under 96B hours. Seriously, like two orders of magnitude difference, which is actually pretty nuts.

It's also interesting, because the prior year their registered accounts were relatively flat from launch through August 2014. There's no way those 2M registered accounts only accounted for 823M play hours if 2.5 times that number of registered accounts were actively playing for 118x that amount by the end of the next year. This by itself would clearly show that registered accounts does not equal active accounts.

96B hours played is about 8B a month, or 266.66M a day. That would require 11M characters playing 24H a day for the full year. There is literally no way that is correct. Square Enix must have misplaced a decimal point here because that would require every registered account to have 2 characters logged in constantly.

If we assume they did misplace a decimal point, that brings us to 1.1M characters playing 24/7, or 3.3M characters playing 8 hours a day. Or 6.6M playing 4 hours a day. The 6.6M is clearly impossible (as they only have 5M registered accounts), so either Square Enix has a really impressively addicted fanbase compared to the previous year, or something is seriously wrong with the scripts harvesting their numbers. These values don't make sense.

Last year's values make sense though, because 823M hours played would mean about 0.56M characters playing 4 hours a day, and that jives with their suggestion that they had over half a million players logging in daily. A number that would make far more sense for 2015 would be in the ballpark of 5.2B total hours played, as that would mean 3M character logging in daily for 4 hours a day plus the 823M from the previous year.

This just doesn't add up. The data is clearly flawed.


Dungeon and Raid Runs



217,817 characters have entered Alexander: Gordias, the LFR-esque version of the latest raid. If Square Enix truly had 5M active subscribers, this number would be an abysmal failure. 4.35% of the population, with 0.7% ever setting foot in the Savage version. For a raid that's been out for a month and a half, that's a pretty small number.

If we look at stats for WoW's Blackrock Foundry raid nearly 2 months in at the time, we're talking about 36% of players who completed the first wing on any difficulty.

Granted, FFXIV moves a lot slower than WoW does, and there are plenty of folks who aren't yet max level, even 2 months in, but if we use that value as a basis then we're looking at a lower bound of 605,000 subscribers.



Dungeons run similarly shows a low number for potential subscribers unless an extremely significant portion of the population has no combat jobs above 50 period. Sohm Al is required for the main story past 54, and yet, it's only been attempted 450,000 times. This means, at a maximum, ~450,000 characters are through that section of the story. The actual number is probably quite a bit lower than that as multiple attempts would be made while leveling, especially through the duty roulette.

But again, FFXIV is a slower game, and I know a lot of folks who came in for the expansion and hadn't finished the 2.55 main story yet, so it's quite possible this number is low compared to the general populace of active subscribers. But even if I'm generous and say, only 25% of players have a combat job at over level 54, that's still only an upper bound of 1.8M active subscribers.

Edit: It's possible that the dungeon attempts isn't per character, but per instance spun up, which would basically multiply that 450k number by 4, bringing us to 1.8M characters through that section of the story maximum. That doesn't seem unreasonable. In fact, that kind of makes more sense given the 217k character number for entering Alexander: Gordias. With 1.4M runs of Neverreap plus Fractal Continuum combined for enough Tomestones of Law to hit the 170 ilvl requirement for Alexander, that would be under 7 runs per character if the dungeon runs were per character, which isn't quite enough to hit 170 if memory serves. That would bring the Expert Roulette dungeons to 5.6M or so runs on a character basis, which seems to be a little more reasonable as it'll be more than the Alexander populace which probably does make up more than half of those runs.

Given that, I doubt only 25% of the populace is over 54, so if we bump that to 50% that would mean an upper bound of 3.6M active subscribers.


Putting it Together

My guess for the active subscriber base is somewhere between 0.6M and 1.8M, probably closer to 1M in my opinion. If the actual number was 1M, that would mean about 21.7% of the populace have seen Alexander: Gordias, but still only puts a maximum of 45% of the populace higher than level 54 on one combat job. There's no way their total played time is remotely accurate. Frankly, I really don't think "registered accounts" is a good correlation to active subscriptions.  

Edit: Given my edit above, the guess expands to between 0.6M and 3.6M, but frankly the lower bound is bound to be much higher than 0.6M given the Expert roulette dungeon runs. If the dungeon runs is per instance rather than per character, I'd double my estimate to 2M.

#FFXIV, #Statistics