Something about those Problem Children… (Whimsical Weekend #3)

smug-mondaiji-tachi

From left to right: Yō Kasukabe, Asuka Kudō, Izayoi Sakamaki. This trio of teenage troublemakers forms the essence of the light novel series Mondaiji-tachi ga Isekai kara Kuru Sou Desu yo? (which translates to “Problem children are coming from another world, aren’t they?”), or Mondaiji for short, by Tarō Tatsunoko. As the story goes, the problem children are blessed with godlike super powers known as Gifts. Specifically:

  • Yō’s Genome Tree allows her to communicate with animals and call upon the powers of those whom she has befriended.
  • Asuka’s Authority can be used to manipulate lower-level beings or to bring out the utmost potential of other Gifts.
  • Izayoi’s Code Unknown gives him super strength, which includes the ability to cancel other Gifts.

Consequently bored with their daily lives, the problem children receive an invitation to the world of Little Garden, which they naturally cast aside their own worlds to accept. Little Garden can be described as a haven of many convergent histories: past, present, and future; tangible and conceptual. For example, each of the three problem children is summoned from a different era: Asuka from the post-WWII era, Izayoi from a modern point in time, and Yō from the future; plus many residents of Little Garden are not merely human. Take for example the first one whom the trio meets: Kuro Usagi (Black Rabbit).

She is a human-like “moon rabbit” who, after requesting that the problem children be summoned, introduces them to Little Garden and tells them the ins and outs thereof. The central point of her introductory lecture is that being in possession of a Gift grants one the privilege of participating in Gift Games, which are more or less the law of Little Garden. The concept behind Gift Games is simple: a Host establishes an objective accompanied by a prize for the Player(s) who complete the objective. A Gift Game may or may not include conditions to affect how the Player(s) behave or what the Player(s) put on the line.

Another point of Kuro Usagi’s lecture is that it is required to be part of a Community…and of course she invites the problem children to her own Community. However, because the Community is in shambles as a result of a Demon Lord attack, her primary motive is to have the problem children use their top-tier Gifts to work towards reclaiming the name and flag of the Community. Although Izayoi figures out the ulterior motive, he fully accepts the invitation to the no-name Community, fixated on the idea of taking on other Demon Lords as they seek out the one who attacked their Community. (Asuka and Yō have no objections either.)

So, I guess that about covers the introductory plot points. Anyway, back on track with the problem children. They may have top-tier Gifts, but they like to cause trouble wherever they go, particularly by messing with Kuro Usagi (through which they respectively play boke and tsukkomi). In terms of personality, Izayoi is a forward type of guy who describes himself as “vulgar, brutal, and hedonistic”, Asuka is sassy, and Yō is the type to play along. All I’m saying is…everything about this trio is just awesome, and that’s primarily what leads me to adore the Mondaiji series as a whole.

Speaking of the series, the structure thereof is as follows: While the original light novel has 12 volumes, the manga adaptation has 18 chapters that cover the first two volumes, the spinoff manga (Mondaiji-tachi ga Isekai kara Kuru Sou Desu yo? Z) has 15 chapters, the anime adaptation has 10 episodes (also covering the first two volumes) plus an OVA (which does not cover any part of the light novel), and the sequel (Last Embryo) is currently at volume 3.

Honestly, it’s a shame that the anime, as short as it is, has no more than one season. Then again, there’s so much more content covered by the light novel, including stories of the past (particularly in volume 9 and the second half of volume 8), and I suppose the conclusion of the Pied Piper of Hamelin Gift Game is a better stopping point than any. If there were a second season, I imagine it would cover volumes 3-5, even though that’s a greater number of volumes than how many the initial season covers (because the Harvest Festival in Underwood, introduced in volume 3, does not conclude until volume 5). Then again, therein lies another issue: What about subsequent seasons? Volumes 6-12 cover a lot of content (although 1.5 volumes are stories of the past) and are chock-full of cliffhangers, so it would be tough to decide how to continue from a hypothetical second season. For that reason, at this point, I think a Last Embryo adaptation would be more likely than a second season of the Mondaiji anime, and also because the anime has gone so long without a second season that the sequel to the light novel is already in progress. I haven’t actually read Last Embryo (yet), but…yeah, that’s what I think. Sadly there still remains the possibility that the Mondaiji series won’t even get another anime adaptation, but…a man can dream.

So, how did I happen to stumble upon this series? Well, some time around mid to late 2013, when I really started getting into anime, I was part of an online community of Expert Guitar Hero players, and one had a profile picture looking kinda like this:

screen-shot-2016-10-01-at-3-50-08-pm

…and so part of me was curious as to who this bunny girl might be. At some point, I stumbled upon the manga titled Mondaiji-tachi ga Isekai kara Kuru Sou Desu yo? Z thinking, “Wow, this is a long title. Let’s see what it’s about. Hey, I recognize that bunny girl! I wonder if there’s an anime of this…” Surely enough, there was. I watched it fully and also read the spinoff manga. My thoughts at first were: “Well, it’s pretty good. I’ll just leave it at that.” But then, some time late 2014, I decided to watch the anime again. Then it ended up becoming my favorite, and to this day it still is.

I mentioned that the problem children themselves are the primary reason; other reasons include the video that accompanies the ending theme song “To Be Continued”, the opening theme song “Black † White” to some extent, the voices of Izayoi and Shiroyasha (by Shintaro Asanuma and Satomi Arai respectively), the characters in general (Ratten is the only one I would say I even remotely dislike), the idea of a Community in shambles rising to reclaim their name and flag with the help of a particularly strong set of players, the reasonable level of fanservice (although the OVA takes it a little far), the deepness of the lore, and the thought and action involved in the Gift Games.

As for other parts of the series, I have not read the manga adaptation nor Last Embryo, but I have read the spinoff manga and light novel. Starting with the spinoff manga, I would say that it focuses more on the comedic aspect of the Mondaiji series, including the boke+tsukkomi moments shared by the problem children and Kuro Usagi, the tension between Pest and Shirayuki of Leticia’s maid squad (Shirayuki is the serpent whom Izayoi defeated near the beginning of the story for the water tree sapling, reduced to human form), and poking fun at some new characters as well (such as the butcher and the hamster).

As for the light novel, it extends beyond its adaptations not only in terms of content, but also in terms of descriptiveness. For that reason, I would consider any given adaptation naught more than a preview of the light novel…and the same goes for all light novel adaptations, really. That said, re-watching the anime after completing the entire light novel (and re-reading the spinoff manga) was a refreshing experience for me.

Also, to those who have seen the anime and not experienced the light novel, I would advise against skipping volumes 1 and 2; not only are the volumes more descriptive, but they contain afterwords from the author, and also a few story inconsistencies, including:

  • In the anime, Kuro Usagi challenges the problem children to an introductory Gift Game to accompany her explanation of Little Garden. This Gift Game does not happen in the light novel.
  • The female shop assistant, though a minor character regardless (insofar as she is never given an actual name), plays a more active role in the light novel.
  • In the light novel, Asuka summons Deen, a red iron giant bestowed unto her by the 130 spirits of Rattenfänger, from her Gift Card the second time she sees Ratten. At that point in the anime, she simply appears atop Deen’s shoulder.

There may be more that I haven’t mentioned, but if so, all the better.

But anyway, the light novel as a whole is really amazing, even though it’s very lore-heavy. I would have to say that my preferred volumes are 5 and 12. Volume 12 is an obvious preference because it’s natural to prefer newer content over older content (and some of the plot twists in that volume are mind-blowing), while volume 5, along with featuring the girls in swimsuits (which are more appealing than in the OVA), contains what I find to be the most comedic moment in the series: http://pastebin.com/7YPSa3nQ

So, well…that’s all I have to say about the Mondaiji series. I can declare with confidence that it is my favorite anime/manga/novel series, although I find difficulty in explaining the exact reason why, let alone recommending the series to others. I’ve stated most of my reasoning above, although the fact that it’s scattered among so many other words is an accurate depiction of how such reasoning lies within my thoughts. Perhaps there’s another way…?

Similar Anime

Ah, yes. Whether through inspiration or coincidence, it’s likely that any given form of media will somehow be similar to another. In that case, I wish to talk about some anime series that I have watched and find to be similar to Mondaiji, and also try to explain why I prefer Mondaiji.

No Game No Life (henceforth NGNL)

This is the most obviously similar anime series to Mondaiji, because the concept is just about the same: Gifted humans who are bored with their lives are invited to a world of fantasy in which games are law and humans are looked down upon. Also, Sora is strikingly similar in personality to Izayoi. However, as similar as the concept is for both series, there are still some differences: The character set as a whole is different; the world of NGNL is more based on fact and logic whereas that of Mondaiji is more based on myths and legends; the main duo of NGNL is inseparable while the main trio of Mondaiji just so happens to converge from different eras (consequently, the duo of NGNL has no evident difference in level, while the trio of Mondaiji starts off with Izayoi being the strongest (and the others don’t even come close until the later stages of the light novel)); the art style and music are evidently different; NGNL is more perverted; and NGNL contains references to otaku culture.

Although NGNL is evidently more popular than Mondaiji, I wholeheartedly prefer the latter. First off, I prefer the art style, the music, and most importantly the character set of Mondaiji. Speaking about the characters: Sora and Izayoi are very similar, but I feel like Izayoi is just cooler, specifically in terms of voice and capabilities. As for the other characters, none of the other NGNL characters really stands out to me (and Stephanie Dola in particular is kind of irritating), whereas Mondaiji has awesome characters in Yō, Shiroyasha, and to an admittedly lesser extent Asuka and Kuro Usagi. I will concede that the whole “fact and logic” aspect of NGNL makes the world and the main characters more relatable, but both series are works of fiction regardless, and so I shall lean towards the more fictitious. That’s just how I am.

One Punch Man (henceforth OPM)

Saitama has super strength just like Izayoi, and the other characters have their own quirks as well. That’s where the similarities end, I guess. Talking about differences, the world of OPM has a one-world structure, and the hierarchy is more individual-based than community-based; in OPM each hero is given their own rank based on heroic prowess, whereas in Mondaiji each Community can choose to reside on a certain level based on its overall prowess in Gift Games (or something like that). On that note, while Saitama is obviously the main character of OPM, Izayoi is more like one of a trio of main characters (i.e., the problem children). Heck, OPM and Mondaiji are completely different genres: super power parody and parallel world fantasy, respectively. (On another note, OPM is manga-based whereas Mondaiji is novel-based, and OPM is getting a second season soon.)

This comparison is a toughie. In regards to personal ranking, I would say that OPM is a close second to Mondaiji, and one reason is because Saitama is such a similar character to Izayoi: a guy with super strength who does what he does for fun. Saitama has his own fair share of quirks as well, particularly that he usually takes on a bland appearance like on the cover, but then his appearance changes when he gets serious, like this:

Regarding the music, I would say OPM has a better opening theme, but the ending theme…is not my type of song. What ultimately leads me to like Mondaiji better, though, is that OPM doesn’t quite have as stellar a set of side characters…although Genos and Mumen Rider are pretty cool. (Tatsumaki would be cool as well if she didn’t have such an annoying voice.)

Kono Subarashii Sekai ni Shukufuku wo! (henceforth KonoSuba)

10-episode (plus 1 OVA) light novel adaptations with long titles, parallel world fantasy genre, and quirky sets of four characters (three female and one male) aspiring to defeat a certain Demon Lord. As for differences: Kazuma is the only one of the four main characters known to originate from the real world (at least as far as the anime canon goes) and usually the one to play tsukkomi amongst the quartet; the characters of KonoSuba start off weak instead of strong (although Megumin isn’t so much weak as she is limited); KonoSuba actually has RPG themes and is (arguably) more perverted; and the art style is evidently different.

KonoSuba is a pretty good show, particularly in the comedic department, but if there’s anything that I would point out as bothersome, it would be the art style. It’s not so bad in the manga and light novel (though I’ve only seen covers of the light novel), but in the anime it’s…unsettling. On that note, it bugs me how Aqua’s butt and Luna’s (the quest giver’s) breasts are so ridiculously exposed in their regular outfits. Mondaiji, on the other hand, only has Ratten with that caliber of exposure. (I mean, Kuro Usagi and occasionally Asuka show some cleavage, but that’s not too bad.) Plus, it shouldn’t be a surprise at this point that I prefer the characters of Mondaiji over those of KonoSuba, and the only KonoSuba characters who can remotely contend are Megumin and, to a lesser extent, Kazuma. Also, to me, the opening and ending theme songs of KonoSuba are nothing special.

Conclusion

I’m not saying that Mondaiji is for everyone, because that would be a total lie; I’m just saying that Mondaiji is the series for me, and part of me is saying that the series gets less recognition than it deserves. I also don’t mean to imply that anyone who prefers any of the above three shows over Mondaiji is wrong, because most of the comparison factors that lead me to prefer Mondaiji are pure bias, and openly slandering opinions is uncool. I’m just saying: If anyone, preferably who has seen any or all of the above three shows, has not watched the Mondaiji anime yet, I would recommend giving it a try. If anyone has already given it a try, I would recommend waiting until about a year after the first time watching and giving it another try, because sometimes once is not enough (as was the case with me). However, if anyone has already done so and still does not enjoy the anime as I do, then so be it.

That’s all that I have to say. I hope this writing was enjoyable and/or informative; if not, I apologize.

Nowi Wins À la prochaine! (Until next time!)

Top Three Thursday 11/12/15: Christian music for non-Christians

As I mentioned in an earlier Top Three Thursday, even though I usually keep things secular on this blog, I am a follower of Christ who frequently listens to K-Love on the radio (in fact, pretty much any time I drive solo), and I enjoy Christian music, between the power behind the lyrics and the occasional upbeat song here and there. Be that as it may, I do not feel comfortable sharing my faith with others. Still, if I had to recommend Christian music to people of different faiths, three particular pieces come to my mind.

 

3. My Story – Big Daddy Weave

“Oh, to tell you my story is to tell of Him.” Honestly, we would be nothing without Jesus. Wherever our faith may be placed, His kindness draws us in. His love never gives up. It gives us hope, lets us live freely (not to be taken out of context), and triumphs over the enemy. No matter what we are going through, He is writing our individual stories as we speak, and we will, before long, realize to whom we truly belong.

 

2. Prodigal – Sidewalk Prophets

For those unfamiliar (including myself at the time of writing this), a prodigal is defined in this context as a person who leaves home and behaves recklessly but later makes a repentant return (alluding to a parable in Luke 15:11-32). The bottom line of the song is: no matter how far you may think you are from God, He is the Father of mankind who loves you as His flesh and blood. Moreover, we all have this longing deep down in our hearts for an unconditional love like His, a longing that is especially prominent in times of desperation. The song is upbeat, and it carries a powerful message.

Also, looking back through the parable mentioned earlier, I noticed how the prodigal son had a feast prepared for him whereas his brother, who had been slaving away all his life for the father’s sake, did not receive such a feast. This shows how much more significant it is for a lost person to be brought back than for an already faithful person to continue being faithful (which could be seen as one reason for this blog post).

 

1. Flawless – MercyMe

The music video shown above flawlessly (heh) depicts the overall message of the song. Notice how the band members are covered in paint that gradually disappears as the song progresses, as an accurate depiction of the effects of Jesus’ death on the cross—He suffered so that we would be made flawless in Him by faith. Also notice the people who are shown during the chorus—at first, they are labeled with some form of pain (which is not necessarily physical); then, at the last chorus, they are simply labeled “FLAWLESS”.

Additionally, the first verse provides an accurate description of how we perceive each other in a worldly view: doing right and wrong, thinking there’s worth in what we do. In truth, however, it is not about what we have done, but what Jesus has done for us. His unconditional love is indeed enough to take our wrongs and make us righteous. The cross has made us flawless.

 

Like before, I recommend to anyone reading to visit K-Love’s online radio player at http://www.klove.com/listen/player.aspx (again, regardless of faith). God bless the people who were inspired to compose this music in His name so that we may have an easier time connecting with Him.

Nowi Wins À la prochaine! (Until next time!)

Spontaneous Saturday 11/7/15: My own fantasy story

Even though I have no desire to take up writing as a profession, I have a secret hobby of writing fantasy stories. It’s been a thing since…well, as long as I can remember, honestly. These stories, much like this blog, are a great outlet for me to dump my thoughts, so they mostly draw inspiration from video games, anime, or other media that I consume.

Right now, I am working on one in particular, titled Cinq du Soleil, which is a sort of pervy fantasy harem story with magical elements. I can’t guarantee it’s good, though, because I’m hard on myself because, again, I’m not a professional writer, and I’ve been single my whole life (which I feel says something about my perception of women). That said, if you wish to see my progress on this story (which you might even catch me editing), click the link below:

https://docs.google.com/document/d/1eJB_L3JOYaCPpSF2iJjvZjZuPi3i5yc1ifD7N1UynVs/edit?usp=sharing

The rest of this post will explain in detail any background information surrounding the creation of this story; i.e., the untitled precursor concept (for lack of a better term) and any other inspirations and/or explanations behind my ideas.

Precursor

The precursor to this story used to be kept on a text document titled “Brainstorming lewd crud” that is no longer in my possession today, so chances are I may not remember everything about it.

Chiefly inspired by the anime Trinity Seven, the original idea involved two male protagonists and five female (making seven total). The male protagonists were Toru Koroi and Ao Mirakane (the latter of whom is now an antagonist), and the five females were about the same as they are, except Sumire’s last name was Dajira before I changed it to Miyazaki, and Yue Panishi used to be named Panishi Yuu.

Another similarity between the precursor and the original is that it involved five antagonists, granted there are some slight inconsistencies—in Ao’s place was a glasses girl (like Panishi) named Nao some-last-name-I-can’t-remember, Midori’s last name used to be Bolt, and in Dealer’s place was a similar character named Xenon (who was supposed to be female with an alter ego named Sena). Also, I was considering making the L’Ouverture character’s first name Toussaint (with a different last name, of course), but I had no idea how to write that in katakana at the time, and it didn’t occur to me back then to just check the Japanese version of the Wikipedia article of Toussaint L’Ouverture. (I like to provide Japanese writings of most of the names just because.)

Their weapons, however, were somewhat different from how they are now. The glasses worn by the likes of Toru and Panishi used to fire artillery (bullets, missiles, etc.) as opposed to their current purpose of facilitating the use of magic. In addition:

  • Aka’s sword, Picante, used to be named Taki, a random name that also serves as an inversion of Ao’s old sword name, Kita.
  • Sumire used to have a toy hammer (sort of like that of Amy Rose) named DajiPiko, which was a questionable idea in my mind.
  • Kaori’s dual arm blades, Aigu and Grave, used to be Wind and Earth, respectively, before they were converted to pure Wind in light of a radical change in lore explained later.
  • Midori’s swords had a different name, but I don’t remember what.
  • Xenon… I don’t even know if she even had a weapon.

The characters’ specials were different as well. Sumire’s was some sort of threefold attack (of which I can’t remember the name), Panishi’s was a mass firing of weapons (named Heavy Artillery in the precursor, even adapted to Open Fire in the current rendition before it was replaced with Metal Bind), and Mona’s was a love-based attack (of which I can’t remember the name) that dealt heavy damage to non-allies.

Besides that, the whole thing about elements and spells and Chief Elementals and whatnot was not in the precursor. Instead, the precursor was centered around a bunch of monsters (summoned by Neguro L’Ouverture) that were named using corrupted spellings of French animal/monster names from A to Z, and those whose names were closer to Z were more powerful.

I guess that’s all I have to say about the precursor, except that it wasn’t really a fleshed-out story, just a bunch of “Bits and Pieces,” as I like to call them.

Inspirations/Explanations

  • Again, the anime Trinity Seven is the chief inspiration of this story. During the season it was airing, I thought for some reason, “Hey, this inspires me to create my own harem story! I’ll even put seven main characters in it!” Thus, the precursor was conceptualized. (That said, if you are reading this section before or while reading Cinq du Soleil, do not expect the male lead to be much like Arata.)
  • The male protagonist duo, as it was in the precursor, was modeled after Tiz and Ringabel in the game Bravely Default.
  • Sumire’s first name and appearance (and, to some degree, her personality) are inspired by Sumire Saitou, one of my favorite characters of all time, from the manga K-On! Highschool.
  • The name Panishi is a romanization of how a Japanese person would say the English word “punish,” hence her punitive behavior at times. Her precursor name (Panishi Yuu) is supposed to sound like “punish you,” but her current name (Yue Panishi) is a bit more subtle.
  • The names Aka, Ao, and Midori are based on Japanese color names: red, blue, and green, respectively.
  • Aka’s last name (Fujiyama) meaning “Mt. Fuji” is pure coincidence, I promise. I didn’t intend anything by it; it just came off the top of my head.
  • Aka’s sword name, Picante, is Spanish for “spicy,” as a contrast to Ao’s sword name, Gelato, which is Italian for “frozen.”
  • Kaori’s last name (Delacroix) comes from that of Eugène Delacroix, which was to me (at the time) just some random name I learned about in 10th grade history. Also, my intention with her was to make her a French speaker, so I had to come up with something French.
  • Kaori herself is modeled after Claire Rouge from the anime Seirei Tsukai no Blade Dance, and the male lead encounters her in a similar situation (especially so in the precursor, but Kaori’s response to the situation is slightly altered in the current rendition).
  • Kaori’s dual arm blades are supposed to resemble those seen in RWBY Volume 2 Episode 12. Their names, Aigu and Grave, are based on the French names of upward and downward accents, respectively. Moreover, Kaori’s special, Circonflex, is based on the accent that is effectively a combination of the two.
  • Mona Koroi is modeled after the titular character of the manga Cyclops Shoujo Saipuu in terms of her brocon nature and relatively large size.
  • Oda Koroi is named after Oda Nobunaga.
  • Nao, who was in the precursor but not in the current rendition, was based on the character Nao Okuda from K-On! Highschool. Thus, she was intended to be associated with Sumire.
  • Midori’s weapons, Sativa and Sativus, are named after the feminine and masculine forms (respectively) of a Latin botanical adjective meaning cultivated.
  • Neguro’s last name, L’Ouverture, comes from that of Toussaint L’Ouverture. (His dark skin is also part of this connection.) In a similar vein to Delacroix, this name is used as a random French name to signify that he is a French speaker.
  • The whole thing in the precursor about one of the antagonists (Xenon) having an alter ego (Sena) was chiefly inspired by Kili Surtr Muspelheim from the anime Juuou Mujin no Fafnir, who became a wolf in sheep’s clothing by the second half of the anime, when she was disguised as Honoka Tachikawa.
  • The name Tudi (given to the chief elemental of Water) is honestly a name for lack of a better name: a random name that vaguely sounds like “too deep.”
  • Créé is French for “created,” which is based on how the character Créé is artificial.
  • As for the title…I’ll describe it using the words of Kaori Delacroix in the story:
    “‘Cinq’ means ‘five,’ which is meant to symbolize that there are five of us girls who each use one element of the Soleil spectrum, of which there are five total. It is also a play on the term ‘Cirque du Soleil,’ which delivers the message that we can put on quite a show. … The ‘five’ part of the name only refers to me, Sumire, Yue, Aka, and Mona.”

I guess that’s it, maybe even too much. Perhaps I may have forgotten something. I will update the post if so.

 

Nowi Wins À la prochaine! (Until next time!)

Top Three Thursday 10/1/15: Advice I would give to new Twitch users

Twitch.tv is a top streaming website where people stream media (mostly video games) live and receive input from a chat full of users talking amongst themselves or to the streamer. However, for those who are new to Twitch and have never used chat before, I have some advice. (Keep in mind that this may apply to not-so-new Twitch users as well.)

3. Know your emotes

If you don’t know your basic emotes, like Kappa , FrankerZ , and BibleThump , educate yourself at twitchemotes.com. It may save questions about “emoji”, and most of the global emotes have descriptions when you click on them, so that you won’t have to ask about the origin of emotes either. For instance, when you click on Kappa, it shows this:

Screen Shot 2015-10-01 at 2.19.44 PM

Also, if an emote code appears as text, it means one of three things:

  1. The emote code has at least one non-space character adjacent to it. For example, typing “OpieOP/” appears as “OpieOP/”, not “/”. This update occurred a few months ago, but some people still don’t seem to get it.
  2. The user does not have sufficient privileges to post the emote. This applies to Twitch Turbo emotes (KappaHD, MiniK, copyThis, pastaThat, imGlitch) and subscriber emotes.
  3. The emote is either FrankerFaceZ or BetterTwitchTV, and you have not downloaded the extension in question. This is why you may see text like “ZreknarF” (FFZ) or “FeelsBadMan” (BTTV).

On that note, it’s important to know your extensions, and I mean study the settings thoroughly. In FrankerFaceZ, click the gray  icon in the chat box, which will pull up a menu not only showing the channel’s custom emotes but three other menus as well. The gear is where the settings are found. A feature of which I would especially like to raise awareness is the “Enter Emoji By Name” feature.

Screen Shot 2015-10-01 at 11.21.26 PM

FrankerFaceZ emote tooltips are capable of showing emoji codes, but typing the codes won’t result in emoji unless this setting is turned on. Hopefully now I’ll see less “:+1:” (for instance) as plain text.

BTTV settings can be found by expanding the left pane and clicking on the upside down red Twitch icon beside your username.

Screen Shot 2015-10-01 at 11.27.01 PM

For users of BTTV, remember to turn on “BetterTTV GIF Emotes” before asking what happened to “SourPls” or “(ditto)” or whatever.

I guess the main point is: look before you leap.

2. Respect the streamer and the other chatters

They’re humans, and you are too (most likely). Don’t just belt out an insult and expect to get away with it without a fair warning. Don’t post random/obscure links without permission, and use emotes carefully. Remember: adding  to the end of a hateful comment doesn’t always (if ever) justify it. If you get purged or timed out for doing something wrong in chat, don’t do it again. Above all, don’t complain about how the chat is moderated; it only makes things worse. What can I say? Use common sense. It’s not that hard. Some streamers handle misconduct better than others, but it’s safest just to be as careful as possible, which brings me to my next point…

1. Read the title and/or info before asking questions

Even if you’re on mobile…at least try. Or, just use mobile exclusively for the streams you’re familiar with. I’m tired of seeing, “Oh, I’m on mobile so I can’t read the title” as an excuse for a question that can be answered by reading the title. Look before you leap. (Also, I wouldn’t recommend Twitch mobile unless it’s your only resort. Then again, I’ve never used it.)

If you enter a stream for the first time, the first place you want to check is the info, which can be found by scrolling down on a normal web browser. The info should tell you everything you need to know about the streamer. Some combination of FAQ, rules, social media, etc. can be found down there. Don’t ask questions before reading the info, or else your question may be one that can easily be answered by the info.

 

Man, all I’ve said in this entire post is along the lines of “use common sense” and “look before you leap.” Well, sometimes obvious advice is the best advice. Still, though, I’m not trying to be forceful; I’m just giving advice. I will admit that I’ve had my share of dumb mistakes, and I’m not even going to pretend that I’m perfect. It’s…again, just advice. (Also, I could have posted this earlier (and maybe better), but my laptop lost its ability to connect to WiFi during classes. Thankfully, it’s all fixed now.)

Nowi Wins À la prochaine! (Until next time!)

Top Three Thursday 8/20/15: Favorite Japanese music

Once again, it’s 10 pm and I honestly have no particular topic of interest, so I’ll just have to use the first thing that comes to mind and is within my comfort zone.

This is sort of, but not really, a redux of the top three anime theme song list I did last year. Since I’ve suddenly gained an interest in Project Diva (Vocaloid) streams on Twitch, I decided to broaden the scope beyond just anime theme songs because otherwise I wouldn’t have much to explain beyond what I previously listed. (Maware! Setsugetsuka has become my favorite anime theme song, followed by Jinsei☆Kimiiro (Jinsei ending theme) and black bullet.) Also, like before, these are YouTube videos, so sorry if they are muted or taken down because of copyright or whatever.

 

3. “Let’s Say the P Names!” by Rin and Len Kagamine

I’ll admit: I am a sucker for upbeat music. As long it doesn’t have any flagrant cursing in it, it’ll at least capture my interest. I think the first time I became interested in Project Diva gameplay was when I happened to catch Twitch streamer DarkSpinesSonic playing an edit of the song above in an attempt to “get good” at the game. He does, in fact, have a Perfect on it, and I believe that is what piqued my interest in the song. Well, it was actually more when I started watching Cirno_TV play the game, but the aforementioned Perfect is at least partly responsible for when this song game to mind as I considered which of the songs I especially preferred.

 

2. “Maware! Setsugetsuka (回レ!雪月花)” by Hitomi Harada, Ai Kayano, and Yui Ogura

It was the start of 2014 when I started liking that song (when I first heard it, i.e. when I watched the first episode of Machine Doll to full completion, I was embarrassed by it, but that tends to happen with songs that I end up liking) and I must say that it is still awesome. black bullet has lost its luster (to me, anyway), and since I don’t feel that way about this song (and I haven’t found many other diamonds in the rough), it has become my new favorite anime theme song. It really is catchy, and that’s why I enjoy it so much. Plain and simple.

 

1. “Gothic and Loneliness” by Rin Kagamine

Seeing Cirno_TV play Project Diva edits is what got me interested in this song. The more I think about it, the more similar it seems to black bullet, mostly because of the similarity of the percussion, how appealing the vocals are, and how much it seems to reflect the essence of a battle in action. I will admit, though, the A#6 (or is it A#5? I’m bad with octaves…) at the end of the song is another factor that has me attracted to it.

 

Nowi Wins À la prochaine! (Until next time!)

Top Three Thursday 7/23/15: SGDQ 2015 runs I am looking forward to

SGDQ (Summer Games Done Quick) 2015, the most well-known speedrunning marathon, is scheduled to begin in 3 days (which is relatively late considering last SGDQ took place near the end of June). To view the event, visit http://www.twitch.tv/gamesdonequick. To view the schedule, visit https://gamesdonequick.com/schedule.

Since I have no better idea for a topic today, I wish to talk about three runs in SGDQ that I will be most likely be viewing if circumstances allow.

 

3. The Legend of Zelda (swordless) by jkoper

Honestly, it was hard to choose third because there are only two runs I recognize right off the bat, but I noticed this little gem on the schedule:

I have to say, the comment alone has me interested. Great reference to the game in question and, while I’ve never actually seen the run before, I’m excited to see how it unfolds.

 

2. Metroid Prime Hunters (All Items) by Mr_Shasta

Metroid Prime Hunters is the first (and second-to-only) Metroid Prime game I’ve ever played (and I wrote an article about it way back when), so naturally I’m anticipating an All Items run from the one and only world record holder Mr_Shasta.

For clarification, the definition of the All Items category is: “Collect all weapons (including the Omega Cannon), UA expansions, missile expansions, and energy tanks.” It’s not called 100% because getting 100% in Metroid Prime Hunters requires all scans, a vast majority of which are not a part of All Items.

 

1. Donkey Kong 64 (No Levels Early) by 2dos

I’ve mentioned before how much I like watching DK64 speedruns and hanging out at 2dos’ stream, so of course I’m excited for this run. It is scheduled at a pretty inconvenient time for my curfew (1:25 AM EDT), but hopefully it will get pushed back earlier, otherwise I might have to violate my curfew for the occasion.

 

Sorry for the terse descriptions, but that’s honestly all I have to say for now.

Nowi Wins À la prochaine! (Until next time!)

Spontaneous Saturday 7/18/15: The most situational GUI I’ve ever coded

This is a relatively long post, so I suppose I’ll create a table of contents for it. Just use Ctrl+F (command+F on Mac) to jump down to a particular heading.

  • Introduction (problem statement)
  • GUI
  • Coding process
    • Setting it up
    • Variables
    • Constructor
      • Radio buttons (row 1 columns 1&2)
      • Text fields and checkbox (row 1 columns 3-5)
      • Buttons and labels (row 2)
      • Putting it all together
    • Action listeners
      • RejectButtonListener
      • Other action listeners
  • Closing remarks

 

Introduction (problem statement)

In Pokémon Omega Ruby, I’m on a legendary hunt with standards, meaning my goal is to capture all of the legendaries I can, but at the same time I’m very specific about the nature and three perfect IVs of the legendaries (except Ho-Oh because it’s not worth using without Regenerator). In particular, I’ve been struggling with Reshiram quite a lot, what with its difficult catch rate and the specificity of what I’m looking for. For this battle, I have the following party:

  • Abra, Timid nature with Synchronize
  • Gallade with Galladite and the moves Thunder Wave and False Swipe
  • Hawlucha, HM user
  • Sharpedo, HM user
  • Tentacruel, level 100 for access to Reshiram in the first place (my first ever shiny as well); would be Zekrom, but apparently you can’t trade event Pokémon through the GTS (which is my only safe method of transferring from Y to Omega Ruby)

The HM users are not required, and I would trade Sharpedo for a Pokémon with 120 Speed, but I don’t have one in my immediate possession, so I won’t bother.

My strategy is to lead off with Abra, weaken with Gallade (Brick Break in base form, then Thunder Wave and False Swipe in Mega form), switch to Tentacruel until Reshiram runs out of Fusion Flares, and then use Gallade for the rest of the battle (if applicable). Even if it’s paralyzed at 1 HP, it’s awfully difficult to catch and, once again, I am very particular in what sort of Reshiram I want: Timid with perfect Attack, Special Attack, and Speed. It may seem weird to want perfect Attack with a Timid nature, but it’s required to be able to OHKO Ho-Oh with Life Orb Stone Edge without a Defense-hindering nature. The stats for Attack, Special Attack, and Speed required by my standards are 126, 170, and 121, respectively, and I won’t settle for less.

Because catching Reshiram is so tedious, I decided to use Reshiram’s damage outputs to help evaluate whether to keep trying to capture Reshiram or just reset, for which I used an online damage calculator.

The damage calculator results are as follows:

Calculations against Gallade
Fusion Flare vs. Gallade: 45-54 (67-81 on crit); cannot do 47, 50, or 53 (68, 71, 74, 77, or 80 on crit)
Slash vs. Gallade
• base: 25-30 (38-45 on crit)
• Mega: 19-23 (28-34 on crit)
Extrasensory vs. Gallade: 24-29 (36-43 on crit)
Dragon Breath vs. Gallade: 27-33 (42-49 on crit); cannot do 29 or 32 (44 or 47 on crit)

Calculations against Tentacruel
Fusion Flare: 19-23 (29-34 on crit)
Extrasensory: 42-50 (62-74 on crit); only deals even number damage
Slash: 23-28 (35-42 on crit)
Dragon Breath: 24-28 (34-42 on crit); cannot do 26 (35, 38, or 41 on crit)

I would also keep track of the number of Fusion Flares Reshiram has used so I know when to let Tentacruel faint and sub in Mega Gallade.

However, I found that some of the subtraction between the HP before and the HP after one of Reshiram’s attacks was too bothersome to do in my head, to the point where I felt I had to use a calculator for number crunching. Thursday at 2 a.m. (my curfew as of recently), it dawned on me that maybe I should make a GUI so it would be easier to determine, based on the events of the battle, whether the Reshiram was acceptable or not, in such a way that alleviates the problem of mental math. I was thinking it might take a while and might not save as much time as I’d spend making it, but it just seemed crazy enough at the time that it was something I’d do anyway.

GUI

The day after, using code I created in high school and some resources on the web, I coded the GUI that I had envisioned that night using Eclipse for Java (Luna version because I can’t be bothered to update). I’d say it took me an hour or two, and as situational as it is (especially given the project name “resh”, the class name “Resh”, and the title “time saver?”), it’s a functional and quite useful tool for me.

Resh GUI

The GUI is made up of ten main components in a 2×5 grid:

  • row 1 column 1: radio buttons to select who’s taking the hit
  • row 1 column 2: radio buttons to select Reshiram’s attack
  • row 1 column 3: text field for HP before the attack
  • row 1 column 4: text field for HP after the attack
  • row 1 column 5: checkbox to toggle whether the hit was critical
  • row 2 column 1: button that increments the Fusion Flare counter
  • row 2 column 2: button that sets the Fusion Flare counter to 0
  • row 2 column 3: label (Fusion Flare counter)
  • row 2 column 4: button that changes row 2 column 5 given the information in row 1
  • row 2 column 5: label that tells whether to keep or reject the Reshiram

The default settings for the GUI are theoretical results of the maximum damage dealt from 170 Special Attack Reshiram to Gallade with a critical Fusion Flare (except the Fusion Flare counter starts at 0).

Coding process

Full code: http://pastebin.com/SyZKKAz1

Setting it up

The first part of the coding process, naturally, is importing the necessary tools to build a GUI. This is done using the following series of statements:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

Next, it is important to make sure that the class extends JFrame so that you can create the GUI frame via the constructor. Also, at the end of the class body, it is essential to create a main method that invokes the constructor. For example:

public static void main(String[] args) {
    new Resh();
}

A completely optional step in setup is to “Add default serial version ID”, which is a quick fix to the warning “The serializable class [classname] does not declare a static final serialVersionUID field of type long”, the whole reason why I have the “private static final long serialVersionUID = 1L;” part of my code. The only reason I did this was in an attempt to compress the code into a .jar file, but since it wouldn’t work no matter what I tried, I just gave up.

Variables

In terms of variables, the only ones required for this particular situation are the possible damage values and the components of the GUI.

The damage values are declared as arrays of ints, like so:

private int[] dmgFFG = {45, 46, 48, 49, 51, 52, 54};
private int[] dmgFFGc = {67, 69, 70, 72, 73, 75, 76, 78, 79, 81};
private int[] dmgDBG = {27, 28, 30, 31, 33};
private int[] dmgDBGc = {42, 43, 45, 46, 48, 49};
private int[] dmgXSG = {24, 25, 26, 27, 28, 29};
private int[] dmgXSGc = {36, 37, 38, 39, 40, 41, 42, 43};
private int[] dmgSG = {25, 26, 27, 28, 29, 30};
private int[] dmgSGc = {38, 39, 40, 41, 42, 43};
private int[] dmgSMG = {19, 20, 21, 22, 23};
private int[] dmgSMGc = {28, 29, 30, 31, 32, 33, 34};
private int[] dmgFFT = {19, 20, 21, 22, 23};
private int[] dmgFFTc = {29, 30, 31, 32, 33, 34};
private int[] dmgDBT = {24, 25, 27, 28};
private int[] dmgDBTc = {34, 36, 37, 39, 40, 42};
private int[] dmgXST = {42, 44, 46, 48, 50};
private int[] dmgXSTc = {62, 64, 66, 68, 70, 72, 74};
private int[] dmgST = {23, 24, 25, 26, 27, 28};
private int[] dmgSTc = {35, 36, 37, 38, 39, 40, 41, 42};

The variable names all follow the same format: they start with the three letters “dmg”, followed by a 1 or 2 letter abbreviation of Reshiram’s move (FF for Fusion Flare, DB for Dragon Breath, XS for Extrasensory, S for Slash), a 1 or 2 letter abbreviation of the defender (G for Gallade, MG for Mega Gallade, T for Tentacruel), and an optional lower case “c” denoting critical damage.

For GUI components, I have the following:

private JRadioButton g, mg, t, ff, db, xs, s;
private JPanel pkmn, moves;
private JTextField currentHP, HPafter;
private JCheckBox crit;
private JButton reject, upFFcount, resetFFcount;
private JLabel status, FFcount;

As I said before, the GUI has ten main components in a 2×5 grid. These components are made up of different sub-components like so:

  • row 1 column 1: JRadioButton g, mg, t; JPanel pkmn
  • row 1 column 2: JRadioButton ff, db, xs, s; JPanel moves
  • row 1 column 3: JTextField currentHP
  • row 1 column 4: JTextField HPafter
  • row 1 column 5: JCheckBox crit
  • row 2 column 1: JButton upFFcount
  • row 2 column 2: JButton resetFFcount
  • row 2 column 3: JLabel FFcount
  • row 2 column 4: JButton reject
  • row 2 column 5: JLabel status

That’s the setup; now time to get down to the nitty-gritty.

Constructor

The first thing to do in the constructor is define the properties of the window. For instance:

super("time saver?");
setSize(600,200);

setLayout(new GridLayout(2,5));
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);

“super” sets the title, “setSize” sets the size of the window (first number is width, second number is height), “setLayout” determines the layout of the GUI (in this case, a GridLayout with 2 rows and 5 columns), “setVisible” makes the window visible, and “setDefaultCloseOperation” tells the program what to do when the red X is pressed.

Then come the individual components of the GUI.

Radio buttons (row 1 columns 1&2)

I had to use online resources to figure out radio buttons (and, to some extent, JPanels), which I felt were appropriate in the selection of the defending Pokémon and Reshiram’s moves. Both groups are constructed in the same basic manner, like so:

g = new JRadioButton("Gallade");
g.setSelected(true);
mg = new JRadioButton("Mega Gallade");
t = new JRadioButton("Tentacruel");
 
ButtonGroup pkmnGroup = new ButtonGroup();
pkmnGroup.add(g);
pkmnGroup.add(mg);
pkmnGroup.add(t);
 
pkmn = new JPanel(new GridLayout(3,1));
pkmn.add(g);
pkmn.add(mg);
pkmn.add(t);

The first set of statements initializes the radio buttons, gives them labels, and sets the uppermost one (in this case, base form Gallade) to be selected. The second set of statements lumps the radio buttons into a group, meaning only one button in the group can be selected at a time. The third set of statements creates a sub-panel with a grid layout (in this case, containing 3 rows and 1 column) on which the radio buttons are placed.

Text fields and checkbox (row 1 columns 3-5)

These are relatively simple, although I had to look up how to make a checkbox as well. The text fields follow the same two-line format. Example:

currentHP = new JTextField("225");
currentHP.setHorizontalAlignment(JTextField.CENTER);

The first line creates a text field preset with the number 225 in it, and the second line centers the text in the field.

The checkbox code is a simple three-line procedure:

crit = new JCheckBox("crit");
crit.setHorizontalAlignment(JCheckBox.CENTER);
crit.setSelected(true);

Create a checkbox labeled “crit”, center it, and have it selected by default.

Buttons and labels (row 2)

This part was just applying what I knew from the code I made in high school. Initializing a button in the constructor requires two lines: the first to create the button and the second to add an action listener to it that tells it what to do when clicked. For example:

reject = new JButton("Reject check");
reject.addActionListener(new RejectButtonListener());

Meanwhile, the labels are pretty much the simplest part of the GUI; they display text that can only be updated by the code. When creating a JLabel, there are two parameters you can pass to the JLabel’s constructor: its default text and its alignment in relation to the label. Afterwards, you also have the option of setting the font of the label, which I do for the “status” panel to make its text stand out from the rest of the GUI. For example:

status = new JLabel("KEEP", JLabel.CENTER);
status.setFont(new Font("Impact", Font.PLAIN, 24));

Putting it all together

The last but most important part of building a GUI through the constructor is adding the components to it. Note that order matters when adding components to a grid layout. Illustrated below is an example of the way components are added to a grid layout:

add(pkmn);         //row 1 column 1
add(moves);        //row 1 column 2
add(currentHP);    //row 1 column 3
add(HPafter);      //row 1 column 4
add(crit);         //row 1 column 5
add(upFFcount);    //row 2 column 1
add(resetFFcount); //row 2 column 2
add(FFcount);      //row 2 column 3
add(reject);       //row 2 column 4
add(status);       //row 2 column 5

Basically, it goes from left to right across a row, then goes down to the very left of the next row, and so on and so forth.

That’s all for the GUI design. Now comes the more complex part: action listeners.

Action listeners

As mentioned before, action listeners are what tells a GUI element what to do when clicked. A cookie cutter format for action listeners (which I used for all of mine) is as follows:

public class ActionListenerName implements ActionListener {
    public void actionPerformed(ActionEvent e) {
        ...
    }
}

In this particular case, I applied action listeners to all of the buttons on the GUI, each with varying levels of complexity. The Reject check button is the most complex, FF++ the second-most complex, and Reset FF the simplest. So, I find it best to get the most complex stuff out of the way early.

RejectButtonListener

This action listener is the most complex and tedious part of the code. It starts with declaring two variables like so:

int damage = Integer.parseInt(currentHP.getText())
    - Integer.parseInt(HPafter.getText());
boolean reject = true;

The integer variable “damage” takes the difference of HP before and HP after the attack (the values in the JTextFields), which will be used to determine whether or not to reject the Reshiram. The boolean variable “reject” is true by default, but it will be set to false if the damage output of the attack corresponds to one of the values in its theoretical damage range.

Now comes the tedious part, which involves a series of nested “if” statements. The first “if” statement checks which one of the radio buttons corresponding to Reshiram’s moves is selected, like so:

if (ff.isSelected()) { ... }
else if (db.isSelected()) { ... }
else if (xs.isSelected()) { ... }
else if (s.isSelected()) { ... }

It’s easier to start with the moves rather than the Pokémon because the only difference between Gallade and Mega Gallade in terms of damage taken is that Mega Gallade takes Slash significantly better. So, in terms of which Pokémon is selected, Slash has a threefold “if” statement inside, while every other move has a twofold “if” statement inside. (All moves have statements checking “if (t.isSelected())”, but while Slash checks “if (g.isSelected())” and “if (mg.isSelected())” separately, all other moves check “if (g.isSelected() || mg.isSelected())”, a logical OR.) I should also add that .isSelected() is another function that I learned online.

That’s not even the lowest level of abstraction, though. Every statement inside the “if” statements inside the moves has yet another “if” statement inside that checks “if (crit.isSelected())”, which determines whether the code will check an int array of damage range named with a lowercase “c” (e.g., dmgFFGc). Finally, this is where the guts of the action listener are found. Here is a sample:

for (int i = 0; i < dmgFFGc.length; i++) {
    if (dmgFFGc[i] == damage)
        reject = false;
}

If the compiler reaches one of these “for” loops, it will check the appropriate damage range and see if there is any value equivalent to the supposed damage dealt. If not…well, that’s what the last part of the action listener is there to determine.

The final part is simple:

if (reject)
    status.setText("REJECT");
else
    status.setText("KEEP");

Depending on the resulting value of the boolean variable “reject”, the status label will have its text updated to show whether or not the Reshiram is acceptable based on prior logic.

Other action listeners

I coded IncrementButtonListener, which increases the Fusion Flare counter when the FF++ button is pressed, using the code I made in high school. This action listener declares a String variable named “t” that stores the text of the FFcount JLabel, and the rest of the code is quite simple:

if (t.equals("FF: 0"))
    FFcount.setText("FF: 1");
else if (t.equals("FF: 1"))
    FFcount.setText("FF: 2");
else if (t.equals("FF: 2"))
    FFcount.setText("FF: 3");
else if (t.equals("FF: 3"))
    FFcount.setText("FF: 4");
else if (t.equals("FF: 4"))
    FFcount.setText("FF: 5");

Note that the button does nothing when the label says anything else. This is because Fusion Flare only has 5 PP under ordinary circumstances (meaning Reshiram cannot use it any more than 5 times), so there is no use expanding the “if” statement any further. Note the vital functions called: .equals(String) (returns true if “t” (in this case) is equivalent to the string and false otherwise) and .setText(String) (updates the JLabel).

ResetButtonListener is the simplest of the action listeners, as it literally only contains one line of code:

FFcount.setText("FF: 0");

Yep, that’s all that happens when you click the button. The Fusion Flare counter is updated to its default setting.

Closing remarks

I have to say, explaining code takes a lot longer than creating the code—in fact, I’d say about ten times as long. I suppose I’m just not fit to discuss the processes that go on in my mind. Ah, well. I suppose you could consider Vouiv-review a manner of training that sort of skill.

Reminder of the GUI’s appearance:

Resh GUI

As I mentioned, this tool is definitely useful despite the hour it took me to create it and the ten hours it took me to explain it (mind you, these are approximations; take them with a grain of salt). I could have done other stuff with it, like changing “FF++”, “Reset FF”, and “FF: 0” to be more explanatory in what they do (e.g., “Reshiram used Fusion Flare!”, “Reset Fusion Flares”, and “Fusion Flares: 0”, respectively). I also could have substituted the JTextFields for JPanels with 2×1 grid layouts, the first row explaining what the field is and the second row containing the field (i.e., the first panel would contain “HP before attack” above the text field, and the second panel would contain “HP after attack” above the text field). Also, for the checkbox, I could have used the full term “critical” over the abridged “crit”. Finally, now that I think about it, “currentHP” is an odd variable name for what it’s worth (I’d probably prefer “HPbefore” or something to that effect). But hey, the GUI suits me just fine, and I don’t think the GUI as a whole could possibly be useful for anyone else, so I don’t feel like polishing it any further.

All in all, GUIs like these are fun to make, and this one in particular I feel saves me a lot of trouble in trying to find a Reshiram that meets my standards. Still, it remains the most situational GUI I’ve ever coded.

 

Nowi Wins À la prochaine! (Until next time!)