• Projects
  • Stactory - A physics based 3d puzzle game

Edit: replaced deleted video with some gifs

Above I showcase the level editor I've made for a simple puzzle game. It's probably a little presumptuous of me to think my first game can be any good... but I really like this idea and I'm gunna stick with it. If I can get this puzzle game done I'll turn this into a fully fledged factory game.

I wanted to share my progress earlier but ... it took me 6 months to decide on a name.

@Erich_L said: ... it took me 6 months to decide on a name.

Yes, the most difficult thing, I swear it always is.

That looks really really cool!

Would it cause performance issues if the player piled up a bunch of objects?

@fi-le said: That looks really really cool!

Would it cause performance issues if the player piled up a bunch of objects?

Oh yes. The game levels are not giant open worlds so I can keep things pretty well contained. My desktop can handle about 600 objects, my laptop around 500. I've learned the objects like to keep moving. When I have a bunch of stuff stacked on top of each other stationary there seems to be a larger performance hit, probably because of all the objects are pushing down/up on each other.

@Megalomaniak said: Yes, the most difficult thing, I swear it always is.

I wanted to go with Five Second Rule for the longest time. Perishable foodstuffs can only stay on the floor for 5 seconds before they count as waste. Name patented.

I like how "organic" this is. It constrasts with very industrial games like factorio etc. "Five Second Rule" is a good name and a good concept.

I like the way the video makes it look like the game is on your desk. :smile:

7 days later

@DaveTheCoder said: I like the way the video makes it look like the game is on your desk. :smile:

thanks m8 I've gotta do a better job of that on the next video

5 days later

I don't plan on actually having this many objects in the game, but I noticed when toying around that after 130 of my belt objects are in the scene things break down, specifically the rigid bodies all freeze (the bananas) and ray casts on a number of my belt objects quit working. I can still add more belt pieces but new ones can't be clicked.

Where it gets hilarious: all those frozen bananas are still collecting the forces acting on them. If I delete enough belts to go under 130 they fly off with all that accumulated force and all the belt objects work normally again.

Appreciate any tips or links

This looks really awesome. Thanks for the shout out.

I set this up as a test-level to see if my ~10 year old students could figure it out to get all the bananas going into one hole. They had a really really hard time. Second opinions?

https://stactory.itch.io/stactory-01

Also... if you're too slow the bananas will freeze up your system. It's the ultimate race against the clock. They despawn when falling off the world or going into the hole

4 days later

I am no artist- but here's an attempt to color belts by height

2 months later

@cybereality mentioned recently that we shouldn't use get_overlapping_bodies() in the physics step and signals for entering and exiting are preferable. Hey wait a minute! I'm guilty of doing that! So I thought I'd try both ways and see if there would be any improvement in my game's performance.

Interesting. I would assume since you are still looping though all the bodies the same calculations need to be done. My example would be more for things that don't happen often, like let's say walking over a trigger that opens a trap door. But maybe under-the-hood Godot already has optimization for this use case.

15 days later

As promised @xyz, @OpinionatedGamer . I'm always happy to open up blender and start modeling. It brings me such joy knowing my friend Joe is going to be annoyed as hell as I continue to refuse to use bevels on my edges. Each hard edge is basically a small tear of joy.

I think I'll make a more complete test with collision shapes in a few days. Edit: I misspoke tho the launched speed is displayed speed * 10 not 100.

Literally LOLed :D The launcher looks like a legit piece of industrial strength equipment. But I don't think you're anywhere near mach speeds yet.

And hard edges are cool. I actually prefer them over soft beveled look.

Why not compromise at hard bevels? But seriously with normals being bendable you can do some interesting things with hard edges.

@Megalomaniak said: Why not compromise at hard bevels? But seriously with normals being bendable you can do some interesting things with hard edges.

Curious, what do you mean by hard bevel? I did a bit of fruitless searching. Do you mean a one edge bevel?

@xyz said: Literally LOLed :D The launcher looks like a legit piece of industrial strength equipment. But I don't think you're anywhere near mach speeds yet.

And hard edges are cool. I actually prefer them over soft beveled look.

As you can tell I'm no 3d modeller, but I wanted the 3d objects to match their collision shapes as much as possible. Also the objects snap together on the grid and bevels seem to make ugly creases on edges.

@Erich_L said:

@xyz said: And hard edges are cool. I actually prefer them over soft beveled look.

As you can tell I'm no 3d modeller, but I wanted the 3d objects to match their collision shapes as much as possible. Also the objects snap together on the grid and bevels seem to make ugly creases on edges.

I think you did quite a good job with modeling, and with the whole look of the factory for that matter (color palette, textures etc...) It all looks very industrial, yet fun.

@Erich_L said: Curious, what do you mean by hard bevel? I did a bit of fruitless searching. Do you mean a one edge bevel?

Yep, basically that. It still leaves 2 visible hard edges when looking close up but from a distance it might look better than a single edge. Hard edge as in normals would still be split.

@Erich_L said: Also the objects snap together on the grid and bevels seem to make ugly creases on edges.

Yeah, connecting sides should probably not feature them.

22 days later

I would like to achieve the following effect but I don't know what to start googling. I'll use a rigid body to bounce around a scene. At some point it will start spraying muck on my static bodies in a cone (think spray can). I want to be able to spray and color meshes in a way that I could.. possibly also save? Nah forget the saving.

I would also like to modify the normal map in a way that could make it look as though the affected regions had a wee bit of depth. I have worked hard to keep my geometry simple so I hope this is possible.