Friday, February 28, 2014

Running Man Rock Scissors Paper Game is in the Google Play Store Now!

Yay! The Running Man Rock Scissors Paper Game is now available in the Google Play Store!



As the RM maniacs, we all know that there are 2 types of Rock Scissors Paper Games which are popular in the Running Man Variety Show:
a) Ka-wi Ba-wi Bo (가위 바위 보)
  • A normal Rock Scissors Paper Game. Ka-wi (scissor), Ba-wi (rock), Bo (paper). 

b) Muk-jji-ppa (묵찌빠
  • This is a Korean modified Rock Scissors Paper Game (eg: Refer Episode 147).
  • To play this Muk-jji-ppa game, there are at least 2 rounds.
  • In the first round, it is a normal Rock Scissors Paper.
  • The winner of the first Round has to make the opponent's hand same as him/her in the second round in order to win the Muk-jji-ppa
  • If there isn't a winner in the second round, the process is repeated.
In the Running Man Rock Scissors Paper Game, the game has been designed such that the winner of either the Ka-wi Ba-wi Bo or Muk-jji-ppa has to 'attack' his opponent (which is actually the Running Man Members) with the toy hammer (refer Episode 166). Meanwhile, the loser of the RSP has to protect himself from being attacked by using the pot shield. In order to defeat the RM member and unlock the stronger one, you need at least hit the opponent 3 times.

Something to note is that, this Running Man Rock Scissors Paper Game has no offense to any RM member. The stats is simply based on personal opinion.

Also, since a number of users don't like the Adobe AIR 4.0 plugin, this game is using the Adobe AIR 3.7. Before the awareness of the Adobe AIR 4.0 is getting popular, we would only use the lower version.

Sunday, February 23, 2014

Flappy Bird Algorithm Part 4 - An Android Game Demo (Floppy Balloon)

With the previous Flappy Bird Game Algorithm, I believe you would be able to come out with something similar.

So, here is my published version of the Flappy Bird - Floppy Balloon.

In the Floppy Balloon, i have made the game relatively simpler. And there are 2 modes: Easy and Hard. In the Easy mode, the forward speed of the balloon is slower, and the interval of the obstacles is longer, and you only get 1 score after going through 1 barrier. While in the Hard mode, the pace is increased and you will be rewarded 2 scores for each obstacle that you go through.



Again, to remind that there is a need to perform a 'one-time-only' installation of the latest Adobe AIR app.

Any feedback is welcome~


Thursday, February 20, 2014

Flappy Bird Game Algorithm Part 3 - Collision Detection

So far we managed to make an object flying smoothly with the adjustable gravity and the forward speeds.

Next, it comes the major part of the game: Obstacles generation and Collision Detection

Note that the obstacles (tunnels/pipes) can be generated in the similar ways as the background movement. Now the thing is, how to know if our flying object hits them?

To put it in a better picture, let's have a look at the analogy below:


Here, to investigate whether the object hits both the pipes (upward and downward), it is to check  whether the object is not successfully contained 'inside' the green box region (on the right side).

With this understanding, we only require a few information to complete the task:
a) Coordinates of the flying object + its Width and Height
b) Coordinates of the green box region  + its Width and Height

Luckily, the Width and the Height of the object and the green box are constants. All we need to perform, is a fundamental collision checking, as shown in the function below (Again, it is inside the onEnterFrame function):

public function collisionDetection(_obj1:FlyingObject, _obj2:GreenBox):Boolean
{
     //*Note that my flying object is pivoted in the center
     //check if it is within the pipes
     if(
_obj1.x + obj1.width/2 >= _obj2.x &&
        _
obj1.x + obj1.width/2 <= _obj2.x + _obj2.width)
     {

         //hit upper pipe
         if( _
obj1.y - _obj1.height/2 <= _obj2.y)   return true;
           
         //hit lower pipe
         if( _y1 + _
obj1.height/2 >= _obj2.y + _obj2.height) return true;
     }

}

Straightforward enough. Hopefully with these ideas, you can design and customize the Flappy Bird Game in anyway you want.

Next : Flappy Bird Game Algorithm Part 4 - An Android Game Demo (Floppy Balloon)

Flappy Bird Game Algorithm Part 2 - Background movement

With the ability to make the gravity, now let's enable the background movement.

Just FYI, in the Flappy Bird Game (or any spaceship game), it is the background that moves at the opposite direction which causes the illusion that the main object is flying. It is the typical way of creating such an effect.

Here, i am taking a Super Mario-like background image from here. To make it move smoothly at the back, we need at least 2 background images, which i crop the originals into 2 pieces, as shown below (bg1 and bg2):

Bg1 and Bg2, each pivoted at the top left red point.

At the beginning, the first part of the image (bg1) is shown (filling the device), while the second part (bg2) is placed just after the first image.

Then, with the Event.ENTER_FRAME again, both background images are moved slowly to the left. When the bg1 is completely vanished from the screen, its location (x) is moved to the end of the screen again. The same process is repeated to the image bg2 as well. And the entire process is looping forever.

Not surprisingly, in the onEnterFrame function of the background object, the function is as brief as below:

private function onEnterFrame():void
{
      this.x -= GamePlay.GAME_SPEED;
           
      if(this.x < -
DEVICE_WIDTH)   this.x = DEVICE_WIDTH;
 }

Next: Flappy Bird Game Algorithm Part 3 - Collision Detection

Wednesday, February 19, 2014

Flappy Bird Game Algorithm Part 1 - Gravity and flying



Normally, to create the games involving Physics (eg: gravity), the use of Physics Engine such as Box2D would be a boost for complicated run-time computations. However, in the Flappy Bird game, since the only requirements are to:
  • Make the bird fly upwards while touching
  • Make the bird fall while not flying (with gravity)
the algorithms could be performed easily with few lines of codes without Box2D.

Here, to remind, I am using AS3, Starling Framework and a latest version of Adobe AIR (4.0).

First, I am taking the advantage of Event.ENTER_FRAME to allow the flying object to animate/fly on each frame. In the onEnterFrame function, a gravity is implemented. At the same time, we allow the player to touch any space on the device to activate a 'jump'.

private const UPWARD_SPEED:int = 5;
private const MAX_FLOOR:int = 800; //an indication that it hits the ground
private const GRAVITY:Number = 0.5;
private var objFlying:FlyingObject = new FlyingObject();//and addChild
private var speed:Number = 0; 
private var isJump:Boolean = false;
private function onEnterFrame(e:EnterFrameEvent):void
{
     if(isJump)
     {
         speed = -
UPWARD_SPEED; //negative relative to the normal gravity
         isJump = false; //once a jump is activated, we disable the flag
     }
     speed += (
GRAVITY); //physics ya, the speed is affected by gravity
    
objFlying.y += speed;
           
     if(
objFlying.y > MAX_FLOOR) //if it hits the wall
     {
         speed = 0;
        
objFlying.y = MAX_FLOOR;
     }  

}

private function onTouch(e:TouchEvent):void
{
     ...
     var touch:Touch = e.getTouch(stage);
               
     if(touch.phase == TouchPhase.BEGAN)
     {
          isJump = true; //a touch enables a slight jump
     }   

}

Note that the upward speed, gravity and the floor location are tunable according to your needs. With the Event.ENTER_FRAME, the animation is an easy job.

Next: Flappy Bird Game Algorithm Part 2 - Background Movement

How to create the game like Flappy Bird?


Flappy Bird, another popular game based on the 'simplicity', topped the chart not only in the Apple App Store, but also the Google Play Store before it was removed.

From the perspectives of the game play experience, the Flappy Bird is designed to challenge the consistency of the distance judgement of the players, with very high accuracy. Only 1 Hit Point, one highscore and infinite tries, no Mana Point, no magic, no checkpoint, no multiplayer.

From the views of the game development, the Flappy Bird simply relies on the gravity for the movement, and a simple collision detection while the background is moving at a linear speed.

To be honest, I have no idea why this game becomes so popular, other than the 'simplicity'. And yes, after the tutorial on the Match 3 Game last time, here i would like to create this similar game myself, out of the curiosity. To summarize, i divide the game algorithms into several parts:

a) Flappy Bird Game Algorithm Part 1 - Gravity and flying
  •  Alright, no box2d or other libraries. Only a few lines of codes will do.
b) Flappy Bird Game Algorithm Part 2 - Background movement
  • Is trivial as well. Just need a good image.
c) Flappy Bird Game Algorithm Part 3 - Collision Detection
  • A simple algorithm used to detect the collision of the object with the tunnels/walls.
d) Flappy Bird Game Algorithm Part 4 - An Android Game Demo
  • Apart from the basics, let's demo a self-customized version
Note:
  • I would be using other images to replace the original Flappy Bird.
  • The game requires the Adobe AIR 4.0. You need to upgrade it if prompted.

Adobe AIR 4.0: Why do you need to upgrade?



Recently, the Adobe AIR has a major update to 4.0. It was supposed to be a very exciting news along with its useful new features. However, since the latest update of my games (and apps), i noticed that there is a significant increase in the stats of uninstall rates. This affects all my games such as Minipoly Deal, Running Man Quiz, Guess Car Brands, Quoridor, etc. Then, i was bombarded with a number of emails acknowledging me about the worry of 'installing another Adobe AIR 4.0'. It is mistaken as an intrusive plug-in that might damage the smartphones...

Hence, i think there is a dire need to raise the concern by writing this post, in order to comfort all the users and the would-be players of my games - Adobe AIR is a runtime system that enables the packaging of the codes into native applications. It is a requirement for the mobile platforms to play the games developed through Adobe Flash. And the Adobe AIR 4.0 has made the games/apps compatible with the latest iOS 7 and the Android 4.4 (KitKat). The details of the change log is here.

The thing that intrigues the users is that, unlike the previous updates, the Adobe AIR 4.0 has been made compulsory to be installed as an another app separately. This 'additional' action keeps the users away, as they fear that it might be harmful.

In order to further convince that Adobe AIR 4.0 isn't a detrimental app, I would like to emphasize that, it is only a one-time installation. With it, you would be able to play other games made by Adobe Flash. Furthermore, the Adobe AIR 4.0 has made the game package size much smaller compared with the previous versions. It is in fact a great advance after the updates.

Then you might be asking - Why other games don't require this? It is simply a matter of Games tools selection. As mentioned in my previous post, Adobe AIR AS3 comes with powerful framework which enables the game creation in a very productive way. That's it.

I hope you would at least feel relieved after reading this.


Monday, February 10, 2014

Is Facebook still a popular social network platform?

I admit that this post has little to do about creating Android games. Rather, it is more on the Social Network - Facebook, one of the crucial elements in the Games Development Ecosystem.



 Recently, Facebook celebrates his 10th anniversary. Undoubtedly, it is one of the major Social Network platform at which people are sharing daily information. However, there are predictions from a number of commentators that Facebook would lose ground and disappear in 5 or 10 years, being on the moribund journey.

Whether the Facebook would be doomed, or would reach another pinnacle in the future, there is one thing to point out, from my personal experience.

As a Facebook user of around 7 years, I would admit that, the way that i am using Facebook, is much different from what i have been used to over the last few years. In short, I am getting much more passive nowadays.

7 years ago, when i signed into Facebook, i was easily hooked on the mini games, although they are just animation-less text-based one. It is exciting to see your friends joining the game as the more networks you have, the more advantages you will obtain (that's the typical design of the game). Moreover, i could update my status daily, or like and reply others' status on the pretty much trivial things, such as "Happy Holiday", "Screw the exam", etc. The feeling that you are 'connected' is indeed a fresh and exciting experience...

However, today, yes i am still surfing Facebook daily, or once in 2 days. But the thing is, i am turning on Facebook JUST to view the photos/pictures and the latest news (celebrities, sports, etc). The news from the FB, though sometimes are not from the mainstreams media (and not fully authenticated), are most of the time raw (1st hand), unfiltered and more transparent. Furthermore, i really favors some of the pages containing and updating the pictures of my idols and the celebrities.

BUT, when coming to my own social network, i am not that active anymore. Wishing every single friend 'Birthday wish'? Replying to the random friends saying "Yes! I am so happy today!"? Responding to every single game request spam from your friends? Please, it is killing me. Gradually i start to unfollow or even unfriend a number of 'friends' on FB. Be honest, the last upload of my personal photo was months ago...

One more thing that discouraged me from using FB is that, i observe that not many people are sharing the 'genuine' information of their own. While Mark Zuckerberg claimed that people want to 'stay connected' with the world, he doesn't know people has LOTS more to be hidden from the world. When you realize that FB isn't that real (or am i actually expecting too much?), it isn't that fun anymore.

I am not another anti-Facebook user. Just that I am using Facebook in a much different way than i have been used to. I am sure that i am not the only one.

Now back to the main question - Would such a 'behavioral change' affects the Facebook dominating status as a social network platform? If yes, then to what extent would the impact reach?

Sunday, February 9, 2014

Monopoly Deal Card Game - VS 2 Computers Mode

In my last update of the Monopoly Deal Mini Card Game (Minipoly Deal), i have added a new mode: VS 2 Computers.

Undoubtedly, the original Monopoly Deal Card Game is meant for 2-5 players. So, basically, the more merrier, as it adds more variations into the game play. For example, there are some Action cards designed to request money from all the other opponents (eg: Birthday card, dual-color Rent cards). It is more effective to use those cards when playing with multiple players.

However, as mentioned last time, it is challenging to accommodate too much players within the small mobile devices. Here, i only added 2 computer bots in the latest Minipoly Deal, which i think it can be considered 'multi-player mode' to some extent.

From the picture shown, the P2 and P3 are the computers. The game play is still the same as the 'VS 1 computer' mode. One thing to note is that, the attack-single-player Action cards, such as Debt Collector, Sly Deal, Deal Breaker, Rainbow Rent Card are ONLY VALID if they are dragged on the computers' region.

Overall, the game play is slightly tougher compared to the VS 1 computer mode. The thing is, the computers are 'NOT' conspiring to attack the player. They follow some 'trends' when using the Action Cards. :)

Kindly drop some feedback to improve the game. Your suggestions are highly appreciated.