Been a while since I have blogged but that is because I have spent so much time with my head in code, books, forums etc to fully embrace the project and to ensure I embrace inde game development.
The intention is for me to dump my brain of all that I have learnt now I have notched up over 400 hours in game development and very close to my first game being released. The blog was meant as a bit of a diary of my progress but also to help others who want to go on a similar journey. I have been so grateful to the indie development community in getting advice, constructive criticism and invaluable testing resource that hopefully this will help.
Let me roll back a few months....
Having started this journey back in October I tried to go about it in a constructive manner. I know, unless I am very fortunate, that I'm not going to write the next Angry Birds or Temple Run but that doesn't put me off just different tactics. Choosing Corona SDK was always part of the tactics and ultimately why I chose this over Cocoa2D as I wanted to write little games that got the maximum exposure particularly with emerging devices and markets like Amazon Fire and Nook.
I had been keeping a little book of ideas for the best part of a year. A useful tip as I always found I had new ideas or developed on others but totally forgot by the time I got round to do anything about it. Its fair to say I got a little carried away in the first 6 to 8 weeks. While I was learning I wasn't really moving in a direction. From my blog you will probably have seen that I spent the first 4 weeks reading up on game design. This was a useful exercise in things to consider but I didn't really have a developed idea to immediately apply it to. I also was very keen to start programming ...
Corona SDK is based on LUA, one of the few programming languages I haven't programmed in. I will digress a little here to give a bit of background about me as it has context going forward. I have a degree in Business and Marketing but not really applied it like most people's degrees. I also have A-Levels (UK qualification) of which one is in Art, so I definitely have a creative streak. This is why I got into programming as I am a problem solver that wanted a medium to tangibly solve the problem, hence I decided to become a computer programmer. All in I have probably spent close to 15 years programming mainly around Microsoft technologies and qualified as a Solution Architect but my first love was always wanting to be a games programmer. Over the last 5 to 10 years I have moved further and further up the corporate ladder and away from my first love of programming, this was why this project was born. I have managed teams on and off shore, delivered projects for brands you have all heard of, but very few of late has been my code. This had to change...
So with my little black book in hand (no girls names in this one!) I set about a few of my ideas as prototypes. I got some initial rewarding results and was amazed with the Corona SDK engine just how much could be achieved with so little code. However, after about 3 weeks of developing an idea I soon realised I couldn't do it justice. I felt I had lost and wasted a lot of time on the project but took a step back and realised this was part of the rich tapestry of learning from ones mistakes. This was around mid december when I came up with the tactic to learn as much as possible with the simplest idea. I felt if I kept the component parts as simple as possible then I could redo parts if not all if I suddenly came to a dead end which I hadn't considered. This is why animations etc that I have created have no moving parts as when it comes to scaling images / sprites etc I would have no idea how this would work.
This was where Astavoid was born in mid December. A simple scrolling space game (yes another one!) that has stars as a background and a space rocket should be easy to implement and maintain with the concept of avoiding asteroids.
The rest of the series of blogs around Astavoid will focus on specifics such as game design, sprites and animation, memory management, testing and marketing amongst other things but before I go I will share with you the tools and money spent in getting me to this point.
These aren't things I indulged with on day one but things I have found and are useful as I have progressed. All prices are in sterling (GBP) as I live in the UK and wanted to bring it back to a common denomination. Im sure you can do the relevant exchange rate:
Corona SDK (http://www.anscamobile.com/) 218.58
I started off with the trial version but found the official released version is someway behind the daily build functionality. So putting up a query on the excellent community forum would often be met with "this has been resolved in X daily build". So I bit the bullet and bought the iOS licence and made use of the daily builds. To be honest these are a blessing and a curse, the bad thing being is they feel like a line in the sand that is constantly moving. Just when I thought I had finished the game and inevitably done some workarounds the "right" way was released or bugs resolved which put me back a day or a week. When I got closer to a finished game I upgraded to the pro developer licence to include Android, Amazon Fire and Nook.
Gimp (http://www.gimp.org/) - Free
Used to touch up my graphics. I use Inkscape and Preview (Mac) for some vector work or scaling.
Adobe Flash CS3 - Free
Don't know why but I had an old copy of Flash CS3 knocking around which I used for drawing the rocket and asteroids. Since then though (as Flash can be pricey) I found Pencil (http://www.pencil-animation.org/) or ArtPigEditor (http://www.artpigsoft.com/)
Image Optim (http://imageoptim.com/) - Free
This is by far the best tool I use. Really simple but compacts your PNG files by loads. Reduced my app size by 60%!!
TexturePacker / Physics Editor (http://www.texturepacker.com/) - Free to bloggers
Lots of things out there to do texture packing and physics editing (Zwoptex or SpriteLoq as alternatives) but found the ease of use and support excellent at Code n Web. Much to my surprise I got it free as Andreas liked my blog :)
Sublime Text 2 (http://www.sublimetext.com/2) 36.95
The lack of IDE was my biggest frustration with Corona SDK and is to date. The recent release of Corona Cider may be a saving grace with the Visual Debugger but up to now I have used the excellent Sublime Text 2 editor and Corona's console debugger to do my development. I used the NotePad2 autocomplete plugin with this to help. Really like the tool would highly recommend.
Screenflick (http://www.araelium.com/screenflick) - 18.16
Used to create my first sneak peak of Astavoid. Much to learn but seems to come highly recommended.
Audio Micro (http://www.audiomicro.com/) 43.67
Despite the skills I mentioned earlier I possess very little musical ability and while I can play the guitar a little this is not something I would want to soil my games with. Luckily an excellent resource in Audio Micro provides sound effects and music alike at very afforable amounts, royalty free and professional.
Corona Profile (http://www.mydevelopersgames.com/site/) 5.87
I won't go into this too much now as I will write a whole separate blog entry on the subject of my hell with memory management and optimisation but needless to say this tool was invaluable.
Particle Candy (http://www.x-pressive.com/ParticleCandy_Corona/index.html) 34.57
To add a little polish to my game and a slightly more professional feel the rocket's trailing smoke and explosions were created with Particle Candy. Probably something I could have animated or created but at this time there was far more things to cover off.
Right thats enough for now. Next in the series sprites and image optimisation.
The intention is for me to dump my brain of all that I have learnt now I have notched up over 400 hours in game development and very close to my first game being released. The blog was meant as a bit of a diary of my progress but also to help others who want to go on a similar journey. I have been so grateful to the indie development community in getting advice, constructive criticism and invaluable testing resource that hopefully this will help.
Let me roll back a few months....
Having started this journey back in October I tried to go about it in a constructive manner. I know, unless I am very fortunate, that I'm not going to write the next Angry Birds or Temple Run but that doesn't put me off just different tactics. Choosing Corona SDK was always part of the tactics and ultimately why I chose this over Cocoa2D as I wanted to write little games that got the maximum exposure particularly with emerging devices and markets like Amazon Fire and Nook.
I had been keeping a little book of ideas for the best part of a year. A useful tip as I always found I had new ideas or developed on others but totally forgot by the time I got round to do anything about it. Its fair to say I got a little carried away in the first 6 to 8 weeks. While I was learning I wasn't really moving in a direction. From my blog you will probably have seen that I spent the first 4 weeks reading up on game design. This was a useful exercise in things to consider but I didn't really have a developed idea to immediately apply it to. I also was very keen to start programming ...
Corona SDK is based on LUA, one of the few programming languages I haven't programmed in. I will digress a little here to give a bit of background about me as it has context going forward. I have a degree in Business and Marketing but not really applied it like most people's degrees. I also have A-Levels (UK qualification) of which one is in Art, so I definitely have a creative streak. This is why I got into programming as I am a problem solver that wanted a medium to tangibly solve the problem, hence I decided to become a computer programmer. All in I have probably spent close to 15 years programming mainly around Microsoft technologies and qualified as a Solution Architect but my first love was always wanting to be a games programmer. Over the last 5 to 10 years I have moved further and further up the corporate ladder and away from my first love of programming, this was why this project was born. I have managed teams on and off shore, delivered projects for brands you have all heard of, but very few of late has been my code. This had to change...
So with my little black book in hand (no girls names in this one!) I set about a few of my ideas as prototypes. I got some initial rewarding results and was amazed with the Corona SDK engine just how much could be achieved with so little code. However, after about 3 weeks of developing an idea I soon realised I couldn't do it justice. I felt I had lost and wasted a lot of time on the project but took a step back and realised this was part of the rich tapestry of learning from ones mistakes. This was around mid december when I came up with the tactic to learn as much as possible with the simplest idea. I felt if I kept the component parts as simple as possible then I could redo parts if not all if I suddenly came to a dead end which I hadn't considered. This is why animations etc that I have created have no moving parts as when it comes to scaling images / sprites etc I would have no idea how this would work.
This was where Astavoid was born in mid December. A simple scrolling space game (yes another one!) that has stars as a background and a space rocket should be easy to implement and maintain with the concept of avoiding asteroids.
The rest of the series of blogs around Astavoid will focus on specifics such as game design, sprites and animation, memory management, testing and marketing amongst other things but before I go I will share with you the tools and money spent in getting me to this point.
These aren't things I indulged with on day one but things I have found and are useful as I have progressed. All prices are in sterling (GBP) as I live in the UK and wanted to bring it back to a common denomination. Im sure you can do the relevant exchange rate:
Corona SDK (http://www.anscamobile.com/) 218.58
I started off with the trial version but found the official released version is someway behind the daily build functionality. So putting up a query on the excellent community forum would often be met with "this has been resolved in X daily build". So I bit the bullet and bought the iOS licence and made use of the daily builds. To be honest these are a blessing and a curse, the bad thing being is they feel like a line in the sand that is constantly moving. Just when I thought I had finished the game and inevitably done some workarounds the "right" way was released or bugs resolved which put me back a day or a week. When I got closer to a finished game I upgraded to the pro developer licence to include Android, Amazon Fire and Nook.
Gimp (http://www.gimp.org/) - Free
Used to touch up my graphics. I use Inkscape and Preview (Mac) for some vector work or scaling.
Adobe Flash CS3 - Free
Don't know why but I had an old copy of Flash CS3 knocking around which I used for drawing the rocket and asteroids. Since then though (as Flash can be pricey) I found Pencil (http://www.pencil-animation.org/) or ArtPigEditor (http://www.artpigsoft.com/)
Image Optim (http://imageoptim.com/) - Free
This is by far the best tool I use. Really simple but compacts your PNG files by loads. Reduced my app size by 60%!!
TexturePacker / Physics Editor (http://www.texturepacker.com/) - Free to bloggers
Lots of things out there to do texture packing and physics editing (Zwoptex or SpriteLoq as alternatives) but found the ease of use and support excellent at Code n Web. Much to my surprise I got it free as Andreas liked my blog :)
Sublime Text 2 (http://www.sublimetext.com/2) 36.95
The lack of IDE was my biggest frustration with Corona SDK and is to date. The recent release of Corona Cider may be a saving grace with the Visual Debugger but up to now I have used the excellent Sublime Text 2 editor and Corona's console debugger to do my development. I used the NotePad2 autocomplete plugin with this to help. Really like the tool would highly recommend.
Screenflick (http://www.araelium.com/screenflick) - 18.16
Used to create my first sneak peak of Astavoid. Much to learn but seems to come highly recommended.
Audio Micro (http://www.audiomicro.com/) 43.67
Despite the skills I mentioned earlier I possess very little musical ability and while I can play the guitar a little this is not something I would want to soil my games with. Luckily an excellent resource in Audio Micro provides sound effects and music alike at very afforable amounts, royalty free and professional.
Corona Profile (http://www.mydevelopersgames.com/site/) 5.87
I won't go into this too much now as I will write a whole separate blog entry on the subject of my hell with memory management and optimisation but needless to say this tool was invaluable.
Particle Candy (http://www.x-pressive.com/ParticleCandy_Corona/index.html) 34.57
To add a little polish to my game and a slightly more professional feel the rocket's trailing smoke and explosions were created with Particle Candy. Probably something I could have animated or created but at this time there was far more things to cover off.
Right thats enough for now. Next in the series sprites and image optimisation.
With testing almost complete on the iPhone testing I want to focus on Android testing. Would you (or know somebody) be kind enough to spare some time testing on either Android, Kindle Fire or Nook devices please.
Game is pretty simple so shouldn't take up too much time.
I have a HTC Wildfire S but typically this is not compatible for testing so I am flying a little blind

If you would like to contact me at info@parachutingfrog.com specifying device, email and name I'll get the details to you
Many thanks in advance
J
Game is pretty simple so shouldn't take up too much time.
I have a HTC Wildfire S but typically this is not compatible for testing so I am flying a little blind
If you would like to contact me at info@parachutingfrog.com specifying device, email and name I'll get the details to you
Many thanks in advance
J
After many months of development, learning, refining and refactoring my first game Astavoid has reached beta release.
I'll write a series of blogs on the rationale behind why I developed this kind of game but it will be release on iPhone, iPad, iPod, Android, Kindle Fire and Nook imminently.
However, in the meantime I require beta testers on apple devices and if you are interested your help would be very much appreciated.
Please contact me at info@parachutingfrog.com and I will add you to the test team. Your reward other than a warm fuzzy feeling will be a mention on the credits.
Here are some teaser screenshots in the meantime.
I'll write a series of blogs on the rationale behind why I developed this kind of game but it will be release on iPhone, iPad, iPod, Android, Kindle Fire and Nook imminently.
However, in the meantime I require beta testers on apple devices and if you are interested your help would be very much appreciated.
Please contact me at info@parachutingfrog.com and I will add you to the test team. Your reward other than a warm fuzzy feeling will be a mention on the credits.
Here are some teaser screenshots in the meantime.
When I first started off on this project back in October I made some pretty bold goals of both time and financial reward. Obviously, these were bold as they wouldn't be a target but having reached the 300 hours mark over the weekend I thought I would do some research just to see how achievable this is likely to be and the app download goals I need to be setting myself.
For obvious reasons I am not going to divulge my mortgage which was a target to pay off but instead I am to work to average prices. I live in the South of England which on average is the most costly in the United Kingdom. According to research at FindaProperty.com as of December 2011 the average price is £269,940 ($425,288 using convertbot for my exchange rate). If you also recall my other goal was to pay for my two children to be privately educated.
Again, I am working on averages and have used schoolfeesaver to work out the amounts. I have worked the logic to my two children going to Pre prep school (ages 4-7) at an average cost of £2000 ($3100) per term, Prep school (7-13 age) at £2,700 ($4333) per term and finally senior school (13 - 18 years) at £3500 ($5515) per term. Calculated over the lifetime of their schooling comes in at £434,314 ($684,256).
This gives a total goal of the project of £704,253 ($1,109,544). Needless to say I was depressed at this point as that seems a very tall order for 5 years work starting off as a novice. I am working it to 5 years and not 18 (term of children's schooling) as I am realistic that the app boom and my enthusiasm is unlikely to last that length and my 10,000 hours all being well will end in 5 years.
Rather than chucking in the towel I thought I would try and determine just how viable these sorts of figures are. The download and revenue figures seem to be shrouded in mystery but I thought I'd apply some logic to give me some rough idea.
First off I found an indicative survey highlighting a decent field of research of gamers of all types and statures and their returns from the appstore. The survey results can be found at http://www.streamingcolour.com/blog/2011/09/28/results-ios-game-revenue-survey/
For the benefit of my analysis (and brevity) the key points are that 50% of those surveyed are a single developer. Of those surveyed, 50% achieved less than $3,000 in lifetime revenues. Only those in the 90th percentile achieved earnings in excess of $400,000 over the lifetime of their development. The latter point of course is more around the software companies as opposed to indies. Right, so if this is to be believed things aren't looking rosy and heh I'm a realist I didn't think it was just going to be the case of printing money. However, there is a slightly more encouraging note and there is statistical evidence to show that those who wrote more apps made more money. Obvious, you would say, but making more apps means more exposure, learning from mistakes and ultimately writing better games. So mindful of not having an Angry Bird success from my first app I dug deeper.
I now turned to the price tier within the Appstore to understand the numbers I was dealing with. It was publicised last year around alignment of the Appstore markets to be the same (against exchange rate) value of sale. Being in the UK we were hit hard with this but as a result the calculations are pretty different. As you will see the results become a little skewed due to exchange rates so please just take this as indicative.
Ok, so if I were to base it on my £704,253 total revenue required and based it on the revenue allocation per paid download at £0.42 per unit. After Apple's cut this would mean that over the course of my project (5 years or 1825 days) I would need to achieve 1,676,793 downloads in total or a more encouraging 919 downloads a day. For my US friends thats $1,109,543, a total of 1,585,726 downloads at 856 per day. This is where the figures are a little misleading at its skewed by both the exchange rate and the differing percentage revenues i.e. US store receive 71% of the revenue as opposed to 61% in the UK.
The last point made me look into the worldwide revenue distribution and having worked out across each actually shows an average return of 67% of revenue to the developer. I appreciate the more established markets of the US etc will be the heavy bias of sales but for a more realistic worldwide sales ratio lets go with it.
If I work this back to my original figures this means £704,253 ($1,109,543) works out at a lifetime download of 1,530,985 downloads or 839 per day, now taking into consideration exchange rates and standardised revenue distributions.
This seems much better. Its still a lot to achieve but I now know what to aim for 839 per day everyday for 5 years. Obviously there will be peaks and troughs throughout the project but we all need to target smaller numbers to achieve a large goal. This is why I do 3 hours a day on this project everyday rather than focusing on the 10,000 hours.
Not sure if this will help anyone but has given me a reality check as well as a focus on what I need to do to achieve my goal. Given the results of the survey of writing more games which ultimately mean the 839 will be distributed across multiple titles and across a multitude of different stores, I think its achieveable.
This also doesn't take into consideration the Android Marketstore or any in-app purchases or ad revenue I may make along the way.
We all need a goal and I have focus again.
For obvious reasons I am not going to divulge my mortgage which was a target to pay off but instead I am to work to average prices. I live in the South of England which on average is the most costly in the United Kingdom. According to research at FindaProperty.com as of December 2011 the average price is £269,940 ($425,288 using convertbot for my exchange rate). If you also recall my other goal was to pay for my two children to be privately educated.
Again, I am working on averages and have used schoolfeesaver to work out the amounts. I have worked the logic to my two children going to Pre prep school (ages 4-7) at an average cost of £2000 ($3100) per term, Prep school (7-13 age) at £2,700 ($4333) per term and finally senior school (13 - 18 years) at £3500 ($5515) per term. Calculated over the lifetime of their schooling comes in at £434,314 ($684,256).
This gives a total goal of the project of £704,253 ($1,109,544). Needless to say I was depressed at this point as that seems a very tall order for 5 years work starting off as a novice. I am working it to 5 years and not 18 (term of children's schooling) as I am realistic that the app boom and my enthusiasm is unlikely to last that length and my 10,000 hours all being well will end in 5 years.
Rather than chucking in the towel I thought I would try and determine just how viable these sorts of figures are. The download and revenue figures seem to be shrouded in mystery but I thought I'd apply some logic to give me some rough idea.
First off I found an indicative survey highlighting a decent field of research of gamers of all types and statures and their returns from the appstore. The survey results can be found at http://www.streamingcolour.com/blog/2011/09/28/results-ios-game-revenue-survey/
For the benefit of my analysis (and brevity) the key points are that 50% of those surveyed are a single developer. Of those surveyed, 50% achieved less than $3,000 in lifetime revenues. Only those in the 90th percentile achieved earnings in excess of $400,000 over the lifetime of their development. The latter point of course is more around the software companies as opposed to indies. Right, so if this is to be believed things aren't looking rosy and heh I'm a realist I didn't think it was just going to be the case of printing money. However, there is a slightly more encouraging note and there is statistical evidence to show that those who wrote more apps made more money. Obvious, you would say, but making more apps means more exposure, learning from mistakes and ultimately writing better games. So mindful of not having an Angry Bird success from my first app I dug deeper.
I now turned to the price tier within the Appstore to understand the numbers I was dealing with. It was publicised last year around alignment of the Appstore markets to be the same (against exchange rate) value of sale. Being in the UK we were hit hard with this but as a result the calculations are pretty different. As you will see the results become a little skewed due to exchange rates so please just take this as indicative.
Ok, so if I were to base it on my £704,253 total revenue required and based it on the revenue allocation per paid download at £0.42 per unit. After Apple's cut this would mean that over the course of my project (5 years or 1825 days) I would need to achieve 1,676,793 downloads in total or a more encouraging 919 downloads a day. For my US friends thats $1,109,543, a total of 1,585,726 downloads at 856 per day. This is where the figures are a little misleading at its skewed by both the exchange rate and the differing percentage revenues i.e. US store receive 71% of the revenue as opposed to 61% in the UK.
The last point made me look into the worldwide revenue distribution and having worked out across each actually shows an average return of 67% of revenue to the developer. I appreciate the more established markets of the US etc will be the heavy bias of sales but for a more realistic worldwide sales ratio lets go with it.
If I work this back to my original figures this means £704,253 ($1,109,543) works out at a lifetime download of 1,530,985 downloads or 839 per day, now taking into consideration exchange rates and standardised revenue distributions.
This seems much better. Its still a lot to achieve but I now know what to aim for 839 per day everyday for 5 years. Obviously there will be peaks and troughs throughout the project but we all need to target smaller numbers to achieve a large goal. This is why I do 3 hours a day on this project everyday rather than focusing on the 10,000 hours.
Not sure if this will help anyone but has given me a reality check as well as a focus on what I need to do to achieve my goal. Given the results of the survey of writing more games which ultimately mean the 839 will be distributed across multiple titles and across a multitude of different stores, I think its achieveable.
This also doesn't take into consideration the Android Marketstore or any in-app purchases or ad revenue I may make along the way.
We all need a goal and I have focus again.
I have been pretty content with my journey into game development by using a static image and then applying transitions or even x and y movements on every frame per second.
Soon, however, when the game starts taking shape you appreciate that it all looks very lifeless and therefore animation is required. To be honest I was pretty reluctant to get involved in sprites given that I am a one man indie shop but thought it were necessary. I won't bore you with my creative processes (I'll save that for another blog) but what I will comment on are the excellent tools that I am using to help.
First, the ones that I'm not. I am using Flash for my creative so the obvious choice would have been to go down the Spriteloq route but I decided I didn't want to be beholden to Flash in the future. Equally, despite its following, zwoptexapp I found a little dated and the optimisation around stylesheets wasn't as impressive as my chosen route.
Instead, I went for PhysicsEditor and TexturePacker. With my limited, but expanding, knowledge these tools have been invaluable to my productivity.
Lets start with PhysicsEditor. When starting off with Corona SDK I was a little intimidated by the way a collision shape was defined. Multiple vertices applied by positive and negative offsets for some reason didn't sit well with me. Even the simplest of shapes seem to take a while to set up as well as tweak.
When it came to complex shapes I found myself simplifying the shape to avoid the proper collision properties which of course diminished the effect. This is where for me PhysicsEditor came into its own. All I had to do is add one or more images into the editor and for each hit the magic wand button. This would then trace around the shape and I could adjust the tolerances as well as add or remove vertices. I could then apply my density, bounce / restitution, friction etc and repeat for all. Once done I would publish and this would then create a lua file for me to reference against each shape.
... and thats it. This makes changing physics criteria and verticies incredibly quick, a matter of minutes in fact, by going back to the PhysicsEditor GUI clicking a few things and then publishing overwriting the file.
In addition to my growing arsenal of indie tools is TexturePacker. As mentioned previously I had read on the web that Zwoptex's optimisation of images wasn't as efficient as TexturePacker's and with every KB counting this was quite a draw. The actor for my first game has 250 frames of animation so making sure this was optimised and easy to use was essential. The ability to drag and drop my images and use the saved default optimisation settings makes this a very simple process. Again, with the application set to Corona, an optimised image file (various output formats) as well as a texture mapping lua file makes using this and changing your images etc very very easy to use.
Again, the code is pretty easy to implement:
When modifying my animations and images the only thing I modify is maybe the different spriteset frame counts. All very impressive.
As you can probably tell I would recommend this so why not get a trial or purchase from the store.
At time of writing the prices are TexturePackerPro + PhysicsEditor Bundle for $34.95, with PhysicsEditor only at $19.95 and / or TexturePacker for $24.95.
I think if you are an indie developer like me tools like this make getting games out the door achievable, affordable and ultimately stress free. I don't profess to be an expert using this but what I have been able to get out of both has been very impressive indeed.
Soon, however, when the game starts taking shape you appreciate that it all looks very lifeless and therefore animation is required. To be honest I was pretty reluctant to get involved in sprites given that I am a one man indie shop but thought it were necessary. I won't bore you with my creative processes (I'll save that for another blog) but what I will comment on are the excellent tools that I am using to help.
First, the ones that I'm not. I am using Flash for my creative so the obvious choice would have been to go down the Spriteloq route but I decided I didn't want to be beholden to Flash in the future. Equally, despite its following, zwoptexapp I found a little dated and the optimisation around stylesheets wasn't as impressive as my chosen route.
Instead, I went for PhysicsEditor and TexturePacker. With my limited, but expanding, knowledge these tools have been invaluable to my productivity.
Lets start with PhysicsEditor. When starting off with Corona SDK I was a little intimidated by the way a collision shape was defined. Multiple vertices applied by positive and negative offsets for some reason didn't sit well with me. Even the simplest of shapes seem to take a while to set up as well as tweak.
When it came to complex shapes I found myself simplifying the shape to avoid the proper collision properties which of course diminished the effect. This is where for me PhysicsEditor came into its own. All I had to do is add one or more images into the editor and for each hit the magic wand button. This would then trace around the shape and I could adjust the tolerances as well as add or remove vertices. I could then apply my density, bounce / restitution, friction etc and repeat for all. Once done I would publish and this would then create a lua file for me to reference against each shape.
-- Get our physics data physicsdata = (require "myphysicsfile").physicsdata(1.0) -- Then when creating body call identifier assigned in PhysicsEditor physics.addBody(actor, physicsData:get("actor"))
... and thats it. This makes changing physics criteria and verticies incredibly quick, a matter of minutes in fact, by going back to the PhysicsEditor GUI clicking a few things and then publishing overwriting the file.
In addition to my growing arsenal of indie tools is TexturePacker. As mentioned previously I had read on the web that Zwoptex's optimisation of images wasn't as efficient as TexturePacker's and with every KB counting this was quite a draw. The actor for my first game has 250 frames of animation so making sure this was optimised and easy to use was essential. The ability to drag and drop my images and use the saved default optimisation settings makes this a very simple process. Again, with the application set to Corona, an optimised image file (various output formats) as well as a texture mapping lua file makes using this and changing your images etc very very easy to use.
Again, the code is pretty easy to implement:
local sprite = require "sprite" local sheetData = require "myactor" local data = sheetData.getSpriteSheetData() local spriteSheet = sprite.newSpriteSheetFromData("myactor.png", data) spriteSet = sprite.newSpriteSet(spritesheet, 1, 248) sprite.add(spriteSet, "do_a_star_jump", 1, 62, 300, 1) . . . myactor = sprite.newSprite(spriteSet) myactor.currentFrame = 1 myactor:prepare("do_a_star_jump") myactor:play()
When modifying my animations and images the only thing I modify is maybe the different spriteset frame counts. All very impressive.
As you can probably tell I would recommend this so why not get a trial or purchase from the store.
At time of writing the prices are TexturePackerPro + PhysicsEditor Bundle for $34.95, with PhysicsEditor only at $19.95 and / or TexturePacker for $24.95.
I think if you are an indie developer like me tools like this make getting games out the door achievable, affordable and ultimately stress free. I don't profess to be an expert using this but what I have been able to get out of both has been very impressive indeed.
Subscribe to:
Posts (Atom)