My job has recently changed from mostly programming in Perl to mostly Java. As such I’ve been playing around with Java at home a bit too.
A couple of weeks ago I got an email from someone who bought my Sky+ Remote Recorder app asking if I’d be updating it. I replied saying that I wouldn’t because I didn’t think it was worth the effort when Sky have their own app and at least my asp still worked for people with older versions of Android.
A couple of days ago I read that Sky’s apps got pulled because they got hacked. I cursed myself for not having bothered to update my own app and decided it would be good practice at Java and would be a welcome improvement to the people who still use my app regularly.
I’ve spent my evenings working on a new version this week. It’s coming along quite slowly because I’ve got no experience of most of the new Android development practises or designs.
I hope to have a very basic ugly version working by the middle of next week and then spend some time polishing it and doing what testing I can on the devices at my disposal before releasing it.
One of the most important parts of the entire game is the ability to shoot at the bad guys. For this you’ll definitely be needing some bullets (and I’ll get to the bad guys soon).
I thought adding bullet sprites would be quite complicated because it would involve finding the angle to be fired at, the start position based on the position and rotation of the character sprite, but that turned out to be quite simple in the end.
Rather than use any complicated mathematics I determined that the centre of the character sprite is something that won’t change because the character is on top of a non-moving tower. I modified the Sprite.java file in the Rokon files to include centreX and centreY values. If I eventually let the character sprite move then I will need to make sure that value gets updated, but that’s a very minor issue.
I create the bullet sprite when the user presses the trackball button, or the centre of the directional pad if that’s what the device has. The bullet sprite appears at the centre of the character sprite and has X and Y velocity applied to it like so:
I decided that I wanted to get a bit more into Android development, and I decided to go with a game this time. I have made a game for Android before, well, a kind of puzzle more than a game. It’s called Petals Around the Rose, and it basically just sits and waits for user input before anything happens. So it’s not a real-time game. This next game is going to be very different.
My aim is to make a game called Bring It! that is along the lines of the tower defence games you see quite a lot of, but with elements of games like More Rooms by Sean Cooper and Burn Zombie Burn by Doublesix Games to it.
The player will control a single character in a tower and will begin the game with a basic weapon. Waves of creatures will begin to invade and try to reach the character, and the player must kill all of these creatures. As the waves progress the creatures will get stronger, and/or come in different numbers. The player will have the ability to earn better weapons, or upgrades for current weapons. There may also be the possibility of moving to other towers depending on the level. The towers will not all be the same and will differ in strengths and weaknesses.
I am writing the game (for the time being) in Java, using the Rokonengine for Android. This uses OpenGL to create and manage the graphics.
I have never written a real-time game before. I have never written anything using OpenGL, or any other similar library. I have only ever written two things in Java. These are the hurdles I have to overcome to get a working game.
A month ago I wanted to set something on TV to record from my phone because I was out of the house. I was aware of the Remote Record option available on the Sky website, and that I could send an SMS to a specific number to set it up, but the website is a real pain to use on my phone, and I couldn’t remember the phone number, or what to send to it anyway.
I figured there was probably an Android application for sending a remote record request via the web, and there actually was. I was very pleased, until I saw that is cost quite a bit of money. This was when I came up with the idea of writing my own Remote Recorder application.
After a lot of my evenings and weekends spent on it I finally have a working application that I’m satisfied with enough to release to the general public.
Search the Android App Store for “Remote Recorder” and give it a go!
Remote Recorder has a very basic interface. You enter the name of the show you want to record into the search box and results are returned for you to choose from. Once you’ve chosen a show a list of show times and channels is retrieved and displayed to you. If you long-click on the show description then a remote record request is sent to Sky and they forward it to your Sky+ or Sky+ HD box. Hey presto, your show gets recorded. 🙂