High priority generic features list

We all want some project-specific features that would make our lifes easier with Corona. But what do you think about we all, the Corona customers, build a short list with the high priority GENERIC features, the lack of which is so significant that could stand as sufficient reasons for not working on projects with Corona.

In my opinion the high priority list incudes:

1) Lua + Corona autocompletion and documentation from within Xcode.
http://developer.anscamobile.com/forum/2010/09/23/any-editor-code-autocompletion#comment-6512

2) Complete support of Spritesheets

3) Easier scene management with automatic memory cleaning (assets, listeners etc)
https://developer.anscamobile.com/forum/2010/09/18/loading-another-lua-file

4) Particles support (Particles Designer compatible)
http://developer.anscamobile.com/forum/2010/07/23/particle-system

5) External libraries support (ObjC/C)
https://developer.anscamobile.com/forum/2010/09/17/adding-external-functions

6) GameCenter support (not better than OF but Apple promotes GC enabled games!)
https://developer.anscamobile.com/forum/2010/02/10/gamekitin-app-purchase

7) Improvements in project build flow (1 click builds + run in device, as in Unity/Cocos2d)

And for gods sake, a "Last 15 threads with new posts" section in the Forums home page! :)

Fell free to comment / extend / sort the list...

Hi,

I want AM to finish bug fixing first, then work on the stuff that is on the roadmap. It was promised and so should be worked on first after fixing bugs.

Now, here are my comments on your list:

1) I don't use Xcode, so I have no use for this. I use Textwrangler, maybe Textmate soon.

2) Please define complete support for spritesheets. My feature request could look different as I implemented spritesheet support for a another language in the past and so have a specific view on this kind of thing.

3) Nope, that is definately something I think should not be implemented, at least not before anything else. Get used to event based programming and how the Corona/LUA package works. What you guys doing is to press your Flash/other tool programming behaviours into the way Corona should work for you.

4) Particle support would be nice, but not only from this commercial tool. Better deliver their own particle designer with Corona. At least Ansca should define a file format which we can build our own partcicle designer for it.

5) No use for it, I rather see Ansca buildin needed libraries. This way it is included in the package and I don't need to pay some onemanband which will be losing interest soon.

6) I want OpenFeint support for Android too. It is crossplatform now.

7) That only works if you would have an XCode project. Again, your views are Iphone only so it would not work for Android.

Cheers
Michael Hartlef

http://www.whiteskygames.com
http://www.twitter.com/mhartlef

1) While in my mind creating an autocompletion environment that tracks a project in a language as dynamic as lua is too huge an undertaking to request it from a company who's main product is an engine in that language, if AM has the resources to create such an environment, I'd very much prefer it to be for eclipse (especially considering that eclipse already has an autocomplete plugin for lua, which is currently useless for Corona, as it only knows lua's default functions). This would definitely speed development by a noticeable margin, making development with Corona even more comfortable; however, I'd prefer some features I personally consider more important first.

3) Don't really see a big need for this either, I'm quite comfortable managing my resources right now, and can't think of anything that would really significantly improve my resource management experience (and I have like 15 mb of 1-10k png files right now, so... )

5) This would actually be nice, because I'm thinking the engine will be maturing for a long time, and It's impossible to implement something so flexible that every dev will be happy with the abstractions available - at least right away. We need some way to work at a lower level than the abstractions Corona provides. Anything that would empower developers to implement anything they need if they really need it and it's not available, by themselves. I believe OpenGL ES shader support was requested, and maybe that would be a good enough alternative to external library/code support (I'm haven't programmed in OpenGL ES much, since I picked up Corona almost immediately as I started working with mobile development, but as far as I understand, shaders are for everything in ES, so that should allow us to do whatever we need)

6) Appears to already be planned =) http://developer.anscamobile.com/forum/2010/09/22/game-center-support

7) I definitely see a lot of different possible ways the build process could be made easier, and it would certainly make my life easier right now. For example, those 15mb resources I talked about earlier are all being sent by one file to Corona's server right now for a build, which takes... ages. =(

Not to mention I just got my developer ID approved from apple after a month of developing our isometric social game, and nothing displays in the xCode simulator, and I'm really frightened of the debugging process that I'll have to go through if the ideas I have at the top of my head don't fix this (I haven't had a chance to look at the xCode simulator console output yet, as I couldn't figure out... where it is... right away... for binaries not made from xCode - I'm new to apple development - and am currently working on something). My project is really quite large by now, a billion things could be causing xCode's simulator to work differently from Corona's, and testing a hypothesis takes almost 10 minutes.

So yeah... some changes in the build process that would help avoid situations like this would be REALLY welcome.

Great feedback. Please continue to add more feedback to this post.

As always, your feedback is invaluable, (gibberish talk from co-founder)...

No really. This really helps us prioritize, understand, and see what, you, our users, are wanting for the next releases of Corona.

C

Ok, lets rebuild this list according to the feedback so far:

1) Stable, debbuged SDK (with API reference updates)

2) Lua + Corona autocompletion (in Eclipse, Xcode or whatever!).
http://developer.anscamobile.com/forum/2010/09/23/any-editor-code-autocompletion#comment-6512

3) Complete support of Spritesheets (with not all sprites having the same size in a spritesheet - zwoptex in mind)

4) Easier scene management with automatic memory cleaning (assets, listeners etc) or at least better documentation on this topic (Corona should not be the answer for Lua experts but for complexity haters instead! There are more than 5 threads about this scene-management complexity and this tells something!)
https://developer.anscamobile.com/forum/2010/09/18/loading-another-lua-file

5) Better OpenFeint and GameCenter support (GC maybe not better than OF but Apple promotes GC enabled games!)
https://developer.anscamobile.com/forum/2010/02/10/gamekitin-app-purchase

6) Particles support (maybe Particles Designer compatible - or something similarly easy)
http://developer.anscamobile.com/forum/2010/07/23/particle-system

7) Improvements in project build flow (Less clicks builds + run in device, as in Unity/Cocos2d)

8) External libraries support (ObjC/C)
https://developer.anscamobile.com/forum/2010/09/17/adding-external-functions

...
And for gods sake (this is not copy-paste), a "Threads with recent posts" section in the Forums home page! :)

4) I don't see how the dev's answers don't address the issues raised in that post. Load data from files, store things that need to be removed together in a separate group, have a root group for a level to switch them quickly etc. All the resources will be freed automatically as you remove the groups from the hierarchy, and objects that are no longer referenced will be gc'ed. I really don't see what else you could ask for =).

7) Again, while 1-click builds are nice, they don't appear as valuable to me as not having to send 15 megabytes of resources to Corona's server for each build (i.e. clicking 10 times takes less than 1 minute, building large projects takes more than 10 minutes. I'd prefer the latter to be gone much more than I hate clicking).

My personal priorities are as follows:
1) Builds being much faster for projects with many resources. This is essential for debugging things like multitouch, and even more important for cases like mine, where xCode's simulator doesn't run an app that is working fine in Corona's simulator. Zip files before sending them to the server - at the very least, so each file is not sent individually. Better - pack resources locally, only compile from the server.

2) Custom extensions. I don't care much if it's shaders, ObjC, C, or whatever else, but if a feature is not yet supported and I really need it, I should be able to implement it - even if I have to go through some pain to do it. It'd be nice if the amount of pain would eventually decline, and this would be needed less and less, due to Corona growing more flexible, but right now this is highly important.

No particles? A skilled developer should be able to ship his game that needs them regardless. No filters of a certain type? This should be remediable as well... No masking? I should really be able to do something about that if I need them (which I personally do, by the way, but I'm getting along with some png voodoo =)).

(the real importance lies in graphics features, from my point of view - e.g. implementing something native, or implementing game center support by yourself, - doesn't seem as important to me, though the less boundaries for doing things that aren't directly supported - the merrier)

4) Scene Management:
Imagine a more complex "Moron Test" with 30 levels (puzzles), each one as a separate .lua file. Within each level we have 1 group with display objects, a dozen of tables for logic data and another dozen of listeners. How are we supposed to manually manage that mess when unloading this level to go for the next one? Don't forget that there are 30+ levels, so there is no option to just abandon some memory consumers there. Can we add the listeners/tables/variables to an easily removable group? No. We have to create an unloadScene() function that will dereference each and every non-asset memory consumer created in that level.

Here comes the need for a better Corona Memory Manager (or Scene Manager, it's the same concept in its essence).

Even in (the "difficult") ObjC, you just have to retain something if you want not to be *auto*released when getting out of scope. There is "some memory management" there for you! In more user-friendly iPlatforms such as Cocos2d there is an internal memory manager (kind of table in terms of code) that takes care of everything you have created with Cocos2d calls, when you replace a scene (when getting out of macro-scope). This is "full memory management". Same with Unity3D.

What I am asking AM for is to implement a manager for avoiding the manual unloading of everything I have loaded, when exiting a scene! This is "no memory management at all" for the macro-scope...

In App purchases. I'd bump this to #1 in my list of desired features.

http://developer.anscamobile.com/forum/2010/02/10/gamekitin-app-purchase

Folks,

Many thanks to our friend Darren from Ludicrous software who happens to be a big fan of Corona. He wrote a plugin for TextMate to do Corona highlighting and auto complete.

http://developer.anscamobile.com/forum/2010/09/29/corona-bundle-textmate

Carlos

My 2 cents:

1) Stable, debbuged SDK (with API reference updates)
Agree

2) Lua + Corona autocompletion (in Eclipse, Xcode or whatever!).
TextMate has autocompletion.

3) Complete support of Spritesheets (with not all sprites having the same size in a spritesheet - zwoptex in mind)
Recently announced...

4) Easier scene management with automatic memory cleaning (assets, listeners etc)
I guess... don't have much need for this, but I can see how you'd feel different if you had a LOT of COMPLEX scenes to manage

5) Better OpenFeint and GameCenter support (GC maybe not better than OF but Apple promotes GC enabled games!)
Agree

6) Particles support (maybe Particles Designer compatible - or something similarly easy)
Agree

7) Improvements in project build flow (Less clicks builds + run in device, as in Unity/Cocos2d)
Speed up builds with many assets, build from the commandline

8) External libraries support (ObjC/C)
YES! PLEASE!

oh, and async http!

During the last month a lot of things have been changed! :)

Here is my updated and re-ordered list:

---ASAP:
(essential API elements to write a good app)

1) EnterFrame Registry (which tracks: transitions, listeners, timers -so that 2,3,4 can be done!)
2) Scene Management (which cleans: graphics, sounds, listeners, timers)
3) Integrated Pause/Resume (which includes: sounds, transitions, timers, listeners)
4) Enriched Transitions: (see Cocos2d Actions and TweenLite for AS)
5) Asynchronous http

---The sooner the better:
(things that can later extend the functionality of the app)

* In-App-Purchases
* GameCenter
* Mac OS-X support
* Particles System

I have already implemented ASAP[1] for auto-cleaning listeners and it is a life-saver! Please think about it...

Hi there, I discovered Corona a couple of weeks ago and immediately liked it. I am developing and publishing games for more than a decade now, using Flash, Flex, Blitz3D, BlitzMax, Unity etc. Here's a list of -in my opinion- most important (but still missing) features from my own experience in game development:

  • Blend modes
    -Additive, substractive, multiply
  • Tinting images
    -Colorize any image with myImage:setColor(R,G,B) -I wonder why this does not exist yet.
  • Masking
    -Use 2-colored b/w images (or even other image objects or groups) as masks.
  • Texture clips
    -To create an image from a specified rectangle within a loaded texture, for example myImage = newImageClip("textureAtlas.png", clipX,clipY,clipW,clipH)
  • Bitmap access
    -To copy parts of a bitmap, apply filters, compose bitmaps in memory, fast pixel access etc.
  • Pixel commands
    -To detect transparent pixels within an image (important for pixel-perfect collision detection, but has to be fast enough!)
  • Coordinates transformation commands
    -To transform coordinates from one group to another one (like globalToLocal and localToGlobal in Flash or TFormPoint in Blitz)

These are the features I am really missing to create professional, good looking games. Besides of that, Corona is the perfect tool with the perfect philosophy behind and will be a Cocos2D killer soon.

Great list of features, x-pressive. I completely agree with every one of them, and need them for my game, and am currently using various workarounds, which are not quite ideal.

So, I second every feature in that list :)

Asynchronous http, is a must...

I keep forgetting to mention push notifications. I haven't seen them requested anywhere else, which seems strange - they are quite cool and useful.

So if anyone is willing to second this request, I'd like to see it sooner than later.

Asynchronous http ! Yes pleazzzzz

views:2232 update:2011/9/19 9:18:26
corona forums © 2003-2011