New Adventures

I’ve been writing this blog (infrequently and inconsistently) for many years now. I rarely (perhaps never) write about my actual work – not due to disinterest, but rather I’m weary of over-sharing. This post is an exception.

A personal career announcement: after 8 years at Riot Games in Los Angeles and Hong Kong, I’ve recently taken a role at the fledgling Supercell Shanghai dev studio. Below I’ll try to recap my experience at Riot as well as look ahead at the new role.

“Thanks Rito”

The Rito meme aside, I do sincerely owe a ton of gratitude to Riot for the various opportunities over these 8 years. Bear with me (or just skip ahead) as I take a long trip down memory lane…

Where it all begun

The story starts around March 2011 – GDC week. I was in my last semester at Berkeley’s MBA program. As anyone with some awareness of MBA programs would know, by March / April, all of the “best” jobs – the Facebook/Apple/Amazon/Google jobs, the consulting & banking jobs – had already finished their formal campus recruiting. The students still searching jobs were either going for unconventional careers (non-profit, startups, entrepreneurship), or just have been quite unlucky/unsuccessful and are probably adjusting their job search strategies.

In my case, I had firmly rejected the idea of going back to consulting.1 I was also unsuccessful and frankly not passionate/prepared enough for my Google / Amazon interviews. I loved Apple’s products but didn’t see a role that fit me. I had also decided to turn down a potential return offer to VMWare, where I spent the summer – I had a extremely supportive boss, but I knew in my heart that enterprise software wasn’t where I wanted to be.

The only area where I seemed to have some good traction was video-games. Zynga was a super-hot company at that time, and was aggressively recruiting MBA students.2 The interview process went fairly smoothly, until the onsite, where I felt I flunked one of the math-heavy analytical interviews (it involved a lot of probabilities / statistics). But this process gave me a lot of confidence that this was a sector that I was passionate about and could be successful in.

Around this time, another serendipitous thing happened, and that was my room-mate Jon started to play this janky Dota-like game (it was League of Legends). I was initially aghast at the art style and graphics; I hadn’t played Dota since 2006, but it was still quite burnt into my memory (especially since I almost failed to graduate college thanks to some Dota binging).

This is all a very long setup to say, when I saw a last minute campus meet and greet event hosted by Riot Games, I almost decided to skip it for an afternoon nap. (I’m very thankful I didn’t.)

The event was hosted by Tom Cadwell, who still leads design at Riot today, and Sean Bender (who went on to co-found Phoenix Labs). It was a very casual chat, with about a dozen students in attendance. They talked about the early trajectory of League; they were also specifically interested in people with backgrounds from Asian markets given their global expansion. That’s me!

From there I was invited to Riot’s GDC party that night, where I spoke with a few more Rioters. Then a whirlwind of interviews, beginning in that GDC week in San Francisco, ending a few weeks later in a half day in Culver City. During the onsite – I had already left the building, before getting called back for an additional round with one of the co-founders. 3 days later I received an offer call.

As an aside – I was also applying to, and interviewing with other games companies. I found more luck with startups. The traditional large companies, e.g. Blizzard and Perfect World, which I remember having some conversations with at their GDC booths, generally lost interest once they heard I hadn’t worked in the industry before.

2011-2014: crazy global expansion

My first role at Riot was as an International Publishing Manager. To be honest, roles at Riot were quite dynamic back then, and I think the key people involved in hiring me also debated a bit about whether I should report to Product or International Publishing.

I didn’t mind either way. My initial assessment was this job was primarily about onboarding myself into the industry, and learning as much as possible. I had generally low expectations of high financial returns at Riot, given the company had just a few months ago had a major transaction with Tencent (which became the majority shareholder).

The first 6 months were a blur. I just remember everything was on fire, all the time – our EU server was overloaded, and our only feasible solution, given the tech we had at the time, was to do a messy server split. Meanwhile, in my part of the org, I was trying to help our regional partners in Taiwan set up their servers and launch the game. The problem was, the thin team supporting these infra buildouts were constantly being pulled in several directions, with for example Korea also eagerly prepping for launch.

The Taiwan launch was a big success – too successful, in fact, as we also quickly overloaded our servers. A peculiar downward spiral in degraded service occurred – to avoid long waits in queues in the evening peak hours, players would log on in the afternoon; during the evening rush hour (where there was a 2+ hour queue), many players that already logged on were idling (went to dinner), leading to long matchmaking times and poor game experience.

It also didn’t help that our deployment tech was extremely shoddy at the time. Deploys, when they went bad, often went over a dozen hours. I witnessed a few of these all-nighters. As I’m not an engineer, my only contribution was making instant cup noodles at 5am to try to comfort the poor engineer still triaging a problem.

In hindsight, what is still amazing is how Riot was able to live through all that. Fundamentally it speaks to the power of the product and the uniqueness of the games-as-a-service model back then – players put up with a lot of really bad instability, and we got better at deploys (painfully slowly, it felt like), and our server stability and capacity grew and grew. In contrast, as many games are operated as live services now, and there are many teams capable of running them, players have more options and thus the service quality demanded is higher.

Around late 2012/early 2013, having helped grow the International Publishing team a little (and the team supported the launch of a few more Southeast Asian markets), I made a lateral career move to a R&D project, nominally to help plan out this product’s international launch plan. I say nominally, as I was much more interested in getting closer to core game development itself, and the main angle I positioned myself was a passion and interest in mobile. I was that guy on the project that was always preaching about the mobile platform.

2014 – 2016 Hong Kong excursion

Late 2013, I got approached for a unique opportunity: move to Hong Kong to help the company jump-start its first office serving China. China had already become Riot’s biggest market by player-base, thanks to the strong publishing of Tencent; however, we felt there were many low hanging fruits to improve and localize the product experience, and we also wanted to strengthen our direct engagement with this massive community.

The choice of Hong Kong as a location was a peculiar compromise. In hindsight I feel quite mixed about this choice. The main rationale were Hong Kong was business friendly (for setting up a foreign-owned entity), geographically closer to our Tencent partners in Shenzhen, and more convenient for western expats. (The main alternative I believe was Shanghai.) However, the critical drawbacks for Hong Kong in hindsight were: very high cost of living, no local game dev industry (tough to hire), and culturally disconnected from Mainland China.

On the career side, this was another lateral move. I officially transitioned into the product management department (“production discipline” as it is called at Riot), and worked on local enhancement features on top of the main League of Legends game.

The big project I worked on was a PC-cafe value-added-services feature, where participating PC-cafes would pay Riot (based on time consumption) for additional content unlocked in League on its machines (for example, all champions unlocked). This was in effect a port of the prevalent business model in Korea, where a substantial portion of a PC game’s revenue could come from PC-bangs instead of directly from the consumer.

This was a challenging project, not really for the tech (by the end the implementation was quite bare-bones), but for the complicated relationships and parties involved, as well as the customer education needed. We were working with multiple teams within Tencent, which meant agendas needed to be aligned. Tencent, as the publisher, also decided to leverage one of the major local telcos as the reseller for this service, which was another compromised choice in my view. (I don’t think a large, state-owned telco’s ground sales force is a good partner to sell an unproven service which needed good salesmanship and hungry hustle.) The results were mixed. Over the course of a year, I believe the service was sold into over 10,000 PC cafes, but that’s out of a universe of over 100,000 PC cafes in China. And we saw a muted player response.

Fast forward to end of 2015, and a bunch of things that had been brewing for a while led to Tencent purchasing the remainder of Riot. This was a significant equity event, even for folks like me who joined after the 2011 majority purchase.3

At this time, I was also again at a cross-roads. On the personal front, our first son was born early 2016, and my wife and I knew we weren’t going to stay in Hong Kong much longer – we just thought it was too cramped to raise a kid there. Professionally, the newly opened Riot Shanghai office offered opportunities to go deeper on the China market, while in Los Angeles there was a fledgling R&D-ish project I could lead.

2016-2019 adventures in Riot R&D

We decided to come back to LA, and we made that move at the end of 2016.

Career-wise this was yet another lateral move. In some ways, I have been very bad at climbing the Riot corporate ladder (and yes, as a company with over 2,000 employees at this point, there was definitely a long ladder to climb if you wanted to). I enjoyed jumping from team to team, and I passed on some advancement opportunities (e.g. stepping up to lead a team in an earlier role) in favor of exploring new areas via lateral moves. I would be dishonest if I said I was perfectly happy with these outcomes – because of course I do care about the size of my paycheck and the leadership responsibilities I have – but overall I’d probably make the same choices if presented with these opportunities again.

I started a project with two other Rioters, in a workspace converted from a small meeting room in a corner of the campus. Later on as we grew and struggled to find space, we were in the literal basement for a few months. This was an extremely uncommon project – it was outside the purview of the formal R&D organization, tucked in an organization that many Rioters in LA would probably struggle to define. Unfortunately I can’t go into specifics – but I’m extremely proud of the windy road we took over the next couple of years, growing the team to a couple dozen of Rioters, and eventually becoming an official R&D project. There are many crazy (good and bad) stories to tell, and hopefully I will have a chance to tell them when this project – which really is like another baby of mine – ships.

The personal stuff

Last but not least in this reminiscence of my Riot days, I should do some accounting of my personal life. Having spent 8 years at Riot, there are so many personal life events intertwined, and I do feel a lot of serendipity and connection.

My wife and I – we first met during my interview trip to Riot in April 2011. Well, technically we already knew of each other (we went to high school together), but it was during that brief trip, where both of us happened to be traveling in LA, where we bonded.

When I decided to move to Hong Kong, my wife begrudgingly accepted and effectively put her career on hold to be with me. And as I said earlier, in early 2016 we had our first child, our son, in Hong Kong.

And also in the spring of 2019, we had our second child, our daughter, in LA.

Perhaps I’m being overly sentimental, but in a way I see my 8 years at Riot also as an unforgettable life journey, where I started it while in the early-blooming of a relationship, and ended it with a happy and fulfilled family (no more kids!). And this is where I have to say, I’m eternally grateful for my wife, who has always supported me in whatever foolish / selfish decision I’ve made (despite not agreeing with them), and who has absolutely carried the lion’s share of the hard work that keeps the family running.

(Oh by the way, the move to Shanghai is another one of these selfish decisions that my wife just fully supports me in.)

Joining Supercell

So finally we come to the new adventure.

In terms of how I got here, it’s a bit of a cliché. Jim Yang, who heads the Supercell Shanghai office, previously worked at Riot and was for a while part of the Hong Kong team. We’ve stayed in touch since then, and ever since I’ve been going deeper into the rabbit hole of games product management,4 Jim has been interested in discussing opportunities in Shanghai.

I’ve generally turned down those opportunities, as I had myriad reservations about going back to China, both personally and professionally. But a few things got me over the hump a few months ago.

For one, I had been at Riot a long time. I still found it weird to be called an old-timer, because I saw the pre-2011 buyout Rioters as the real old-timers, but objectively I fit the label. And to be perfectly candid, I don’t naturally gravitate towards working at a large organization, which Riot now definitely was – most of my career I’ve been drifting the other way, towards smaller teams. 5

Secondly, I’ve always wanted to work on mobile, and even though Riot now finally takes mobile seriously (and I’d like to think I played a small role in that), many (perhaps most) Rioters’ in their hearts of hearts still live and breathe PC. I have this grave imposter syndrome feeling – that I’ve been a flag-bearer and self-labeled expert for mobile games (especially Chinese ones) at Riot for a long time, but I really lack direct inside-the-trenches experience, especially working alongside mobile veterans.

Thirdly, even on this very blog I’ve often proclaimed the rising tide of Chinese devs and the complicated games they were shipping globally. If I truly believe my vision, I should be trying to ride this momentous tide in my own career.

The role at Supercell Shanghai meets all these points. Without waxing poetic too much – I’ve long admired Supercell as a games studio, with a track record of shipping industry-leading mobile games.6 The Shanghai dev studio is a high risk venture, aspiring to make Supercell quality games with a diverse small team of local Chinese and international talent, but the risk is proportional to the size of the opportunity. And I’m joining the studio at an early enough time, with an opportunity to substantially help shape the culture and grow the team.

Perhaps a bit ironically – earlier this year I had written a quick post talking about Supercell’s challenge, in response to our CEO Ilkka Paananen’s open letter. I certainly didn’t think a few months later I’d be interviewing with Ilkka, or that it would be part of my job to try to solve this challenge…

Anyhow, it’s time to wrap up this incredibly verbose and overlong post. I’m sure there are lots of typos and such. But I did feel compelled to write a summary, and for those of you that read it to this point, I hope it was worth your time. Hit me up on twitter (@NanDuan) if you’d like to chat.

  1. Even though I couldn’t resist attending some networking events, including flying out to Cambridge MA for a weekend to my previous employer.
  2. Despite being a life-long gamer, I had never contemplated a career in games – for that I’m always grateful to Zynga for planting this seed.
  3. Turned out I was quite happily wrong about the financial returns!
  4. Starting from the peripheral services on top of a live game, to finally core game R&D.
  5. Additionally, and I’m only writing this as a note as it doesn’t fit the flow of my main discussion: I was also quite fatigued and disappointed by the diversity issues at Riot initially uncovered by media last year, and since which has sparked a lot of internal debate. It was very disheartening to read/hear some of the individual stories/accounts, which I generally tend to believe. At the same time, I also do feel Riot is caught in an impossible predicament, where the company organizationally is trying to overcome some enormous challenges with learning how to ship new games (after 10 years of supporting only one game) while also trying to tackle these serious D&I topics.
  6. I had a particularly strong love affair with Clash Royale when my son was very young and I couldn’t play PC games.

Photo magic

My first camera was a gift from my dad, when I was about 10 years old. I vaguely remember it was a Pentax point-and-shoot, and it cost around £200 (?), which would be $300 in the mid 90s and over $500 today. I was not an avid photographer, but I did burn through some rolls of films when my parents took me to events such as the Edinburgh festival.

Fast forward some twenty-odd years, and my 3.5 year-old son, who’s unsurprisingly obsessed with Disneyland, has learnt to ask for our smartphones when we go on his favorite ride “It’s a Small World”. He would eagerly snap photos of every part of the ride. I thought it was really cute, and I’d certainly want to encourage his creativity, except I wouldn’t want him to accidentally drop a $1,000 phone in the water.

It so happened that same day a friend posted a wechat moment gleefully sharing her son’s new kiddie camera. Talk about viral marketing. So I started searching Amazon for camera toys. After hearing from my friend the detailed specs of the camera she got, I narrowed down my search and made a purchase. It arrived last week and my son’s been busy.

For $40, the specs (link to Amazon page) are quite impressive on paper:

What the camera looks like…
  • Front and back dual camera, 12 megapixels; 1080p video; flash
  • 32G micro-SD card included
  • 15 fun cartoony frames (borders) to create funny photos/selfies directly
  • Wifi and smartphone app for browsing photos wirelessly
  • Overall very kid-proof design
  • (Running on modified Android)
Meh picture quality…

The pictures are quite meh (probably a mix of the lens and the lack of sophisticated post-processing), but that’s almost besides the point for a toy for pre-schoolers. Toys are often about make-believe: a fake facsimile for the real “thing”, whether it’s cars, dolls, a kitchen set or a hardware bench. But we now live in a world where it doesn’t have to be just pretend – it’s now cheap enough to just give kids the real thing, in a package designed for them.

In a way this is incredibly liberalizing: kids are more than ever equal to adults, and can access and utilize similar tools for creativity and expression. Expect to see more young photographers and film-makers. (Side-note: this reminds me of the original Super-8 cameras, that many renowned film-makers such as Steven Spielberg speak fondly of.)

One other observation: this toy is a simple repackaging of existing mobile hardware / software, with a customized form-factor. And that’s why the components are cheap. What other gadgets that target niche user-cases are possible?

Archero

This simple mobile game has been quietly popular in my part of the Riot office recently, and I found myself quickly spending 2 hours a day on it, so I thought it deserved a quick write-up.

Reading the credits and the publisher’s website, Archero is developed by a small indie team (11 people listed in the credits, including 2 programmers, 4 artists and 1 game designer) in China. The publisher HABBY has a stated strategy to identify high quality indie productions from China and bring them globally. (I’m generally a fan of this approach and think there’s an arbitrage opportunity here currently.)

Core gameplay

The core gameplay is deceptively simple but with a sharp design insight. This is an action roguelike dungeon crawler, where you control a character that can perform ranged attacks. You only control the character’s movement; when the character stops moving, he attacks based on AI auto-aiming. The insight is the interesting tension / trade-off between moving and attacking, and the high mechanical satisfaction gained from stutter-stepping / orbwalking (to borrow MOBA mechanics terms) that effectively weaves together dodging threats / repositioning and dishing out damage.

This is literally a game that can be played with one thumb, but it can feel very satisfying with a good amount of depth and skill expression. At any moment in time, players are reading the dynamic battlefield for upcoming threats, and making rapid decisions around optimal positioning.

The roguelike elements play nicely into content replayability. Players are offered random power-up choices (from a pool of skills) as they level up in a single run. These choices loosely constitute a “build”, though that is an under-utilized design space in this game in my opinion – there are skills that are clearly more powerful and are almost always prioritized. Despite this, the sheer RNG nature does provide lots of variability to each run, with the usual satisfaction highs/lows of RNG.

(A side note, the core gameplay largely holds up, but sometimes can get into a degenerate, unreadable state visually due to too many projectiles on-screen.)

Meta loop

The meta-game loop is where this game could really be upgraded. Core game content is segmented into “Chapters” of increasing difficulty (enemies with tougher mechanics and higher stats). Your character has permanent progression through gear (which can be dropped through play or loot boxes, can be fused to a higher rarity, and leveled up) and persistent stats power-ups.

The stats power progression (and thus, monetization of power) is really steep. A casual glance at Reddit shows most players talking about being stuck on Chapter 7 for weeks on end. (I’m stuck on Chapter 5 after a week’s play, with no monetization.) This is where the game sort of falls apart – the loop becomes a very long grind (farming earlier chapters) for gear drops, so that you can fuse / level-up to increase your stats, so that eventually you meet the power level to beat the chapter you are stuck at.

So why is it implemented like this, and how can it be better? If I were to speculate, this is likely a content production problem, with the small team making a conscious trade-off of using a steep power progression in place of a content treadmill they can’t keep up with. In other words – for live-ops there’s better churn/LTV by forcing players to farm for months vs. players cruising through the content and “completing the game”.

There are a bunch of systems that can be introduced to partially alleviate this. A random daily quest system would go a long way to introduce variety and make farming more tolerable. Social features are an entirely untapped space as well. For a small team though, these are likely substantial engineering challenges, so I don’t begrudge the team for not taking them on already.

Watch this space

My overall feeling from a couple of weeks’ play is this is likely a core gameplay concept that will be lifted by another studio with a larger budget, and married with a more mature meta loop. This is very much a diamond in the rough.

Thoughts on WWDC 2019 Keynote (games-specific)

This was all around a very exciting WWDC Keynote, that I feel advances the entire Apple ecosystem in various ways. In this post though, I’ll primarily focus on the relevant parts with impact to the games vertical.

Xbox One and PlayStation 4 controller support

The facts: Apple announced Xbox One and PlayStation 4 controller support across the entire iOS, iPadOS and tvOS family. This was really but a footnote in the whole 2-hour plus proceedings, but there’s a lot of tea-leaves that can be read here.

For one, this seems clearly in service of the Apple Arcade service, and part of a wider games vertical push, coming later this year. For years I’ve lamented that Apple didn’t have a passion for the games business (unlike their passion for music), despite being uniquely positioned to really shake up the landscape. This may be a sign that this year is different, and Apple is making an earnest effort.

This may seem like an obvious thing, but getting over 100m1 hardcore-gamer-approved controllers “for free” is a big deal. It will go a long way in spinning up the virtuous cycle of more developers taking advantage of controller support and more gamers looking for controller-friendly core titles.

It’s also worth pondering whether Microsoft and Sony actively participated in realizing this, or just passively agreed. I’d bet more on the former, given the mobile gravity narrative I’ve discussed some years back.

Project Catalyst

I’m assuming Project Catalyst is what became of Marzipan. In any case, this was the initiative to make porting iOS apps to Mac easier. Today’s section on Project Catalyst was easily one of the keynote’s biggest highlights (only overshadowed by SwiftUI in my opinion).

I don’t think it’s a coincidence that Apple picked a game as one of its 3 testimonials onstage today. MacOS is at the end of the day a 100m install-base platform, and Project Catalyst had made it easier for game studios to consider adding Mac to the list of supported platforms.

Sign in with Apple

This announcement makes a lot of sense given Apple’s privacy-as-a-platform-differentiator value proposition. (The throwaway email generation is in particular a nice touch.) By making it mandatory to any app that offers a 3rd party login, Apple has also introduced a lot of uncertainty to developers who want to own their users’ account identity.

This is more aimed at ad-tech and Facebook / Google, to be clear, but it could be pretty messy for game publishers who leverage them for sign-on and virality. For cross-platform games it also introduces more potential account / social fragmentation, if players are offered several choices (e.g. Facebook / Xbox Live / Apple) to create an account with. Certainly the account creation flow just got more complicated for UX designers.

Ingredients for post-platform

The 3 bits above can all factor into the post-platform narrative. It just got much easier to envision a console-like experience with an Apple Arcade game, where a player is sitting in front of an iPad with a PlayStation controller.2 In this world there’s also no reason why the iPad can’t become the most popular platform to play Fortnite (given it’s predominantly a console game), and the iPad offers a degree of mobility not existent with PlayStations.

Of course, we still need to see what Apple actually delivers later this year, and it’s a cliché to say that it all depends on the content (it does).

General keynote thoughts, beyond games

Some general thoughts, for those curious:

  • SwiftUI was the star of the keynote. Even as someone who has not professionally coded at all, this was super cool, and makes me tempted to pick up a Swift programming book
  • The Mac Pro and Pro Display’s pricing is all about re-establishing the high-end of Apple’s line-up, especially as the iPad and MacBook’s use cases become blurry (did you see iPads now have mouse support?)
  • The Pro Stand with a $999 price tag was a bizarre marketing move, to say the least. Do you have to purchase either the $199 VESA mount adapter or the Pro Stand? (Looks like you do.)
  • The Minecraft AR demo – for now this remains “cool demo” and not very practical. It also seems like just laying the foundation for an eventual hardware (Apple glasses?) announce
  • I’m waiting for the next Apple Watch hardware refresh to get a replacement. I recently traded in my original series Apple Watch for a paltry $27
  1. Xbox One + PS4 sell-in is around 130M; actuals for total number of controllers might be quite a bit more, given that gamers may have multiple controllers per console for local multiplayer.
  2. I’m being a bit deliberate in choosing the iPad in this example, given there are roughly 500m iPads in use which is far bigger than the install base of AppleTVs, and using console controllers with iPhones may be considered silly by portions of the western audience given the screen size.

Arknights

Arknights is a new mobile F2P game from Hypergryph, a studio founded in 2017 in Shanghai. There’s not a lot of info about this young studio, aside from “the founding team are from Google, Massive Black and Cygames.” I’d guess it’s about 50 people in headcount.

The reason I’m writing about this game / studio is I think it’s a good example of the new gen of Chinese developers’ capabilities. This is not a Tencent / Netease studio with massive headcount and brute-force production. The scope and production budget seem carefully managed, while still achieving a sharp impression of high quality and polish.

Game overview

So what is the game? Arknights is an original IP / anime-themed / character-based / tower defense game, with f2p gacha monetization & progression. This video covers the gameplay:

The game art and UI leaves a strong first impression:

Main menu, with the menu UI tilting to gyroscope movement (creating a pleasing effect). The UI is surprisingly clean (especially compared to most Chinese games) given how many features are actually on display
Character info screen
Character skin select (more of a placeholder for now, as most characters only have the base skin)

Chinese studios have developed a specialization in anime-based IP for a while now. To name a few brands that have struck it big in China and/or overseas: Honkai Impact 3, Azur Lane, Girls Frontline, Onmyoji. Given the ecosystem of talent, I’m not surprised that a new studio is able to execute on new IP creation here well.

Core gameplay summary

What I am pleasantly surprised by is the gameplay: this is a fairly thoughtful iteration on the tower defense genre. (Scroll up to the video to see it in action.)

To quickly summarize the gameplay ruleset:

  • Deck-building: players start each level with a deck of 12 characters, plus one optional additional character from a friend (or socially recommended)
  • Grid based, real-time combat, with goal of stopping enemy units from reaching assigned grids on the map. Energy charges up over time, and can be consumed to place units. There is a cap on number of units placed per map
  • Unit placement is based on class restrictions – generally, melee are placed in low ground (where ground enemies will pass through) while ranged are placed in high ground
  • Units can be recalled from the map. Recalled or killed units go through a revival timer, after which they can be placed again, at a higher energy cost
  • Level design elements:
    • map grids where enemies can be pushed off, or give special buffs and consumable abilities (an AOE stun)
    • Large amounts of special level rules, for example melee units only and no energy auto-generation
  • Unit classes that fulfill specialized roles, formed through the following building blocks:
    • Unit attributes: HP, attack damage (physical, magic, heal), attack range, , attack speed, attack effects (single target, AOE, slow), defense, magic resistance, number of units blocked, deploy cost, revive timer
    • Units have special abilities that charge up over time, with diverse effects ranging from basic attack steroids (attack speed buff, increased attack range, next attack hits 2 enemies etc.) to resource abilities (generate extra energy for players) and displacement abilities (pull / push enemies)
The 8 character classes, standard fare for RPGs but provides a good foundation for gameplay depth

This is not a particularly complex system but it has enough space for a lot of variety in characters, and the characters are certainly the heart and soul of the game. Players do need to invest broadly in many characters, as the classes each play specific roles and different levels will emphasize different classes.

The generic single level strategy is as follows: put down some Vanguards (melee, low cost, abilities related to energy generation) for early defense; with more energy, build up your core defense of Defenders (high HP / low attack, can block multiple units), Snipers (ranged physical) / Casters (ranged magic) and Medics (healers); recall your Vanguards to free up cap to put down situational units such as a Support that slows, or a high damage Guard to pick off a single threat. In line with the overall tower defense genre, this flow clearly has shadows of classic RTS games (build up economy, expand, adapt).

The specific level design will ask players to adapt their strategies, sometimes quite drastically: for example one of my favorite level types has no energy generation at all, which forces players to thoughtfully utilize Vanguards throughout these levels as a source of economy.

The common game loop is like this: try out a new level a couple of times to understand the level design and different unit placement strategies; if needed, make some tweaks to your deck to address the level’s specific challenges and/or invest in leveling up your characters, and repeat the level until you are able to perfectly complete it. This is where F2P business model tensions creep in (more on this later).

Macro systems

I don’t play gacha RPG games deeply, but the general systems here look similar enough.

Monetization – premium currency can be converted / funneled through various systems to advance the player’s progression. Most notably, it can be used on 1) gacha draw of characters; and 2) Recharging stamina, which is consumed when levels are played. There are also various real-money packages that can be purchased directly, which offer a bunch of progression resources (crafting mats) such as XP cards for leveling up characters.

Character progression – 4 major components:

  • “Potential” upgrade – duplicate gacha draws of the same character can be consumed to improve character attributes (e.g. reduced cost) up to 5 times
  • Character leveling – only through consuming XP cards (which can be farmed / purchased)
    • “Elite” conversion – at max level, consuming a bunch of mats to advance the character to the next stage (unlock new abilities and passives), resetting the level count. Characters have several Elite stages, which extends the leveling ceiling
  • Abilities leveling – consuming mats to level up the ability level
  • Relationship – accumulated through playing with the character (also using the character in the base building system – see below), grants bonus stats

Another significant macro-system is the base building system, which takes cues from the likes of XCOM and Fallout Shelter:

Base at a glance – certainly looks similar to XCOM
Zoomed-in view of one of the rooms in the base

The base building system primarily serve the following goals:

  • Another axis of progression, as the base is gradually expanded over time and requires mats / resources to do so
  • A reliable source of economy for players to produce mats, and also grow relationships with characters
  • A presentation of the characters
  • Light social interactions amongst players
  • A engagement habit-forming hook, as you need to check in regularly (at least once a day) to collect your outputs and manage your team

As characters are the central driver for player engagement, both in terms of IP / narrative (these are appealing characters that attract players) and progression (want to see these characters become more powerful). The daily engagement thus is fulfilling quests and replaying levels (once you’ve perfectly completed a level, it can be auto-played at 2x speed) for mats, and doing base management about once or twice a day.

A quick note on the game’s social systems. The game directly requests the player’s phone number to register, and doesn’t have any alternative logins (e.g. QQ / wechat openID login). This shows the dev / publisher’s intent to grow its own social graph, but at a notable cost. There are no group social features such as guilds; you can add friends, which gives you the benefit of borrowing your friends’ characters for levels, and also for some light co-op related to base management. As is standard with many gacha games, the game also recommends strangers (through recommending characters to borrow).

Gameplay issues

Briefly discussing the game’s issues:

  • The obvious tension between gameplay and F2P. Game levels have recommended character levels, which compels players to go through the progression grind. After a few days of play the game quickly becomes primarily about the progression grind as the content pace slows down dramatically
  • To make matters worse (and also common for many gacha games), game levels have low replay value. Once the puzzle of a level is figured out, there is very little outcome risk (since there’s low execution variation). The only question then is whether your character progression meets the level’s demands. And thanks to the internet optimal level strategies are only a few clicks away, further aggravating this issue
  • Weak social play. The game feels decidedly lonely and the acceptance rate on stranger invites feel lower than other gacha games
  • Base management quickly becomes a chore

Sekiro, after 80 hours

*** This post contains game spoilers ***

I’ve dumped most of my free time into Sekiro over the past month. Here are some thoughts. Apologies for the sprawling wall of text – “I didn’t have time to write a short letter, so I wrote a long one instead.”

Combat evolution

Dark Souls, Bloodborne and Sekiro represent 3 different iterations of the same foundational design principles of From Software. Each iteration after Dark Souls comes with significant additions but also subtractions. The end result is each product is based on a “proven” formula but also with enough differentiation to not just be a “bigger, badder” sequel.

Taking combat as an example, the higher level principles of SoulSekiroBorne combat in my opinion are the following:

  • The trifecta with regards to input – output:
    • Actions have consequence. The player is strongly encouraged to be thoughtful about every input, the wrong action at the wrong time will be severely punished, while right choices are highly rewarded
    • “Hesitation is defeat.” This Sekiro NPC quote perfectly sums up the real-time, split-second decision making required
    • Responsive, precise controls, in return for the strict requirements on player input (note the difference between responsive controls vs fast actions – this short video explains it visually)

With regards to enemies:

  • Enemies need to be respected and studied. Even the most basic enemy can have lethal combos or overwhelm you in numbers. On the other hand, even the most fearsome looking enemy has clearly exploitable weaknesses that are waiting for you to learn
  • Appearances can be deceiving; unexpected variations in animation timing create depth. The large, slow enemy that has a surprisingly quick slash. The extremely slow attack that punishes you for taking action too early. The suspense of different wind-up animations, some which have long pauses. This is also why each enemy must be studied and practice is required to develop muscle memory
  • Your instinct / fear works against you. The safest place when you face a huge menacing boss is often up front and personal. Instead of strafing and waiting for openings to whittle down your foe, you might find it better to go as aggressive as you can

Zooming in on the specific combat mechanics – Dark Souls at its core is the following:

  • Resources: HP, stamina
  • Defense: dodge roll / back step, block and parry
  • Offense: light and heavy basic attacks, kick, leap attack, backstab; large variety of weapons

(On paper this is not a particularly complex or exciting ruleset – for example, there are no special abilities and flashy combos. The generally slow animation timings may even make it look boring; but it provides enough space such that when you add in weapons variety the sum is a very rich system.)

Bloodborne‘s iteration:

  • Resources: Dark Souls + orange health (window to regain lost health by doing damage)
  • Defense: Dark Souls – block
  • Offense: Dark Souls + weapon transformation; smaller weapons catalog but much more unique weapons

These changes cohesively supported Bloodborne‘s design goals of offering faster-paced, higher risk combat with more offensive combo variety (in conjunction, character movement and animation times were also sped up).

Sekiro‘s iteration is a more significant deviation from the base formula, and all of these changes can be viewed in relation to how they serve the overarching design goal of simulating a deadly sword duel with a constant flurry of swords clashing:

  • Resources: Dark Souls – stamina, + posture
    • Removing a generic resource stamina (consumed both in offense and defense) with a defensive resource posture strongly encourages aggression
    • Posture is also a win condition in and of itself, and its slow recovery mechanic again adds urgency and aggression
  • Defense: Dark Souls + jump + mikiri counter; parry evolved into deflect
    • Deflection is a pivotal rhythm game that consumes most of the player’s attention, as how good you are at deflecting directly impacts how fast you are expending your own posture
    • The addition of jump (and double jump) as a regular button is significant, and necessary for thematic reasons as well
    • Deflect, jump and mikiri counter form a rock / paper / scissors mini-game in relation to enemies’ normal attack, sweeping attack and thrust attack
    • Dodge becomes extremely situational, as generally speaking a perfect deflect is strictly advantageous to dodging (both avoids damage, but you are “doing damage” to the enemy’s posture through perfect deflect)
  • Offense: single katana weapon, special attacks (combat arts), variety of prosthetic tools; grappling hook, ninjutsu skills (spells cast during backstabs), and some very specific situational attacks (lightning reversal)
    • While it looks like a lot due to the special systems added, they actually occupy very little design space (think of them as heavily situational or resource-gated supporting functions that unlock different gameplay patterns). On offense Sekiro has a tight design budget – there’s only one weapon and one basic attack button. In my view the bulk of the design budget – the amount of complexity that a player can handle in the combat system – went into the intricate defensive choices and posture / deflection as the critical interaction, while offense is largely “spam basic attacks at the right time”

It’s worth noting that Sekiro is a much more restrictive game in combat – players largely cannot opt-out of the posture / deflection system. Enemies, especially later ones, do not offer many vulnerabilities if you don’t engage in deflection / counter-attack, and there are several mini-boss fights that are primarily skill-checks on deflection. Additionally, the “no-charm” de-buff unlocked after the first play-through further emphasizes proper deflections, as blocking now costs chip damage – I suspect this was “the way the game is meant to be played” but it was found to be too difficult through play-testing, thus it was converted into an opt-in difficulty feature.

Tight scope management

As a game producer it’s hard not to think about scope when I play games. As far as I can tell, Sekiro exercised really tight scope management in a very thematically resonant way.

I’m of course, first of all thinking about the level design. Ashina Castle is an intricately designed location that serves as the hub of the game both geographically and thematically. The general play-through has the player reaching Ashina Castle, going to a connected location (e.g. Senpou Temple), and then coming back to Ashina Castle which has gone through a transformation due to plot triggers. In a full play-through the player would play the Ashina Castle “level” 3 full times, with different enemies each time. This is in contrast to most AAA games where an elaborate level is only experienced once and never revisited (much like an expensive set-piece in a Hollywood blockbuster).

It’s not limited to Ashina Castle – many locations, including boss-fight levels, are used twice, in what certainly feels like a nod to the game’s byline (Shadows Die Twice) and theme. Also, the game’s gating of the water-diving ability also encourages re-exploration of earlier areas.

Similarly, the game is very frugal in its roster of enemies. A quick and not scientific comparison of the list of enemies in Bloodborne vs Sekiro shows a 68:45 count (this doesn’t include bosses), which is a 34% decrease. There are some enemies that you fight throughout the whole game (and consistently give you a headache with their tight moveset), such as the Lone Shadow Ninja.

Some of this is thematic: in a game about sword-dueling in Sengoku-era Japan (even with some fantastical elements), there are tighter constraints around what makes a good enemy1. Some of this is gameplay driven – a single Lone Shadow Ninja can easily take you a good minute to defeat, and generally if you face more than a couple of enemies at once you will be overwhelmed, thus there’s a much higher emphasis on quality vs quantity.

Additionally, multiplayer was entirely removed. While Soulsborne multiplayer was optional (I’m not a PVP player in those games, since I never “git gud” enough), they are an important, integral part of the PVE design (covenants, co-op play etc.). For Sekiro, multiplayer doesn’t fit with the story (you are playing Sekiro, not a player-created character) nor the combat scope (all players use the same katana). Those are not unsolvable problems – but the single-player only decision must have been made very early in planning. The trade-offs of this decision are well discussed here, with the below benefits mentioned:

  • Bosses can be designed strictly for single player. It also means players must beat the game on their own (no summoning help)
  • Level design don’t have to take into account multiple players and the emergent interactions (especially in a PVP context). This is a substantial reduction in development scope
  • Players can pause the game at any time – beyond a general benefit to all players, this actually unlocks some interesting gameplay for a small segment of players, by enabling them to hotswap abilities in the middle of combat

A few blemishes

My biggest complaint with the game is around the camera system. At a glance, Sekiro shares the same camera system with other From Software games. This is a proven system that generally works well in supporting a controller-based 3rd-person action game.

A quick video comparison of Sekiro and Nioh (another samurai / shinobi themed game with some Souls-like elements) in two somewhat similar boss fights:

Sekiro’s camera is closer, and more fixed in position behind the player character; Nioh’s camera is more pulled back and more fixed to the world (the player character can move in a direction for a short distance before the camera starts to track). This can be summarized as an action camera vs a tactical camera.

Sekiro’s camera choice fits strongly with its gameplay – the sense of danger and feeling of intensity are superior. It does however have severe limitations, most notably in tight spaces where players often are fighting the camera:

This fight is the most flagrant case, where the tight arena and the extremely nimble enemy combine to make the camera behave erratically. (In this video the player does a great job of avoiding tight corners that causes the camera to break down and lose target lock, which is an even greater offense.)

The camera’s limitations also has a cost on boss design. In a couple of boss fights, the bosses have aerial movement that cause them to go out of camera and breaks target lock – these seem intentionally designed and force the player to frantically react to reposition the camera. I don’t find these to be rewarding skill-tests and cause more frustration than satisfaction. More generally, when you are in close proximity with the boss (especially those with a larger character model), it can be hard to read the enemy animation because it’s blocked or out of camera.

Aside from the camera, the game slightly suffers from bad early game difficulty tuning. It’s not that the early game enemies are hard; playing Normal Game+ it’s obvious how vulnerable / slow they are. It’s that in the first play-through the player character is severely deprived of HP and heals initially, which make mistakes in early sections overly punishing.

My other gripe is some optional mini-bosses (Headless and Shichimen Warriors) which require a consumable item (Divine Confetti) to effectively fight (they are almost immune to physical damage). It’s an unnecessary annoyance especially as this item is very rare until late in the first play-through.

Closing thoughts

Overall Sekiro is an excellent game. It’s a coin-toss between Sekiro and Bloodborne for which is my favorite From Software game. It’s the work of a studio that has been honing their craft over a decade in a sub-genre they created. And putting my game producer hat on, that’s a serious competitive advantage – not just in terms of know-how of the design space and sensibly managing scope, but also likely mature tools, workflows and pipelines, which collectively make developers’ lives a bit easier and the quality better.

Zooming out, that is the state of the industry we work in – in every genre you could probably name a studio that has been successfully tackling it for over 10 years. So for the upstarts and new entrants you really have to think about not only what you bring to the table (to players), but also how you are bridging the development learning curve versus the incumbents.

  1. Sekiro isn’t afraid to throw in a good joke here – one of the toughest regular enemies is a dual-wielding white monkey. It’s harder than some mini-bosses

Why navigation apps suck (a product thought exercise)

A departure from the usual games-related posts. This is a extremely tactical post (and frankly, quite crudely refined notes) about a bunch of product thoughts I had.

I live in the west Los Angeles metro area and have roughly a 10-mile daily commute. My work hours are quite flexible (thanks Riot Games!), which means I can side-step some of the notorious LA traffic, but not all of it. In practice this means I have a 30-min commute in the mornings, and in the evenings it’s usually 40 minutes, but can easily go to an hour. In the rare instances where I had to stay late (say, 9pm), it’s a 15-20 minute breeze on the freeway home, which makes it tempting to stay late, but usually I’m out of the office between 6-7:30pm.

That’s a long-winded context to say I do quite a bit of driving, and I have tried various navigation apps and do somewhat care about the user experience.

The TL;DR of my current ranking of the apps / services I could use:

  1. Google Maps
  2. Waze
  3. Apple Maps
  4. My car’s built-in navigation

Having said that, I’m not satisfied with any of them, for various reasons, and it was the thought exercise I did (while driving) about their various flaws that I’d like to explore a bit in writing. 1

The primary reason I say “navigation apps suck,” is that they have clear areas of improvement on a number of dimensions, which I’ll talk about one by one.

The suggested routes are good, but are often perceived to be not the best, especially in shorter, local commutes, such as my daily commute.

I originally worded this as “objectively not the best routes,” but upon reflection felt that is not knowable. But anyhow: what I mean by this point is as a frequent user I have a strong perception that the default route recommendation I get is solid, but there are better options not discovered.

The reason I have this perception is as an experienced driver of my own commute route, I’ve explored various routing options and have established a baseline ranking of my options. Thus nowadays when I do a navigation, more often than not it’s just to gauge the general road conditions, and I will self-navigate using my baseline route (and ignore the recommended route). Then at the end of my trip, I’ll compare my result (arrival time) vs the original estimate with the recommended route. My not-so-rigorous comparisons have reinforced my perception that the algorithms are not ideal and my personal route is just as good or better.

As a complete outsider to how these navigation algorithms work, I do have a few hypotheses why the recommendations are “just ok” instead of “great”:

  • Road conditions change very dynamically, and there is a delay between “now” and the data used to run the algos. i.e. how “real-time” is real-time traffic data. I’ve not done any digging into this, but if the lag is material enough (say 5-10 minutes) it would make a difference for the 30-min commuter like myself
  • Different roads have different probabilities of disruptions, as well as how resilient they are to these disruptions. While highways have much higher throughput at optimal operations (big arteries), I feel local roads are much more resilient to single accidents, because there are lots of alternative routes (veins) that can absorb sudden fluctuations. I have a very amateur suspicion that navigation algos are over-weighting an estimated faster time via a major highway (say, 5 mins faster than local) vs the likelihood of that estimate being severely disrupted by a new accident
  • Depending on the resolution/fidelity of the traffic data, the same stretch of road may have totally different travel times for 2 different travelers. I’m speaking about the difference between lanes, and I have a very specific example with the below screenshot:Going north-south on Sepulveda Blvd through the LAX airport area, the speed at which you can pass through this stretch of road is wildly different based on whether your destination is LAX (the top dotted circle is the ramp going into the airport) or the 105 freeway (the bottom dotted circle), or going through (further south on Sepulveda. You may be sitting in the top circle for 15 minutes to crawl into LAX, or you may have gone past this entire arrow in 5 minutes (if you stay on the left-most lane). Again, without knowing the resolution of the data, I suspect at least some of these navigation apps are using averages, which will degrade the recommendation a lot – Waze for example, will never recommend me this route, even though it is almost always better (measured by a faster arrival time vs. their original recommendation, and their own estimated time as I travel along this route is always higher by 5-10 minutes).

Improvement suggestions: I don’t have any, except what must be obvious ones – get better, higher resolution data; and doing probabilistic analysis as part of the recommendation (what’s the worst that could happen if the user follows this route?).

Route optimizations seem to undervalue the difficulty of the route, most egregiously routes that need lots of left turns

Again, this is first and foremost a perception, but I do have some evidence, especially with the below example that’s basically a bug IMO:

In this stretch of road in commuting hours, Google will generally recommend the green line vs the red line, however this route is actually not possible – the dotted circle is an impossible turn (you need to merge 3/4 lanes to get to the left turn lane, and you have no space to make the merge).

More generally, navigation apps seem to far too often recommend difficult maneuvers which are dangerous and also likely end up costing a lot of time: e.g. left turns in busy intersections with no traffic lights, or crossing a major street with no traffic lights. While Waze has a preference setting specifically about this (and is default ON), in practice I feel Waze still does the most crazy routes that feel like they ignore the difficulty of actual execution.

Improvement suggestions: offering preferences is a start (more on this in the next point), but probably overweighting “safety / ease / fewer maneuvers” over “raw fastest route” (vs how they are currently weighted) is a start.

This is quite touchy-feely, but routing algorithms seem to ignore the comparative pleasure of otherwise comparable options, e.g. is it more enjoyable to sit in bumper to bumper traffic on the freeway or a windy local route (with lots of lights / turns)?

The above header pretty much sums it up. Recognizing that drivers have totally different profiles, and therefore going beyond the absolute “avoid highways / toll-roads” settings, and perhaps offering them ways to tweak their experience to their style, could result in higher satisfaction.

In some ways this is just expectations management: giving an option, for example, that says “prefer local to freeways, even if it means an X-minute delay” (X could be customizable) anchors users’ expectations, and also gives them a sense of empowerment – that was an explicit trade-off they opted into.

  1. Another way to title this post would be, “why it’s hard to build a great navigation service – product analysis from an outsider.”

Microsoft’s future

I don’t think I’ve ever written a post on Microsoft (it’s usually Apple or Google), but the past 10 days they’ve certainly been interesting to watch.

First off, Microsoft announced a major corporate restructuring and strategy update. For a company of its size, this is certainly not a trivial matter. What was interesting to me was how similar in theme the restructuring strategy had with some recent discussions on Asymco about functional vs. divisional organizations:

Horace Dediu’s core argument is that a functional organization is better at creating and responding to disruptive innovation, as opposed to a divisional organization. The divisional organization is symbolized by old Microsoft, with large business units with independent P&Ls, whereas the functional organization is best represented by Apple – there are products, but no product P&Ls, and resources are organized by functional expertise (engineering, marketing, etc.) and allocated to different products/projects based on strategic vision. With these analyses in mind, the Microsoft reorg looks promising on paper – it is meant to tear down walls internally, so that the company can reorganize itself around future growth initiatives, instead of clinging on to dying (slowly) cash-cows. Obviously, the reorg will not happen overnight, and results won’t show at least a few years down the road (if you think of initiating a new project from scratch).

The other interesting piece is Ben Evans’ blog post, The irrelevance of Microsoft. The charts are compelling, especially this one:

In classic strategy terms Microsoft is a horizontal integration player (while Apple is the typical vertical integration player). Therefore it is truly alarming (for Microsoft) to see its share of platforms drop from a monopoly status (which is the end-goal for any horizontal play, and a key criteria for generating profits for that strategy) to something similar to a vertical integration player (which can be perfectly healthy and profitable with 20% share). Given how Android has the lion’s share of that chart now, and the fact that Android is a free beast (both price and otherwise) that Google doesn’t have strong control over, it seems a renewed horizontal strategy from Microsoft would have some really steep hurdles. I wouldn’t be surprised if Microsoft goes down a more vertical path.

There are, of course, silver linings. Freed from internal pressure from other divisions, there’s no reason why Office cannot extend to both web and mobile leveraging its own network effects, and continue to be a lucrative cash-cow as the monopoly player in the productivity space. Xbox + Kinect are a strong contender for control of the living room (despite some of the initial gaffes with the Xbox One). And Windows Phone does enjoy some Machiavellian benefits as the third platform in mobile – it will continue to get support from telcos who want to limit Android/iOS.

Microsoft is diversified enough that it will have some time to figure out its relevance in the post-PC era. And even if it doesn’t, it will still be around for a while (at least in tech time – a decade in tech feels like an eternity). Let’s see how this plays out.