Tuesday, 18 June 2013

Pause

Hey everyone, just a quick update on what's happening. I've paused my work on AudioBrush because of my actual work that pays bills. As soon as things die down I'll be back on AudioBrush.

Sunday, 19 May 2013

Multipliers!

This week sees the introduction the of classic multiplier, collect beats without missing and increase it - plain and simple! This weeks updates:

- Now supports, .m4a, .wav and .aiff in edition to .mp3
- Handles protected tracks
- Gameplay updated
- Multipliers added
- Themes added (currently via settings menu)
- In-game streak updates
- Fix for authorising Facebook after long inactivity period
- Leaderboard updates
- Additional elements added to the "colour swipe" phases.
- General bug fixes

Here are the latest screenshots:






Sunday, 12 May 2013

The BETA


Another great development weekend gone by, here is the latest vid, sorry about the quality the FPS on AirServer is poopy:



This week:
- Gameplay Updates
- Leaderboards (Facebook Required)
- Offline Mode Complete (no Facebook required)
- Star Power Mode
- Game Settings
- OpenGraph stories
- Profile Pictures
- Pause Menu
- Stability Improvements

Facebook was the main priority this time, there are now a load of opengraph actions and stories which will be published to your wall should you choose to do so. Leaderboards are done currently allow you to view the top 10 players for any track and the highscores amongst your Facebook friends.

I've stuck a release date in the pipeline, July. I would like to get AudioBrush out there on or before my Birthday (25th July), but we shall see how things pan out.

I went to go and show a few buddies of mine the game today, turns out the trains were not running properly so I had to get a rail replacement service. I whipped out the old iPad and stuff playing away and coming up with ideas. GUESS WHAT! Some dude was looking at me play and came over and asked me, "'Squooz me mate, what's the name of that app?". It took about exactly 0.001 seconds for my face to have the mostly cheesy, cocky-like grin on it, to which I replied, "Oh, well it's called AudioBrush". The chat continued and resulted with him being amazed basically. YES, I HAVE A GROUPIE!

Sunday, 5 May 2013

Scoring and UI!

Another week gone by, but this was a rather exciting weekend. Branding (as you may have noticed), Facebook App/OpenGraph, user interface and scoring!

I'll lay off all the chit chat can give you some jay pegs.

Facebook Stuff:



User Interface:

And here is a video of the app so far...


Sunday, 28 April 2013

Art with Audio


So, another weekend gone. This week I've put art and audio together, by which I mean I applied some of the algorithm to the arty-farty elements of the game.

Bare in mind the beats are not synced correctly and obviously they don't yet have any collision detection for them to be collected. But for the most part, I guess you can get a better understanding of the concept =).

Here's the badly recorded, 30 FPS video:


Friday, 26 April 2013

Fullscreen 60 FPS - The ultimate mobile milestone

60 FPS is that magic number that makes gaming look and feel great, but achieving this on mobile devices has been a rather large challenge for a game that has fullscreen, graphically heavy gameplay.

There were a number of ways I tried to get it running at 60 FPS on iPad 2 / iPhone 4 and after the 4th attempt I've cracked it!

Attempt 1 & 2:
Firstly I started out thinking that all I have to do is create a bitmap the size of the screen and then let the built in actionscript "bitmap.scroll" method do the leg work. But no this was probably one of the worse results I received during the tests (around 21 - 25 FPS on iPad mini). Shortly after this I thought maybe making the bitmap size a power of two, so rather than 1024*768, 1024*1024, but nope, still no good, in fact worse.

I assumed that the GPU would automatically handle all the lengthly calculations - which is does in a sense but the blasted Flash DisplayList kept on rending it's dirty regions - filthy displaylist!

Attempt 3:
I then looked into using Stage3D (AKA Molehill), as using the stage3d features in AIR on mobile directly utilises the GPU. So the theory is that I generate a quad from two triangles and texture the quad with bitmapdata.

It worked a dream, but it was the "uploadTextureFromBitmap()" method that killed it this time. Even though there was no display list being used, parsing the bitmap data each frame to the texture on the quad was still too heavy but was a vast improvement - 31 - 40 FPS.

Attempt 4:
So scrolling bitmapdata is too heavy as the fullscreen displaylist has to be updated every frame, stage3D doesn't quite meet the mark - what's next? Fullscreen? does it need to be? Yes, but wait...

I went back to the original method but this time rather than scrolling the bitmapdata, why not scroll a bitmap object- or more accurately, why not scroll multiple bitmaps objects? Turns out creating more bitmaps was the key.

I've created a grid/array of bitmaps, each bitmap being 256*256, enough to fill more than the screen, each bitmap object is then cached as a bitmap (bare with me). This means that when the bush is over a section of this grid only a 256*256 section of the screen is being updated because of the display list, the rest is cached (because i set the object to be cached) and handled directly by the GPU. 60 FPS - BOOM!

All that was left to do is to reposition the bitmaps when they go offscreen to wrap around again so stop the need to create new ones every time a new row or column of bitmaps is required.

I've put together a short video to demonstrate how the new method is working (also offset the bitmaps so you can see that they are being removed and repositioned, and also coloured them so you can see the individual bitmaps themselves).

The video is recorded at 30 FPS, but a promise you it's running at 60 =).



Sunday, 14 April 2013

New Brush!


I've cracked the brush technique, it's 4:07am here and I have dentist at 9am, gonne grab some sleep and I'll explain later!

Comparison Video: