What Happened in Call of Duty: Black Ops 3

Was it all simulations and imaginations? Did Hendricks and Kane really die? What happened to John Taylor?

Spoiler alert: You may want to play the game first. If you would like to watch the campaign instead (like me, I have no gaming rig to play BO3), I highly recommend watching MKIceandFire’s.

The Black Ops series in Call of Duty franchise are known to have the most innovative campaign stories. From a protagonist brainwashed by Russian in Black Ops, to player-determined outcomes in Black Ops 2, we know we can expect more from Black Ops 3.

And they delivered, Black Ops 3 not just have the weirdest ending, but diving deeper, you will start to realise the story is open for interpretation. Like the continuously spinning top at the ending of Inception begging for more discussions and debates.

I have no idea what really happened in the game, but after some Googling, reading up comments on gaming videos on Youtube, going through the Wikia that keeps on changing, here are some ways we can tell the story.

There are a few facts we know for sure:

  • Player died right after Mission 1. It’s revealed in the scrolling text before the mission starts, which is actually an after action report written by Taylor.
  • Taylor and Hendricks liquidated 4 of their ex-teammates in Team Phi, including Dylan Stone who leaked out CIA’s Black Project, safehouse locations around the world, and thus undermining Winslow Accord.
  • John Taylor and Rachel Kane were in a relationship. Hendricks asked Taylor about it during Mission 1 when they first met again after killing Dylan Stone at The Lotus Towers in Cairo.
  • 3rd mission (In Darkness) – 2nd last mission (breakup with Kane in hospital) are based on John Taylor’s memory.

What we don’t know for sure:

  • Is the last mission based on reality? Or it’s pure imagination? It may have deviated from actual events, and it didn’t feel any less real.

Interpretation #1: Everyone survived


  • The whole thing is a simulation – a frozen forest to comfort the dying Player. It’s made up of Taylor’s memory of hunting down traitorous teammates, with Corvus mixing in an augmented Hendricks (c’mon, is he crazy enough to chop off his hands and legs to get cybernetic parts?)
  • The last mission is pure imagination – it is a closure to the weird dream that the Player had.
  • It is essentially a living nightmare, throughout the mission, you were killing off your teammates one by one, at the end, even your girlfriend Kane, and BFF Hendricks died too.
  • In the Frozen Forest, Player slowly realised they were in a dying dream and came to accept the fact. They also knew that they were just living Taylor’s past memory.
  • Who died? No one else. 


  • Corvus probably really wanted to help Player out by letting Player do what they love to do – being a Black Ops.
  • In Nightmares mode, Dr. Salim did mention that some constructs in the dream are meant to help Player to navigate the missions – in this case, an augmented Hendricks could be one of them. And in the final mission, Rachel Kane in real life, and John Taylor in the frozen forest.
  • John Taylor was able to write AAR (after action review) for the minister rescue mission in Ethiopia (1st mission) after the Player died. That means he did not go bat-shit crazy and moved on with his life.
  • If Hendricks did get cybernetic augmentations, John Taylor would probably have mentioned it in the AAR.
  • The last mission (Life) happened on Day Unknown. It’s probably entirely made up Corvus didn’t bother to smack a timestamp to it.


  • Sarah Hall’s living nightmare is really detailed. Without going into her subconscious, how did Corvus know that she had been thinking about the Siege of Bastogne? Why was she saying the Player scrambled with her mind?

Right after finishing the campaign (by watching) and watched the Black Ops 3 – Ending Explained by Joylocks, I went to COD Wikia and feel glad that everyone except Player – lived.

However weeks later, the Wikia showed all other characters, including Hendricks, Kane, and Taylor’s team – all dead. Except John Taylor. Read on.

Interpretation #2: Only Taylor survived

This interpretation is the currently accepted one on COD Wikia.


  • Right after interfacing with dying Player, Corvus felt the pain and “woke up”, infected Taylor, Hall, Diaz, Maretti, and began simulating all the missions – based on Taylor’s memory to find out who he is.
  • Player’s physical body is dead, but his consciousness lived on in DNI.
  • Hendricks did get the cybernetic augmentations.
  • The Player interfaced with Sarah Hall, not by touching their DNI, but remotely with the assistance of Corvus, and caused her death.
  • Corvus assisted with the remote killings of Diaz and Maretti.
  • John Taylor did not die.
  • The last mission took place in real life, Hendricks did not make peace with what he found in Singapore, and the death of his teammates in Team Phi. He went to Zurich to find Sebastian Krueger.
  • John Taylor and Rachel Kane went to Zurich to stop Hendricks. However, Corvus let Player took control of Taylor’s body, Kane noticed Taylor wasn’t being himself again and asked “Are you still there?”, in which the Player replied, “I am still me”.
  • Rachel Kane died IRL. So are Sebastian and Hendricks – shot by Player-controlled Taylor.
  • Player and Taylor fell into frozen forest. Eventually, they managed to kill all remaining consciousnesses held by Corvus, and got out of it.
  • Player-controlled Taylor then proceed to initiate the DNI purge sequence.
  • Taylor then calm Player down while the DNI is purging – as soon as the DNI is purged, Player will be dead.
  • Who died? Everyone, except Taylor.


  • Hmm, it makes sense actually.
  • The last mission started out with optical glitch – something previous mission don’t really have, maybe it hinted remote control?
  • What Taylor Corvus said when they are coming out from the frozen forest – “There’s so much noise in my head I can’t even think. I don’t even know your name. Who am I? Who are you?”. That is probably when Player, Taylor, and Corvus fused their thoughts together. He was fighting to gain his body back.


  • Hendricks is not badly injured in the mission. There is no need for him to get cybernetic augmentations. Maybe he is as crazy as Ruin?
  • Hendricks strongly opposed SP/CORVUS – the black project that gave birth to DNI, so why would he even get cybernetic augmentations?
  • If the last mission happened in real life, why would Hendricks suddenly go after Sebastian 1 year after the mission to hunt down Dylan Stone?
  • Why would Kane suddenly get back together with Taylor 1 year after breaking up, just to apprehend the rogue Hendricks?
  • If Taylor is infected right after interfacing with dying Player, how did he write the AAR for Ethiopia mission?


Unfortunately, we need more proofs for both the interpretations to clear up our doubts. As for now, I would love to pick Interpretation #1 simply because there are less arguments against it.

However, Interpretation #2 is actually more interesting, simply because it gave Corvus more character depth. It also did a better job of painting a far more dystopian future as well.

Nevertheless, Treyarch did a really good job with the campaign storyline. When people whine about how boring Call of Duty has became, Treyarch is the one that is pushing the innovation of the shooter franchise. To the point they risked the flaks from public for writing such confusing story.

Let’s keep the discussion going, shall we?

Coding assignments depress me

I love coding. But not the one in assignment.

In my degree first year first semester, I was studying Programming Fundamentals. The subject teaches you how to use C++, and at the end, you will be asked to submit a final assignment. For my cohort, we are tasked to make the Ultimate Tic Tac Toe.

I have obsession with codes that are clean, readable, maintainable. I want classes to inherit from one another correctly. I try not to repeat myself (DRY principle). And I try my best to deliver the best user experience in the apps I make.

The assignment makes up 20% in the assessment. And apparently, if you manage to implement extra features like LAN, or a simple timer, or artificial intelligence opponent, you get extra marks. But the total marks from this assignment will never exceed 20%.

I spent days and nights perfecting my game. And I dare say, my submission not only has multiplayer capability over LAN, but it has the best overall user experience, as well as UI aesthetic, among my peers.

A lot of my peers got a full 20%, so did I.

They submitted codes that are messy, unreadable, and the game has terrible UI, but they met the criteria, so they got 20%.

Not to say they do not deserve 20%, but it made me realise one thing – the school does not care about great works.

No extra credits will be given to the extra miles you took. Your work is still being judged on the marking criteria. They did this to give chance for people to score 4.00, but this is discouraging people from doing great works.

When I work as web developer, I get to write clean codes that other teammates can easily understand and modify, and I get credits for it.

I don’t get any credits doing the same in university coursework.

This is why I really really prefer working over “studying”.

Why Hackerspace MMU Hackathon Is The Best

So yea, I spent a weekend with 7 other hackers in our faculty’s meeting room, working on the next big thing in Malaysia.

Update: That big thing didn’t happen. Open sourced on http://bitbucket.org/makanio/makanio.

Last weekend in the meeting room of Faculty of Computing and Informatics, 8 of us gathered together and built stuffs, fixed bugs, and presented our fruit. We are members of Hackerspace MMU and this is our tiny hackathon.

Compared to other corporate sponsored hackathons outside there, our hackathon does not give out prizes for the best hack (or best pitching of bullshit). We pay for our own pizzas, we go home to sleep, we do whatever we want.

From someone learning Android and OpenCV to Raymond contributing to Hotot, our hackathon projects are not the typical one-off mobile apps or prototypes for pitching. We do stuffs that we truly love, and things that we can learn a thing or two from.

For me, I managed to tackled a few problems that I encounter when I build the food delivery website. 1st problem is a rather simpler one, adding a custom ordering feature to the POS of platform, which involves ActiveRecord Polymorphic and stuffs.

The 2nd problem I tackled is promotion framework. The promotion framework does a few things, it handles promotions that get applied both passively and actively onto an order chit based on different conditions.

For example, the 1st type of promotion I implemented is student delivery fee waiver. If the customer is a student (eligibility check), and the order chit has at least 1 item that incurs delivery charge (actionability check), the adjustment is applied. For this I took cues from Spree’s Promotion Guide.

Since there will be many types of promotions implemented in the future, I need a somewhat scalable solution for it.

So I created a Promo::Chain class, where you pass in the order chit instance to the constructor. The chain will then pass the order chit through different promotion handling classes in the sequence I defined inside.

For example, in the future we would have a 10% off promotion. Should the 10% discount run before or after the delivery fee waiver? Or it will not run if a promotion with higher priority is being applied? These are good problems to solve in the future, and let’s prepare our codebase for that.

This took me almost 9 hours to experiment with and get the design right (not right enough just yet). If it wasn’t the peer pressure from a roomful of hackers, I probably would not have been able to finish it.

The next Hackerspace MMU Hackathon will be next trimester. And I am totally looking forward to it again. Maybe by that time the food delivery platform would have been up already.