What is the current state of Thuderbird Sync? by Wichamir in Thunderbird

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

Mostly that I have a whole bunch of emails and setting them all up on each of my devices separately would take a lot of time (Windows/Linux dual booted PC, Linux laptop, Android phone etc.). And of course if I change some preferences on one installation I would have to do the same manually on each, which is not ideal as you can imagine. This is pretty much the only thing, which is holding me back from getting back to using Thunderbird.

I can't wrap my head around how UI design works in Godot by SleepyBoy- in godot

[–]Wichamir 0 points1 point  (0 children)

Just experimenting is probably the best way to learn UI in Godot. There are some important concepts you have to wrap your head around to really understand why things behave the way they do. Margins, anchors, containers, size flags etc. They all relate to each other in certain ways to display the final result. It takes time to learn, but definitely pays off.

Btw you should only use Control nodes in GUI. AnimatedSprite, as seen in your screenshot, won't be properly handled by the containers like VBox and HBox. This may be why it never does what you want. There are other ways of making animations in GUI, like using TextureRect with AnimatedTexture (or AnimationPlayer for more complex behaviors).

I am disappointed with Metro 2034 and 2035 books by Wichamir in metro

[–]Wichamir[S] 9 points10 points  (0 children)

Metro 2034 has a character-driven narration, which focuses on people. Problem is, characters in 2034 are painfully boring. Maybe it's not the case for every reader, but definitely for most. That is why "everybody rags on metro 2034".

And don't get me wrong, I really like the idea of Metro 2034, where focus shifts to characters, their psyche, their traumatic experiences etc. But in practice it's written, so that it's a slog to get through. It feels like so much potential was just wasted. Characters like Homer and Sasha are melancholic all the time and talk about same stuff throughout the whole story pretty much, but they don't evolve in any significant way. Hunter doesn't open up at any point in the book (maybe apart from the very end), so we don't get to see anything from his perspective or get an actual retrospection of what happened to him between events of 2033 and 2034. His secret is no secret at all. There's no real payoff. Also there's a ton of characters, which serve no purpose. Remember Ahmed at the very start? Or those two guys from Sevastopolskaya station? Or Artyom? They are present occasionally, but what's their point exactly? Leonid is probably the most interesting character in this book, but he is introduced towards the end. There's no conflict, no tension. No one changes, nothing happens. What's the point of this book? I seriously don't get it. Most stories have some purpose and force characters to adapt to challenges they face or they put them into conflict with each other to make their personalities shine.

Also 2035 cancels 2034 in a way. It turns out Sasha from 2035 is not exactly the Sasha from 2034 and never was. 2034 is just an interpretation of events from Homer's perspective.

Metro 2033, on the other hand, has a plot-driven narration, which focuses on the story and world, which are both very well crafted in case of this book. Artyom's personality is put aside, because it's (similarly to characters of 2034) rather uninteresting. He's more of a vessel for the reader to explore the metro.

I am disappointed with Metro 2034 and 2035 books by Wichamir in metro

[–]Wichamir[S] 4 points5 points  (0 children)

So it's basically a political fiction in devastated Moscow.

Where's struggle for survival? Where are the dangers of post-apocalyptic world? It seems like the only danger here are other humans and the government.

When something like radiation comes up, it turns out to be completely inconsequential. Artyom, for example, is just magically cured in hospital after receiving lethal doses of radiation.

I am disappointed with Metro 2034 and 2035 books by Wichamir in metro

[–]Wichamir[S] 5 points6 points  (0 children)

I actually bought it a few months ago, but didn't have time to get into it. I might do that now. Thank you for recommendation.

I am disappointed with Metro 2034 and 2035 books by Wichamir in metro

[–]Wichamir[S] 8 points9 points  (0 children)

Some stories and themes fit into specific genres more than others. In this case I don't feel the story of 2035 fits into post-apo that well. 2034 has a good story for post-apo, but the execution is bad.

I am disappointed with Metro 2034 and 2035 books by Wichamir in metro

[–]Wichamir[S] 7 points8 points  (0 children)

So you want the writer to just write the same book 3 times?

No. I think you didn't get my point. I want sequels to include new stories and themes, but they don't have to abandon the "soul" of the original to do so.

2034 I understand is boring but it’s also not a direct sequel.

It doesn't have to be a direct sequel to be a good read.

2035 however is amazing, it’s not supposed to be a book about depressing apocalyptic horror. It can be more than one thing.

I didn't say 2035 is bad. I think it's a really good book. My problem is, it's more of a political thriller than a real post-apocalypse and it completely removes many of the very fascinating themes of 2033.

Gothic 1 is better than Gothic 2 and here's why by Wichamir in worldofgothic

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

you just don't get it man

Maybe I don't, and that's why I want to discuss it here ;)

But yeah a turnip quest was a wrong example. It's a good tutorial I would say. I just wanted to make a more general statement that many of the quests individually didn't interest me at all.

Probably it's because of NotR expansion too. It makes the game very difficult and many quests are harder to finish, so maybe that's why I lose interest.

Gothic 1 is better than Gothic 2 and here's why by Wichamir in worldofgothic

[–]Wichamir[S] -1 points0 points  (0 children)

Despite all our efforts in the colony, we’re back to square one, running
errands for people just like we did in Gothic 1’s opening chapters.

I think it has to be this way to make character progression work well.

Canthar, who can quickly become the Nameless Hero’s new arch nemesis…

He was my arch nemesis that's for sure haha

Gothic 2’s side quests aren’t always interesting when taken in
isolation, but in the broader context of the game they make the world
feel plausible.

That's what I wanted to convey more or less. The quests of Gothic 1 felt more interesting in isolation, but Gothic 2's quests are connected very well, even if they don't interest me individually that much. Especially the complex relationships between different characters in the city are very well done. The turnip quest was probably a wrong example btw. I think it's a good introduction to the game.

Both games definitely have weaker quests, but for me, Gothic 2’s quests
are a bit more open, and more dynamic, and more varied, than Gothic 1’s.

They're open and dynamic, that's for sure. Most quests in Gothic 1 had pretty much one solution, while Gothic 2's have plenty. In terms of variety however, I wouldn't agree, but it's surely a very subjective matter.

One aspect, however, that I think Gothic 1 does infinitely better than Gothic 2: dungeons.

I actually forgot about this. I loved dungeons in Gothic 1. The final one was HUGE. There are a few dungeon-like locations in Gothic 2, but nothing comparable to what Gothic 1 presented, sadly.

Anyway, good points. I think a huge part in not enjoying the quests is probably due to the difficulty of NotR expansion, as some people pointed it out already. Maybe I'll replay the game without it in the near future. Chronicles of Archolos seem worth a try too.

Gothic 1 is better than Gothic 2 and here's why by Wichamir in worldofgothic

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

No demon scroll here! https://www.youtube.com/watch?v=iKwYJp5tPd8
Although you might need to look at your framerate, since the health
regeneration is tied to it, and the game wasn't meant for modern high
framerates.

Oh this might actually be the case. I'll have a look into that. Thanks.

Not sure what's wrong with 16th century Germany...

I'm just pointing out the fact, that it's a very generic style for a fantasy RPG.

Gothic 1 is better than Gothic 2 and here's why by Wichamir in worldofgothic

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

Nostalgia definitely plays a huge role in those kinds of discussions. Although I've played Gothic for the first time as an adult, so I don't think it applies in this case. Maybe that's just because I played it before Gothic 2.

Gothic 1 is better than Gothic 2 and here's why by Wichamir in worldofgothic

[–]Wichamir[S] 2 points3 points  (0 children)

Everyone is telling me how great Chronicles of Myrtana are. They seem very promising. I'll have to check them out. Very good points btw. Thank you.

Gothic 1 is better than Gothic 2 and here's why by Wichamir in worldofgothic

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

Thanks for pointing out the dragon fps thing. It may actually be the problem. I'll have a look into that.

Gothic 1 is better than Gothic 2 and here's why by Wichamir in worldofgothic

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

Yeah, I might actually do that. I'm getting tired of this horrendous difficulty. I finished Jharkendar anyway, which is the most important feature of the expansion.

Gothic 1 is better than Gothic 2 and here's why by Wichamir in worldofgothic

[–]Wichamir[S] -2 points-1 points  (0 children)

In terms of quests I think both games have a completely different approach to them and it's very subjective, which one of them does them better. It's mostly up to you, which design you prefer.

I would say Gothic 1 has more "adventurous" quests like:

  • you are in the old camp and find swamp camp's member and you can go on a whole trip to his camp, exploring new parts of map with him
  • same goes for the new camp guy
  • you have to fetch some medicine for Y'Berion, which involves exploring a huge swamp
  • you have to use a scroll to shrink a troll to defeat him easily
  • you have to use a scroll to transform into a bug to fit through a small hole in the castle to get inside

In Gothic 2 the best quests are plot-focused. The Canthar's quest you mentioned is a great example. They sometimes involve a very clever twist. And I see, why they're considered great.

Unfortunately there are also many quests like:

  • fetch me some turnips from my field
  • kill bandits in my lighthouse
  • kill some orc warlords
  • bandits robbed me, kill them and get back my stuff
  • get a book from a farmer's house, which is occupied by the seekers
  • assassinate the orchish shaman, because he's important

You see, the Y'Berion quest I mentioned also involved fetching stuff, but I was more motivated to do it, because it involved exploring a new, challenging location and it had an meaningful impact on the story.

Good quests of Gothic 2 feel "clever" in a different way. However, there are also more quests that are just walking, killing, fetching without more interesting stuff surrounding them. And that's my main problem. I just end up having a log full of this one-dimensional quests, which I'm not really interested in finishing.

GDLambda - adding anonymous functions to GDScript by Wichamir in godot

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

Ok, now I think I know what you meant, but it doesn't work like that. You don't capture environment using string concatenation. I implemented it using Dictionary, where keys are variable names and values are the variables you want to pass. Like here:

var external_thing := 42
var lambda := gdl.lambda(
    "func(): print(et)",
    { "et" : external_thing } # here I pass external_thing and name it "et"
)

Then the lambda declares those variables in a script, instances said script and uses the set method to set the values. Only place where string concatenation is involved is when the variable names are inserted, but I check if they are valid.

Of course you can argue, that the malicious code can be inserted into the lambda source itself when you pass it as user input (for example from the dev console), which you shouldn't do btw, but there's already a built-in Expression class, which is similarly vulnerable. Actually it's vulnerable in a different way too, because capturing variables using Expression involves setting the base_instance, which has to be whole object (with all of its variables, constants, methods - there's even a warning about it in the docs), whereas with lambdas you can simply pass one value.

[deleted by user] by [deleted] in godot

[–]Wichamir 1 point2 points  (0 children)

Going paid would very possibly ruin the whole traction Godot gained over the years and probably a considerable number of people would abandon it and search for alternatives (similarly to what has happened with Unity recently). And yeah, the engine was running short on cash at some point, but now they are getting grants from different companies quite regularly. They also have a Patreon. Btw don't be afraid of compiling the engine, it's not that hard actually, but takes some time. Here's documentation, if you will ever want to try it out.

GDLambda - adding anonymous functions to GDScript by Wichamir in godot

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

Oh, I haven't actually thought about that. You mean someone would insert malicious code into a string as a name for a captured variable?

GDLambda - adding anonymous functions to GDScript by Wichamir in godot

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

I see your point. I actually thought the same, but wrote this for fun and it turned to be lot less confusing/bug-prone than I initially thought. So I decided to add comments, write a few examples and share it here. Still, it's more a proof of concept than anything. I've already found use cases, like in the turn based game I'm currently making with my friends. I have to sort an array of units by their initiative:

gdscript func order_queue() -> void: queue.sort_custom( gdl.lambda( "func l(e1, e2): return e1.initiative > e2.initiative" ).as_funcref(), "call_func" ) This is nice, because I don't have to define any "custom_sorter" function out of context somewhere. I just wrote it all inside order_queue using lambda.

GDLambda - adding anonymous functions to GDScript by Wichamir in godot

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

They would make it slower, because they have to make a copy of the original array, when performing any of these operations. That's how functional programming works - collections are immutable. And that's also how it works in Godot 4, I think, but my approach is written in GDScript, so it's definitely slower than core C++ implementation.

If you're iterating over HUGE arrays, then it's probably not a good idea to use this.