Category "Episodes"

Episode 18: The World Ends With parser.abortParsing()

Preshow

Build: iOS 10 SDK Development, Chapter 8 (part 2)

And now, the hard part: XML Parsing. The XMLParser API provided by the iOS SDK is an event-driven parser, and not particularly pleasant to work with, so we roll up our sleeves and dig in. We make our own parser class implement the XMLParserDelegate class, so it can be called back when the XMLParser starts and ends tags, finds text, and so on. By selectively handling these callbacks, we can parse the feed’s top-level metadata into a Swift struct.

Interstitial

Play: The World Ends With You: Solo Remix

A nice change of pace from the well-trod Final Fantasy series, The World Ends With You is an action-RPG with a distinct, modern aesthetic, set in Tokyo’s busy Shibuya district. Originally created for the Nintendo DS and heavily relying on that system’s dual screens, it was reimagined for mobile as “The World Ends With You -Solo Remix-“. It’s also infamous for having a crash-at-launch bug after an iOS system update that went unfixed for years, and even now has a warning that it’s not compatible with iPhone 7 or the iPad Pro (presumably meaning the 12”).

Read: Muv-Luv Alternative, Episode 3, Part 1

Chapter 2 ends with Takeru proving his foreknowledge of the future by telling Yuuko about the BETA incursion from Sadogoshima. He thinks it’s a chance to save hundreds of lives by preparing for the attack, but she has other ideas. Then, chapter 3 begins with another do-over from the previous timeline: the Comprehensive Combat Skills Evaluation. Takeru knows not to fall for the traps or get bitten by the snake this time; maybe he can speed up history?

Encore

Episode 17: Hockey Night in America

Preshow

Build: iOS 10 SDK Development, Chapter 8 (part 1)

Turning our attention from the player scene to the rest of the podcast app, we look at how we are going to download podcast feeds from the internet. After all, fetching stuff from the internet and putting it in a UI is most of what many apps do. To get started, we’ll use a URLSession to download a podcast feed’s RSS, and log it to the console. This will let us look at what’s in the feed, so we can set up some structs to model podcast feeds and episodes.

Interstitial

Play: Matt Duchene’s Hockey Classic

It’s Hockey Night in Wherever, and we celebrate by checking out the best hockey game for iOS. Granted, given the state of sports games on the platform (or paid apps in general) that is very faint praise, but nevertheless, Matt Duchene’s Hockey Classic plays as a perfectly typical console-style hockey game, albeit from two console generations ago, and without the NHL or NHLPA license.

Read: Muv-Luv Alternative, Episode 2, Part 2

Mikoto is back, and Takeru meets her for the second time, the first being the timeline of Muv-Luv Unlimited (and it’s the third time if we count that Takeru was a boy in Muv-Luv Extra). Her returns helps enliven and lighten the mood of the squad, and distract somewhat from Takeru’s repeated mistake of letting on more than he should about his foreknowledge of future events.

Encore

Episode 16: It’s Different For Skullgirls

Preshow

Build: iOS 10 SDK Development, Chapter 7 (part 2)

Using closures (and a convenient method provided by AVPlayer) lets us update the time display of our podcast player, but all is not well. When it comes to closures, memory management and queueing present subtle issues that will become subtle bugs if we’re not careful. In this episode, we see how weak references keep us from leaking memory, and how we keep our UI work on the one “main” queue where it’s allowed.

Interstitial

Play: Skullgirls

Originally a console release in 2012, Skullgirls came to mobile in 2017, and it may be the least likely fighting game you’ve ever seen. The game has a Roaring 20’s jazz age aesthetic that’s more Ub Iwerks than Akira Toriyama. It has an RPG-like story mode where you level up and buy your moves and abilities. And it ditches the simulated D-pad + 4 button approach in favor of one-hand touch-and-swipe input. Grab your flapper dress and a chainsaw; it’s showtime.

Read: Muv-Luv Alternative, Episode 2, Part 1

Takeru heads out to the shooting range with the rest of the class, where he continues to impress with his military skills accumulated from previously experiencing these events on a different timeline. He’s also becoming keenly aware that he’s pushing his luck with his “special” status. Fortunately, he may be able to take his Awesome McAwesomepants act down a peg when an old friend reappears.

Encore

Notes

  • invalidname will be presenting a session at Swift By Northwest, in Seattle, October 27-28.
  • We now have a Slack for chat. Send email to invalidstream [at] gmail for an invite. Also, follow @invalidstream on Twitter for announcements of upcoming shows.

Episode 15: Asynchronous Cirqus

Preshow

Build: iOS 10 SDK Development, Chapter 7 (part 1)

Adding one interesting piece of functionality that’s been missing from our sample podcast app, we look at how to make the time label count up while the media is playing. To do this, we need to understand how closures work, so we can create one and send it to the AVPlayer as a way of saying “every 0.25 seconds, do THIS”.

Interstitial

Play: Pinball Arcade: Cirqus Voltaire

Going back to the original Pinball Arcade app for iPad and its collection of 20th Century tables, we take a spin on Cirqus Voltaire, one of the last tables produced by Bally. It’s a deep, difficult table with many sub-goals and the ball frequently on the tip of your flipper above the drain. Spoiler: my game that begins at 22:45 lasts 15 minutes, making it to the game’s final goal, the “Join the Cirqus” boss battle, at 34:10.

Read: Muv-Luv Alternative, Episode 1, Part 3

Takeru’s rapidly-accelerated re-run of “Muv-Luv Unlimited” continues, as he presses his classmates in hopes of getting to graduation and out into the field sooner. He also meets Kasumi again for the first time, who seems less wary of his intrusion than he expects.

Encore

Notes

  • invalidname will be presenting a session at Swift By Northwest, in Seattle, October 27-28.
  • We now have a Slack for chat. Send email to invalidstream [at] gmail for an invite. Also, follow @invalidstream on Twitter for announcements of upcoming shows.

Episode 14: Deculture Club

Preshow

Build: iOS 10 SDK Development, Chapter 6 (part 3)

Continuing our series on iOS SDK Development, we finish out our testing chapter with a look at how to perform UI tests. These are tests that, rather than interacting with parts of the code programmatically, actually perform simulated taps, swipes, and other interactions, to verify that the user interface works as intended. They also happen to work nicely as integration tests.

Interstitial

Play: Uta Macross: Smartphone Deculture

Time for another rhythm action game from Japan’s App Store, this time a lovingly-rendered tribute to the long-running “Macross” anime franchise. In “Uta Macross”, the idols of Walkure and rockers of Fire Bomber are brought to life with surprisingly-nice 3D graphics, and a small but growing catalog of songs from the series.

Read: Muv-Luv Alternative, Episode 1, Part 2

Restarting where he began “Muv-Luv Unlimited”, Takeru settles into life at Yokohama Base, and vows to speed up his graduation, convinced it’s his best chance to help Alternative IV succeed before the December 24 deadline. Problem is, he keeps exposing himself as a man who knows too much.

Encore

Notes

  • invalidname will be presenting a session at Swift By Northwest, in Seattle, October 27-28.
  • We now have a Slack for chat. Send email to invalidstream [at] gmail for an invite. Also, follow @invalidstream on Twitter for announcements of upcoming shows.

Episode 13: How I Spent My Summer Vacation

Preshow

Build: iOS 10 SDK Development, Chapter 6 (part 2)

Continuing our series on iOS SDK Development after a summer hiatus, we return to the topic of unit testing. The previous video made a simple test of the podcast UI, but now we want to ensure that tapping the play button actually starts playback. Because of the inherent asynchronicity of downloading and playing internet audio, this is trickier than it looks: the solution is to create “expectations” that wait for tests to pass or fail.

Interstitial

  • Geometry Wars 3 trailer

Play: Geometry Wars 3 Dimensions Evolved

Back from the summer hiatus and it’s time to game. Unfortunately, iOS 11 breaks all our old 32-bit apps, so we need to step into the modern era with games that are actually being maintained. We start tonight with the beautiful two-stick shooter from Sierra/Activision, Geometry Wars 3.

Bonus: How I Spent My Summer Vacation, 2017


The stream’s been gone for four months, an unfortunate result of Life Gets In The Way.

While I wasn’t able to stream, I did go to two anime conventions: Anime Expo in Los Angeles, and Crunchyroll Expo in 2017. This video is a slideshow of some pictures I took at each.

Read: Muv-Luv Alternative, Prologue and Episode 1, Part 1

Currently rated the #1 visual novel of all time, Muv-Luv Alternative comes out on Steam on September 18. Kickstarter backers got the game three weeks ago, and tonight, we start our playthrough. If you watched the Muv-Luv Unlimited streams in spring, get ready for Takeru to be plunged back into the world of the BETA, but this time with advance knowledge of how things will play out, and a determination to keep history from repeating itself.

Encore

Notes

  • invalidname will be presenting a session at Swift By Northwest, in Seattle, October 27-28.
  • We now have a Slack for chat. Send email to invalidstream [at] gmail for an invite. Also, follow @invalidstream on Twitter for announcements of upcoming shows.

Bonus Episode 1: Not While We’re Here

Ongoing family medical crisis has kept me from doing a regular episode, but I did want to do something… so here’s a mini-episode that replays the finale of Muv-Luv Unlimited to get a different ending than the one we saw in episode 9 (the one that Evan, the Lead Editor of Muv-Luv‘s English translation, insisted via real-time direct message that we take).

Every ending to Unlimited is a downer; at the end of this video, I explain why I like this one better, even if it’s not canonical.

Also, this episode was done to continue research on a bug I’ve encountered with Wirecast 7.6 where a glitch at some point will drop a small number of audio and video frames from the locally-archived recording, and cause the audio to be badly out of sync thereafter (more info in the Wirecast forum). Fortunately for my research, but unfortunately for viewership, the glitch happened again (around 13:35), so that’s present in this video, but I added a second of silence to resync the audio for the rest of the file after that.

Episode 11: Is It Wrong To Run Unit Tests In A Dungeon?

Preshow

Build: iOS 10 SDK Development, Chapter 6 (part 1)

Our app now has a little bit of functionality, but what will prevent our further coding efforts from inadvertently breaking something. In this chapter, we introduce automated testing, with which Xcode can exercise our code and make sure it still works as intended. In this first part, we create a basic unit test to ensure the current episode’s title label gets set correctly.

Interstitial

Play: Lost iOS Games: Mirror’s Edge

Back in the day when triple-A platform titles got equally good spinoffs for mobile, EA created a 2.5-D version of their parkour-inspired action game “Mirror’s Edge”. It’s no longer available on the App Store, so here’s a look back at how it played.

Note: Mirror’s Edge is no longer available on the iOS App Store

  • Mirror’s Edge – Xbox 360 (Amazon)
  • Mirror’s Edge – Playstation 3 (Amazon)

Read: Clannad, Part 2

Why is our protagonist, Tomoya, considered a delinquent? Maybe because he spends most of this episode playing pranks on his dumbass (but only) friend, Sunohara.

Encore

Notes

  • invalidname will be presenting three sessions at CocoaConf Next Door, in San Jose during WWDC week (June 5-8).
  • We now have a Slack for chat. Send email to invalidstream [at] gmail for an invite. Also, follow @invalidstream on Twitter for announcements of upcoming shows.

Episode 10: The Long, Long Uphill Climb

Preshow

Build: iOS 10 SDK Development, Chapter 5 (part 2)

Our GUI can handle button taps, but what about going the other direction? In the second half of Chapter 5, we look at “outlets”, which allow us to represent parts of the UI as properties, allowing us to manipulate them with code. Also, we look at how key-value observing (KVO) works, as this gives us a clean way to use the audio player’s state to set the play/pause button’s title to “play” or “pause” appropriately

Interstitial

Play: Angel Beats! Yuri’s Grand Guild Descent Operation

We take a quick peek at this Peggle-like game from the Japanese iOS App Store, which offers a super-deformed take on the characters from the Angel Beats! anime.

Read: Clannad, Part 1

We start the long, long uphill climb with the beloved and highly-rated visual novel “Clannad”. We’re introduced to protagonist Tomoya, his deeply unhappy life, and his first meeting with the shy Nagisa.

Encore

Notes

  • invalidname will be hosting a panel at Anime Central in Chicago on Saturday May 20, called Muv-Luv: Eight More Minutes of Death, covering the Muv-Luv visual novels and related anime.
  • invalidname will be presenting three sessions at CocoaConf Next Door, in San Jose during WWDC week (June 5-8).
  • We now have a Slack for chat. Send email to invalidstream [at] gmail for an invite. Also, follow @invalidstream on Twitter for announcements of upcoming shows.

Episode 9: Silver Star Stories of Distant Earth

Preshow

Build: iOS 10 SDK Development, Chapter 5 (part 1)

We’ve built a GUI, and we know how to write code in Swift. How do we bring the two together? We can use the storyboard to connect our UI elements to the source code. We start chapter 5 by wiring the podcast player’s play/pause button to a method that can actually start playing podcast audio. At the end, we also take a brief diversion into dealing with iOS security settings that make it difficult for us to open insecure URLs (plain http:), and what we can do about it for now.

Interstitial

Play: Lunar: Silver Star Story Touch

The oft-remade and re-released Lunar: Silver Star Story is a JRPG that traces its roots all the way back to the Sega CD, over two decades ago. Enhanced with speech, music, and anime cutscenes, we check out what it’s like on iOS

  • Lunar: Silver Star Story Touch on the iOS App Store (note: not yet updated for 64-bit, will not be compatible with future versions of iOS)
  • Lunar: Silver Star Harmony for PSP (Amazon)

Read: Muv-Luv Unlimited: Finale and End Credits

Alternative V and the end of everything.

Watch for where Muv-Luv lead editor @enjoievan direct-messages during my play-through to make me change my final choice point, in order to get the post-credits scene.

BTW, Muv-Luv creator Koki Yoshimune has been replaying Muv-Luv Unlimited on his livestream, and concidentally finished it the same day I did: youtube.com/watch?v=eW88EVBr1yE

Encore

Note: we now have a Slack for chat. Send email to invalidstream [at] gmail for an invite. Also, follow @invalidstream on Twitter for announcements of upcoming shows.