Friday, December 26, 2014

Rocket Sledge Xmas game - a free version available now also on amazon.com

I'm pleased announce that I have published a FREE version of my game Rocket Sledge Xmas. I decided to name it Rocket Sledge Xmas Free.

It is now available  FREE also in amazon.com!


Join Santa’s elves FREE and fly with a rocket sleigh, avoid all dangers and collect the xmas presents floating around in the winter sky.

Rocket Sledge Xmas Free is a free version of Rocket Sledge Xmas game. It offers you a limited playing time.  However it allows you to the time and possibility to enjoy the essential features of the complete game.  You can try the game, experience the gameplay free to find out, if you like it or not.

And if you like it,please go and buy the complete Rocket Sledge Xmas game.  Check the full description and all features under Rocket Sledge Xmas.

GO !  DOWNLOAD IT, TRY IT AND PLAY IT!   After trying I hope you like it and you BUY the complete Rocket Sledge Xmas game.

WRITE A REVIEW !   GIVE ME YOUR FEEDBACK:  support@rocketsledge.com.

I will keep you posted on all new developments around the game.

Thank you for your interest.  Please follow us.

I am looking forward to hearing from you.

Friday, December 19, 2014

Rocket Sledge Xmas Free - I have published a free version of my game Rocket Sledge Xmas!

I'm pleased announce that I have published a FREE version of my game Rocket Sledge Xmas. I decided to name it Rocket Sledge Xmas Free.

It is now available  FREE on Google Play store !

Get it on Google Play
Join Santa’s elves FREE and fly with a rocket sleigh, avoid all dangers and collect the xmas presents floating around in the winter sky.

Rocket Sledge Xmas Free is a free version of Rocket Sledge Xmas game. It offers you a limited playing time.  However it allows you to the time and possibility to enjoy the essential features of the complete game.  You can try the game, experience the gameplay free to find out, if you like it or not.

And if you like it,please go and buy the complete Rocket Sledge Xmas game.  Check the full description and all features under Rocket Sledge Xmas.

GO !  DOWNLOAD IT, TRY IT AND PLAY IT!   After trying I hope you like it and you BUY the complete Rocket Sledge Xmas game.

WRITE A REVIEW !   GIVE ME YOUR FEEDBACK:  support@rocketsledge.com.

I will keep you posted on all new developments around the game.

Thank you for your interest.  Please follow us.

I am looking forward to hearing from you.


Sunday, December 14, 2014

Rocket Sledge Xmas - now available on Amazon Apps!

I'm pleased to announce that Rocket Sledge Xmas game is now available also on amazon.com

You can buy it and download it for a one-time fee.  The game has no in-app purchases making it buyer friendly.

GO !  BUY IT, DOWNLOAD IT AND PLAY IT!

Rocket Sledge Xmas @ Amazon Apps

GIVE ME YOUR FEEDBACK:  support@rocketsledge.com.

The sound and music are easy to switch off making the game environment friendly.

I will keep you posted on all new developments around the game.

Thank you for your interest.  Please follow us.

I am looking forward to hearing from you.

Wednesday, December 10, 2014

Rocket Sledge Xmas - is available on Google Play now !

I'm pleased announce that Rocket Sledge Xmas game has been published.

My game is now available  on Google Play store !

You can buy it and download it for a one-time fee. 
The game has no in-app purchases making it buyer friendly.

GO !  BUY IT, DOWNLOAD IT AND PLAY IT!

Get it on Google Play

GIVE ME YOUR FEEDBACK:  support@rocketsledge.com.


The sound and music are easy to switch off making the game environment friendly.

I will keep you posted on all new developments around the game.

Thank you for your interest.  Please follow us.

I am looking forward to hearing from you.

Friday, December 5, 2014

Thank You ! Rocket Sledge's publication date is getting closer and closer !

Finally I am SO close to Rocket Sledge Xmas' game publication date that its hardly possible to get any closer without actually making it public and available on Google Play Store.

Well Google Play is the first market place and only a beginning of a journey yet to experienced.

I want to take this opportunity to thank all the people that have followed my blog, visited rocketsledge.com and somehow followed Rocket Sledge on social media. Thank You !

Tomorrow, Dec. 6th, is Finland's day of independence.  Independence is easy to take for granted. Sometimes I forget that my grandfather was one of them who fought for it in WWII.

Thank you for your interest.  Please follow us.  The is launch to coming...

I am looking forward to hearing from you?

Rocket Sledge Xmas - the Christmas story of the game.

Here you have the story of the Rocket Sledge Xmas game.

On Christmas Santa Claus departs for his journey around the world.  Santa hops on his sleigh and with the help of his reindeer sets out flying in the night sky.  The cold winter night of Lapland over the polar circle, is lit up only by the northern lights that blaze over the snowy terrain.

A wicked witch of Lapland, naughty since a child and never got any gifts during Christmas, wants to prevent Santa Claus from taking his journey.

The witch collides with Santa crashing them both down.  Santa and the reindeer land softly and safely on the snow but the crash breaks the sleigh and sends all the gifts flying around in the sky.

Santa contacts his engineer elf, who sends all the elves in their Rocket Sledges, towing wagons, to an urgent mission to collect all the gifts floating in the winter sky.   

As Rudolph the Red Nosed reindeer and other reindeer are fine, Santa returns quickly back to his home to pick up a spare sleigh.

The wicked witch sees all of this happening.  He uses all his powers and sends many kinds of dangers and his helpers in aircraft to prevent the elves from collecting the gifts. 

The player of the game is one these elves flying a Rocket Sledge towing wildly swinging wagons behind and collecting the gifts and helping Santa to save Christmas.

By playing skillfully the player can save the Christmas and ensure that the nice people of the world get their gifts and have a Merry Christmas.

The player steers the Rocket Sledge by swiping the screen of his device.  The ultimate goal is to collect as many gift packages as possible while avoiding the dangers in the sky. 

Thank you for your interest. Follow us.  The publishing day is getting closer !




Rocket Sledge Xmas - the rules of the game !

Here you have some information on the gameplay of Rocket Sledge Xmas game.

Rocket Sledge is a simple, fun, challenging and rewarding flying single player game.

The scenery of the game is the exotic sky of a cold winter night of Lapland over the polar circle, lit up by the moon and the northern lights that blaze over the snowy terrain.

The player steers the Rocket Sledge and the wildly swinging wagons behind the sledge with swipe movement on the touch screen.

The ultimate goal is to collect as many gift packages as possible while avoiding the dangers in the sky. 

For each collected gift package the player gets points.  Once having collected enough gift packages without losing any wagons, the player is rewarded with additional wagons. 

Collecting a shooting star rewards the player with an extra life.  The player can have up to three extra lives and each life protects from one collision.

If the player's Rocket Sledge collides with a falling meteorite, a snowball, one of the opposing aircraft and no more lives are left, the round of game is over.  

Collecting the gifts is an urgent mission because the speed of the Rocket Sledge increases all the time and the there will be more and more dangers in the sky.  This will lead to an inevitable crash with one of the dangers.  

The player can compete with other players for the highest score or improve his or her own personal record.  The game enhances the gaming experience with Google Play Game Services by adding achievements and leaderboards.

Thank you for your interest. Follow us!  There is more to come....

Saturday, November 29, 2014

LibGDX Table UI for menu screens - part 2

Hello. Let's continue were we previously ended our last post. Now that we have our button images and style file its time to implement them in the code.

Let's create a MainMenuScreen class that implements the libGDX class Screen. In order to use the Table layout we need a Stage, TableSkin and TextButton.

public class MainMenuScreen implements Screen {

    private Stage stage;    
    private Table table;
    private Skin menuSkin;
    private TextButton playButton;    
 /**
  * Main Screen Screen
  */
 public MainMenuScreen() {
     this.stage = new Stage();
     this.table = new Table();
     this.menuSkin = new Skin(Gdx.files.internal("skins/menuskin.json"), this.g.manager.get(""+Gdx.files.internal("mainmenu/menu.atlas"), TextureAtlas.class));
     this.playButton = new TextButton("PLAY", menuSkin);
     //table.debug() 
    }
}

The code above is pretty clear. In the MainMenuScreen constructor we create new instances of Stage and Table. We create our Skin file from .json file we created earlier and associate it with a TextureAtlas we created earlier. Lastly we create a new play button which has the text "PLAY" and that uses the previously created menuSkin. You can also create the button and its label separately and assign them after you do some changes to the label, if you have to.

To add the button I put the following code to the show method of the MainMenuScreen class:
// add the button
this.table.add(this.playButton);
this.table.setFillParent(true);
// add the table to the Stage
this.stage.addActor(this.table);
// listen Stage inputs
Gdx.input.setInputProcessor(stage);

You can also assign input listener to your button. For example in the following way:
     this.playButton.addListener(new ClickListener() {
         
            @Override
            public void clicked(InputEvent event, float x, float y) {
                // What happens when the button is clicked goes here
                              
            }
        });

To make the stage visible include the following code in the render method:
        stage.act();
        
        stage.draw();
        //Table.drawDebug(stage);

You might have noticed earlier the commented lines table.debug() and Table.drawDebug(stage). I recommend uncommenting these lines while you are creating your table layout. These lines enable the debug line of the table layout that allow you to better understand what kind of space each element occupies. It can tricky sometimes to get the elements quite right and that's why you should be familiar with the table page in the libGDX wiki.

Below you can see how the previously created button looks in my game, Rocket Sledge. Now granted, I did use a few more commands such as expand(), row(), size() etc. to size and position the button where I exactly wanted it but there it is. Using ImageButtons is quite similar to textbuttons. You have include your image in your TextureAtlas and define what image your button uses in the .json file.



Wednesday, November 26, 2014

Rocketsledge.com website also the Korean version as below is online

Rocket Sledge는 로켓 썰매를 타고 눈 내린 라플란드 지역의 밤하늘을 질주하는 일인용 비행 게임입니다. 수려한 북극광이 펼쳐진 라플란드를 가로지르는 역동적인 썰매에 몸을 싣고 즐거운 스릴을 만끽해보세요. 다른 플레이어들과 최고 점수를 얻기 위해 경쟁을 하거나 자신의 기록에 도전할 수도 있습니다.
순발력 있게 장애물이나 위험 요소를 피하면서 최고 점수에 도전해보세요장애물이나 위험 요소에 부딪히면 Rocket Sledge  속도가 줄어들고 결국에는 게임 라운드가 종료됩니다.
하늘 높이 날아올라 상공에서 질주하며
각종 기프트 패키지, 눈송이, 별똥별, 질주하는 운석, 눈 뭉치를 비롯해 경쟁자와 조우하는 멋진 기회가 주어집니다.
지상에서는 경쟁자가 눈 뭉치를 발사합니다
기프트 패키지를 수집하면 각 패키지당 점수가 주어지고  기프트 패키지를 충분히 모으면 추가 썰매를 얻을 수 있습니다.
게임에 대한 정보를 확인해주세요. 개발이 진행되는 동안 변경될 수도 있습니다.
블로그 게시물에서 자세한 규칙을 확인할 수 있습니다.
( 1 ) 크리스마스와 관련된 멋진 Rocket Sledge 스토리도 개발했습니다크리스마스가 되기 전 출시일이 다가오면 두 개의 블로그 게시물이 공개될 예정이니  팔로우해주세요.

( 2 ) 게임 출시일 및 플랫폼
2014년 크리스마스에 출시될 예정이며 Android 기기로 즐기실 수 있습니다.
자세한 정보 확인처
당사의 블로그에서 Rocket Sledge 개발 현황을 확인할 수 있습니다.

트위터에서도 @rocketsledge 만나볼 수 있습니다.

LibGDX Table UI for menu screens - part 1

Hi. In the following posts I will discuss how to create a user interface for your app with libGDX by using the Table, Stage and various Button classes. In short, Table offers functionality for different element widgets for positioning and sizing these elements, for example buttons, for your game. The great benefit of table-based layouts is that they don't rely on absolute values so they automatically adjust to different screen sizes and/or resolutions.

In this post I will show to create your own button images and your Skin file for styling your elements. The next post will show how use them in your code.

First what we need to first is to create a button we are going to use. In fact, we are going to create three images for one button. The image below shows how the images I made look like. They are each saved into different files and each file names ends in a *.9.png, which is an important detail as we are going to use the 9Patch feature to implement out scaling buttons.


The first image we call button.9.png it is the default button state, i.e. not pressed down or disabled. The second is called button-disabled.9.png and the last is button-down.9.png. After the images have been created we fire up the 9Patch program that comes with the Android SDK. It can be found in the android-sdk\tools\ folder and start the tools with the draw9patch.bat (on Windows).

It will look something like the image below:


Use the right mouse button to drag the black lines/gray areas to their correct places. You can see a preview of how to button will look when stretched. The 9patch works roughly so that everything inside the black lines is enlarged and stretched and everything outside retains its shape and size. This allows the repeating parts inside the buttons to change while the edges and corners remain the same.

Save these files and keep their names we created earlier. I also packed my images with the texture packer so that the graphics are contained in one image. See the instruction for Texture Packer here. This gives me to files menu.png that contains the button images and menu.atlas that defines the what content the image file contains. Remember to store them somewhere where you keep your game's assets (with libGDX the android\assets folder).

Now there is only one more thing to do. We need to define our menu.json file that defines the button styles we are going to need.


{  
 com.badlogic.gdx.graphics.g2d.BitmapFont: {  
  normaltext: { file: fonts/font.fnt } 
 },  
 com.badlogic.gdx.graphics.Color: {  
  white: { hex: "FFFFFF" },  
  black: { hex: "000000" }  
 },  
 com.badlogic.gdx.scenes.scene2d.ui.Label$LabelStyle: {  
  default: { font: normaltext, fontColor: white }  
 },  
 com.badlogic.gdx.scenes.scene2d.ui.Button$ButtonStyle: {  
  default: { up: button, down: button-down, checked: button-down, disabled: button-disabled },  
  transparent: { }  
 },  
 com.badlogic.gdx.scenes.scene2d.ui.TextButton$TextButtonStyle: {  
  default: { up: button, down: button-down, checked: button-down, disabled: button-disabled, font: normaltext, fontColor: white }  
 }
}

The first item in the {} contains our BitmapFont, it is just font I created with the Hiero tool. If you don't know how to create fonts you should head up libGDX site and look it up. It is quite easy.

The next group contains some colors we might use mainly for our text. The white and black are colors we are going to use. Please note that the names could be anything, they are just something you call that particular style but it helps if you make them logical and correspond to the colors.

The next one defines our default label style. Default fields are always used by the libGDX games unless you specify other styles and use them explicitly. As you see our default label uses our font and white color.

The next group defines out button style. Up, down, checked, disabled are all the different states a button can have. As you can see we have put in the file names of the images we previously created. The next group after that, TextButtonStyle specifies a TextButton. We use the same images but in that we define the font as well plus we also put a default label style too. If that all is confusing you can head into libGDX site where all this is documented in more detail

Thanks for reading. I will post the part 2 soon where I show how to actually use these things to create a menu with buttons.

Sunday, November 23, 2014

Website to be in Korean too - here is an extract,. Have a look!


Rocket Sledge는 로켓 썰매를 타고 눈 내린 라플란드 지역의 밤하늘을 질주하는 일인용 비행 게임입니다. 수려한 북극광이 펼쳐진 라플란드를 가로지르는 역동적인 썰매에 몸을 싣고 즐거운 스릴을 만끽해보세요. 다른 플레이어들과 최고 점수를 얻기 위해 경쟁을 하거나 자신의 기록에 도전할 수도 있습니다.

I will put the Korean text on the website in a couple of days.  This just an extract for you information.

Thank you for your interest. Please follow us. There is more to come...


Saturday, November 22, 2014

Rocket Sledge's ICON and LOGO - check it out!

This is how the final ICON and LOGO for Rocket Sledge looks. Looks great yeah!
Thank you for your interest. Please follow us. There is more to come...

Sunday, November 16, 2014

Have a look at the first drafts of Rocket Sledge's launch icon and logo

Here are the first drafts of Rocket Sledge's launch ICON and LOGO. What do you think?

Thank you for your comments in advance!

Thank you for your interest.  Please follow us up as there is more to come…


Saturday, November 15, 2014

Rocket Sledge a paid PARENT and ENVIRONMENT FRIENDLY game

Recently I have been thinking about games from the point of view the game being free or paid.  It seems that quite a many games you can download free from app stores are not really free.  Once the player is “addicted” to the game you will buy in-apps etc.. 

In my opinion this is of course fine as for the developers games are a business or if the player is using his own earned money to buy in-apps.

The situation is more challenging, if you are a parent and the player is your kid.  I have been following closely parents whose kids are playing and bumping repeatedly to a point in which the kid should buy something to proceed in the game.

Disappointingly to the kid the answer from the parents is a no quite often.  This seems to be causing only an argument, sometimes a loud one, between the kid and the parent.  I don’t have kids of my own so I’m observing this from outside.

A free game with the possibility to buy in-apps makes the cost of the game unpredictable to parents.
I have concluded that Rocket Sledge will be a paid game.  In the case of kid players the download price is going to cost for example to parents.   I’d like to call this PARENT FRIENDLY game pricing.

The other issues I have been pondering are sounds and music.  I have heard quite a many times requests to lower the volume from the parents and people around the player .

I have concluded that switching the music and sound on and off needs to be very simple in the game.  I’d call this not only a PARENT FRIENDLY but also an ENVIRONMENT FRIENDLY solution.

Well enough about this I need to get to writing the Rocket Sledge code!

Thank you for your interest.  Please follow us up as there is more to come…

Thursday, November 13, 2014

Using libGDX Preferences

Preferences are a great way to store certain data for your application, best example being user settings. Stuff like sound settings, best highscore, or whether or not to auto-login to some social media service is what Preferences are for.

Preferences data is stored in an xml file in the user's home directory. On Android preferences will survive app updates but are deleted if the app is uninstalled. Preferences should not be used to store complex game data like level information or game saves.

You should check the entry at libGDX wiki about them.

In my game I have a class called Settings that I use to store and handle my preferences. The class is loaded when the application is started and it looks something like this:
public class Settings {
 
 
 private Preferences prefs;
 
        // toggle sounds and music on/off
 private boolean sounds;
 private boolean music;
 
        // volume
 private int soundVolume;
 private int musicVolume;
 
        // best score
 private int highScore;

}

The constructor of Settings is shown after this paragraph. The important thing here to know is that that preferences are called with the getPreferences() method used in the code and that the name of the file that is looked is the one given as parameter. In the methods calling for certain data type of data, the first parameter is the name of the field in the xml file and the second one is the default value if no such field exists.
So, as you can see. The sounds and music are on at full volume by default and the high score is zero.
public Settings() {
       // get the preferences
       this.prefs = Gdx.app.getPreferences("MyGame-preferences");
       // get the sounds on or off, def on
       this.sounds = this.prefs.getBoolean("sounds", true);
       // get the music on or off, def on
       this.music = this.prefs.getBoolean("music", true);
       // get sound volume
       this.soundVolume = this.prefs.getInteger("soundVolume", 100);
       // get music volume
       this.musicVolume = this.prefs.getInteger("musicVolume", 100);
       // personal high score
       this.highScore = this.prefs.getInteger("highScore", 0);
}

In my game I can change and store the settings like this when user for example toggles the sounds on or off. Remember to call the flush() method or otherwise the changes you make won't be saved.
 public void setSounds(boolean b) {
  this.sounds = b;
  this.prefs.putBoolean("sounds", this.sounds);
  this.prefs.flush();
 }
I use the following kind of method every time about to play a sound in the game to check if the sounds are enabled or not:
 public boolean sounds() {
  return this.sounds;
 }
like this:
        if (this.settings.sounds() {
           // play the sound
        }
And that's it for this short post this time, see you next time.

Tuesday, November 11, 2014

Rocket Sledge-website - mini language versions online - check it out !

Thank you for your interest.  Please follows us there is more to come...

Rocket Sledge is a fun and challenging flying game for a single player in which you fly a rocket sledge in the night over a snowy Lapland terrain with northern lights flaming and towing a wildly swinging wagon line behind you. You can compete with other players for the highest score or improve your own record.

Rocket Sledge はワクワク楽しめる一人用飛行ゲームです。降雪地帯のラプランドで夜にロケットそりを飛ばし、北からの光があなたの背後から、大きくスイングするワゴンラインを照らしながら先導していきます。他のプレイヤーと最高得点を競ってもよいし、自己記録の更新を狙うこともできます。

Rocket Sledge es un juego divertido y desafiante para un solo jugador en el que pilotas un trineo cohete de noche, sobrevolando un terreno nevado de Laponia, con luces de auroras boreales, y remolcando una hilera de carros que se balancean descontroladamente detrás de ti. Puedes competir con otros jugadores para obtener la máxima puntuación o mejorar tu propio récord.

Rocket Sledge是有趣的挑战类单人游戏,在黑夜中你驾驭着火箭雪橇飞翔在白雪覆盖并能观赏到绚烂北极光的拉普兰原野,在你身后拖曳着左摇右摆的长串车厢。你可以与其它玩家竞技得分,也可不断刷新自己的得分记录。

Rocket Sledge ist ein lustiges und herausforderndes Fliegespiel für Einzelspieler, bei dem du umgeben von Nordlichtern in einem Raketenschlitten über einer verschneiten lappländischen Landschaft durch die Nacht saust und einen wild schwingenden Anhänger nachziehst. Du kannst gegen andere Spieler um die höchste Punktezahl antreten oder deinen eigenen Rekord verbessern.

Rocket Sledge เกมบินผจญภัยสำหรับเล่นคนเดียว ที่มีทั้งความสนุกและท้าทายในการขับจรวดบินไปบนทัองฟ้าบริเวณตอนเหนือของทวีปยุโรปในยามค่ำคืน ซึ่งเป็นภูมิประเทศที่เต็มไปด้วยหิมะ และแสงเหนือที่งดงาม โดยที่จรวดนี้ต้องลากเลื่อนหิมะที่แกว่งไกวไปมาอยู่ข้างหลัง คุณสามารถแข่งขันกับผู้เล่นอื่นๆ โดยการบันทึกคะแนนสูงสุด หรือบันทึกคะแนนของคุณเพื่อแข่งขันกับตัวคุณเอง 

Rocket Sledge est un jeu amusant et stimulant de pilotage à un joueur dans lequel vous manœuvrez une luge au cours de la nuit, sur un terrain neigeux de Laponie, en profitant des aurores boréales et en remorquant une ligne de wagons brinquebalante derrière vous. Vous pouvez vous mesurer à d'autres joueurs pour battre le meilleur score ou améliorer votre propre record.

Rocket Sledge – увлекательная игра для одного игрока, в которой Вы летите на «Ракетных Санях» в ночи над снежной Лапландией с пылающим северным сиянием и буксуя дико качающимся за Вами хвостом вагонов. Вы можете соревноваться с другими игроками на максимальное количество баллов или улучшить свой собственный рекорд.

Rocket Sledge on hauska ja haastava lentopeli yhdelle pelaajalle.  Lennät pelissä rakettirekeä yöllä lumisen Lapin maiseman yllä revontulten välkkyessä vetäen villisti heiluvaa rekiletkaa perässäsi.  Voit kilpailla toisten pelaajien kanssa korkeimmasta pistemäärästä tai parantaa omaa ennätystäsi. 

Saturday, November 8, 2014

My current thoughts on the rules of Rocket Sledge

Rocket Sledge is a fun and challenging single player flying game in which you fly a rocket sledge in the night over a snowy Lapland terrain with northern flights flaming and towing a wildly swinging wagon line behind you. You can compete with other players for the highest score or improve your own record.

Depending only on your quick reactions you try to evade obstacles and dangers and simultaneously collect as many points as you can.

The speed of your Rocket Sledge is increasing all the time until you collide inevitably with one of the obstacles or dangers and your round game is over.

In the sky there are flying and floating:
- gift packages
- snowflakes
- shooting stars
- hurtling meteorite
- snowballs
- opposing flyers 

From the ground the opponent is shooting at you with a snowball cannon.

By collecting the gift packages you’ll get points per each package.  Once you collect enough gift packages you are rewarded with additional wagons to tow.

If you collide with a meteorite, with a snowball, hit the ground or the opposing flyers you are destroyed and the round of game is over for you unless you have managed to collect stars to save you.
If you hit a snowflake the steering of your rocket sledge stiffens temporarily and you’ll suffer for a while for steering problems.

If you succeed to hit a shooting star you’ll get a power up which protects you from one hit.

The speed of your rocket sledge keeps increasing all the time and the tempo of the game becomes more intense.  Flying safely may seem like good choice but the ever increasing difficulty awards those who take risks throughout the game. As time goes on you may  only collect more gift packages by depending on your quick reactions and luck.

Your objective is to collect as many points as you can.

These are my thoughts on this now and some things may change during the development.
Thank you for your interest.  Please follow us up as there is more to come…

Friday, November 7, 2014

Structure of a libGDX game

In this post I will be discussing what a structure of a libGDX game might look. Now, let's imagine that you have already created your first libGDX project and you are ready to start making your game.

My approach is to use classes called Game and Screen. The Game class is one that handles all the Screens we are going to use. If you are wondering what the screens are, you can think them as separate parts of your game. So, a simple game might have the following screens:

  • Menu Screen, this screen might just contain a Start button
  • Game Screen, this screen will contain the actual game play
  • Game Over Screen, this screen will be displayed once the game is over

Now, this is very much simplified. Typical additions to this structure include a loading screen that is displayed while the game's assets are loaded, an options screen for changing settings and one for displaying instructions etc. The purpose of the screen structure is to keep your game manageable and allow you to easily switch between different sections of your game.

First, we create a class called MyGame that extends Game and implements ApplicationListener. This will be the main class and make sure that in the launcher files you are creating a new instance of MyGame. Let's look at the example code below:

package com.my.game;
import com.badlogic.gdx.Game;

public class MyGame extends Game implements ApplicationListener {
 @Override
 public void create() {
  // TODO Auto-generated method stub
  setScreen(new MenuScreen());
 }
}

The very first thing your game will do when launched is the create() method and at the end of it you should set which screen you want to start. In this example we will be directly proceeding to our MenuScreen but if your game contains a lot of assets it could be better to display a loading screen first. I will show an example of that in my upcoming posts.

In the MyGame class you should implement all the handles and variables that will be used throughout all the different screens. This might include things like settings, graphics and sounds. I will show this in more detail in my later posts.

Now, lets look what our menu screen will look like. First, we create a class called MenuScreen which implements Screen. All the methods you see below are automatically generating from the screen interface. Please read through the code, I have included short explanations what each method does.

package com.my.game;
import com.badlogic.gdx.Screen;

public class MenuScreen implements Screen {

 @Override
 public void render(float delta) {
  // TODO Auto-generated method stub
                // This method is called each time your screen
                // is rendered (drawed on the screen)
                // so here you should put all your rendering
                // related code         
 }

 @Override
 public void resize(int width, int height) {
  // TODO Auto-generated method stub
                // This one is called each time you device's
                // screen size changes
                // for example when changing for landscape to
                // portrait mode
                // you might not really need this one necessarily
 }

 @Override
 public void show() {
  // TODO Auto-generated method stub
                // this method is called each time your
                // screen is set active
                // you might want to do all the initialization
                // regarding your screen here
 }

 @Override
 public void hide() {
  // TODO Auto-generated method stub
                // this method is called when a new screen
                // takes this screen's place
 }

 @Override
 public void pause() {
  // TODO Auto-generated method stub
                // this one is called though the ApplicationListener
                // when the application becomes inactive
 }

 @Override
 public void resume() {
  // TODO Auto-generated method stub
                // this one is called when the game
                // becomes active again after pause()
 }

 @Override
 public void dispose() {
  // TODO Auto-generated method stub
                // this one is used to release all the resources
                // the screen holds
 }
}
So each time your game sets a new screen using the setScreen() method the old screen will use the method hide() and the new one will be started with show(). You should note that the old screen is not removed, so you can have multiple screens loaded at the same time and you can quickly switch between them. However, you should use the dispose() when a screen is no longer needed or keeping it active would take too much memory.

Now, there are a few additions one should make to this code. First, you should make a constructor for each screen and give them a handle to the MyGame class. I prefer to do it this way, although each Screen has a method for calling it's Game class.

The constructor would look something like this:
private MyGame game;

public MenuScreen(MyGame game) {
       this.game = game; 
} 
Also you now need to pass the Game as an argument when creating a new MenuScreen. For example, when calling this in the start of the game you should use setScreen(new MenuScreen(this)); when loading a new screen in the create() method.

Now you can inside the MenuScreen switch easily to your Game screen if you wish:
this.game.setScreen(new GameScreen(this.game)); 

And that's it for this post. In the upcoming posts we will take a closer look how to implement a loading screen, load user preferences (settings) at the start of the game, how to make a menu with buttons and other stuff.

Thanks for reading and see you next time.

Monday, November 3, 2014

Setting up the libGDX project

Rocket Sledge is developed using the libGDX java game development framework. It is a very good framework that allows cross platform development with the same code base and is packed with features.

Getting started with libGDX is pretty easy and well documented on their website. First of you need Java Development Kit 7, or JDK 7, which you can download from the Oracle website. After that you will need an IDE. I'm using regular Eclipse IDE for Java Developers and not the Android development bundle available as well. After Eclipse you need Android SDK and Android Development Tools for Eclipse, aka ADT Plugin. Please note that when installing the plugin with Eclipse it may take some time as it is quite slow. LibGDX also required the Eclipse Integration Grade. It is all detailed on the libGDX website.

Once the previous steps have been done all you need to do is download the gdx-setup.jar and use it generate your project. Just fill the text fields and select what platforms you want to select and which extensions to use and the click Generate.


Once you have done that you need to import the directory to Eclipse as a Gradle project.  You can do this in Eclipse from the import menu by selecting File -> Import.  The generated project is a directory with many sub folders, and while developing you will mainly code in the core/src  folder.  In order to develop with libGDX you have to be familiar with Java and then spend some time on libGDX sample projects to slowly learn how it all works.  There are also a lot of free Java resources available online to help you get started.

In the following blog posts I will be going through more in-depth what to do with libGDX and how I have done things.


Thanks for your interest, see you next time!

Sunday, November 2, 2014

About the developer

You are very welcome to Rocket Slegde game’s website and to my blog. In this blog I will go into detail about my game and some Android game development stuff.  I hope you start to follow my blog and the development of the game.

Let me introduce you to my development  team.  As a joke I can tell you that the team consists of three persons, that means, me, myself and I.  Yes I’m a one man band.

My first name is Risto, which is what most of the people call me. My family name ends with -nen as quite a many Finnish family names. 

Yes I’m a Finn and reside in Finland.  Finland is at the moment kind of famous in game development, if you consider games like Angry Birds, Clash of Clans and others. 

I’m more of  an Indie-developer and developing my game mostly just for the fun of it. It would be also nice if the game will have some commercial success.

I’m a student at the Aalto University in Espoo and study in the School of Electrical Engineering.  I’m rather close to my graduation, which I target to do next spring.

I got the idea for this game and developed the first version on PC exactly 10 years ago.  As some people have liked it during the past years I thought to make it available for a wider audience.

I’ll get back to the game’s history in my coming blogs posts.  Thank you for your interest.

"Turboreki", the origin of Rocket Sledge





Rocket Sledge draws its inspiration from a game called Turboreki, which translates to Turbo Sleigh. It was a game made by young me back in 2004. I've been planning and trying to do a sequel but nothing ever came of it. So it is now quite fitting that I'm doing a spiritual successor to it and it happens to be the 10 year anniversary of Turboreki.

The game was made for a small Christmas game competition held by a small Finnish website. Turboreki was both the first and the last game I ever managed finish making. Although, even it was never really finished as it lacked some planned features and a final polishing touch, but close enough I would say.

However, much to my surprise the game won and I ended up with all the prestige associated with the first place and won some PC game as a prize. It also received positive feedback from many players and fellow game makers. I remember it being a pretty big deal for me back then.

I have to say in all honesty I don't remember how I got the idea for the game. It could be that the idea sprang from some other stuff I was doing at the time. I remember the rocket sleigh with the wagons being there from the start in some form or other. The rest of the game just grew around it.   
The game's development took maybe about a month and a half with me balancing my time school, friends and doing something else than just spending  time in front of a computer. I submitted the game just in time for the deadline, a few days earlier of Christmas Eve 2004 and that was it.

The game was made with CoolBasic which is a Basic-like programming language aimed at making game development easy. It was made with CoolBasic Beta 5 which was back then the newest version. Since then Beta 10 has come out and the a new improved version has been in the works some years now. I owe big thanks to CoolBasic for getting me into programming. It was easy enough to pick up within the limited attention span of young me, even though, it took months of experimenting with it before I had the skills to make Turboreki.

The game's graphics were drawn by me with some software I've since forgotten. They weren't anything spectacular even back then but they did their job. I was especially proud of the big white moon in the background. Despite its simple outlook the game required relatively powerful computer to run smoothly. CoolBasic didn't support hardware acceleration in graphics so everything was done by the CPU. The snowing effect was the one that slowed down performance the most and that's why I made the option to turn it off. I'm glad that hardware acceleration isn't an issue when developing for Android.

The simple sound effects were just something I obtained from some free game development resource pack. But the soundtrack was another strong feature of the game in addition to the fun game play. The songs were some well known Christmas carols recorded by two Finnish guys named Niko and Janne. If I remember correctly their Christmas band was a side project for them but I've since forgotten what was their main band. Anyways, the guys were happy have their tracks in the game.

Rocket Sledge aims to provide a fun gaming experience. It will use the elements that worked in Turboreki, modernize and improve on other areas and implement some new ideas that I've had during this past decade or old ones that I was never able to realize due to limitations of the time or my abilities. That's what makes Rocket Sledge a spiritual successor to Turboreki. Perhaps I would even go far to say that it will be an homage to my young self in the past from me in the present.


Thanks for reading, have a nice day and I'll see you in the next post.


P.S

For those interested, here is a download link to Turboreki. The game is in Finnish but in the starting menu the top text will start the game. Please, note that it will only work on Windows and has no support for changing resolutions. It might not even run at all, as I had some trouble getting it to work. Download and play it at your own risk.

Thursday, October 23, 2014

Rocket Sledge's backstory

I have developed a following story for Rocket Sledge's Christmas 2014 release:

On Christmas Santa Claus departs once again for his journey around the world in order to give  all the nice children of the world Christmas gifts.

Santa hops on his sleigh and with the help of his reindeer sets out flying in the night sky. The cold winter night of Lapland over the polar circle, is lit up only by the northern lights that blaze over the snowy terrain.

But this year the wicked witch of Lapland, naughty since a child and consequently never got any gifts during Christmas, wants to prevent Santa Claus from taking his journey.

The witch chases Santa's sleigh over the night sky and collides with him crashing them both down. Santa and the reindeer land softly and safely on the snow but the crash send all the gifts flying around in the sky.


Because Rudolph the Red Nosed and other reindeer are fine Santa quickly in order to save the Christmas for the children he returns to his home and picks up his spare sleigh. Only if there was a way to get the gifts back,  they are still flying in the sky!

But don't worry Santa has a plan!

At the same time he contacts his engineer elf and tells him to send all the elves with fast rocket sledges to collect all the gifts floating in the winter sky. YOU as the player are one these elves helping Santa to save Christmas.

Seeing this taking place the wicked witch of Lapland is angry and is going to do everything to prevent the elves from collecting all the gifts.

The witch uses all his powers to prevent the children getting their Christmas gifts and sends all kinds of dangers and obstacles to elf’s way to block them.

By playing skillfully YOU can save the Christmas and ensure that the nice children of the world get their gifts and have a Merry Christmas this year too.


Thursday, October 16, 2014

Website online!

The first version of our website is online at http://www.rocketsledge.com

The web design or graphics aren't yet final and we will continue to develop the site in the coming weeks. However, the main thing is having our on domain and website.

That's it for this post, expect a new post in the next few days. It will be a comprehensive introduction to this game and its background.

Wednesday, October 15, 2014

Setting up the blog!

Hi.

This blog will be dedicated to the development of upcoming Android game Rocket Sledge and Android game development.

This blog post is just about setting up the blog. A proper introduction post will follow later.