What Tools Do I Need?

As a beginner with Corona SDK and Lua, please can you tell me what other tools i need to make the app learning and creation process as efficient as possible.
I am using a PC Windows 8 and i have seen quite a few resources but not sure which ones are better or necessary. Sadly i don’t have the luxury of Composer GUI so maybe that’s a good starting point.
I would also like some additional info on sprite creation software and which is better, spine or spriter.

Many thanks in advance 

Here’s what I’m using

IDE: ZeroBrane Studio

Graphics: Photoshop

Animation: Spine

Physics: PhysicsEditor

Particles: CBEffects

If you plan to use spritesheets a lot, I would also consider TexturePacker.

As IDE I can recommend Sublime Edit.

When using Photoshop, I recommend the Assets feature to automatically create assets for different resolutions (retina, non-retina etc.)

And maybe two tips regarding Corona and LUA:

  1. When I began with Corona everything went fine and progressed fast. But then I reached the point where I had to handle scene management: loading the menu, loading level, destroying a level, pause overlay etc. This is not trivial and you should think of a good strategy to clean your scenes properly. Which leads to the second tip.

  2. Use OOP like approaches. There are some good articles in the web that shows how to use an OOP like approach with LUA. Use “Classes” for all your objects. Use inheritance. The following was the very importatn to me: create a table for timers and a table for transitions in each Class. Every timer/transition you create in that class get stored in these tables. Write methods to pause, resume and remove these two tables and the object itself. This way you should be able to get scene management to work quickly.

Good Luck!

Thanks guys!
@_memo i will check those tools out. I was close to buying Spriter but i don’t think it’s as well supported as Spine. I have Photoshop CS3 - it’s old version but does all i need. I also like Inkscape and it has a powerful trace feature. Do you recommend Texturepacker, i believe it’s very popular. I also discovered an AIR app called Shoebox. 
@Rene_Aye i will take a look at Sublime Edit. As a newbie with Lua but a little bit of AS 3.0 knowledge, i will make a note of your OOP tips and ways to use classes. I has assumed that Corona would have a way of doing all this anyway.
If there are any books you can recommend too, please let me know thanks.
 

This is a classic one: 

http://www.burtonsmediagroup.com/books/mobile-app-development-with-corona-getting-started/

Thanks for the link  Rene Aye.  :slight_smile:

Different types of projects require different tools, so I might be wrong, but I’m making a guess based on the info I’m getting from you.

I would say:

  • You definitely need Photoshop, but CS3 will do perfectly

  • A simple text editor like TextWrangler or better (e.g. with autocomplete for Lua)

  • I’m doing a lot of fun and cool animations without Spine or particle-effects. If you’re good at basic math (sine, cosine and tangents) you can create a lot of cool effects with just simple trigonometry and transitions.

  • I agree with Rene: make sure you have a really good grasp of OOP and scene creation and cleanup.

  • Texture Packer is also essential.

All other things can be done perfectly well without other tools, or by writing your own simple code - especially if you get OOP.

If you’re not using Composer for scene management then you should have a *really* good reason why you’re not. It’s built-in to Corona, is the “official” way to do scene management, and works very well.

 Jay

PS - I’ll also disagree about OOP. It’s not needed. Create a good library of functions and you have reusability without the wasted time trying to make Lua OOP when it just isn’t.

Nobody stated to not use Composer. You should use Composer but Composer does not do everything for you. Managing objects (pause/resume/remove) that do use timers/transitions and Runtime Events must be managed by the developer.

LUAs OOP approach is not real OOP, it’s more iike a design pattern which IMHO leads to better readable/maintainable/reusable code with the benefits that you can do something like inheritance which is very covenient. The bigger the project the more I recommend this pattern.

About OOP and the last two posts: it is certainly not necessary to go overboard with object oriented programming in Lua and Corona, because for 99% of projects it is really overkill (so J.A. Whye has a point there). In reality though, Corona allows for some really lightweight and “easy to understand” pseudo-OOP or prototyping using modules and metatables. That’s something most developers in Corona would really benefit from in my mind. True OOP is a pain in Corona and overkill, the lightweight stuff is easy to do and superhandy and powerful.

Regarding composer for scene management, I have to say that I do always roll my own, because I find it helps me to program more cleanly, and understand and have control over everything that is going on - even down to the point of optimizing texture memory and loading and purging graphics and audio etc… But it’s a personal thing - I tend not to like to use preset stuff all that much.

On a side note, do you have a type of project in mind? We could probably give some good pointers on how to structure and tackle your project if we have a better view on what exactly you’d like to do.

Thanks all for your informative feedback everyone.
I was actually referring to Composer GUI - i am on a PC and so that editor is not available to me: aren’t you MAC guys lucky!
The Composer API i will certainly be learning as i will be creating scenes for interactive book apps and learning games: i was looking at a few 2D game engines like Gamemaker Studio, Stencyl 3 and Construct 2. But Corona seems ideal for my needs and i know that i could also create platform type games with it too. It also has amazing documentation which is always a plus. I am just a bit unsure about how much the Starter version will give me and whether i’ll need to go Basic $16pm or Pro $49 which is beginning to get a little too pricey for someone starting out. I have been looking at Marmalade SDK Quick which has an awesome emulator and apparently you can create for iOS on a PC machine. But to get those juicy exrtas - like Corona - i’d have to start paying similar monthly tariff.
OOP is a bit over my head here. I have a basic grasp of AS 3.0 and i understand classes and inheritance to a reasonable degree.
Lua seems like an amazing language and close to native speeds on mobile. I look forward to mastering it in Corona SDK.

Regarding my own struggling research so far for the best tool, here’s my shortlist - PC friendly.

Photoshop CS3 is my best buddy and can do almost everything. I enjoy Inkscape for vector art and it’s pretty good for a FREE tool.
There is also Serif DrawPlus X6  (£81.69) which is like a cheaper version of Adobe Illustrator and looks powerful.
For pixel art there is Graphicsgale FREE and Piskelapp - FREE online sprite editor.
I have read good things about Zerobrane Editor and Sublime Text with the Corona plugin. 
Level Director looks like an essential tool as i am unable to utilize Composer GUI.
Texturepacker for packing sprites and also a FREE AIR app called Shoebox which does similar .

I will definitely need Spine or Spriter for modular skeletal animation. So far, my research tells me that Spine has better support with Corona and many other API’s and also has it’s own build-in texturepacker. But the essential license doesn’t offer Inverse Kinematics - disappointing. For that feature, i’d need the Pro version at $289 -oh pricey!

I would appreciate any feedback on these tools if you agree they’re worth using or not! Please add your own suggestions if i’ve missed a few.

Thanks again guys

 

Guys, I’m going to let you be the very first to get a sneak peak video of my work in progress platform game - with level editor on the device! The video shows how I’m doing walk cycles using only math (just a sine of the timer). I don’t think Spine is necessary for repetitive stuff like this.

Here’s WeTransfer link:

https://www.wetransfer.com/downloads/468578c72a3b5f27dac98724198fc56c20141204123932/c3a465dc1f4fa2031a1305f1657ceffb20141204123932/00f5a9

Wow, it looks awesome. A tutorial would be great :slight_smile:

Thanks Toga! A tutorial on what exactly? The walk cycle?

On first place i would love to learn how to write “cool effects” with just simple trigonometry and transitions. In my opinion it is very important to have cool effects in games. If there would be a cheap effects library i would buy it.

The walk cycle is on second place:-)

I agree on the cool effects: a lot of Corona games are a bit plain-looking and I believe it is because they lack the polish that more famous games have. I’m curious though: did you see any cool effects in my video? Ah, was it the coin “dissolve?” That stuff is super-simple!

yes, the coin dissolve effect. And yes you are right that a lot of cool effects are very “simple” to implement (if you know how:-)). With transitions it would be possible to do a lot of nice effects. but i have a lack of Imagination:-)

Very nice thomas6. Love these edgy/polygon style. The bird is really cool!

Effects: I think these kind of effects are rather important because they give feedback to the player that keeps the player motivated to play. In game feedback and how to implement it would be a nice (blog) article.

Okay, here’s a simple one.

Take the coin-glow.png image attached.

Create three images: coin1, coin2, coin3. All three are the same coin image of course. Place them all in the same position (on top of eachother). Anchorpoints should be in dead center.

Tint the first in pink, tint the second in baby blue, tint the third in green.

Set alphas to .4 or something similar

Set blendmodes to “add”.

Create three transitions:

transition.to(coin1, {time = 1000, alpha = 0, rotation = 190, xScale = 1.3, yScale = 1.3})

transition.to(coin2, {time = 1000, alpha = 0, rotation = 270, xScale = 1.2, yScale = 1.2})

transition.to(coin3, {time = 1000, alpha = 0, rotation = 330, xScale = 1.4, yScale = 1.4})

Voila! Play around with the values in the transitions and remember to remove the images when done!

Let me know how this works out for you!

T