I’m not sure it’s the right place for this and actually, the title of my thread should be : How do YOU create a map for platformer.
Let me explain : I’m trying to create a platformer but I’m a bit stuck on the creation of my first level. I “paint” my assets using Krita and I’d like the environment to look a bit organic.
I’m stuck on the methodology :
Should I prepare my whole level using only a tiledsprite square for collision and then “stick” my drawings on the general shape? (I tried this and it wasn’t looking great…Maybe my assets were not drawn the right way…)
Should I draw a tileset and import each tile as a sprite (or tiledsprite?) and create the map directly in Gdevelop? (I tried this too and I had problems with collisions : the character would fall through the ground when two platforms touched).
Finally : is it possible to have “round” collision shapes? For example, for the ground?
At last, what I was trying to ask is : what is your approach to this kind of situation?
It depends on your assets. Are they made up of tiles? or is every asset custom painted and different than the other?
If you can elaborate more on how your assets are built or share a preview, I can answer your question better.
Hi @insein! Thanks for your answer!
Actually, I’m struggling with both approach and this is my first game so I’m experimenting at the moment.
As of now, my assets are all different and are not made up of tiles. As an example, this is what I have used so far for testing purposes (so nothing really fancy) :
I guess that creating a tileset would be more practical…I do have to do some research on that…
But I guess I’d be interested in knowing you guys’ procedure/methodology to come up with a map. I can also say that some of my references are Donkey Kong Country on the Switch or Hollow Knight or Rayman…Of course, my drawing skills are a lot more limited but I’d like to have something that is as coherent…
The way I do it is I create large levels (environments, really) in Illustrator and Photoshop. I export the artwork as a series pngs of around 300 x 300 and put the levels back together inside GDevelop. I place all the pngs into one sprite object as separate animations, so everything is neatly in one place. Having the artwork in pieces like this means GDevelop doesn’t have to load a massive single image, and it can cull images as they leave the screen, freeing up resources.
I then use a sprite that I have given the platform behaviour to. It’s just a red square. I place, resize and duplicate that on the scene on top of my artwork so that my character can walk on the artwork: the street, the rooftops, on the kitchen table, whatever I like. I hide those red platforms when the game runs, so the player doesn’t see them.
I also have a background parallax layer which uses a tile sprite tiled horizontally, and some foreground parallax objects (individual sprites) like flowers and lamp posts.
This technique (that I first saw used by Coriander games in Miko Adventures Puffball) means I can have bespoke and large artwork in my game, but it’s definitely a different workflow than using tilesets. It depends on how you want your game to look. I want mine to always be showing the player something new as they explore. They never see the same thing twice. It’s a lot of work but worth it if that’s the sort of environments you want to design.
Thanks both to @worriedpixels and @insein for your answers!
@worriedpixels I fear your approach is going too difficult for my poor drawing skills…but I may give that a try…Who knows! The results might be fun.
As of now, I created a sort of “placeholder” map that looks like so :
We’ll see what comes of it!
Thanks for your answers anyway! If you’ve got tips, I’m a good listener
Even if you say that you do not have enough drawing skill… It would be a good start to decide for a certain artstyle (pixel, cartoon, etc.) which you don’t want to break.
Then I would recommend that you will choose a certain color palette to get aesthetic.
Seperate pictures will fit together like a puzzle, so think about your desired end result and split it up to small parts.
To get an idea for your dream level, maybe even start first to sketch with pencil (classic way) and then paint it step by step digitally.
And don’t forget to have fun with your project.
Here is my approach:
I painted for my platformer levels small assets (*.png), 32x32 and 64x64 pixels.
(First I started to create /invent the characters, then decorative elements like trees. In the end I got the idea how floors and backgrounds should look like.)
To create the final level I put every picture separately with mouse in the scene.
- Floor objects and invisible walls got the platform behavior
- I used tiled objects to fill gaps (more under/between platform elements).
- Decorative assets (like plants) got no behavior
- To activate certain events like dialogues I used invisible objects with collision.
- Background pictures are tiled objects on another layer, parallax with different values to simulate depth.
- To simulate a living world I put some passive npcs inside the scene, some of them can follow the player for a certain distance.
- I defined different z-orders of several objects in the events, so elements can not flicker.
- Finally to add more atmosphere I used some gently particles (like water bubbles) and layer effects.
I hope that my experience will help you.
Edit: If you already have a soundtrack / song: While working on your level, it can be inspiring listen to it to get a feel for the atomsphere.
@worriedpixels and @Ambytar answers are great and on point if you want to build your maps inside GDevelop.
My approach is a bit different and I rely more on tilemaps. I prefer this for several reasons:
- It’s fast and very easy to build, edit, and test maps by using a map editor. It’s also really fun & enjoyable (at least for me!).
- Building the map by placing objects and collision boxes and making sure that the assets line up together can be daunting especially if you dealing with a large map or decide to do edits later.
- TIlemaps are handled differently than regular objects in GDevelop and are well optimized for performance. Having too many objects in the scene can affect performance.
- I start by building a prototype of my map in Tiled using basic tiles for the ground, platforms and walls, with their collision masks added in Tiled. Creating the foundation of my map.
- I add interactive or moving objects in GDevelop with their own collision masks.
- I test my map and do edits as I go, until I’m happy with it.
- Then I start adapting my tiled assets to make it look good (utilizing layers in Tiled). I try to add as much of my decorative assets in the tilemap as possible.
- Backgrounds and other decorative objects that don’t work in the tilemap, are added in GDevelop.
Hope this helps you decide which approach suits your game better.
Hi again to you 2!
@insein Thanks for detailing your approach! I tried using Tiled a while back, it wasn’t a great success but mainly because I didn’t spend enough time with it and some things are still confusing for me! But it’s good to know that we can work with it and even add the collision masks inside of it seems good…
I might give it another try!
@Ambytar Hey! That’s fun, I had a look at the trailer of your game yesterday or the day before! It looks really good and fun to play! So congrats on that! I have to give it play! Thank you very much for the detailed explanation of your process, I’m sure that’ll come in handy! And there are a lot of good ideas there too!
Thanks again for those answers, I have to think about it and come to a decision!