2D Platformer - Level design Theory in Corona Sdk

Hi,

I am a new user of Corona Sdk and I would need some pointers on how to create a 2D level for a platformer by using hand painted backgrounds and objects.
I have no prior game development experience and I take my learning from the artist’s angle.

I have made quickly a few images (background + fictional in-game screenshot) for the purpose of this thread .
This is just an example. In red is the path that the player would take (example).

Examples of game that look like what I am trying to achieve

Some of those games probably use tiles (Kirby?) in a very clever way.
I don’t know much about game development so…

Anyway I am not a tile artist and it takes time to master this.
So I would like to use what I am already able to do. (Paint).

Camera

From what I have seen, there is no “camera” concept in Corona sdk right?
I have tried Unity3d recently and I could grasp the concept :
you make a level, put objects on the level from a drag and drop view, and navigate through the viewport to see the position of your objects by using the concept of camera.

By using Corona Sdk (or some other 2D frameworks), it’s a bit more difficult for me to get the idea of “moving all the objects and the background” while the character is not moving. That doesn’t feel natural (to me, as a beginner).
I need to get a better understanding of the way it works.

So I have basic questions like : Can I navigate in a viewport to see what the level “outside of the camera view” looks like? (3rd party tools?)

Tiles

I have read a bit about tiles those last few days.
I have read about Lime and Tiled (both look great) but from what I understand, I don’t want to use ‘tiles’.
I know that it’s been the way to do for a long time, but I feel that being a tile artist is a different job and it takes time to master the skill.

I want to paint. That’s what I want to do, so I don’t think that tiles would be the way to go for me (unless I have no choice due to Mobile devices memory issues?).
It would feel more natural for me if I could just paint.

So let me sum-up

  • I would like to create my level design from a side view

  • I would like to make it very easy for me to change the objects positions and scale in a visual way

  • Let’s say I want to move a platform (user can interact with it) more on the left above the river (just a background image, no interaction).

  • If the river is at the end of the level, how can I move the platform from its place too the right place? Should I change platform.x, check many times and then play with my character until the river to see if its positioned exactly where I want it to be?

What would be the best workflow in that case?

Last question

I have no doubt that I will use Corona sdk for some of my projects.
But in the case that I describe, is Corona Sdk well suited for my project?
I am not asking if Corona Sdk has the power to do it (no doubt).
I am not asking if a platformer is possible with Corona Sdk (no doubt).

I am wondering if, on the market, Corona Sdk would be the best choice for my needs on that project precisely.

Sorry for that kind of questions,
and thank you for your help!
[import]uid: 95346 topic_id: 17507 reply_id: 317507[/import]

some places that you can look for starting

  1. LIME this is a wonderful library that you can use to make your tiled worlds and move the cahracter/camera around
  2. SVG Level Builder from Karnak Games
  3. Level Helper & Sprite Helper from Valadu Bogdan

remember the dialog from Matrix, “There is no spoon” keep that in mind when you work with the camera view.

cheers,

?:slight_smile: [import]uid: 3826 topic_id: 17507 reply_id: 66468[/import]

I think spritehelper & levelhelper would definitely help you in what you want to achieve.

You could create physics objects to go over the top of your artwork, for instance in your top example you would have a transparent ground object and the top of that object would be shaped like the red line.

Incidentally, I like your artwork and if you might be interested in exploring teaming up on a project you can e-mail me: otterstudios@hotmail.co.uk

Nick [import]uid: 93133 topic_id: 17507 reply_id: 66495[/import]

The artwork is so nice in those prototypes! There are a couple of annoying (and odd) issues with platforms in Corona. Such as moving a group of objects (i.e. the level) renders all physics wrong as you will land on where walls USED to be and such not.
Lime is made for Platformers and so I believe handles rather way, I advise that you look into Lime too. [import]uid: 79135 topic_id: 17507 reply_id: 66515[/import]

I think you’ll be fine to accomplish what you need in Corona.

Imagine that you have one image for the whole level. Then chop it up into slightly smaller sections, (not tiles). Each of these sections would have to be smaller than the maximum image size corona can handle, (I think it’s 1024 x 1024 or similar).

You then create invisible objects which represent physical boundaries in your level, they can be any shape or combination of shapes as long as they are convex. If your player character is also a physics object you can very easily stop him from passing through the invisible objects.

There is a Fireworks script somewhere which allows you to create objects/layers in fireworks and then writes the code to display those objects at the co’ordinates set in your fireworks canvas. I believe this was adapted from a photoshop script which does the same thing. It could be used as a pretty powerful, visual, drag and drop level editor.

To answer your question about the camera, the easiest way to visualise it is to imagine the phone screen as a window onto a 2d plain. Corona doesn’t have any “layers” as such, but instead uses “groups.”

Groups have been extensively written about, but as a simple example, you could have a group for the player and all his effects, another for foreground imagery in front of the player, another for animated clouds or physics geometry or whatever. The layers are drawn as you paint, so the first drawn, (declared in code) is always at the back, the last drawn is on top.

You add all of your groups to a mastergroup, (call it whatever you like) and then move the mastergroup around. This will work with physics and parallax scrolling.

Finally, platformers are made with tiles for a reason. You don’t have to use them, but sonic and mario do, and they were designed by large teams of pros. Do a google search on the dynamic camera in mario to see some of the astounding design decisions which invisibly guide the player, it’s fascinating stuff.

You could still accomplish what you’re asking with tiles and retain the painterly feel. [import]uid: 67933 topic_id: 17507 reply_id: 66532[/import]

Thank you all for your help and kind words.

  1. How would you guys differentiate Lime and LevelHelper?
  2. Sadly I can’t check profiles on this forum or send Pm. That would be great so people can know each other better.

JayantV
Your Howto Site is very helpful, this is great that you are taking the time.

nick_sherman
I will definitely check spritehelper & level helper (and Lime also).
Thank you for the kind words about my artwork.

Would you please contact me at : edited
with a brief description of your project, your plans, and our mutual benefits?

It’s just that I often get offered to work on hobby projects (not a serious project, no money involved, no plan) when I post on some forums and I definitely don’t consider this as a hobby but as a business ( enjoy + profit ).
I am sure you have something interesting in your mind, so don’t hesitate to contact me.

anddrewscott
Thank you! & I will check Lime.

spider_newgent
Such a great answer. You helped me to save a lot of time by taking the time to explain me the theory of 2d games applied to Corona Sdk.

Finally, platformers are made with tiles for a reason. You don’t have to use them, but sonic and mario do, and they were designed by large teams of pros.
I totally agree, that’s because I am a one-man team and I am not a tile artist that I was trying to avoid investing time learning a skill (tile artist) that is hard to master.
I just don’t have the resources and skills, but if I *have to*, I will find a solution.

(I enjoyed the video about dynamic camera in Mario *very much* btw)
I got a great feeling about the community here from your feedbacks. Thank you all.
[import]uid: 95346 topic_id: 17507 reply_id: 66831[/import]

Hello, MrMells!

I’m just in the same case as you explained.
It helps me if you could tell me how you are finally development your game. Are you using levelhelper to create the platforms images?
Are you using tiles?

I’m thinking on painting images and chopping it up into slightly smaller sections, as spider_newgent says, but I don’t know if this is the best way and, if it is, levelhelper is the best choice.

Any help will be appreciate.

TIA [import]uid: 44013 topic_id: 17507 reply_id: 91933[/import]

I would recommend levelhelper - the creator is a genius and is doing a rapid development of all his software, and the fastest support you can get.

Joakim [import]uid: 81188 topic_id: 17507 reply_id: 91934[/import]

@MrMells
What you need is definitely could be done with Corona, but you need an experience programmer for that.
Here our example (see video) of “moving” background/level, character and “camera”:
http://www.sungiftgames.com/games/spunky-tricker-christmas-night/
http://www.sungiftgames.com/games/spunky-tricker-halloween-party/

You have very nice art style! [import]uid: 9058 topic_id: 17507 reply_id: 91962[/import]

Hi think your artwork is great, can work with me if you like on any ideas you have.
contact me stu@beloudest.com if interested in working together.

:slight_smile: [import]uid: 118379 topic_id: 17507 reply_id: 91971[/import]

I have my own level builder which works on the device, you draw the images and add in the assets with a touch of finger. [import]uid: 118379 topic_id: 17507 reply_id: 91972[/import]

Hi all,

alberto
Sorry for the delay Alberto I have been too busy working on my new website
{ The Wind Forest } these days and I wanted to take the time to give you a longer answer than “Yes I use LevelHelper and it’s great!”.


I’m just in the same case as you explained.
It helps me if you could tell me how you are finally development your game. Are you using levelhelper to create the platforms images?
Are you using tiles?

Here is the path that I have followed (I thought that it could be interesting for you?) :
I got in touch with Bogdan (LevelHelper) and Graham (Lime) to get a better understanding of the products they offer. Both were *very* helpful. I mean, they really listen and the support is great.
You can’t go wrong buying either one of their products (if it suits your needs).

I ended up choosing LevelHelper (and Spritehelper) because it was more intuitive for my own workflow and I don’t use tiles (yet). Also at that time there were some reports of Lime being slow but in fact it was more something to be improved on the Ansca’s side. I believe that it has been taken care of a few days ago and performance seems to have been greatly increased.

I’m thinking on painting images and chopping it up into slightly smaller sections, as spider_newgent says, but I don’t know if this is the best way and, if it is, levelhelper is the best choice.
That’s what I’m doing.
Have you checked the tutorials on the LevelHelper’s website, especially that one?
I am still working on the simulator because I didn’t subscribe to Corona Sdk yet and I’m evaluating a few other frameworks this month, so I can’t guarantee the performance on the device yet. That’s something that really needs to be checked.

Conclusion

I would say that LevelHelper and Lime can’t be compared because in my opinion they address different needs and workflows.
Both are great and by using them you will quickly recover your $20 investment, no worry about that.
If you save (at least) one hour of your life by using those products in the coming year(s), then it’s a smart investment.
If you work the way I have described in my original post, LevelHelper might be better suited.
I will publish a tutorial for LevelHelper in the coming weeks
on my blog and I hope it will help.

I will do the same for Lime for another project, much later.

Let me know if you have other questions, you can contact me directly through my website.

Andriy
Thanks for the kind words about my work, your applications look great!
Did you use Hokusai’s paintings on this image or did you draw ‘in the style of’? The thumbnail looks great also, I like that level of polish.

Beloudest
Thank you!
I am busy with my apps and I am not looking for other projects for the moment.
You can still contact me through my website if you have something to suggest. [import]uid: 95346 topic_id: 17507 reply_id: 94346[/import]

@MrMells
Yes, we work under inspiration of Hokusai’s paintings (but not only). It’s a pity, but Sudoku Samurai is not become very popular.
Thanks [import]uid: 9058 topic_id: 17507 reply_id: 94380[/import]