Saturday 8 October 2011

All Things To All People

HTC DesireImage by matthias.penke via Flickr
First off, a big shout to out to every independent developer out there. Yeah, even the iPhone ones. Whether intended or not (or even want it or not) you have earned my heartfelt respect. Why, I hear you ask? Let me tell ya.

Resources are great.

Having an endless supply and choice of images, sound bites, music is essential in putting a cohesive product together to blast through the popularity ratings and up the charts. Resources also give you the benefits of getting heads together to bash out ideas. Different opinions and perspectives are available to help prevent rash decisions and possibly come up with brilliant ones. They also allow work on all of the different aspects of development, and they can happen simutaneously to meet popularly frequent deadlines. Resources also come from specialist sources; music comes from composers, graphics come from graphic artists.

Independent developers have none of this.

All responsibility for every single aspect of the development process falls squarely on the shoulders of the brave devil who has undertaken the mammoth task of app writing.

Each and every time I come back to adding to one of my projects, the first thought that goes through my head is 'What hat should I put on today?' A new feature put in the day before needs audio, so I'm putting on the musical hat. The day before that had the code being written with placeholder graphics so yesterday I had on the artistic hat. The day before that I had to come up with the new feature, hence the project management hat. The day before that: I was talking to customers to find out what they would like to see in the app. I wore my customer services hat. And the cycle goes on and on.

Please don't get me wrong. I love each and every aspect mentioned above. I don't claim to be an expert (with the possible exception of the coding), but I'd love to spend more time on each. My two main gripes are that there is a noticeable drain caused by swapping the aforementioned hats and that (admittedly) I am impatient and would like to plough through the process at breakneck speed as I've so many ideas that I've often forgotten half of what I want to do by the time I'm in a position to add more.

Oh and we have to try and fit in 'normal life' (whatever that is) into that mix as well.

So the moral of this story is: app development takes time, indie development even more so. Please bear this (and all of the above) in mind when you formulate opinions on apps and their creators. If we sometimes come across as overly sensitive, it's because we're trying to be all things to all people and feel we're letting you and ourselves down when criticised.

I love writing apps for Android.  And I know that you love having apps on your Android (tell me I'm wrong).  But it's not easy, so if you enjoy our apps, show some support!

Paul
Enhanced by Zemanta

Wednesday 28 September 2011

Flying Past The 10,000th Download Milestone!

Milestone, Bath RoadImage by Pete Reed via Flickr
Every day, at random intervals (what can I say? I'm not that organised), I take the numbers down, put them into a spreadsheet. From these I can then draw pretty little colourful graphs to show, in essence, what you guys have been up to with regards to my apps.

From around the 16th September 2011, the download statistics on all of my apps simply got stuck (a widely ranted about bug that I'm sure most of you already know about). Their graph lines just flat-lined. I had heard that this happened from time to time and it usually cleared up in a day or two. Well, not in this case. I thought, given the technology of today, waiting a whole day for an update was poor. Having to wait twelve whole days was just plain cruel.

At least my apps already had some statistics - some of my colleagues had posted new applications during this period and have had nothing, zip, nada to play with. They have no idea if their apps even are working in the real world!

That aside I was pleased to see early on this very morning that that these figures have now changed. Finally!

Zombie Pop, my (now) free live wallpaper, was (based on previous figures) on line to be breaking into the 10,000s just around now; a milestone I was looking forward to witness. What the developer page was now showing me was 12,284 downloads! Twelve thousand downloads in three months! 4 stars over 147 reviews!

Fantastic!

And the trend seems to be getting stronger! As others have reported on their apps - there were noticeable upsurges on new version releases and national holidays.

It does now mean that I have to thank twelve thousand people personally for trying my live wallpaper/game! Thanks! :D

It's great that people are enjoying something that I enjoyed (and am still enjoying) developing!



Paul
Enhanced by Zemanta

Friday 16 September 2011

Lol! My Game Has Been Head Hunted!

Today I found myself both flattered and amused.  Out of nowhere appeared a message in my inbox that read:

"Hello Android app developer" (I've finally been recognised!)

"I am contacting you as I saw your app 'Livestock Vs The Undead Lite' on the web and found that it runs great on the range of Android tablets that our company caters for.

"As such, I have put it up on our Apps download site; AppsLib (appslib.com).  It's a specialized marketplace for users with android tablets to download app suited for, and tested on their devices."

It went on to say that they've created a developer account on my behalf and sent login details.  Sweet.  In fact, after logging in, I discovered that they have uploaded Zombie Pop Lite and Time Flies live wallpapers as well.

So if you have a tablet, please look up my apps on their site,  I'd be really interested to know how they look on tablets.

Given that the game is still in beta,  I was genuinely surprised and the extra attention is most welcome.  This gives me more incentive to push it into a fully fledged release.

Yay!

Paul

Wednesday 14 September 2011

Latest Release : Zombie Pop Live Wallpaper v1.2

Just a quick announcement: the release of the latest version of my Zombie Pop live wallpaper.  This is getting to be quite a fun project, seeing as it started life as an offshoot from my tower defence game.  Its latest incarnation includes the following:

::1.2
+ Customizable zombie head (Supports transparent backgrounds for better effects).
+ Popping sounds.
+ Zombie sounds.
+ User defined 'horizon'.
+ Exploding body parts.
+ Varying zombie speeds.

Yes, you can turn your brother, your best friend, your cat or anyone in your photo gallery into a flesh eating minion of the undead - there to blow to smithereens at the touch of your finger.  As you can see, I'm struggling to get a decent screen capture without the tearing.  Still working on that.

All good cartoon-y fun.  Do you think I should do a gory version...?

Find it on the Android Market here






Enhanced by Zemanta

Monday 12 September 2011

The Android Culture - It's Own Worst Enemy

Let's face it, most iPhone apps range from good to brilliant. They are polished. They have high production value (having had significant funds pumped into production and top artists, musicians and a team of developers on the credits). They are new to any platform (kind of, ie Angry Birds and Smash the Tower, Plants Vs Zombies PC and Plants Vs Zombies for the iPhone).

SAN ANSELMO, CA - MARCH 18:  An image of the p...Another truth is that the best Android apps have already proved their worth on the iPhone market and reaped their rewards there first (with the possible exception of device specific apps that tweak/bend/backup your operating system in weird and wonderful ways). It's true! Try and find a high selling app on Android that hasn't been in the iPhone market for months.

Why?

It's quite simple. Apple offers a market where a developer has a hope of making more than pocket money from their hard work. An iPhone owner understands things like 'you get what you pay for' and 'you don't get something (good) for nothing' and what they therefore get is quality. Although I, a dedicated fighter for the Android's cause, thoroughly enjoy developing, I also like eating, heating my house and having a regular supply of electricity in my sockets.

Android's chance of a brilliant future is being dimmed by Google's inability to steer it's user culture away from freetardium (a new word I've just invented). Freetardium is the watering down of a brilliant idea to a point where it has no flavour, colour or consistancy. It's a world of free 'water effect over a [insert popular film/cartoon/person here] picture' wallpapers, sleazy flesh peddling apps and borderline copyright infringements. It's a world where your favourite game is ripping out all of your personal data without your knowledge and streaming it to some anonymous offshore server.

I am of the opinion that the main reason why some of the apps have been converted to the Android market at all is more to protect itself from cloned rip-offs rather than in an attempt to make any more money.

'But people do make money on Android!' I hear you cry. Yes, but not directly. The highest earners on the Android market make their money through in-app advertising. Even Roxio, makers of Angry-Birds, realised this and have gone down this route. So, to make a decent revenue, you have to sell a further slice of your soul to the advertising agencies.

I was chatting with my iPhone developer buddies and an interesting fact was raised. Each of them have tried different methods of monetizing their apps (that were deemed allowable by the mighty fruit). They agreed unanimously that the feature limited demo/full price unrestricted model worked best. But that wasn't the interesting fact, it was that the free app with in-app advertising was the least appealing and/or successful.

The fact that it's completely the opposite on Android again is obvious: Android users can't, don't or won't pay for apps. They would rather have invasive advertising obscuring their playing area than cough up less than a dollar. Which is dumb. By donating that dollar they are investing in their own future enjoyment. That dollar will keep developers interested in the platform. That dollar will help bring around the next upgrade/release/version of their favourite game. That dollar may contribute to the next ground-breaking game that would sweep the world. Not paying that dollar and subsequently downloading apps is not only self-centred but short-sighted and seriously not cool.

'What about the gazillion more apps and downloads that are made from the Android market than the iPhone market?' Yes, this is happening and is growing at a phenominal rate. However, as with all statistics, they don't paint the right picture. The iPhone app developers, being incentivised by income, are far more likely to develop their apps to perfection. Whereas their Android counterpart is more keen to release twenty variations in the hopes that one is popular. Another statistic, which as a developer I am more interested in, is average time an app spends on a device. Unfortunately we have (other than building some sort of heartbeat broadcasting code into your app) no way to work this out. Comparing the two markets against that metric would give a completely different picture, with Apple winning hands down. It's back down to Cost vs Quality vs Quantity.

If this is sounding like a whinge, it sincerely isn't. I am not asking you to buy my apps (but it'd be really nice if you did!), in fact this isn't about me at all. It's about you. It's about how you want the future of your favourite platform to go down. It's a plea to you to not let this fantastic opportunity of a brilliant platform turn dull.

Google - yes, you know who you are. Please get your act together. We are here to help each other, not for you to wipe your feet on.

If you do buy apps, little of the above applies to you and I salute you. You are feeding life into something that could be wonderful, a dream shared by all android users, and I can't thank you enough.

If you are an Android developer and disagree with any of this, please let me know. You guys rock and have my deepest respect. If you are an iPhone developer then you know what you've done wrong and should go and reflect on that.

Here's to a bright future!

Paul
Enhanced by Zemanta

Tuesday 6 September 2011

Livestock Vs The Undead

My story is far from unusual.  I had an android smartphone.  I liked playing tower defence games.  I had a modicum of development talent (Java being the eighteenth programming language I taught myself).  I wondered if I could mash the three together into some sort of Frankensteinian monster of a game. 

Just before I embarked on the slippery slide of android development, I had come across what is termed as a Production on Demand (PoD) site called Zazzle.  We've all had ideas for great T-shirt designs and slogans at some point. Well, this site lets you actually take that idea and slap it on not only T-shirts, but hoodies, ties, caps, cups, bags and a hundred other items.  You can then set up your own site-within-their-site and sell your freshly baked items to friends, family or anyone else you can convince.  It taps into your creativity in a big way and is quite addictive.  Let's just say: I went nuts.

A month later, with help from my wife (who joined in shortly after I did) I had racked up over a staggering 4,000 items!  At that point I came back to my senses and realised that (a) it was gobbling up too much of my time, and (b) the remuneration was relatively pitiful in relation to all the effort you put in (not Zazzle's fault - I just don't have young and/or trendy, fiscally endowed social circles).  Our store, http://www.zazzle.com/strangemoo is still open (with 5,577 items at time of writing), but my attention has now been firmly refocussed.

By abstaining from Zazzle, I found that not only did I have some time on my hands, but I had built up a sizable library of self drawn stock images.  Add some of those images to smartphone/idea/iota of talent and what you have there is a starting point.

Livestock Vs The Undead was born.






The alpha was at the time the best game I had ever played.  Looking back it was embarrasingly bad.  It was little more than chicken hurling bananas (Yes, bananas. What? It was there to use, Ok?) at zombies.  (Same zombie, different colours.)  Don't get me wrong. The coding was sound and most of the code is still beating away in the heart of the latest version.  It was just that it didn't do much and needed a host of stuff throwing at it.

My first piece of advice: Don't release anything onto the market too soon. 

Blinded by enthusiasm and pride of getting something working, I naively signed it off, plugged it and rolled it out onto the android market.  I paid heavily for this by getting some less than constructive criticism on the market that will remain there forever, no matter how many further releases I add.  By jumping the gun, I have branded my poor game a loser.

Realising my mistake and lessons learnt, I am basically treating the current game as a beta. At some point in the (hopefully not too distant) future I'll rename/rebrand and re-release it to start afresh.

The game is significantly better than it was. However I want to take it to a stage where I can look back at it at some point and consider it 'done' or even 'not bad' by my own standards.  If I am going to monetise this thing, I want to give my customers value for money, else I'd consider the project a failure.  It's not even the volume that interests me.  If 20 people buy it and love it, that's success in my books.

Ok, some stats now.  Android Market is both good and bad.  It's good that it allows us lonely developers to reach the masses.  It's bad in that (at the time of writing) the statistics it provides make little to no sense.  Figures go up and down almost at random.  Comments and ratings rarely make it onto the system.  The best I can make out of it is just taking the average from a daily reading.  At this point in time it looks like:




D - Downloads, I - Installs, C - Comments

Not too shoddy for a beta.  It was originally released in May 2011 and has been growing steadily.  (Not anywhere as great as Zombie Pop - but that is another blogpost.)  I've also made it clear (since the initial release fiasco), that it is a beta on the market and it still gets a few downloads per day.  I am convinced that the naff, very early comments are putting a lot of people off.  Google should implement ratings by app version to show a fair differentiation between the qualities of the releases.  


There is a definite spike when a new release is made (not shown on this graph) which I'll hopefully be able to demonstrate when I put v1.4 live.


Paul

Friday 19 August 2011

Released Into The Wild

Android MarketImage via Wikipedia
So where am I up to, I hear you ask with feverish interest. Well, let's see...

Project #1 - Livestock Vs The Undead

In May 2011, I started work on what is currently titled 'Livestock Vs The Undead' (a working title whilst I coerce it into a semi-acceptable state). I unleashed v1.0 onto the Android Market in June 2011, which is where I embarrassingly stumbled over my first faux pas: I was asking for a payment for it.

On other more lucrative fruit-based mobile platforms, I would've been laughed at for not charging. The Android community, it turns out, is a different culture altogether. Reputation and respect has much more weight here, and this has to be earnt. So I picked myself up, dusted myself down and rethought my strategy from scratch.

I withdrew the paid-for version of the game, tweaked how far you could take the game and released it as a free download. With the intention of letting the dust settle and await some feedback from the community, my mind was ablaze with possibilities and I thought 'Some of this code would make a great live wallpaper' so I moved immediately onto:

Project #2 - Zombie Pop Live Wallpaper

As a kid I loved it when my Dad had porcelain statues delivered (he sold them for a living). It wasn't the statues themselves that interested me. It was the plastic bubble wrapping they came in. I know it's sad but I did enjoy tirelessly popping each unsuspecting bubble.

So, I had this warm fuzzy memory floating around in my neurons, and I had these zombies marching down my screen. The rest as they say is history: ZZPop LW (as it was called) was born. This was released onto Android Market in June 2011, along with:

Project #2b - Zombie Pop Lite Live Wallpaper

Wanting to test the water on whether people would cough up some money for an improved version of something they liked, I branched the development into a feature lite version. It is still a full playable version, just with some cosmetic restrictions. Again this was released in June 2011.

Project #3 - Pixelnote Live Wallpaper

As my mind was still fresh with Live Wallpaper development, I thought, 'wouldn't it be neat if you could draw straight onto your wallpaper without having to open up another app?'. Taking what I had learned on the last two and a half projects, I brought Pixelnote into existence. I realised that due to limitations of the medium and touchscreens I could only take the idea so far, but what the hey.

Pixelnote was released in July 2011 onto the Android Market.

Around this time, I started looking at the Amazon Android App Market. Even though, being outside the US, I can't actually download anything at this time, it didn't stop me from publishing the game and three wallpapers.

Since then I've released updates for both Livestock Vs The Undead and Zombie Pop and am currently pushing Livestock forward by quite a way (v1.3 is in beta and is looking better).

And that's pretty much it in terms of development. I'll do a post on each of the projects in turn next with a bit of background and the thought processes I went through.

Cheers,


Paul
Enhanced by Zemanta

Tuesday 9 August 2011

The Secret Ingredient is...

If anyone ever tells you that developing a game is easy, I can categorically say they are lying.

Of course, the difficulty of coding is directionally proportional to how good a developer you are. I’ll factor that out for now. It's not even pulling all of the resources together which can also be challenging. Sprites don’t grow on trees, and picking the right boom sound for your bomb from thousands takes time!

It’s finding that magic ingredient and coercing it to behave nicely in your game – that’s the hard part.

After all - make a game too hard and nobody will invest in the reams of content you've painstakingly lined up for them. Make it too easy and you'll alienate the die-hard gamer (which also makes up a large chunk of your potential audience).

Unfortunately you can't slap the difficult smack bang in the middle either, as again players will simply lose interest. You could adopt a linear approach, where things get a little harder each level, however this can still leave the gaming a bit flat. So, the magic formula, from my humble opinion, would be adopting a difficulty curve to broadcast a subliminal mental challenge to unaware psyches of your audience. Make sure that you don't start too easy, and don't end in the land of the impossible (although there are some games that lean that way).

Make a game too complex and people will walk away, too simple and you’ll patronize them.

Of course, how a difficulty is portrayed in your game can come in any shape or form. For example, in Livestock Vs The Undead, I have literally hundreds of factors that I can tweak. From creep speed, to tower firing rate, to number of bonus drops, the list goes on and on and is growing with each new feature I add. And any of these has greater or lesser impacts on how the game finally plays.

Another trick is throw accomplishments and treats along the way. Everyone likes presents, so giving your customers 'thank you’s through the medium of a power boost, or extra time will go down a treat (pardon the pun).

On top of all this you have to slap layers of probability. Thirteen year old Canadian females might life fluffy pink rabbits in their games, whereas Italian 27 year old males would prefer sports cars. So, you have also have to try to appeal to the middle of the curve.

Developing games is not easy.

It is fun though.



Paul
Enhanced by Zemanta

Tuesday 19 July 2011

Where did I start and How To Fix Lunar Lander

Buzz Aldrin removing the passive seismometer f...Image via Wikipedia
Ok. So you've got this idea and your target android device in mind, but you've no idea of what to do next?

My primary OS/s are Windows 7 and Linux (Ubuntu's v11.04) so I can only comment on my experience with these.

The first place to check out is Google's own developer's guide. Following the instructions correctly (mostly), I had my IDE set up and me poking around example projects within an hour (including downloads).

The recommended IDE is Eclipse but there are many others out there. As the tutorial was for Eclipse I've stuck with it and kind-a like it. It has contextual prompting and integrated debugging - which does make life that little bit easier. Eclipse does have the advantage of having Windows and Linux versions, allowing me to work on the same project from both my machines.

For my graphics I use Inkscape, a free and versatile vector designer. For audio I use midi files and Audacity, another excellent free app.

Once you have the tools, you need something to play with. Reading a few of the threads on the forums I heard a lot of chatter about the supplied Lunar Lander example, so thought it a good one to check out.

I thought I had hit gold. Animated sprite handling, user control handling, a basic but functional game thread, multi screen handling.

This would have been the perfect shell for Livestock vs The Undead, apart from the fact that it was a heavily flawed example. It didn't handle some of the most fundamental functions that any android application should, ie home/resume.

To cut a long story short it was losing its hook on the thread when the home button was pressed. So when you restarted the app it didn't know what it should be doing and falls over in a big heap. The following code allows the resumed code to pick up a new thread and continue down its merry way.

public void surfaceCreated(SurfaceHolder holder) {
// added fix -->
if(thread.getState()== Thread.State.TERMINATED){
thread = new LunarThread(mHolder, mContext, mHandler);
thread.setRunning(true);
thread.start();
// <-- added fix }else { thread.setRunning(true); thread.start(); } }


Unfortunately, this isn't the whole story. As all of the variables that were held within the thread class have now effectively been wiped you will now only see a black screen. ie:

class LunarView extends SurfaceView implements SurfaceHolder.Callback {
class LunarThread extends Thread {
variables
arrays
etc.
}
}


To remedy this you have move all of the variable declarations from within the thread class into the outer class. As inner classes can access outer class variables, you don't have to alter the variables themselves! Phew.

class LunarView extends SurfaceView implements SurfaceHolder.Callback {
variables
arrays
etc.
class LunarThread extends Thread {
}
}


Great. So now all the variables will stay in tact. But we've moved stuff around and in doing so we've broken the LunarLander.java file. Just look for, if you're using Eclipse it'll no doubt be highlighted:

case MENU_STOP:
mLunarThread.setState(LunarThread.STATE_LOSE,
getText(R.string.message_stopped));


Then change to:

case MENU_STOP:
mLunarThread.setState(LunarView.STATE_LOSE,
getText(R.string.message_stopped));


You'll have to delete this inside the public LunarThread(SurfaceHolder surfaceHolder, Context context, Handler handler)

mWinsInARow = 0;
mX = mLanderWidth;
mY = mLanderHeight * 2;
mFuel = PHYS_FUEL_INIT;
mDX = 0;
mDY = 0;
mHeading = 0;
mEngineFiring = true;


Leaving it in will mean everytime you resume the game it will start the lander in the bottom left with the engine already firing. It was some ill conceived start up code to position the lander in front of the splash screen.

These fixes were put together with the help from here.

A word of warning though. Pressing the home button doesn't actually shut the app down - just hides it, so it will happily chomp on your battery reserves. I would recommend using a clean exit using the finish() function on the button press instead.

Other than this - there is still a silver lining. You can still get the gist of how to structure a game frame, so please read through the code.

Finally: check out those forums, there are answers to just about every question you can think of out there. (Apart from the current one, because that's just silly.)

Cheers,


Paul
Enhanced by Zemanta

Monday 18 July 2011

Bouncy Key Bottleneck

PenImage via Wikipedia
I can't write with a pen. No, that's not right. I can write perfectly well with a pen, I just don't 'like' to write with a pen. Never have.

Why? I always thought they were too darn slow. Handwritten essays were little more than torture via the medium of tediousness. I even try to avoid handwriting letters as I've usually lost interest by the end of the first paragraph. Actually, over the years I've come to a conclusion: it's not the pen's fault - my brain works too fast.

By the time my hand has etched the first line of symbols across the page, my brain has thought about six other ways of phrasing the sentence, edited it, corrected the spelling and has moved on to a different subject altogether.

You would think this would make it easier to write? Wrong.

With my mind bouncing around like Magic Roundabout's Zebedee I would have to constantly read what I had just written to remind myself what I was writing about. This, as you could imagine, slowed the whole process down further.

Typing is slightly better. The words flow out at a higher velocity and my typing speed is certainly above average, however even this has its own speed limitations.

To some extent the problem has grown over time. As experience persitently crept into my cranium and my development skills...erm...developed, it allowed me to instantly visualise a great deal more constructs, modules, classes and code that need to be on the screen. Getting all of this information from my neural synapses into the current choice of IDE by bouncing fingertips on worn lettered keys takes time.

I am sooooo looking forward to advances in neural input sciences!

Anyone else have the same issue? Or is it just freakishly me?

Cheers,


Paul
Enhanced by Zemanta

Friday 15 July 2011

Sidetracked 00001

No left turnImage via Wikipedia
I highly suspect this will be the first of many deviations from the development path.

Saying that, the path is a purely abstract concept, in this instance. The question is - where would a deviation from an abstract leave me? Further abstracted? Surreal? Insane? Who knows?

Anyhoo. Having set up for a lengthy coding session I accidentally fired up my HTC Wildfire virtual machine (240x320 QVGA) as opposed to my normal form factor HTC Desire(480 X 800 WVGA). As the initial launch takes an age I thought I may as well test the Livestock Vs The Undead Lite code on it to see how it ran. Let me tell you folks, it wasn't pretty. Picasso may have been proud, but it was pretty useless as a game.

As my newly revised graphics engine code was still fresh in my mind it seemed like a good time to make the thing scalable at least.

The conclusion to this tale is that Android seems quite happy to scale images for you by default - but it does a pretty lame job of it. So I turned off all the auto-scaling from my resource fetching code and ran it all through my new routines and voila - a working and scalable version of the game.

This is all well and good. But it doesn't actually add any extra goodies. I shall have to be more restrained and get on with it in the next sessions - ie back onto the menu revisions. Those of you who didn't like the game starting from scratch on each load are going to love the new sections.


Paul
Enhanced by Zemanta

Thursday 14 July 2011

Broke it to fix it

CodingImage by ronny-andre via Flickr
Warning : Spoilers

On Livestock Vs The Undead Lite v1.1b (the 'b' was due to a couple of quick releases to eradicate some memory issues) I was at a stage to really start ploughing in some new functionality. (I apologise at this point if you've been waiting for the new release - below explains why there has been a delay.) This was going well at first. The persistent levels code was working well. I had added another creep along with extra chomping animations and sounds. A dozen or so tweaks around the system were holding their own.

That's when my old enemy, the Out-Of-Memory monster reared its ugly head. I was stuck, nowhere to turn, banging my head on my keyboard (getting dfghjk in reverse on my forehead). Then it dawned on me.

The code I was using loaded all of the game's 100+ sprites individually, resizing them on the fly. It was this that was chomping through the memory at a rate of knots. Even though the combined size of all the sprites was less than 1.6Mb - the processing just overwhelmed the device and all came crashing down. So the bright idea I had was that of consolidating all of the sprites into one .png file.

I started adjusting the code to handle the process. Unfortunately I realised quite quickly that this wasn't going to work either. The memory error had disappeared, but the Out-Of-Memory monster's poor second cousin, the Logistical-Nightmare monster, popped up.

You see, my sprites are all different shapes and sizes. This meant that the consolidated spritemap was all over the place. And given that you are always working with relative positions due the device rescaling, mapping where everything was, it turned out to be like playing darts in a tornado.

Not one to give up without a fight I decided to find the middle ground. This ended up being several sprite sheets with like-sized sprites. This meant that simple division worked effectively to work out sprite positions and that fewer picture files kept OOM away. Yay, success!

So, I currently am basically back to square one in terms of how the game plays, but now I can make some quick progress getting the more interesting stuff in for v1.2 (which I am hoping to have out of the door in a couple of weeks time).

I'm currently working on the menus at the moment - trying to give them a slicker feel.


Paul
Enhanced by Zemanta

Kicking Back To The Community

Android robot logo.Image via Wikipedia
Using quality of products as a reflection of how good a community actually is then the Android platform is destined for fabulous times ahead.

Being an avid follower of many great 'tinterweb forums, my hat is doffed to the many great minds that regularly impart their almost limitless wisdom.

As a sign of appreciation to the wondrousness that is the android development community, I have vowed to release the source code of any of my projects as and when they reach 250,000 installs. (As the more established android games are hitting around 10 million then I thought this a reasonable figure.)

'So you're not giving us anything until then?' you cry in dismay.

Of course I will. Over the course of this blog I will be releasing concepts, techniques and snippets of code to help anyone who is facing the same problems I had and have found a work around.


Paul
Enhanced by Zemanta

public blog AndGamesDevBlog extends humour

Diagram Android DevelopersImage via Wikipedia
Today, I've decided, is the day I am going to start something bloglike.
Hardly a new concept by any stretch of the most limited of imaginations, although this blog is going to be unique.

'How can it be unique', I hear you scream in disbelief? It is going to be my thoughts, anguishes and (hopefully) accomplishments on the road to (again hopefully) write a successful android game.

'How is that unique?' you ask with incredulous suspicion. Well, as there is only one of me with my thoughts - that'll make it unique!

After some thought you irrelevantly retort, 'But, why is the world flat?' Which I shall ignore and explain that I'm doing this with the hope that it may help others setting off down a similar path, and secondly because my memory is not a good as it ever was and it'd be good to keep a record.

First off, the blog title. A cunning acronym for :

ANDroid GAMES DEVelopment BLOGgeroonie

I currently have a couple of fledgling projects released tentatively onto the android market under the developer name of 'Strangemoo'. (Please check them out, score them with five stars and rave about them in the comments section ;) ) It is these projects that I'll begin writing about as it's where 'I is at' with regards to java/android experience.

If you have any querys, concerns or quibbles that are approximately relevant to the blog then by all means, please ask.

Paul
Enhanced by Zemanta