KanColle Wiki
(juust a bit more...)
Tag: sourceedit
(okay I can sleep now)
Tag: sourceedit
Line 13: Line 13:
 
We would continue to be happily playing Kancolle if not for a sudden announcement from the mother of Flash, '''Adobe'''. Adobe recently announced that they will be [https://blogs.adobe.com/conversations/2017/07/adobe-flash-update.html declaring Flash as end-of-life by 2020], encouraging developers and content creators to migrate to modern web technologies like HTML5's [[wikipedia:Canvas_element|canvas]] and [[wikipedia:HTML5_video|video]]. The company cited Flash's inherent security flaws and the resources required to maintain Flash as reasons for abandoning it.
 
We would continue to be happily playing Kancolle if not for a sudden announcement from the mother of Flash, '''Adobe'''. Adobe recently announced that they will be [https://blogs.adobe.com/conversations/2017/07/adobe-flash-update.html declaring Flash as end-of-life by 2020], encouraging developers and content creators to migrate to modern web technologies like HTML5's [[wikipedia:Canvas_element|canvas]] and [[wikipedia:HTML5_video|video]]. The company cited Flash's inherent security flaws and the resources required to maintain Flash as reasons for abandoning it.
   
Whatever the reason, by 2020, Flash would be end of life. This means that browsers will stop supporting Flash by that time<ref>See the posts by [https://blogs.windows.com/msedgedev/2017/07/25/flash-on-windows-timeline/ Microsoft],[https://www.blog.google/products/chrome/saying-goodbye-flash-chrome/ Google], [https://blog.mozilla.org/futurereleases/2017/07/25/firefox-roadmap-flash-end-life/ Mozilla], and [https://webkit.org/blog/7839/adobe-announces-flash-distribution-and-updates-to-end/ Apple].</ref>, and you won't be able to run Flash-based content (like Kancolle as it is right now) in the browser.
+
Whatever the reason, by 2020, Flash would be at its end of life. This means that browsers will stop supporting Flash by that time<ref>See the posts by [https://blogs.windows.com/msedgedev/2017/07/25/flash-on-windows-timeline/ Microsoft],[https://www.blog.google/products/chrome/saying-goodbye-flash-chrome/ Google], [https://blog.mozilla.org/futurereleases/2017/07/25/firefox-roadmap-flash-end-life/ Mozilla], and [https://webkit.org/blog/7839/adobe-announces-flash-distribution-and-updates-to-end/ Apple].</ref>, and you won't be able to run Flash-based content (like Kancolle as it is right now) in the browser.
   
 
With roughly three years left before the inevitable, Kancolle made the switch to HTML5.<ref>This of course assumes that Kancolle will still be Kancolle by 2020; let's keep our hopes up! [[File:Amagi.png|48px|link=]]</ref>
 
With roughly three years left before the inevitable, Kancolle made the switch to HTML5.<ref>This of course assumes that Kancolle will still be Kancolle by 2020; let's keep our hopes up! [[File:Amagi.png|48px|link=]]</ref>
Line 63: Line 63:
 
[[File:Kc-html5-fig3.png|700px|center|Note that a viewer only ''reads'' data from the server; if it ''sends'' data to the server as well, stop using that viewer as it may get you in trouble.]]
 
[[File:Kc-html5-fig3.png|700px|center|Note that a viewer only ''reads'' data from the server; if it ''sends'' data to the server as well, stop using that viewer as it may get you in trouble.]]
   
Another critical point shows: '''the viewer is independent of the client.''' You can change one without affecting the other. You can switch from KCV to KC3Kai without affecting the game itself, right? Well, it works the other way around, too:
+
Another critical point shows: '''the viewer is independent of the client.''' You can change one without affecting the other. You can switch from KCV to KC3Kai (and vice versa) without affecting the game itself, right? Well, it works the other way around, too:
   
 
[[File:Kc-html5-fig4.png|700px|center]]
 
[[File:Kc-html5-fig4.png|700px|center]]
Line 91: Line 91:
   
 
* '''.png files with "encrypted" filenames.'''' Just like how sound files are distributed now, this should make guessing filenames harder, but not impossible.<ref>The staff here at Wiki can get any voice line with the KC master data (which is loaded by the game when it starts up) and around three lines of JavaScript code.</ref>
 
* '''.png files with "encrypted" filenames.'''' Just like how sound files are distributed now, this should make guessing filenames harder, but not impossible.<ref>The staff here at Wiki can get any voice line with the KC master data (which is loaded by the game when it starts up) and around three lines of JavaScript code.</ref>
# '''As encrypted assets.''' This is what we fear the most. Then again, deobfuscating the decryption code or getting the decryption keys ''might'' prove to be a trivial task.<ref>One game's asset encryption was defeated with five lines of code.</ref>
+
* '''As encrypted assets.''' This is what we fear the most. Then again, deobfuscating the decryption code or getting the decryption keys ''might'' prove to be a trivial task.<ref>One game's asset encryption was defeated with five lines of code.</ref>
  +
  +
=Final Thoughts=
  +
  +
Remember when YouTube used to be in Flash? Now that it's in HTML5, did anything change? Nope, everything it still there.<ref>Except for that game of Snake you can invoke to pass the time while your video is buffering, or that Nyan Cat progress bar.</ref> It functioned the same way as it did back then—heck, it was even improved along the way.
  +
  +
Same thing will happen to Kancolle. The migration to HTML5 should get you hyped, not worried. It's alright, nothing would break; and if something ''does'' break, there's someone on the Internet who would fix it.
  +
  +
Now, I wonder what would they do with the Android app...
   
 
=Notes and References=
 
=Notes and References=

Revision as of 20:32, 20 September 2017

Ryuusei Kai 052 Full TL;DR: The migration of Kancolle to HTML5 should have no effect on anyone's gameplay experience except for a different UI, since behind the scenes, it still works the same.

So as we all know, Kancolle is about to abandon Flash in favor of HTML5, and I have seen this cause some panic within the community; in particular, there has been some recent fears that the upcoming migration to HTML5 would force players to play without their viewers as these would break when the migration is completed.

Hopefully this post would alleviate those fears. But first, as I always do in my blog posts,a little history:

Why the Sudden Switcheroo?

We would continue to be happily playing Kancolle if not for a sudden announcement from the mother of Flash, Adobe. Adobe recently announced that they will be declaring Flash as end-of-life by 2020, encouraging developers and content creators to migrate to modern web technologies like HTML5's canvas and video. The company cited Flash's inherent security flaws and the resources required to maintain Flash as reasons for abandoning it.

Whatever the reason, by 2020, Flash would be at its end of life. This means that browsers will stop supporting Flash by that time[1], and you won't be able to run Flash-based content (like Kancolle as it is right now) in the browser.

With roughly three years left before the inevitable, Kancolle made the switch to HTML5.[2]

What is HTML5?

Warning! Technical Stuff Ahead!

HTML5 is the latest version of HTML, a language for creating web pages. If that sounded like nerd talk to you, think of it this way: HTML can make you cake, while HTML5 can make those fancy cakes with a photograph printed directly on the icing; it's still cake, just more multimedia.[3]

HTML5 adds multimedia features like video and audio playback without the need for plugins, as well as a canvas element that allows for programmatic rendering of 2D elements (basically 2D animation).

Canvas is of particular interest, because this is the element that could, by any stretch of the imagination, be capable of creating the user interface for an HTML5-based Kancolle client. And if you want proof, look no further than KC3's replayer.

"Sure, that's sweet tech and all, but how about me?"

Okay, I put my opinion as what the devs may use to migrate Kancolle to HTML5. But the important question is: "Would this affect my gameplay?" Here is where I place the thesis of my case:

NPC compass4a The migration of Kancolle to HTML5 should have no effect on anyone's gameplay experience except for a different UI, since behind the scenes, it still works the same.

And why so? It's because only the front-end has been changed; the back-end would most likely remain the same. This one's rather hard to explain in prose, so let me pull up a few visual aids:

Kc-html5-fig1

This is how Kancolle looks like when played straight on the browser (i.e., without any viewers or whatever). You can think of the browser as the client which runs the Flash files required by Kancolle; this is what I'm referring to as the front-end, because this is what you see as Kancolle. The client then communicates with the servers so that you may be able to play the game.

The green boxes in the middle denote methods by which the client (your browser running Flash) communicates with the Kancolle servers; this is the back-end, as these work behind the scenes, invisible to you.[4] A critical point here is that gameplay would not be reasonably affected if these methods were not changed.

And I don't have reason to believe that these would be changed in any big way.

A Case of Easing Migration

The main reason for this is to ease migration; in this case, if you're moving the Kancolle client from Flash to HTML5, it would be best if you could just snap the new client in and have it communicate the same way as the old one, rather than making a new client and adapting the server code so that it can communicate with that new client. It's like buying a new phone; you'd want it to be able to output the music you play to those wired headphones you already own, rather than buying a new phone and new earbuds just because that new phone cannot communicate to your wired headphones without an expensive adapter.

With that in mind, look at how easy it is to migrate to HTML5 if the new client communicated in the same way as the old one:

Kc-html5-fig2

Bam! Only the client needs to be swapped; everything else is unchanged.

Playing with Viewers

How about the now-common case of playing with a viewer (KC3Kai, poi, KCV, EO)? This is how it looks like:

Note that a viewer only reads data from the server; if it sends data to the server as well, stop using that viewer as it may get you in trouble.

Another critical point shows: the viewer is independent of the client. You can change one without affecting the other. You can switch from KCV to KC3Kai (and vice versa) without affecting the game itself, right? Well, it works the other way around, too:

Kc-html5-fig4

So as you can see, nothing drastic should happen even when Kancolle decides to switch to HTML5. Should, that is.

The Worst-case Scenario

I am not ruling out the possibility of a complete overhaul; I just see it as highly unlikely. In any case, let's see what happens when a complete overhaul does happen:

  1. Tanaka et.al. migrates to HTML5. The entire back-end is overhauled as a result.
  2. People start hammering support channels of popular viewers, complaining that their viewer has stopped working.
  3. Developers of viewers start examining the new communication methods in the back-end.
  4. They start making code to read these new communications for their viewers.
  5. They release the new versions.
  6. Everybody is playing happily again.

See? It's not all that bad. When push comes to shove, it will break, but sure as day follows night[5], it will be fixed.

At least for viewers with active maintainers. Amagi

Side Note: Shipgirl CGs

This is the territory of the uncertain. Currently, shipgirl CGs are distributed in Flash files with all forms (normal, damaged, banners, etc.) packaged inside. This makes it difficult for a normal player to get the CGs themselves.[6]

Once KC moves away from Flash, how are they going to distribute them? I am certain they want to maintain the difficulty of getting at the CGs high. Some possible scenarios:[7]

  • .png files with "encrypted" filenames.' Just like how sound files are distributed now, this should make guessing filenames harder, but not impossible.[8]
  • As encrypted assets. This is what we fear the most. Then again, deobfuscating the decryption code or getting the decryption keys might prove to be a trivial task.[9]

Final Thoughts

Remember when YouTube used to be in Flash? Now that it's in HTML5, did anything change? Nope, everything it still there.[10] It functioned the same way as it did back then—heck, it was even improved along the way.

Same thing will happen to Kancolle. The migration to HTML5 should get you hyped, not worried. It's alright, nothing would break; and if something does break, there's someone on the Internet who would fix it.

Now, I wonder what would they do with the Android app...

Notes and References

  1. See the posts by Microsoft,Google, Mozilla, and Apple.
  2. This of course assumes that Kancolle will still be Kancolle by 2020; let's keep our hopes up! Amagi
  3. Both are also lies. Kappa
  4. Unless you're following some of my tutorials; if so, you're getting glimpses of the back-end.
  5. I wanna hang myself for using this metaphor.
  6. It's not impossible, though.
  7. I originally mentioned them here.
  8. The staff here at Wiki can get any voice line with the KC master data (which is loaded by the game when it starts up) and around three lines of JavaScript code.
  9. One game's asset encryption was defeated with five lines of code.
  10. Except for that game of Snake you can invoke to pass the time while your video is buffering, or that Nyan Cat progress bar.