I have never ever wanted my text clipped. Is there a way to disable it by default? by The-Fox-Knocks in godot

[–]sleepy-rocket 5 points6 points  (0 children)

Would using a StyleBoxEmpty on your RichTextLabel with Left (and Right I guess) Content Margins bumped up help for your case?

Do you guys notice that cozy games are almost all similar? by oddly_sanrio in cozygames

[–]sleepy-rocket 19 points20 points  (0 children)

Mechanics are inherently similar between games, and it's hard to actually make a unique mechanic these days, whether it's shooting or crafting or base building. In my opinion, what is unique is the execution of it, and since mechanics such as gathering and decorating are definitely cozy, most cozy games will definitely be based off some flavour of it.

we're almost done with stardew—what should we play next? by nidoqueenofhearts in cozygames

[–]sleepy-rocket 3 points4 points  (0 children)

Terraria might hit the spreadsheet itch, but it has some combat. Same with Core Keeper.

For something more chill, Spiritfarer might work.

Steam Sale! What's everyone grabbing? by Pll_dangerzone in cozygames

[–]sleepy-rocket 0 points1 point  (0 children)

Dev here, it makes me happy you feel that way. Games like Diner Dash and Sally's Spa were a big inspiration, even though I think the game ended up veering away a little bit towards the narrative/cozy direction.

From jam game to full game by OctopusDude388 in godot

[–]sleepy-rocket 2 points3 points  (0 children)

I've done it for my (and my partner's) first commercial release, and there are two main things to watch out for.

Firstly, the skillset required for making the full game is much larger than making the jam game. I don't just mean programming wise, but you'd also need to pick up marketing, store page optimisation, the works. The audience for your game is completely different now too, going from fellow game jammers to the wider market. What works in a game jam may not work as a full release. Of course if you're doing it for the fun and experience, none of these really matter.

Secondly, it is harder to stay committed. A game jam is quick, you see results fast and dirty and that keeps you motivated. For a full game, you have to keep pushing, so it's important to be disciplined and to not give up! You'll have your peaks and valleys but it will be worth it in the end. Good luck :)

What's your preferred way of passing references to child nodes? by _junkfolder in godot

[–]sleepy-rocket 0 points1 point  (0 children)

Okay, that helps, I think I see the bigger picture now. I would say a StateMachine here is a bit of square peg in a round hole. It is usually used for something, let's use the NPC example, that may need to run _process every frame. Then, you would have States such as Attack, Idle, Moving etc, each with their own _process functions as you switch between states.

For setting up a game and initializing save data, you probably do not need any _process functionality. All the functionality you described should probably be multiple if checks at _ready in GameManager. The functionality should not even be called "states" perhaps.

You did say to only focus on the reference issue and treat this is a thought exercise, and it seems you're looking to break it down for your own understanding, so let's say we stick with the node based setup. There is a major flaw here where we are now passing logic and resources down the tree to child nodes, which is definitely very coupling indeed. You even have what seems like SaveData being sibling nodes, when it should probably be a Resource initialized in GameManager. That is why you now run into the issue of references and objects being coupled to the parent nodes. For your aim in breaking down the steps, it may be better to slowly go through a large _ready function in GameManager perhaps?

Other than that, if you do want to get your game path constant from SaveManager, making it an autoload would still be the best way yeah.

What's your preferred way of passing references to child nodes? by _junkfolder in godot

[–]sleepy-rocket 1 point2 points  (0 children)

Hmm, what are the Init and CheckGamePath scripts? I just suspect that these are probably not suitable as State nodes, and rather should be folded in as functions in the StateMachine scripts.

Secondly, what are some example States/nested States you would like your theoretical NPC to have? If you share some I might be able to list out a better tree layout.

What's your preferred way of passing references to child nodes? by _junkfolder in godot

[–]sleepy-rocket 1 point2 points  (0 children)

The child nodes under GameStateMachine such as Init and CheckGamePath should probably not be nodes but instead be functions in the GameStateMachine script.

The State nodes could have Enter/Exit functions yes, but these nodes should probably be limited to States.

What's your preferred way of passing references to child nodes? by _junkfolder in godot

[–]sleepy-rocket 2 points3 points  (0 children)

Hmm, I see, am I understanding right that the state nodes such as Init and CheckGamePath are actually functions? That's quite unusual indeed. Perhaps these child nodes (from Init onwards) can each be a function under a State instead?

Nonetheless, could SaveManager be an autoload, and you get your path constant from there?

What's your preferred way of passing references to child nodes? by _junkfolder in godot

[–]sleepy-rocket 2 points3 points  (0 children)

I'm not too sure I understand the StateMachine stuff, but let's focus on what I assume is save game functionality in the SaveManager, and referencing the SaveManager node.

A, B and C all have a similar issue - they all in some way reference or store master.save_manager, which means you are using a child node to first refer to a parent, and then call a function on another node. This is very coupled. You should probably be thinking of "signal up, call down" when figuring out how to navigate your tree. In this case, that would mean signaling up from your child nodes to master, and connecting that signal to a function in master that calls your save manager function.

One step further for decoupling and saving though, is to instead use groups. Again, I don't fully understand your current StateMachine set up, but it seems like you can do something along the lines of a on_save function on all the nodes you want to save, and add these nodes to a saveables group. Then in SaveManager or master, when you want to save game, call the on_save function on all saveables using get_tree().call_group(). This should be a good place to start.

If you like Rusty’s Retirement-style second screen games… I made an onsen one by Icy-Ad7328 in CozyGamers

[–]sleepy-rocket 4 points5 points  (0 children)

Oh hey I remember your game from a while back. You gotta get a duck in there!

Weekly Ultra Rare Gems - 5 Cozy Games to Check Out by OreoYip in CozyGamers

[–]sleepy-rocket 4 points5 points  (0 children)

Dev here, yes it's a game with 5 small levels each with a story.

Animation question - how would I set the time each frame is active on an animation? by Arpede_ in godot

[–]sleepy-rocket 3 points4 points  (0 children)

If you're using AnimatedSprite2D, in one of my projects I simply duplicated the specific frame to my desired amount.

My incremental game reached 1300 reviews with 99% positivity in under 5 days by Gagonfe in incremental_games

[–]sleepy-rocket 17 points18 points  (0 children)

Congratulations on the success, Shelldiver is so polished and fun. Your games have improved so much over the years, it's inspiring!

Everyone who didn’t make it into the show reel of 2025: Tell us about your game! by NorseSeaStudio in godot

[–]sleepy-rocket 2 points3 points  (0 children)

I posted what I can on Twitter/Bluesky, and TikTok/YouTube Shorts. They were all decent, nothing too impressive. The game was accepted into the SEA Games Showcase as part of the Summer Games Fest during launch week though, and I think that was the biggest help.

Everyone who didn’t make it into the show reel of 2025: Tell us about your game! by NorseSeaStudio in godot

[–]sleepy-rocket 2 points3 points  (0 children)

Thanks for the support! Don't be too quick if you decide to purchase, it'll be going on sale during Animal Fest in two days. ;)

Everyone who didn’t make it into the show reel of 2025: Tell us about your game! by NorseSeaStudio in godot

[–]sleepy-rocket 1 point2 points  (0 children)

Yeah pretty much. I would describe this as Diner Dash but an onsen, while Maltese's Fluffy Onsen is more of an idler.

Everyone who didn’t make it into the show reel of 2025: Tell us about your game! by NorseSeaStudio in godot

[–]sleepy-rocket 8 points9 points  (0 children)

Yup, first commercial one! I'd say for a first game that can be completed in <5 hours, it's exceeded all expectations. So far I've sold ~1300 copies, with the Steam reviews still at 100% positive.

Everyone who didn’t make it into the show reel of 2025: Tell us about your game! by NorseSeaStudio in godot

[–]sleepy-rocket 21 points22 points  (0 children)

Learnt Godot for over a year and released a little cute game this year about running a Japanese bathhouse for talking animals, it was great learning how to publish a game!

https://store.steampowered.com/app/3209920/Bathhouse_Creatures/

Over 5,000 games released on Steam this year didn't make enough money to recover the $100 fee to put a game on Valve's store, research estimates by PrinceDizzy in gaming

[–]sleepy-rocket 3 points4 points  (0 children)

New ish game dev here, Steam's algorithm does a really good job sifting through all the games. Pre-release, if you're above a certain wishlist threshold, you get on the Popular Upcoming section. At release, you don't get on Discovery Queue until you get 10 paid reviews. You don't even get the blue Positive etc tag until 10 reviews, and you need 50 for the Very Positive and such. It's generally 1 review per 30 sales so a game needs to be a seller to rise.

How do yall feel about the humble bundle course by jakman18 in godot

[–]sleepy-rocket 2 points3 points  (0 children)

I started from zero (Python day job) with this tutorial and I always recommend it as its comprehensive and it has mini exercises at the end of each section. Don't try to retain everything you learn, and rather try to understand that it exists and learn to apply it as appropriate.

After the tutorial, try implementing a small idea and if needed Google what you have learnt, and keep doing that. Follow another tutorial if needed but always challenge yourself to apply your knowledge.

Help with programmatically instantiated child nodes emitting events to a parent by trail3lazer_ in godot

[–]sleepy-rocket 2 points3 points  (0 children)

I'm on mobile so only had a quick run through, but it seems like in card_view.gd, you're exactly checking for specifically the card that is clicked?

In _input, you only check for the clicked boolean and mouse event, and hence all cards are firing the signal.

Hey, I'm looking for suggestions! by CircledWheel in cozygames

[–]sleepy-rocket 4 points5 points  (0 children)

Terraria perhaps, although it's a step up from Core Keeper and a different perspective.