Lime concerns

Hi.

Lime seems very useful and I’d like to buy and use it in my apps but I have a few concerns.

I see there’s one game so far created using Lime. Are there any other examples so I could see a video or download the game from the app store to test?
If you can’t show a video of your game but have no performance issues, could you just advise it works fine? Or in which circumstances it works?

There seems to be a lot of worry about performance. Is this still justified?

If the issue is only for scrolling extra-large maps, will Lime be perfect and fast with just single-screen levels which do not scroll at all?

Thanks in advance :slight_smile: [import]uid: 10389 topic_id: 10291 reply_id: 310291[/import]

Hey WauloK,

I was about to email Graham anyway so I’ll send him a link to this thread as I don’t know enough about Lime to answer at this stage.

I will say that I recently played a game (AdHoc, just BETA testing it) made with Lime and it was glorious - I’m not saying there aren’t issues, only that this recent, large game seemed to perform perfectly. (This game had scrolling of large-ish maps ;))

Peach :slight_smile: [import]uid: 52491 topic_id: 10291 reply_id: 37589[/import]

Hey, there are still performance issues which are getting improved with each release. In the next version there is an improved ( I hope ) culling method however the main issue I think I am seeing, after speaking with Ansca, is that in large maps there are simply too many objects to handle. I am trying to work out a way of dynamically loading the tiles without sacrificing a lot of the functionality.

There are other games developed, or being developed, that I have seen which are running quite nicely and as Peach says she has seen one as well.

It’s hard to just say things like “all large maps will be problematic” as it could be a very sparse large map with minimal tiles like a Doodle Jump style game or a large map with thousands of tiles like an RPG. The former should be fine whereas the latter would have issues.

I have a demo app that shows off various maps that is available to users of Lime which I hope to pretty-up and release on the App Store so people can see things in action. I also hope to release some videos that will show off things too, it just takes time.

You should be completely fine with single screen games.

Please feel free to ask any more questions you have. [import]uid: 5833 topic_id: 10291 reply_id: 37602[/import]

Thanks to both of you. That’s very helpful :slight_smile: And Lime is such a great price as well! [import]uid: 10389 topic_id: 10291 reply_id: 37612[/import]

No problem, I hope you really enjoy using it if you decide to purchase it. If you have any other questions feel free to post here or email me: info@justaddli.me - only too happy to help. [import]uid: 5833 topic_id: 10291 reply_id: 37614[/import]

I must admit, I’m starting to get quite frustrated with the performance issues, fully appreciating that the ball is in Ansca’s court as it were, I’m sitting 5 months after purchasing the Corona SDK and pre-ordering Lime as soon as it was available, I’ve still not got anything remotely usable for physics enabled maps that only 4 times the width and twice the height of my screen.

I’m almost at the point were I’m gonna cut my loses and go back to a combination of cocos2d and and-engine.

The appeal of rapid development dissipates if the end result runs at 6 frames per second.

[import]uid: 11672 topic_id: 10291 reply_id: 38473[/import]

[UPDATE] You may be very experienced and have tried what I’m suggesting, so this post may not apply to you. Take it as an alternative idea posted to a generic Corona SDK dev.]

Just because Lime doesn’t work the way you want it to doesn’t mean your only option is dumping Corona.

This level is 80 x 12 tiles, for a total of 960 tiles:

But only *86* of those tiles can possibly interact with the player character – so why would I use 874 display objects to show the other tiles?

Here’s the same level but only the tiles that can interact with the character are shown:

All of the “scenery” portions of the ma could be chopped into a few larger objects and displayed, so you might end up with 90-some display objects instead of 960. I’ll bet that would make a huge difference in speed.

I’m in the middle of two different projects right now so I can’t dig into this as much as I want, but I’m pretty sure large tile maps can be done in Corona SDK. Whether you can use all the features of Lime or have to do some coding on your own, I don’t know, but there’s more than one way to display and scroll tile-based maps.

Jay

[import]uid: 9440 topic_id: 10291 reply_id: 38491[/import]

@ michael9 - The performance issues aren’t fully on Corona, I am still working on improvements in the Lime code. For instance the next version will have another culling function and from my tests it makes a bigger difference than the previous culling function. The main problem now seems to be down to how many actual objects there are, regardless of them being visible or not, so things like what Jay suggested such as using bigger tiles if possible will be a huge help. I’m trying to work out a way of doing dynamic tile loading without sacrificing features.

You say you’re using physics, are you making each tile a physics body or using Objects to make large bodies? If you want, you can send your project to support@justaddli.me and we can look at it together to see if there are any ways to improve things.

@ Jay - Good suggestion! And it certainly can be done in Lime, naturally it would take a little extra setup but it would be a workaround for now. [import]uid: 5833 topic_id: 10291 reply_id: 38508[/import]

Jay
Yeah, I’ve cut the number of actual tiles down to the bare minimum, my game look involves a stylized silhouette look, so it’s essentially black tiles where needed, the rest of the screen is already using larger background images

Graham
Individual tiles, I have not tried replacing tiles with objects. The idea being at what point does using a tiled/lime combo lose it’s advantage over something like gumbo if I’m going to end up essentially arranging larger objects anyway.

[import]uid: 11672 topic_id: 10291 reply_id: 38553[/import]

@ michael9 it’s not a big deal in fact. Just use this tip:

  • divide map on block slightly larger than viewport (newGroup)
  • specify viewport starting position
  • group containing tiles in viewport should have isVisible = true
  • other group of tiles should have isVisible = false
  • if you move character on map it should stay in center of viewport
  • use collision detection between viewport and map block to show (isVisible = true) and hide unnecessary elements (isVisible = false)

Using this trick I have 20-25 fps on Android device compared to 1 fps without this method for 100x100 tiles.

Regards [import]uid: 12704 topic_id: 10291 reply_id: 38558[/import]

To be more clear - I use my own tiles engine to maximum CPU load during the test but this method works well in Lime. [import]uid: 12704 topic_id: 10291 reply_id: 38559[/import]