r/godot • u/WestZookeepergame954 Godot Regular • 2d ago
selfpromo (games) "Why does making a game take so long?" (level-building timelapse)
So when developing Tyto, I decided to use CollisionPolygons instead of a tilemap.
It allows me to make a more organically shaped world instead of a tile-based one.
The next step was to make it look good - hence the timelapse! I painstakingly place every single sprite in the game so it feels natural and not repetitive.
Still wondering if I should make a script thatโll do it instead, but I donโt think it would do as good a job. What do you think?
64
u/Repulsive_Gate8657 2d ago
omg procedural placing over vector shape would save so much time !
7
u/WestZookeepergame954 Godot Regular 2d ago
But will it look as good?
29
5
3
u/ProfessionalGarden30 1d ago
its a copy of the system they used for the rayman origins/legends terrain, about the best 2d platformer art there is
2
u/luxae___ 1d ago
Yeah, I'm making a godot app for that purpose (+ fun stuff) because I want that too, it's fun when it works, problem is making it good enough and in time for godot showcase reel deadline
32
u/j0shred1 2d ago
As a software person, I hate the art aspect of it, but I appreciate the people that do it.
22
u/WestZookeepergame954 Godot Regular 2d ago
As a software person myself, I spent the first few weeks trying to automate the process, but it always didn't look as good and I decided to give it up.
3
2
u/MISINFORMEDDNA 1d ago
As a "software person", I can't make anything look good. Lol
1
u/WestZookeepergame954 Godot Regular 1d ago
This is what my artist is for! I'm doing a lot of the tech art, though ๐
14
u/medson25 2d ago
I made my maps in somewhat similar fashion and it was deffinietly the most tedious and mind numbing part, i clicked so much that my finger hurt for a few days.
5
u/WestZookeepergame954 Godot Regular 2d ago
Yeah, I need to take breaks for my fingers and joints ๐
4
u/nomadic_stalwart 2d ago
Maybe you can help me understand, but why would you not just create the entire levelโs terrain as a single sprite asset exported from anywhere where itโs less tedious to arrange these modules? Is it time consuming if youโre going to be manually placing them just as WestZookeeper did here, or is there some benefit if each module is baked with sub nodes that make other features easier to apply? Is it some procedural generation technique? Iโm inexperienced so Iโm wondering if this is the easiest method.
6
u/medson25 2d ago
Im sure there are better ways, but thats what i know for sure i can pull off for the maps i made for the jams i've practicipated in, time constant made me just fall back to the working brute force method.
1
u/robbertzzz1 1d ago
but why would you not just create the entire levelโs terrain as a single sprite asset exported from anywhere where itโs less tedious to arrange these modules?
Because your GPU can't handle that. Textures are big, the best thing you can do is keep them as small as possible and reuse them everywhere you can since the GPU only holds one copy in memory. If you'd take your approach, you'd end up with gigantic textures that are all unique, so each and every one of them would need to live in GPU memory. You could build some kind of streaming setup, but you'll get noticeable hitches when many textures are loaded/unloaded at the same time.
11
u/Drillur 2d ago
What is this, some sort of Flappy Bird remake?
Looks rly good!
19
u/WestZookeepergame954 Godot Regular 2d ago
Thank you so much! It never cease to surprise me that people's mind goes to Flappy Bird.
Either way, it's a gliding-based metroidvania where you play Yali, a lost owl looking for his family.
(Obviously - very inspired by Ori ๐)
1
5
4
u/Seraphaestus Godot Regular 1d ago
This feels like an insane workflow. Wouldn't it be better to put these sprites all together in an image editor and import it as several chunked textures? All those sprites can't be healthy
3
u/Silveruleaf 2d ago
Level design is very complex and a art. It's also the meat of the game itself. This looks painful tho. Each bit so detailed and the players runs past it at mach speed ๐ I heard a interview that God of war 3 had sculptures only doing statues models before the camera was decided the angle it would be locked into. So there's sections full of unique art that you won't even see. Someone spent days Sculpting it and the camera won't pick it up, and it's on transition areas where the player will just run on. Meanwhile there's sections with elevators that are literally just a giant cube with no background, and you fight on it for what it feels like it's forever ๐ make it make sense. It's just burning money and time on nothing
12
3
u/WeirderOnline Godot Junior 2d ago
This is one of those things where you build a tool to do it automatically.
3
u/Memebigbo Godot Regular 1d ago
I'm actually with you on this one. Doing things in a slower and manual way may sound silly to software engineers who love to automate, but sometimes art only feels right when you do it carefully and laboriously. Obviously this doesn't apply to everything because you have to finish projects eventually.
1
u/pentamache 1d ago
This, sometimes automation makes your game look more generic. If you want it to feel unique, eventually you are going to put long hours of manual labor somewhere.
5
u/Quillo_Manar 2d ago
> Authorities are still looking for the man who's last words are recorded as: "Screw it, this takes too long, I'm going to program it to do it procedurally!"
2
u/gk98s Godot Student 2d ago
This looks gorgeous.
2
u/WestZookeepergame954 Godot Regular 2d ago
Thank you so much! It makes me feel like it might be worth the effort after all ๐
2
2
u/PMmePowerRangerMemes 1d ago
I like seeing your process. It'd be nice to see more "critique my workflow" posts. Feels like we'd learn a lot.
(I guess you didn't technically ask for critique, but... it's reddit, so it was inevitable lol)
2
u/FormerlyDuck 15h ago
I went through so many emotions watching this.
First I was like, "this is agony, how could anyone do this?"
Then I thought to myself, "Wait, this would look so much better in my game than a tilemap."
And then I realized that it would only make me more productive, since it would give me something to work on when I only have like, an hour and don't have time to write another script.
1
1
u/Sondsssss Godot Junior 2d ago
Maybe you could automate some of it? Have you considered at least allowing the insertion of grass shapes automatically? Could you perhaps also select the positions for the tiles and then use a positioning script to place them? Could you define connection sockets for the collisions to make sure they are instantiated correctly?
1
u/Silveruleaf 2d ago
Level design is very complex and a art. It's also the meat of the game itself. This looks painful tho. Each bit so detailed and the players runs past it at mach speed ๐ I heard a interview that God of war 3 had sculptures only doing statues models before the camera was decided the angle it would be locked into. So there's sections full of unique art that you won't even see. Someone spent days Sculpting it and the camera won't pick it up, and it's on transition areas where the player will just run on. Meanwhile there's sections with elevators that are literally just a giant cube with no background, and you fight on it for what it feels like it's forever ๐ make it make sense. It's just burning money and time on nothing
1
1
u/pbardsley Godot Junior 1d ago
For my game which also used collision2d, I took a screenshot of the full collision paths, then used that as a base to make a massive PNG that was the same size as the entire level.
1
u/TerminalCorrosion Godot Student 1d ago
I love this. Beautiful, lovingly crafted world, slick looking gameplay. Just added to my wishlist.
1
1
-1
u/almostsweet 1d ago edited 1d ago
Why not just write a cellular automata routine to generate the level. Would look the same. And, then you'd be able to create an infinite number of levels.

https://bronsonzgeb.com/index.php/2022/01/30/procedural-generation-with-cellular-automata/
Sorry for the unity link, but the logic should be the same.
160
u/notpatchman 2d ago
You need SmartShape2D