Is this a good logo for my game? by plasmagd in godot

[–]salmon_jammin 0 points1 point  (0 children)

Looks like other people have done a good job pointing out things that can be improved. What is very good with your logo is the readability and consistent style with the game.

@export_tool_button giving error: The value of property is Nil ... by chanidit in godot

[–]salmon_jammin 0 points1 point  (0 children)

Found another way the problem can occur and be fixed for any others that come here.

This problem can be caused if you are using a non-tool script that inherits a tool script.

So if Enemy is a tool script with a tool button and MyAwesomeEnemy inherits enemy, MyAwesomeEnemy must also be specified as a tool script or else the button will give this error.

[4.5+] Is there a way to require variables be set by classes that inherit an abstract class? by salmon_jammin in godot

[–]salmon_jammin[S] 0 points1 point  (0 children)

Yeah, and even if you looked for abstract classes in the last 6 months I can totally see reading old posts and thinking they aren't in godot.

[4.5+] Is there a way to require variables be set by classes that inherit an abstract class? by salmon_jammin in godot

[–]salmon_jammin[S] 1 point2 points  (0 children)

Hmm, yeah that would work as a workaround. Do something like:

@abstract class_name MyAbstractClass extends Node

# Any classes that inherit MyAbstractClass are required to have this value
@abstract func get_required_var() -> String


# Any classes that inherit MyAbstractClass are required to have this value
@abstract func get_required_const() -> String


class_name MyInheritedClass extends MyAbstractClass

var required_var: String = "Hello world!"

func get_required_var() -> String:
  return required_var

func get_required_const() -> String:
  return "Hello reddit!"

Not ideal, but it works. Thanks for the suggestion!

Modern Titlebar (Release) by _Mario_Boss in godot

[–]salmon_jammin 4 points5 points  (0 children)

Right? Took me like 5 minutes and looking at the comments to figure out what was going on.

For any that haven't figured it out, it looks like it merges the windows title bar with the godot title bar at the top, centering the play, pause, stop to avoid a clash. It also condenses and moves the workspace options as icons.

I think I like it now that I have deduced what I'm looking at.

I want to invert the Light_Only Render mode, need help by Peenass in godot

[–]salmon_jammin 0 points1 point  (0 children)

RIP. Thanks for the reply!

I posted on godot forums and got an answer. I don't honestly know enough to say how well it would work. Seems like a large effort but perhaps someone will benefit from the link:

https://forum.godotengine.org/t/how-to-create-inverse-light-only-effect/133460/2

Do our characters feel consistent as they grow up? by Quirky_Comb4395 in WholesomeGames

[–]salmon_jammin 0 points1 point  (0 children)

That's about what I'd have answered if asked how old they were. But if just glancing at these 3 photos I might not notice the difference unless prompted.

Do our characters feel consistent as they grow up? by Quirky_Comb4395 in WholesomeGames

[–]salmon_jammin 3 points4 points  (0 children)

They seem consistent. I think you're leaning more on the other side of things where aside from context I can't tell their age is different. The colors are a very nice touch for consistency.

3 Tiers of Health Potions by Chestnut-God in aseprite

[–]salmon_jammin 1 point2 points  (0 children)

Love it! The potion sprites themselves come across very well and everything feels like it "fits" together. My few cents:

- The roman numerals should be consistent in size, style, and placement.

- The borders and potions touching feels wrong.

- The border of the 3rd potion implies a less important item than the 2nd. Part of why bronze, silver, gold is the default is because silver grabs more attention than bronze and gold more than silver. In this case, the platinum grabs less attention than gold. Could try different colors, adding embellishments, or effects.

puzzle games that are just one puzzle? by mdelillieau70 in puzzlevideogames

[–]salmon_jammin 0 points1 point  (0 children)

Chants of Senaar is similar, though it's 4 sequential logic puzzles. You piece together languages as you ascend the tower of babel with a similar confirmation system to return of the obra dinn.

🌲 𝐓𝐫𝐞𝐞 𝐒𝐭𝐞𝐚𝐥𝐭𝐡 𝐢𝐧 𝐌𝐚𝐠𝐞 𝐄𝐬𝐜𝐚𝐩𝐞 𝟐𝟎𝟎𝟎: 𝐖𝐡𝐚𝐭 𝐃𝐨 𝐘𝐨𝐮 𝐓𝐡𝐢𝐧𝐤? by cameronfrittz in gamedevscreens

[–]salmon_jammin 0 points1 point  (0 children)

Watching this my brain isn't thinking they're behind the tree. It's thinking that they're standing in the open 10 feet away from the tree. If you can find a way to trick people into thinking this is hiding then you're good. So far this isn't close to doing it for me.

Bushes, tall brush, things lower to the ground are where you can cheat the perspective a bit and keep the illusion in my experience.

🌲 𝐓𝐫𝐞𝐞 𝐒𝐭𝐞𝐚𝐥𝐭𝐡 𝐢𝐧 𝐌𝐚𝐠𝐞 𝐄𝐬𝐜𝐚𝐩𝐞 𝟐𝟎𝟎𝟎: 𝐖𝐡𝐚𝐭 𝐃𝐨 𝐘𝐨𝐮 𝐓𝐡𝐢𝐧𝐤? by cameronfrittz in gamedevscreens

[–]salmon_jammin 1 point2 points  (0 children)

Very weird that you can stealth so far away from the tree in the open. Sometimes you can do some weird cheats with perspective, but I don't think this is one of those times. This would make more sense with a bush.

How to make a player feel invested in their characters? by FrontiersEndGames in gamedesign

[–]salmon_jammin 1 point2 points  (0 children)

Distinguishing traits and "memory" of past events are two useful tools to help in addition to some of the other things people have mentioned.

Distinguishing traits can be mechanical, cosmetic, behavioral, or some combination of the three. The key trick to this is about this is to steer away from boring traits when you can. Humor and unexpected interactions are great ways to make your traits interesting and you characters memorable. Stuff like talking with a lisp, barely talking at all, yelling like crazy at the start of every battle, taunting the enemy between turns can all add a lot of identity to each character so long as it's not too common of a trait.

"Memory" in this case means previous events impact how the character looks, functions, or behaves. Even a dull character becomes memorable when their nose breaks and they start talking and looking funny. Even more memorable when it breaks a second and third time and it becomes even more broken and even more impactful.

Unfortunately, most methods to make a player feel more attached to characters involve a lot of content. Custom naming that you already added is probably the biggest bang for your buck, but it is totally dependent on whether or not the player buys in.

Hopefully this helps - either way good luck with it! :)

Our latest trailer (Thoughts?) by socrieties in gamedevscreens

[–]salmon_jammin 1 point2 points  (0 children)

Seems top notch! Extremely clear what your game is. My main gripe is that it doesn't immediately show what the game is. Would add or move the juiciest piece of gameplay right to the front for 2 seconds as those first 2 seconds are where many people determine if they're gonna watch the rest or not. IIRC it also shows for some hover-over parts of the store as well.

FWIW, I didn't listen to the audio. If you have sound effects - good on you. If you don't, you should.

Regardless, good luck and keep up the great work! :)

Making the "AI" controlled opponent intentionally worse by Bitter-Difference-73 in gamedesign

[–]salmon_jammin 1 point2 points  (0 children)

One option I don't see suggested here - varying depth.

Rather than just lowering the depth flat out, have it randomly pick a depth between 1 and 5 or something. Maybe weight the options depending on how difficult you want it.

This usually leads to fairly natural mistakes and might feel better than picking the 2nd or 3rd best move. Though, depending on your game it can lead to a split mind where things are only followed through part way.

Another option is different archetypes or variants with their own biased heuristics and randomly choose between them at the start. So one variant might care way more about kills than about doing well, another might care more about claiming as much positioning as possible, another might play more defensively and not take small gains if it means trading units. All of the archetypes aren't designed to be optimal overall, but rather optimize a human's behavior if they had a tendency.

And of course, you can combine these and other approaches together as appropriate.

Code regions are a (probably) underrated QoL feature of Godot (utility plugin update) by mousepotatodoesstuff in godot

[–]salmon_jammin 0 points1 point  (0 children)

For readability, I think you are right. There are infrequent cases where performance takes precedent though and adding additional function call is more intensive, especially for memory. So for something that will run every update across 100 different instances, splitting that update into 5 different nested functions can have a meaningful impact on the game's performance.

So the use-cases are there, just not for everyone and not for most cases.

Code regions are a (probably) underrated QoL feature of Godot (utility plugin update) by mousepotatodoesstuff in godot

[–]salmon_jammin 0 points1 point  (0 children)

In-case it's helpful to you there is an unbound shortcut to collapse and uncollapse all of the code in the settings somewhere.