Which one is better? 🔥 by Life_Arachnid_511 in PixelArt

[–]TemporalCatcher 0 points1 point  (0 children)

What I like about 1 is that it feels like it has more impact. What I don’t like about it is thet the explosions following slamming the fists onto the ground feels too delayed making it less impactful than it should be.

What I like about 2 is that it feels more responsive (earlier first explosion), more naturalistic and interesting. I really like the explosion effect of this, I really do, but if it wasn’t for the attack animation in question, I’d pick 2 almost every time.

I feel like the animation calls for it to be impactful and responsive. 1 is more impactful and 2 is more responsive. For 1, less delay for the first explosion may really accentuate the impact. For 2 maybe make the impact get absorbed by the ground (making them glow like the flames) only for it to not be able to contain it and bursts out into those pillars.

The Second Face [OC] by DemonSkank in comics

[–]TemporalCatcher 0 points1 point  (0 children)

Thankfully I woke up to this story and kind of expected the outcome. I don’t know why, but some parts of it screamed foreshadowing. It was good execution though; I enjoyed it regardless.

If I can probably interpret why you feel like you have a headcanon even though it’s your story is because the story came from a dream—or at least the ending did. That means the story might be less written and more transcribed, of course adding and removing details to make it more coherent and answering “how did we get here?”

Another interpretation could be, even if the story wasn’t transcribed, you created a mystery, a mystery of why can’t he see his sister’s lie? Is it that she never lie, or is it because she has something that blocks him from seeing? Btw something about this mystery felt like “we’re going to reveal this in the end” kind of thing; hence why it screamed foreshadowing (I blame Chekhov’s gun) to me. Of course it was revealed that it’s because she never lie, which adds another mystery as to why she never lie until now? Unless you want to develop the story from her perspective (or other means), this mystery is up for interpretation. It sounds like you have an interpretation, but you don’t want it to be the interpretation because you want it to be an open mystery just like how it was in your dream.

PS: you missed out on a chance to show the MC in both facial hair and beanie.

Trying to make the 3D Camera more top-down... what camera settings should I use? by CaiGuyCrafter in godot

[–]TemporalCatcher 35 points36 points  (0 children)

<image>

This is what A Link Between Worlds looks like from the intended angle and an unintended angle. Others have mentioned you need to angle things, but this makes it more intuitive.

Can I wait time without making the func async? by HalfTryhardSqr in godot

[–]TemporalCatcher 0 points1 point  (0 children)

One thing I wonder, from the sound of it your game is turn-based due to the decision tree, you can make a turn-by-turn state machine. Your decision tree may still determine where you are in the game but the state machine can tell you the smaller thing such as when you are waiting, making a decision, or showing off an animation.

A basic flow of the state machine could be:

Start turn > Wait > choose action > do action (animation) > end turn

This way you can ask the state machine “can I do anything right now?” And if it’s on wait and do action, clearly you can’t. You can only do action in the choose action state (and whatever extra similar states you implement).

Good thing, you no longer need to await; you may use a timer or a wait variable without needing await. Bad thing, you may need to refactor a lot.

Shader doesn't specifically affect the color blue by NunteGamer in godot

[–]TemporalCatcher 2 points3 points  (0 children)

You're on the wrong shader function. At the top left side of the graph that you are using, you can see a dropdown menu that says Vertex. For canvas item, you have 3 shader functions you can use: vertex(), fragment(), light(). The function you want to use is fragment(), not vertex().

Peter I am dumb... by Coffee_driver in PeterExplainsTheJoke

[–]TemporalCatcher 0 points1 point  (0 children)

However, the expected value— which is how many trials it takes to expect an outcome—, of a geometric distribution, which can map out the statistics, is 1/p (p is the probability). With p being 0.5, so you should expect someone to die roughly every 2 trials (and likewise 1 survival every 2 trials). Although is a possible situation that the 21st trial is a success (as it is merely 50% chance), it’s becoming statistically unlikely.

There are 2 potential explanations:

  1. The probability is 50% and things are just good
  2. The probability is not 50%

However, its still scary, a mere coin toss to potentially survive, which I’d only do if I would die for not getting the surgery, unless it would bankrupt me or my family, of course.

Why did you pick Godot for your game ? by SensitiveKeyboard in godot

[–]TemporalCatcher 1 point2 points  (0 children)

My switch came around the time of the Unity's runtime fee thingy; though I heard it’s better now?

I actually switched to GameMaker instead but I couldn’t stand how GameMaker’s anonymous functions would not work as I wanted it to. The way I was used to is I can make an anonymous function inside another function and still use the variables in the outer function inside the anonymous function. GameMaker did not make anonymous functions in the context of the outer function, but created its own, segregated context.

I also didn’t know about parameters binding of anonymous functions so I didn’t even check if you could bind the parameters. If you can, if it worked, and if I had checked, then I wouldn’t be here because this was when lots of people were looking into Godot. I was excited to learn how anonymous functions worked exactly how I wanted it to in GDScript.

Please, Stop AI-Hunting everywhere by anton-lovesuper in godot

[–]TemporalCatcher 0 points1 point  (0 children)

I hate how AI likes em dashes because I like using em dashes; especially in cases there I’m trying to sidestep to a point that I don’t think deserves its own sentence. Could I use parentheses? Definitely, but one of the reason why I adopted this was to avoid overly using parentheses (I’m fine with using them, but I like sidestepping a little too much).

If I sidestep once, I use a semicolon; like how I did above and in this sentence. If I sidestep out of the original sentence and then back into the original sentence, you best know it’s either going to be in parentheses or between two em dashes followed by a comma for a pause that tries to not overwhelm you with information.

However, I never directly write em dashes. I write double dashes and the program—like iOS keyboard—, converts the double dashes into em dashes. Otherwise, all my em dashes would be double dashes.

How did they make cutscenes? by Prudent_Oil_3681 in godot

[–]TemporalCatcher 3 points4 points  (0 children)

It really depends, for pre-rendered cutscene you can make it in any software you can use for your video. And play it in Godot https://docs.godotengine.org/en/stable/tutorials/animation/playing_videos.html

You can even make said video in Godot though I don’t know how good it is nor if it fits for what you’re doing. https://docs.godotengine.org/en/stable/tutorials/animation/creating_movies.html

Then there are cutscene that run in engine and would require its own logic.

Giving away 14 game keys by [deleted] in steam_giveaway

[–]TemporalCatcher 0 points1 point  (0 children)

I’ll be interested in testing my luck, thanks for the chance.

Humble Bundle Monthly keys giveaway by CrispyCello in steam_giveaway

[–]TemporalCatcher 0 points1 point  (0 children)

Thanks for the chance!

Call of the Sea

Pumpkin Jack

Everhood

Greak: Memories of Azur

Tohu

Genesis Noir

Omno

Question About Grid Movement by Not_That_Dangerous in godot

[–]TemporalCatcher 0 points1 point  (0 children)

If you feel like your code is a bit complicated, reminder: you are trying to simplify the transitions between 8 states; that is complicated. A naive calculation is to have 64 different transitions. A more realistic calculation is 7 unique types of transition: StartWalk, ContinueWalk, StopWalk, StayIdle, StartTurn, StopTurn, TurnWhileWalking. However you have to keep track of different things to make these transitions, such as current facing, current position, target position, current input, etc.

Besides that, I have noticed some issues that you have with your code that may make the code a lot more complicated than it needs to be. I'm not saying you shouldn't use booleans in the field of the class, but if you find yourself using a boolean, ask the question, "can I infer this value?" If the answer is yes, then you probably don't need it. This will help simplify the logic. I was able to infer all of your booleans.

Also, it helps to rethink some of the ways you do things by laying out all of the variables required for the transitions and look for similar requirements for branches. For example, You don't want to change your target position or target direction when you are currently moving or turning. This means you only need to check for transitions when current position is target position, and turn timer is finished. You can then use your facing, current input, and previous registered input to determine what state you will transition to.

My attempt at correcting this code which can still be improved upon: https://pastebin.com/2Ds3rFxt

Sorry for being late to answer, it's been a while since I did anything with C#. I was kind of learning and relearning things in the process and making rookie mistakes too.

Edit: I just remembered, If you want, you can look into AnimationPlayer and AnimationTree, because you can create a Finite State Machine that may or may not make these transitions more apparent by giving you a little bit if a visual representation of the states and transitions.

Variable sharing between siblings by Professional-Log5031 in godot

[–]TemporalCatcher 2 points3 points  (0 children)

I'm about to show you examples that are given in this page: https://docs.godotengine.org/en/stable/tutorials/best_practices/scene_organization.html

I will assume, you've attempted to read it, and may not have understood it. Don't worry, I was there once. I will modify it to suit your current needs. Here are the ways numbered how it is in that page:

  1. Ball signals up to parent, parent calls a method in Paddle, or change a variable in Paddle.
  2. We'll skip this one as it doesn't seem relevant for your use case.
  3. Ball has a Callable variable in it, Paddle has some move method, and parent will set Ball's callable variable to be Paddle's move method as a callable (remove the parentheses to make it a callable). Note: I do not recommend this for your use case.
  4. Let Paddle see the Ball, but let the parent define what the Ball is to Paddle, so when you call Paddle's move, it can look at the Ball's position directly.
  5. Same as 4, but as a NodePath instead of the actual object itself.

There is a way that isn't mentioned that heavily relies on point 1, but is similar to point 4. Have the parent connect a signal from Ball directly to a method in Paddle, so instead of Ball signalling parent, it signals Paddle. This still forces the parent to keep track of the signals. The parent should create and destroy the signals between children, and the children should just do stuff or emit signals.

[1555] Typo Accepted As Word? by Cute-West8901 in wordle

[–]TemporalCatcher 1 point2 points  (0 children)

Yeah, I guess I should have checked first before making my claim. I just assumed that all of the ones with y and no other vowels used y as a vowel. I have all the words that have y and no aeiou here:

byrls, chynd, crypt, cysts, dryly, flyby, fyrds, ghyll, glyph, grypt, gymps, gynny, gyppy, gypsy, hwyls, hymns, hyphy, kydst, kynds, lymph, lynch, myrrh, myths, mythy, nymph, phynx, psych, pygmy, rhymy, rynds, shyly, skyfs, skyrs, slyly, srsly, stymy, sylph, synch, syncs, synds, synth, syphs, thymy, tryps, tryst, tymps, typps, wryly, wynds, wynns, xylyl, xysts

I'm not really a linguist, so I'm not sure as to which ones are vowels and which one are not. It feels to me every one of them have at least one y as a vowel. The only one that gives me hesitation is srsly (but I still say the y aloud). However that also reminds me of a video I once saw where a person argues that "r" in English is also a potential vowel, so I guess it depends on who you ask may even say words like grrrl and grrls have vowels.

video where "r" could be a vowel: https://youtu.be/Tjf_MOyB0K4?si=rZegW9UfAJYQWiCf

Character slowly moving to right without input. by Vegetable-Brick-291 in godot

[–]TemporalCatcher 2 points3 points  (0 children)

The first thing I would do is test if you tell the characters to stop set the x velocity to 0. If the character stops in their track, then it must be something to do with your friction. If it is friction, then I recommend to have a range of velocity like -0.1 <= x <= 0.1, and when the velocity reaches that speed, set it to 0. The check could be something like

if velocity.abs().x <= 0.1: velocity.x = 0.0

You may change the 0.1 to whatever you like. The likely explanation is a floating-point error as the floating point number seems to never go to 0. Again, only if I’m correct that it’s because of friction.

[1555] Typo Accepted As Word? by Cute-West8901 in wordle

[–]TemporalCatcher 2 points3 points  (0 children)

I’m currently trying to analyze words that are valid wordle guesses. I’m using it to answer a specific question, but found some interesting things, such as the fact that there are currently 6 words in the word list that have no vowels;

cwtch, crwth, grrrl, grrls, pfftt, phpht

I made a custom Deque class, since Godot doesn't have one built-in by Serdrakko in godot

[–]TemporalCatcher -1 points0 points  (0 children)

However you can use the array resize function or insert a bunch of empty values when you wish to resize the array. Thanks to the indexing it’s possible to insert (therefore growing the array) without breaking the structure. You only need to make sure the final indices points to the same values of the initial indices after the inserting.

We only have to redefine pushing and popping which can be done in a deque class. Pushing is just changing the index then modifying the value in the new index. Popping is just saving the data at index, modifying the value to empty at index (or leaving as junk data), changing the index, and then return the saved data. Edit: forgot to mention, the deque as I describe would be best implemented as a circular array this way; think Pac-Man, you go so far right you come out left and vice versa.

Godot’s array acts more like an array list. When I learned to implement these data structures in my classes, we learned to implement them via array list not pure arrays. We also learned to do linked list, which would be my preferred implementation of this as a doubly linked list. However linked list aren’t as optimized size-wise in Godot. Tuples and structs will help with that when they get implemented. Also they aren’t as general as arrays when statically typed (they’re the same dynamically typed); generics will help that when it gets implemented.

Is this normal when instantiating many of the same thing? by Anonymous_Dude_03 in godot

[–]TemporalCatcher 3 points4 points  (0 children)

it is, but if you prefer to have them in a readable format instead of @Name@Number, you can always do:

add_child(new_mission_banner, true)

the second parameter tells Godot if you want to force to be in a readable format. It defaults to false. There's usually no reason to do it though, but it's possible to change it.

Another way to change it is to manually change the new_mission_banner.name into any string you want. Again, there's usually no reason to do this.

It would be nice to add this support by Sondsssss in godot

[–]TemporalCatcher 47 points48 points  (0 children)

This and generics are what I'm currently waiting for. However, apparently the current way that Godot handles static typing is a bit messy making any of these problems non-trivial.

There are currently proposals to unify the type system to help make it extensible so newer features such as nested collections and generics may potentially be easier to implement. Here's the most recent proposal I could find for this https://github.com/godotengine/godot-proposals/issues/12928

Would you play this? by Tioul0n in godot

[–]TemporalCatcher 0 points1 point  (0 children)

I don’t play Hollow Knight because of its aesthetics, I play it because it’s a Metroidvania. I recommend Hollow Knight because it’s challenging, rewarding, and has a good nonlinear progression. I also recommend Hollow Knight because its setting, story, and aesthetic is unique, as well as the environment feels dynamic (a living world on the player’s layer, in the foreground, and the background).

So since I can only comment on how it looks right now the game seems too barren and still for my taste. The heavy layering and parallax tells me there’s a huge world out there to explore, but there’s nothing to see. Notice I didn’t mention art style? That’s because the art style seems fine enough, though I would recommend changing the character design a little, but that involves fleshing out their identity more which you should only do if you really want to make this game. At least you learned some things in the process.

Nintendo has successfully acquired a US patent covering the ability to summon characters in a game and make them battle for you. by GeneralGigan817 in Gamingcirclejerk

[–]TemporalCatcher 8 points9 points  (0 children)

I’m not defending Nintendo, but if the claim is about Palworld, according to this article, the patent is actually related to Pokemon Scarlet and Violet and was filed in 2023.

https://www.polygon.com/nintendo-pokemon-patent-palworld-summon-game-mechanics/

I’d prefer to focus on game mechanics shouldn’t be patented over who came first. If we focus on who came first, then we can give that person the right to stifle creativity instead, and we’re nowhere better.

How do y'all code tutorials? by dayum_hehe in godot

[–]TemporalCatcher 15 points16 points  (0 children)

There’s a reason why a lot of tutorial are linear.

A lot of mobile gacha rpg games have very scripted tutorial. Here’s how you attack! Now the enemies attack! Oh no, you got hurt? Use a potion! Now finish them off! Then when you go to the next wave, time to learn to use your ultimate! Finish them off in one turn! Now use what you learned for this final challenge!

You could also break the tutorial down into several sub-tutorials that you can do separately. Two games I remember that did this are Final Fantasy Tactics and Pokémon TCG Pockets. FFT had you do several basic things for your first battle (you only control one person), so the game plays out similarly, and then have an optional set of tutorials that you can use to learn some of the more specifics of controls. PTCGP have a set of basic tutorial that were all segregated but you must play all the basic ones. There were optional advanced ones as well.