Saturday, June 28, 2014

SEAM2014 Aftermath

I like how this post is 1 week late, but it has been a really busy and tiring week. Oh well, here we go!

Through some miracle, I was able to make it for South East Asia Major 2014 (SEAM2014). Wow, what a weekend! What an event! Where do I even begin?

Shoutouts to all the organizers, marshals, and people who made streaming possible for all the tournaments that were taking place.  Kuni, Josh, Yongde, Farp, Don and all the others from the other tournaments who made this event possible.

Shoutouts to all the players who made it all the way down to compete. We had players from USA, Australia, Brunei, Vietnam, Myanmar, The Philippines, Malaysia, Indonesia, Japan, and more.

Shoutouts to all the people who made commentating BBCP a thrill. Anton for joining me with his calm demeanor of a voice, Dinman's crazy Tager that made it to top 8 WINNERS BRACKET, Ourozama for being the true Hazama of his pools, Rebel2 players of course, and Kirie, Vic, Uncle Joel and Kenzi for the afterparty stream appearances.

The list just goes on. Hiro for accompanying our Arcsys guest Souma-san, Rchusan for winning Terumi dakimakura (lol!), Dix for winning the Tsubaki side tournament and the Tsubaki dakimakura as well as having a great time of CVS2 with me. Speaking of CVS2, I cannot thank Lenn of Versus City enough for setting up a chill booth with really old games like KOF95, CVS2, SFT and 3rd Strike. Unforgettable.

And of course, journalists and cameramen (Edz, we really need to UMVC3 again) who take their time to come down and cover the event. Props to all of them.

Now that I’m done with the shoutouts, I can finally talk about my thoughts, although the shoutouts should have mostly expressed my thoughts. This was a hell of an event, possibly the best SEAM to date. It never fails to amaze me how far apart we all are, yet bonded together by fighting games.

Just a few things to rant about. I wished I had joined UMVC3 on Friday but I couldn’t make it. I was curious to see how would my Taskmaster/Spencer/Tatsu team fare now that I know better combos and setups compared to last year’s. I ended up joining BBCP mostly just to represent my character Platinum, though I don’t really had any expectations to win from the beginning because I haven’t been keeping up with the game nor practising for the past maybe 3 months? Winning 3 before being eliminated far surpassed my expectation and I’m still kind of laughing about it.

Commentating was fun. Rewatching the stream, I think I did an okay job. It could definitely be better. My voice sounds hoarse and mellow like a gorilla, which didn’t really please me lol. Man, I really sounded like a Chinese who can’t even enunciate words properly when I’m talking fast. That aside, I’m not really sure how I should improve, considering that I really don’t want to turn my commentary into e-sports mode. At the very least, I should stop sounding like a gorilla with a mouthful of marshmallows I guess.

What else can I say? It was really fun meeting up with everyone after disappearing due to work and other commitments for a couple of months, and seeing the community grow to this point.  Kind of makes me a little sad that I’m not born slightly later, training for tournaments when I had all the time in a world pre-National Service. We didn’t had any of that back then. I still find it crazy how Capcom single-handedly revived Singapore’s arcade scene from the brink of death.

Great games. Game on.

(Man I really enjoyed the CVS2 section a hell lot ^_^)

Sunday, June 15, 2014

[Review] Love Live: School Idol Festival.

It's about damn time I did a game review ^_^

Here we go: "Love Live! School Idol Festival"

This iOS/Android social game has been out in Japan for quite some time now (I think more than a year ago?) and I recently picked it up. The English version was released around a month before this post. I won't go too much into the mechanics of the game as you can try it out for free and read the unofficial English wiki here.

But I'll at least skim through what it's about. The game is really simple, even by social game standards. Basically you use stamina gained over time to play songs (essentially rhythm games) which can give you Loveca Stones (it's the game's cash currency used for paid gatcha), coins (the game's free currency used for enhancing cards), friendship points (used to get more free version of gatcha), and random cards depending on how well you do. If you have no idea what these bolden words mean, then you haven't been exposed enough to social game mechanics. Hopefully I'll write an article about it and link it here in the future.

The simple layman objective of the game is to collect as many cards as possible. Cards have rarity. The lower rarity ones can be obtained through the free gatcha which costs friendship points which is obtained simply by playing. The higher rarity ones can be obtained through paid gatcha which can be bought using real life cash OR completing one-shot objectives in the game (the game is rather generous at this too compared to other social games). Combining two of the same card will yield a more powerful (and naturally more unique) card.

And of course, better cards in this game will allow you to yield better score in your song attempts. Higher rarity cards will have better stats and have abilities that affect your play. It's really a very simple social game model.

Okay enough about mechanics. Let's talk about why the hell would you want to play this game. If you are a Love Live! fan and not playing this, you are either missing out A LOT or you are just trying to prevent yourself from bankruptcy. If you are NOT a Love Live! fan, give it a shot. It's a simple, polished rhythm game in my opinion. Remember to watch the anime if you actually like the characters! (mwahaha)

Simple Rhythm Game

What makes this game great to me? Firstly, its simple social game model allow players to quickly understand what they need to do. There aren't any overly complicated mechanics or number crunching. Getting better cards and performing better at your songs yield naturally yield better results. Secondly, its polish. Clean art, clear UI, voice acting (I cannot emphasize this enough), this game markets the Love Live characters and franchise really well especially with in-game events and login bonuses that reflect real life events like a character's birthday or airing of an episode. Thirdly, its generosity with Loveca Stones, the game's cash item. Normally in social games, the developers rarely want to give easy access of these cash items to players is essentially giving the players money.

Highlighting the third point, I think some of us would start thinking how the heck does being generous to cash items lead of sales. There could be many reasons. It could be that the sales are already SO GOOD that the company can afford giving cash items away, sacrificing profit for happier players (which in turn brings more happy people, which in turn increases chances of them spending money, etc). However, this is a chicken and egg problem. If we assume that this hypothesis is true, there must still be something that allows them to start this cycle.


Okay here is where I talk about what I really wanted to talk about. Events. In Love Live, so far there are only 2 kinds of events that happen periodically. One of them is a grind-fest, the other is PvP. Both have the same objectives: getting points.

The basis of participating in an event is very simple and is already used in some social games. Participating allows you to have a shot at an event-exclusive item, or in this case, a Super Rare card (the only thing higher is an Ultra Rare card). However, this game is generous. If you play the event regularly (regularly meaning if you have enough stamina, you play ANY song and do not lose), you will get the card no problem.

So when to people pay? In comes the infamous simple but powerful ranking system. Every player who participates has a rank depending on how much points he accumulated. Every 'region' of ranking will receive different rewards when the event ends (events typically lasts 10 days). In the japanese version I'm playing, the highest region of ranking reward is 2 free attempts at the paid gatcha and 2 of the event-exclusive Super Rare card. Why would you want another of the card? Remember that combining 2 of the same card will yield another card! So in reality, the event has 2 event-exclusive cards, one of which can only be obtained by being at a certain ranking. Why would you want a THIRD card? Mostly for collection. The 2 exclusive cards are after all, 2 different art. If I really liked that character, I would've gone for it.

Eye catching UI and presentation

It's almost perfect execution in my eyes. After seeing how events are designed, it's obvious that the people behind the events knows how to target their audience really well. It is generally accepted that if 10% of your social game's players actually spend money monthly, the game will be sustainable and rather profitable. I can just imagine that 90% of people playing this game are Love Live! fans, with maybe a quarter of that being HARDCORE fans, and...we know how otaku fans are. When the cash is no question and the thing they want appears right in front of them, it automatically goes to "buy first think later" mode. I'm not really a huge fan of the series but I can imagine that if the event has a character card I really love and there's a thousand me's competing for that game is gonna profit a hell lot.

And it goes back to the franchise as well! Love Live! is one of those idol animes where they would hold concerts in Japan and sell lots of albums. Players who play this game will end up knowing the songs, encouraging them to attend concerts and buy the franchise's goods and albums, and of course spreading the word. It goes a full circle. That's the beauty I see in this game.

If I had an ideal of how a social game promoting an existing IP should be done, this game is a great example I would bring up. Simple, polished, very engaged to the franchise, and effective execution of content release and balancing.

Monday, June 9, 2014

[Programming] #4 Finding the smallest bit in a value

More bit magic!

This time we are going to find the smallest bit in a value.

I encountered this problem while implementing uniform grid spatial partition back in school. Basically after some calculations, I would get a resultant value that contains all collisions that need to be resolved encoded in each bit of the value (each bit was representing a part of the world). So I needed a fast way to obtain each and every bit, calculate what I need to calculate, and proceed to the next bit. The problem is getting the bits one by one.

This requires a function that helps me extract the last bit of a value.
If I pass in the number '5' which is 0101, I would want to get 0001.
If I pass in the number '6' which is 0110, I would want to get 0010.

It's pretty nifty because the naive way involves an ugly loop:

int getLastBitNaive( int value ) {
    while ( (value & 1) == 0 ) {
        value = value >> 1;
    return value;
This means for every n bit turned on I would have to loop n times. There are ways to optimize this to make it loop only once of course (by 'remembering' the last position it looped to), but there is a way to do everything without a loop.

int getLastBit( int value ) {
    return value &= ~(value - 1);
Basically it's doing an AND operation on it's Two's Complement.

Sadly, returning the positional value (like 0010 = 2, 0100 = 3, etc) still requires either a log2 function or a lookup table. Languages with access to assembly has access to that but that's for another post.

Saturday, June 7, 2014

2014/6/7 先週の日記










Sunday, June 1, 2014

Long ass rant mid 2014

In just a couple of days, I would have been working the work life for 1 year. Thinking back, a lot of things happened in the past year. Well, of course a lot of things happened in a year but it's more so compared to other individual years. Also, some people have been asking very adult questions and others have been making some weird (not bad) statements about me. I suspect this is because I'm more exposed to the outside world than ever before. Okay fine I was a NEET, now I'm not (crap I need to change blog name?!). This is gonna be a long ass rant because I'm just gonna speak my mind. Sorry for the profanities.

First things first, I felt my interests took a shift. With my first couple of paychecks, I finally got rid of the stupid stand-up piano which I have to wait for a internal solar eclipse to play, and got a digital piano. The solar eclipse is basically 7-9pm, if I have the mood or not tired from work, if it is not noisy at home, and if I don't feel that playing the same crap over and over will annoy the shit out of my neighbors (yes I'm damn thoughtful that way and it sometimes bother me). The digital piano is lovely. I love it. I can finally play my piano ANYTIME I want, so that allowed that interest to resurface. Not to mention that I have recently joined my company's band which jams most Friday nights. The sessions were usually awesome and I love the variety of our songs; English, Japanese, Chinese and even Filipino.

On the other hand, fighting games took a hit. I have felt like moving on from it for the longest damn time. It's already a decade since I first stepped into Bugis Virtualand to play CVS2. Almost all CVS2 community has moved away from fighting games at this point. Thinking about those days, fighting games truly felt fun. You know it's fun when you lose and still feel happy. Too bad those days are gone. Sometimes it really feels that I am playing just to rediscover those feels, but if I thought about it that way, it's impossible because it's those guys that provided the fun. The entire CVS2 bunch was a really happy bunch. The only other community I really felt was close to that is the Melty Blood community.

The other communities just weren't. There are still great people in there, but there's bad-mouthing, politics, really bad salt, shit-stirring, 'black faces' during play which I couldn't stand. It's upsetting that some newer players I feel do not respect other players enough. I felt that that is the foundation of all the shit that is happening in the FGC. I don't mean e-sport faggotry respect but the FGC respect. I actually couldn't stand it when I beat someone consistently and they start saying things (in a serious tone) along the line of me having more experience in the game...AND when they DO beat me like a couple of times they started laughing and start saying that I lost to someone who don't main the game. The worst kinds are those which I would win against, give me the cold shoulder/black face mid-game. I would usually give some chance (by all fighting game rights I should never give mercy but I don't want to lose a friendship either), lose and said player will give me smug look. There are a lot more situations like this and they seem to occur more and more frequently whenever I drop by. There are ways to induce SALT but those are not it man. For example, you have to have a legit win/lose ratio before you can start saying shit like "I DON'T EVEN MAIN THE GAME!" in their faces.

And that's just in game. Ugly things are also happening outside the game. It makes completely no sense that I feel more fun being AT WORK than playing fighting games. Maybe I'm too nice to stay in the community. I just don't want to say or do anything because it is not my community to run since I don't have much time to commit anymore and the community that I truly wanted to run for is gone. Whatever man. I still play fighting games for leisure but that's about it.

Now we talk about more random stuff.

A cousin has asked me on my birthday if I am going to work until I die. Work meaning my line of industry of course. I suspect that he won't be the last person to ask but here's my full complete long-winded as hell answer.

Firstly I cannot predict what the future Gerald thinks nor can I predict that far into the future as to whether something as volatile the Games Industry will evolve into something I hate. Taking that into consideration, I can only speak for the present me. The simple answer is yes and the simple reason is because I fundamentally love programming and games. At this point, I CANNOT see myself NOT doing games programming at any point in my life. I program at work, I program at home, and if I can frickin' program on my mobile phone I will do it. I love working on games because problems are always interesting.

Then the next question that was asked was if I am willing to leave my loved ones for the sake of my interests. I really think this question is unfair because I personally feel that it depends on the situation. Also, I feel that my loved ones (if they love me) should always respect my decisions and vice versa. If you bo jio me because you jio too many people, or forgot about me, or whatever, I can totally respect that. And once again it boils down to the scenario. If we were to take the extreme case, that I have to leave my loved ones and will NEVER EVER see them again because programming is outlawed here so I have to leave my loved ones to pursue my love of programming, the present me would by a narrow margin. That being said, I have to say that it is a clever disguise of the stupid question they ask you as a child which is the "If your mother and father are drowning in a pool, who would you save?" That question used to implode my brains FOR NO GOOD REASON.

Next thing is statements. Some people say that I don't care, generally. I'm actually ridiculously sentimental; I'm just really bad at showing emotions. If my loved ones were to die the next day I would be incredibly heartbroken but I don't think I will cry over it because some part of my brain accepts that it is part of life. People need to learn to let it go (hmm maybe that's why that song is so popular?). People need to know that things don't always work out their way. Seriously, if I didn't care I would truly be a NEET at this point. Ironically, I feel that other people do not care enough about others. Every little thing people do I care like friends arranging their time to meet with me, allowing me to rant at them, or my mother taking care of me...I appreciate all of that it. I just look like I don't. From an anime perspective, the reason why I watch all those really happy moe animes is so that when I run into a 'feels' anime like Clannad, Angel Beats, Air, Eureka 7, I need that library of moe animes to drown myself in so that I don't feel moody and sad for the rest of the week. Angel Beats, which I thought was not that good and a bit rushed, had me dead for a weekend. Fuck, let's move away from this topic.

Another rather popular statement being said about me is about how lucky I am regarding my path from education to career. Lots of people said it and I don't blame them because it certainly looks that way. In my perspective, it was more of a 'I'm lucky it worked out'. There's a slight difference in the meaning. A ton of things could have gone wrong in my pursue in games programming. Because it's a ton of things, with a ton of feelings involved, I'll probably leave most of it for another rant. There are quite a lot of obstacles I have to overcome and the ride isn't as smooth as people might think it is. People need to realize that I some a tough decisions like deciding to all-in for my GCE 'O' Levels and I had problems like the burn out I had right after my internship at polytechnic. There was even a time I wanted to just change industries.

I was lucky in the sense that I have a chance to ride. The opportunity showed up, I took it with some risks and perseverance, and it luckily it worked out. But it wasn't all rainbows and unicorns.