Tuesday, June 30, 2015

A Brief History of Video Games

We love games, of course. But do you ever stop to think how things evolved and why do you play the games you play today?

In this video, you're gonna remember from Pac-man to Sonic, from the earliest Wolfstein to Fallout 3. Decade by decade the evolution of games is impressive. Atari, Nintendo, PC titles, Playstation, is everything there, in this enjoyable and fascinating 20 minutes video!

Really really worth to watch, I'm delighted! :D


Enjoy!

Visivae Mobile

Thursday, April 23, 2015

The comprehensive Guidebook for Minecraft

Our new Minecraft guide is now available for Android!

Achievements, mobs, blocks, items, crafting, redstone, smelting, potions, and absolutely everything you could imagine (or not) is available in this guide.


You might have noticed that we are big fans of Minecraft. To honor our word we made a new comprehensive guide for Minecraft that you, Minecraft fan, will love!

Minecraft guide





Download it now in GooglePlay!

Minecraft guide

Minecraft guide

Have fun! :)

Wednesday, February 11, 2015

Android Game Review: Skyward

"A great journey to the sky starts with a single step"


Skyward is a mobile game published by Ketchapp that challenges your skills.


The gameplay is as simple as taping the screen at the right moment. With beautiful graphics, Skyward will lead you to a fantastic journey to the sky!


In the game you will have this blue and red disk gravitating one around each other, "walking" you through different patterns of paths. Tap the screen when the moving disk is flying above some surface or the whole thing will collapse!


As you advance you earn points and unlock new patterns that will, for instance, boost, slow, or invert the movement of the disks.


Guys, there's no way to explain how exciting is this! You have to try it yourself! :) Oh, and by the way check our playthrough video:


Have fun!



Monday, February 9, 2015

AndEngine Tutorial 1 - Drawing Rectangles

With this AndEngine tutorial you'll learn how to easily draw shapes.

AndEngine Tutorial 1 - Drawing Rectangles


Hello again to our first series of AndEngine tutorials. At this point you already should be able to create a Basic Game Activity (check our last tutorial here). You can use the Basic Game Activity template in any of our tutorials in this series.

Today we are going to learn how to draw rectangles easily in AndEngine.

This is very handfull when you need to create simple interface elements, so let's start.

Remember our background from our last tutorial? Let's change its color to become more pleasant.

myScene.setBackground(new Background(0.384f, 0.412f, 0.325f));

Before drawing anything, let's define the VertexBufferObjectManager that is used by AndEngine to draw basically anything. The best way to use it is to create a variable that we can call at any time in our game, so we don't need to call it everytime we draw something. To do that, put this line of code just before the EngineOptions of your Basic Game Activity:

private VertexBufferObjectManager vbom;

Then we add this line to the class onCreateResources:

vbom = getVertexBufferObjectManager();

Drawing rectangles


Now let's draw rectangles! The Rectangle function is pretty simple to use. You just need to define starting point and dimensions (width and height). Try to include these four lines in the onPopulateScene class and see what happens:

  Rectangle rectangle1 = new Rectangle(384, 1080, 718, 50, vbom);
  rectangle1.setColor(0.894f, 0.980f, 0.694f);
  myScene.attachChild(rectangle1);
  
  Rectangle rectangle2 = new Rectangle(384, 1045, 718, 20, vbom);
  rectangle2.setColor(0.776f, 0.894f, 0.506f);
  myScene.attachChild(rectangle2);
  
  Rectangle rectangle3 = new Rectangle(384, 200, 718, 50, vbom);
  rectangle3.setColor(0.894f, 0.980f, 0.694f);
  myScene.attachChild(rectangle3);
  
  Rectangle rectangle4 = new Rectangle(384, 165, 718, 20, vbom);
  rectangle4.setColor(0.776f, 0.894f, 0.506f);
  myScene.attachChild(rectangle4);

Looks nice, doesn't it? :)

Of course you can create things in batch! Try this, for example:

  for(int i = 0; i < 3; i++) {
   for(int j = 0; j < 3; j++) {
    
    Rectangle shadow = new Rectangle(192 * (j + 1), 100 + 265 * (i + 1), 100, 100, vbom);
    shadow.setColor(0.329f, 0.380f, 0.435f);
    shadow.setRotation(45);
    myScene.attachChild(shadow);
    
    Rectangle front = new Rectangle(192 * (j + 1), 120 + 265 * (i + 1), 100, 100, vbom);
    front.setColor(0.859f, 0.471f, 0.463f);
    front.setRotation(45);
    myScene.attachChild(front);
    
   }
  }

Now notice that you have rotated the rectangles. Also, the ones you attach first will be under those you attach afterwards (then attatch shadows first, like in the example)

At the end of this tutorial you should get something like this:


If you think you missed something, here is the full code:

public class MainActivity extends BaseGameActivity {
 
 private Camera camera;
 private static int CAMERA_WIDTH = 768;
 private static int CAMERA_HEIGHT = 1280;
 
 private Scene myScene;
 
 private VertexBufferObjectManager vbom;

 @Override
 public EngineOptions onCreateEngineOptions() {
  camera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
     EngineOptions engineOptions = new EngineOptions(true, ScreenOrientation.PORTRAIT_FIXED, new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), camera);
     engineOptions.setWakeLockOptions(WakeLockOptions.SCREEN_ON);
     return engineOptions;
 }

 @Override
 public void onCreateResources(
   OnCreateResourcesCallback pOnCreateResourcesCallback)
   throws IOException {
  
  vbom = getVertexBufferObjectManager();
  
  pOnCreateResourcesCallback.onCreateResourcesFinished();  
 }

 @Override
 public void onCreateScene(OnCreateSceneCallback pOnCreateSceneCallback) throws IOException {
  
  myScene = new Scene();
  myScene.setBackground(new Background(0.384f, 0.412f, 0.325f));
  pOnCreateSceneCallback.onCreateSceneFinished(myScene);
  
 }

 @Override
 public void onPopulateScene(Scene pScene, OnPopulateSceneCallback pOnPopulateSceneCallback) throws IOException {
  
  Rectangle rectangle1 = new Rectangle(384, 1080, 718, 50, vbom);
  rectangle1.setColor(0.894f, 0.980f, 0.694f);
  myScene.attachChild(rectangle1);
  
  Rectangle rectangle2 = new Rectangle(384, 1045, 718, 20, vbom);
  rectangle2.setColor(0.776f, 0.894f, 0.506f);
  myScene.attachChild(rectangle2);
  
  Rectangle rectangle3 = new Rectangle(384, 200, 718, 50, vbom);
  rectangle3.setColor(0.894f, 0.980f, 0.694f);
  myScene.attachChild(rectangle3);
  
  Rectangle rectangle4 = new Rectangle(384, 165, 718, 20, vbom);
  rectangle4.setColor(0.776f, 0.894f, 0.506f);
  myScene.attachChild(rectangle4);
  
  for(int i = 0; i < 3; i++) {
   for(int j = 0; j < 3; j++) {
    
    Rectangle shadow = new Rectangle(192 * (j + 1), 100 + 265 * (i + 1), 100, 100, vbom);
    shadow.setColor(0.329f, 0.380f, 0.435f);
    shadow.setRotation(45);
    myScene.attachChild(shadow);
    
    Rectangle front = new Rectangle(192 * (j + 1), 120 + 265 * (i + 1), 100, 100, vbom);
    front.setColor(0.859f, 0.471f, 0.463f);
    front.setRotation(45);
    myScene.attachChild(front);
    
   }
  }
  
 }
 
}

AndEngine has also the function Line, which is simple to use, but you should be careful with this one as it doesn't work in all devices. Rectancles are easy and safe to use!

Enjoy it and happy coding!

Wednesday, February 4, 2015

Android Game Review: Crossy Road

Why did the chicken cross the road? Well, who cares? Let's just help the chicken because it's fun!


If you were born until the early 80's you might remember the game Freeway from Activision for the Atari console. Well, the fun Crossy Road play with this simple idea, but full of features!



A game about helping a chicken to cross the road? How can it be fun? Well, Yodo1 really did a great job with this title and made a very fun game based in this simple idea.


You start controlling a chicken... yes a chicken! You can move it up, down, right and left with simple touch movements. But here you don't only cross roads, you cross forests, rivers, rails, and also need to collect coins to earn prizes.


The more coins you collect more points and prizes you can get. The prizes are new characters, than if you don't like chickens you can play with a fluffy sheep, a lucky cat, a poopy pigeon (ykes!), a fast tortoise, a ghost (why not?), a grave digger, and a forget-me-not (what???), just to mention a few.


You have also the option to buy characters and to compare your score with your friends in the leaderboard.


As we are game lovers, of course we love to play games! Well, watch our playthrough here:


Have fun!


Saturday, January 31, 2015

AndEngine Tutorial 0 - Basic Game Activity

With this AndEngine tutorial you'll learn how to set up a Basic Game Activity

AndEngine Tutorial 0 - Basic Game Activity


Hello game developers! We are starting today a new set of publications here in the Visivae Mobile blog to share the basics about game coding for Android with AndEngine. If you need help to install AndEngine check this post.

For this first tutorial (number zero, because it is the basic of the basics) we are going to show you how to set up a game activity.

Opening a new Project


First things first, click on File, New, Project...


Choose "Android Application Project" and click "Next". Give a name to your Application, Project and Package Name (you can use the names in the image here below). Usually, as the minimum required SDK, I use 3.0, because earlier Android devices might be too slow for running a fancy game! Click "Next".


Unmark the box "Create custom launcher icon". Let's not worry about that now, we can create icons later! Keep clicking "Next" until finishing this process.


Great! You should have now two files opened in Eclipse, the "MainActivity.java" and the "activity_main.xml". Close the second one and let's concentrate on the java file only for now.

Now we need to add the AndEngine library to our project. Right-click on your project name and go to Properties. In the new window choose "Android" from the left menu, scroll down the right part and choose "Add...". Now add the AndEngine library and press OK to close the window.



Nice! Now we can start to play with the real stuff! Erase everything inside your public class MainActivity and extend it to BaseGameActivity. Now MainActivity might be showing you an error, then drag the pointer over it and choose "Add Unimplemented Methods" to fix it.


Now you should have the following code in your MainActivity class:
public class MainActivity extends BaseGameActivity {

 @Override
 public EngineOptions onCreateEngineOptions() {
  // TODO Auto-generated method stub
  return null;
 }

 @Override
 public void onCreateResources(
   OnCreateResourcesCallback pOnCreateResourcesCallback)
   throws IOException {
  // TODO Auto-generated method stub
  
 }

 @Override
 public void onCreateScene(OnCreateSceneCallback pOnCreateSceneCallback)
   throws IOException {
  // TODO Auto-generated method stub
  
 }

 @Override
 public void onPopulateScene(Scene pScene,
   OnPopulateSceneCallback pOnPopulateSceneCallback)
   throws IOException {
  // TODO Auto-generated method stub
  
 }
 
}


Now set up your camera parameters just before overriding the EngineOptions:
 private Camera camera;
 private static int CAMERA_WIDTH = 768;
 private static int CAMERA_HEIGHT = 1280;


Good, now let's set our Engine Options. Let's declare the camera, its position and size, define if you want your camera to be fullscreen, portrait or landscape, and select the ratio resolution. Finally, I'm using the setWakeLockFunction to prevent the device from sleeping while the player is playing.

Your EngineOptions class should look like this:
 @Override
 public EngineOptions onCreateEngineOptions() {
  camera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
     EngineOptions engineOptions = new EngineOptions(true, ScreenOrientation.PORTRAIT_FIXED, new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), camera);
     engineOptions.setWakeLockOptions(WakeLockOptions.SCREEN_ON);
     return engineOptions;
 }



So far, so good! We don't need to create any resources now, let's just define the callback for this method, making it look like this:
 @Override
 public void onCreateResources(
   OnCreateResourcesCallback pOnCreateResourcesCallback)
   throws IOException {
  
  pOnCreateResourcesCallback.onCreateResourcesFinished();  
 }


What about adding some color just to see how it will look in your device? :) Let's set up a scene and add a background color. First, declare your scene in the same place you've declared your camera parameters, like this:
 private Scene myScene;


Now set up your onCreateScene class to look like this:
 @Override
 public void onCreateScene(OnCreateSceneCallback pOnCreateSceneCallback) throws IOException {
  
  myScene = new Scene();
  myScene.setBackground(new Background(1.0f, 0.0f, 0.0f));
  pOnCreateSceneCallback.onCreateSceneFinished(myScene);
  
 }


Notice that for the Background function there are 3 parameters. They are exactly the RGB colors. The range of the colors goes from 0 to 255 and you should use the range from 0.0f to 1.0f proportionally to define your color. To set your red in 25, for example, use the parameter 0.1f.

An important tip: you need to change the base theme of your app, otherwise you might see white borders in the screen, which don't look nice at all! To do this, in your Project Explorer, to the left side, look for the folder "res". You will see more than one subfolder called "values" or values-vXX", where XX is a number. Open all the styles.xml inside these folders and change the AppBaseTheme "parent" parameter to "android.Theme.Black", so they will look like this:
    <style name="AppBaseTheme" parent="android:Theme.Black">
        
    </style>



Amazing! Leave the onPopulateScene as it is, we don't need it now. If you run your new application now (either in the emulator or in your own device) you should be able to see something like this:

AndEngine Tutorial 0 - Base Game Activity


Great! Now you know how to set up the basic game activity. We are going to use this structure in our following basic tutorials!

Here is the full code if you think you missed something on the way:
package com.example.tutorial;

import java.io.IOException;

import org.andengine.engine.camera.Camera;
import org.andengine.engine.options.EngineOptions;
import org.andengine.engine.options.ScreenOrientation;
import org.andengine.engine.options.WakeLockOptions;
import org.andengine.engine.options.resolutionpolicy.RatioResolutionPolicy;
import org.andengine.entity.scene.Scene;
import org.andengine.entity.scene.background.Background;
import org.andengine.ui.activity.BaseGameActivity;

public class MainActivity extends BaseGameActivity {
 
 private Camera camera;
 private static int CAMERA_WIDTH = 768;
 private static int CAMERA_HEIGHT = 1280;
 
 private Scene myScene;

 @Override
 public EngineOptions onCreateEngineOptions() {
  camera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
     EngineOptions engineOptions = new EngineOptions(true, ScreenOrientation.PORTRAIT_FIXED, new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), camera);
     engineOptions.setWakeLockOptions(WakeLockOptions.SCREEN_ON);
     return engineOptions;
 }

 @Override
 public void onCreateResources(
   OnCreateResourcesCallback pOnCreateResourcesCallback)
   throws IOException {
  
  pOnCreateResourcesCallback.onCreateResourcesFinished();  
 }

 @Override
 public void onCreateScene(OnCreateSceneCallback pOnCreateSceneCallback) throws IOException {
  
  myScene = new Scene();
  myScene.setBackground(new Background(1.0f, 0.0f, 0.0f));
  pOnCreateSceneCallback.onCreateSceneFinished(myScene);
  
 }

 @Override
 public void onPopulateScene(Scene pScene,
   OnPopulateSceneCallback pOnPopulateSceneCallback)
   throws IOException {
  // TODO Auto-generated method stub
  
 }
 
}



Happy coding and see you soon!

Wednesday, January 28, 2015

Android Game Review: Stones

Catch stones by sliding your finger and avoid the meteors in Stones, a game for Android by Imago.


We've tried Stones, an addictive arcade game for Android.



As a good arcade game the idea simple and the game is fast. The game has simple mechanics and things get difficult (and crazy!) as you advance through the levels.

The gameplay is intuitive: you slide your finger to the right and to the left to rotate the stone circle in the center, and move the gap to let stones come in.


The small bar at the top of the screen fills in as you collect stones, so you can have an idea of how many you still need to complete the level. But hurry, because time runs fast!

As you advance, the games gets really hectic with new kinds of stones and some features, like the inversion of your movement (you slide the finger to one side and the gap moves to the other side!).


Beware with those meteors! If you let them pass through the gap they'll blow your stones out of the circle!

Some suggestions for improvement could be to make the first two levels easier, so you could reward early first-time players, and also the movement of the gap could be based on where you point your finger rather than in sliding right or left.

Indeed, it's great to see indie developers creating such nice pieces!

Enough of talking, let's show our playthrough video of Stones:


Have fun!