Performance fixed?

We haven't used Lime in a while due to the performance issues; but what sort of performance are we seeing on iOS and Android now?

If it's improved, we'll probably switch back :).

The performance is still pretty bad for large maps, especially the size and complexity that you would require for a project of your size. It has been improved slightly for smaller sparse maps though.

Carlos has told me that currently Ansca are focusing on all the Android fixes they've been pushing out recently in the daily builds and when they are done with those they will be focusing on performance and graphics improvements but I am unsure of a possible timescale for this.

I wonder if I make the same large scene without Lime,only by Corona code, will the performance be better or not ?
thanks.

It's certainly worth a try. Will be interesting to see the results.

What else Ansca does can improve the performance of lime ? e.g. camera culling , batch draw call etc.

Those are some of the big things, but I'm sure things could be done for physics as well. For one I would love to have visual and physical separated. Naturally without actually knowing what has and hasn't been done in the engine I couldn't say for sure what else could be done though.

"I wonder if I make the same large scene without Lime,only by Corona code, will the performance be better or not ?"

I think if you write your own map code in Corona without Lime it will probably be faster. Not because there's anything wrong with Lime, but because Graham wrote a toolkit that has to be useful for you, me, and those other guys, too. Whenever you write something generic you have to give up some power in order to get flexibility.

Writing code to fit your exact needs will usually result in better performance.

But you will take a hit on development time by not using something like Lime, so you have to weigh the pros and cons.

For me, I'm starting work on a tile-based adventure game and despite the performance problems, I'm going to use Lime. I figure by the time I get to the point where I'm hitting a wall Ansca will come to the rescue. :)

Plus, my game design naturally breaks things up into smaller levels, so I don't have a thousand acres of tiles to worry about at any one time.

Jay

Couldn't really have put it better my self, thank you very much!

"With great flexibility comes not so great performance" - Uncle Ben ( some liberties taken )

I'm also glad to hear that you are still putting your faith in Lime. Now that the android stuff is essentially finished for now I'm really excited to see what Ansca can come up with to save us all! It'd be nice if one of these days I could make a game too :-)

Last night I went to bed with my iPad and read through all the Lime tutorials -- which was a mistake because it made me want to get up and work on some stuff! :) You've built a very versatile tool.

But I've started building the initial maps for my new game and after the next version of CPM is out the door will be working on it full time. I can't wait!

Jay

I'm glad to hear I have provided some suitable bedtime material :-) I'm really looking forward to seeing what you come up with!

I also hope to get some more tutorials up soon, wouldn't want you to have nothing to read at night now would we?

I'm working on my own tile engine as a learning exercise with lua and corona.
My test device is an old ipod touch.

I was horrified to begin with when I tried doing tile maps, but with a lot of (extremely frustrating) testing, I've found I can get *reasonable* performance for my maps, so I'm wondering what people are expecting?

I get roughly 45 fps on the ipod touch for a map that is 160x128 tiles in size (with each tile being 32x32, or to put it another way, 16x11 (171) tiles onscreen.

It's not amazing, particularly when I look at the ipod's 3D performance (so naturally the ipod should be able to push a lot more, but it's enough for me to get going on a game engine at least).

Is this comparable to Lime? I'd be more than happy to find out quicker ways of doing things for sure, but I'm curious as to what people are actually getting compared to their expectations.

Barry

Carlos mentioned in his latest blog post that he's planning on updating the roadmap very soon.

That should at least provide a rough estimate as to when the graphics improvements he mentioned should be implemented. I can guarantee that they'll roll out way sooner via Daily Builds though, long before the next release is ready to go out.

Yea I'm looking forward to seeing the roadmap, will be nice to see when (and what) things are planned. Also, congrats on your new job!

Okay, here's another idea -- take all the tiles that don't interact with the player character(s) and turn them into a PNG (with transparent areas you can still have parallax scrolling). Now you're only moving ONE display object around, not dozens/hundreds/thousands.

So then your active tiles only consist of information and not graphics. So you could "draw" your physics boundaries on an invisible layer that sits on top of the scrolling background picture and even though your character is standing on a line, the line is invisible and overlayed onto the background so it looks like he standing on a ledge, etc.

Largest size picture an iPhone or iPad can hold is 2048x2048 -- so does that mean it can hold one that's 1024x4096, or 768x5461? Using 32x32 tiles, that last one would give you the equivalent of a map 24 x 170 tiles in size, but you're only scrolling one picture (a tile width at a time).

Haven't played around with this yet and don't know how this would work in conjunction with Lime, but I know Tiled can spit out a picture of your map and if Lime is only moving a few things rather than everything, doesn't it seem like a speedup should happen? :)

Or, we can just wait and see what Ansca comes up with. :D

Jay

what roadmap?

c.

@Jay - That would most likely be a very workable solution as then you would essentially be making very large tiles. You could basically take screenshots of the map and then simply rebuild it in Tiled with those large tiles and Lime should work fine.

@Carlos - Don't you start that! :-)

It is a very workable solution, and what i have done with the game i am making.

I just picked up Corona over two months ago, and started teaching myself LUA, and picked up Lime about a month ago. We will not talk about how many hours per day i work on learning all this, but i will say it is alot.

anyway after picking up lime it made everything much faster, but i had one giant problem. Even with a small map i had poor performance even on a Iphone 4, and my maps were unplayable on a 3g. I am talking about 1-2 FPS on a map that was 15 or 16 tiles high by 30 or so. I started taking tiles out of my game and got a huge performance boost, but limiting tiles means it is much harder to create fun maps.

What i ended up doing was creating alot of tilesets that fit my needs

32x32 for small blocks
320x320 for the actual map tiles
32x 96
96x32

and so on

Then i use tiled to place everything and overlay the physics object layer. This has got me much closer to the performance i am looking for.

here is a video of my progress so far. I still have a good way to go before i am ready to release the game About halfway through the video is the game playing on a actual device. The device is a Iphone 3g.

http://www.youtube.com/watch?v=4_vRqQGTPkQ

I want to thank you on all your work on lime so far. I do hope we see some performance tweaks in Corona soon, and understand that you cannot do much more until we see it.

I am looking forward to your next release. My biggest issue right now is tile scaling, and i read you had a fix for that in the next release. Having tiles overlap on a iphone 4 and having to figure out workarounds made me cry a little inside.

anyway i have been lurking and figuring out everything for two months now, and figured i would finally come out and start posting. I also figured everyone might want to finally see Lime in action on a actual game. Its still too early to post anywhere but in a month or two when i am finished i will be sure to let you know for your featured games.

Wow! That is looking really nice and it's good to see some interesting use of the workarounds available to create a really playable game.

I know of a few games now that are getting close to release so will be interesting to see who get's there first. The race is on :-)

I really hope some performance boosts come in soon though, then the floodgates of possibility will be open.

Doing a screenshot of a map isn't really an option for us; and isn't what we originally purchased Lime for. We're not using physics in our title; but we're interacting with tiles, replacing them, e.t.c on a number of occasions.

Whilst this is a workaround that some people might be able to use, I personally wouldn't consider this a valid use of Lime (or a reason to buy Lime). Either way, if the performance issues aren't fixed soon, we'll just work on our own engine (or hire in an external developer), we're getting pretty close to launch and have some preview space in a few UK game magazines.

Oh well, tis' a shame - was excited for this project, but the performance issues have been going on for quite some time now. :)

The biggest speed-up I found with my own tile engine was switching from individual graphics to spritesheets. I wouldn't say framerates are fantastic, but I'm getting 30 fps solidly (with enough CPU spare for other game elements) on an old ipod touch with 16x11 tiles refreshed every frame (each tile is 32x32 pixels) on a map that is 160x160 tiles in size.
I really have no idea how Lime does it, but considering what I used to get with my first attempts, and comparing this to the speed complaints I hear, I'd say that's likely the issue here.
Sprite sheets have their own quirks, but nothing I haven't found a work-around for.

@ryan - It certainly isn't a solution for everyone, and as you say does sort of take away the point of a tile engine but if it works for this particular case then at least it is better than nothing. The performance issues are really annoying and I'm hoping that during the upcoming webcast mentioned by Carlos we will be able to ask exactly what Ansca are planning on doing and making sure we are heard.

@rakoonic - Lime currently uses SpriteSheets for its tiles.

Cheers for the clarification Graham. I assumed it did, but its certainly not a natural approach when people first start coding their own attempts at the same thing. I must admit the general speed of Corona leaves me sad, coming off the back of playing in Unity. I know its geared towards RAD but still, there's some seriously inefficient code going on somewhere - there's no reason we can't have the best of both worlds!

I've had a quick trawl over these forums, but haven't yet found any serious examples of Lime at work, so I can't really say if its worth me possibly buying it. Any chance of a few links? :)

Barry

I'm confident that the speed issues in Corona and thus Lime will be solved with whatever additions/fixes get added in for this next release. Just not sure how soon that release will be.

As for links to examples, at present I don't have many really. I have seem some very promising videos from users showing their creations however they have asked me not to share them yet until they are more ready.

I have created a sample app that shows off some map types etc and this was going to be submitted to the App store however at present with the state of the performance it didn't seem appropriate. However I could tidy up the look of it and try to make a video of it in the simulator if that would be useful to you?

I wouldn't say no to a demo vid - ideally one that shows more than just a bit of tile scrolling and parallax. I'm interested to see how the more advanced stuff from Tiled etc gets used in Lime really.
If you don't have time, no big deal, but it just seemed strange that I couldn't really find out more about something for sale!

Barry

The lack of media on it is mainly down to my lack of time, it is literally just me working on it so between answering daily buckets of emails ( not complaining, keep sending your questions in! ), other projects, freelance stuff, and the occasional desire to eat it's sometimes hard to find the time.

What sort of features specifically would you like to see, that way I can make a better video for you.

After some refactoring I find Advanced Tiled Loader as very fast compared to Lime :)
http://love2d.org/forums/viewtopic.php?f=5&t=2567
Regards

Are you saying that you reworked ATL to use the corona API instead of Love2D and that it performs quite well on actual hardware?

Would you be willing to share the refactoring if that's the case?

Hey, I never even knew ATL existed. I will be taking a look at it over the weekend to see if I can get any ideas on how to fix Lime issues. Thank you very much for the link.

Would you be willing to share the refactoring if that's the case?

Unlikely. Graham put a lot of work in Lime and give You lots of tools. Advanced Tiled Loader rebuild is simple map loader. This is not my idea so I can't take any money and free release hitting Graham efforts.
Regards

@ gtatarkin - Thank you very much for that, very kind and considerate of you! :-)

@ jdsmith2816 - I hope to be able to roll as many of the fixes into Lime as soon as I can, preferably for the next release, so you will receive all the fixes for free anyway.

@gtartarkin, what is your idea? I hope you can share your code to Garaham , I don't know if I can wait for ansca to solve the performance issue.

My idea? Do it yourself. LUA if fun :) Here is start point :)
www.concat.pl/temp/atl.zip

BTW. It's just map reader without any methods/properites etc etc

Regards

Sorry for the delay in replying Graham. Well, thing is I don't really know what features Tiled and Lime support beyond a basic 'here's a tile map, so here it is on-screen'.
I guess I'd be interested to see how using both you can get / set up physics easily (because in all honesty I use proper physics as little as possible, so maybe I'm missing some opportunities).
Anything you can think of above and beyond the basics, since I've already got that happily working here.

I'm also interested in frame-rates though, if Lime is quicker than what I have now, I'd likely be more than happy switching just for that.

Barry

From the last few posts, it seems to me from what I understand that Lime's issue is that it tries to support too much. In flexibility comes a performance hit.
Maybe Lime could have 2 code paths, depending on whether you need the bells and whistles, or an optimised route just for displaying a basic tile map?
Just a suggestion. I must admit, I've considered re-working and releasing my own tile engine, because it seems from what I've read over here that I've got if not the fastest, but one of the fastest solutions for just dumping a tile map to the screen, but I think its a bit early for me to go down that route, and in fact I've even become hesitant in helping people who suffer from this problem (although I have loosely detailed my method elsewhere in this forum).

For example - because I can handle extremely large maps, loading from XML has proved to be an annoying delay. Result? I wrote a convertor that changes level data structures into formatted Lua code - there's nothing quicker than native (as it can get) code, right?

I was attempting to write a tiled to Lua table converter a while ago without much luck (not an amazing Lua coder ;)) any chance you could let me take a peak at the source?

@ everyone - After looking at ATL while on a coach earlier I have now managed to get all compressed map formats working ( not that exciting, but useful ) as well as proper object positioning for iso maps. The next step is to sort out the performance stuff that the ATL developer implemented.

@ rakoonic - I am hoping to get a video sorted for the release of 3.3, not sure how polished it will be as I am no video producer however it should show quite a bit off. Also, a "lite" version was something that I have been considering for a while so I will give it some more thought.

@ gtartarkin - Thank you again for finding ATL, it has been useful. I was thinking that at somepoint I would actually try to port Lime to Love for desktop apps, but now I'm not sure if there is a need. And I also hope Ansca allow desktop apps with Corona anyway.

@Dubcanada, all I did was search the forums for an XML loader, fix it (!) and then its just a case of copying table structures as you write the data out. I just used tostring() and tonumber() to get at it all, and trawled through the sample code library that comes with corona until I found file IO stuff.

@Graham - I guess it depends on how sure you are that Ansca will fix whatever is the terrible speed bottleneck within Corona. I honestly can't understand why shifting so few sprites around is a problem, so I'd hope they actually have a look into this, since its quite a high priority need, judging by the posts you have to field.

I am fully confident that it can and will be fixed because as you say Corona should be more than capable to push some sprites around.

Whether a lite version would still be required once performance is something I will have to look into.

Hi,

If you make an little version of Lime, only to load and draw the map, do you get a better performance?

Thank

Although I haven't created a Lite version yet, I think it would be pretty safe to assume the issues would still be there as I am sure it is the drawing that it is causing the problems.

views:1713 update:2011/10/13 16:30:09
corona forums © 2003-2011