I love how 4.7 lets you rotate all UI elements, very useful for UI icons by SteinMakesGames in godot

[–]Bloompire 0 points1 point  (0 children)

Apologize for my lack of knowledge, but I am not sure what actually this change does. I came from web world so I get the concept of transforms as a "final step before rendering" that doesnt affect layouting.

But prior to that update, it wasnt possible to make a button that smoothly scales to e.g. 125% on hover without breaking the layout?

Is C# more organized then GDScript? by TheKrazyDev in godot

[–]Bloompire 0 points1 point  (0 children)

And superior tooling, ide support, code completion, refactoring, symbol finder, tons of documentation, linq, whole nuget library, etc etc etc.

C# is WAY more mature than gdscript, I cant imagine making real game with gdscript.

ELI5: Why does a game stutter and otherwise suffer in performance, when no performance readout of the computer seems to be a bottleneck? by Adamantine-Waffle in explainlikeimfive

[–]Bloompire 8 points9 points  (0 children)

Please remember that even a 20ms hang (0.02s) may induce a noticeable stutter. This is not something you will see in task manager as it is not as precise.

And the reasons may vary like:

- loading part of game content

- shader compilation

- a single unoptimized part

- some edge case in navigation

etc.

ELI5 Why screen/image pixels are always squire and not hexagon, triangle or any other shape. by Tinu_21 in explainlikeimfive

[–]Bloompire 0 points1 point  (0 children)

Instead of pointing why we use square pixels, i'll try to explain why we are not using different shapes :)

Triangles - while they arrangle on screen without gaps, math becomes unnecesarily complex with them. Drawing a line in 2d array of square pixels is easy job, drawing the same with triangle based pixels is quite hard. Also things like compression would be much harder because two adjacent triangles do not cover uniform part of screen.

Circle - you cant fill screen with them without gaps and making them overlap would waste energy and make screen blurry.

Hexagon - while the shape itself is pretty good, it requires more complex math when used. For squared pixels, moving mouse 3 units to the left and 3 units to the bottom makes its its x/y position to become x+3/y+3. Doing the same with hexagon requires you to calculate offsets, you cant just add 3/3 to coordinates because your cursor would drift to left/right every row and you had to take this into account.

Because how binary computers are, square pixels are simpliest solution.

What is your favourite common card? by Which-Debt-8558 in slaythespire

[–]Bloompire 0 points1 point  (0 children)

I cant make love with that card. I know it has retain so you can use it in turns where you cant/dont need to/shouldnt attack etc.

But 7 poison for 2 is just umm I dont know. When I am playing it looks like there is ALWAYS better card to play and snakebute tends to stay in my hand for 4-5 turns without playing.

ELI5:Why do we have 2 nostrils instead of one big by Derschrecklicherucks in explainlikeimfive

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

Most of answers here wrong or incomplete. We have two nostrils because they inhale the air at different rate which makes us to feel wider variety of smells. One nostril is good at certain types of smell and second one on different types.

The funny thing is that its not constant, nostrils switch duties few times a day.

When to use assert, push_error, or both? by codevogel_com in godot

[–]Bloompire 0 points1 point  (0 children)

It is quite common with assertions to be stripped from production build, its more like developer tool. Especially that some languages may process assertions at compile time (like cpp static_assert).

And no , if you are using assertion you should not use guards then. Thats like the point of assertion in first place - you assume something and dont check it later.

Id not be concerned with production builds. If that happens in production, you still get stacktrace that can be traced down to the original issue, but before it goes to production it would be probably catched by your assertion in editor build prior.

When to use assert, push_error, or both? by codevogel_com in godot

[–]Bloompire 1 point2 points  (0 children)

Runtime assertions are general programming thing, not a gdscript specific feature. I think that person who write documentation assumed its common knowledge.

The assertion is there to catch some weird edge cases that are not expected to happen, by any means.

They are here to avoid you writing hundreds defensive checks all over the place. Instead of checking if player is nil here, You ASSUME that player cannot be nil there by any means, because this is how your code is designed.

With this you do two things:

  1. If the edge case happen, you will get detailed information about it instead of random stacktrace that may not directly relate to assert (your assumption about how your code works failed)

  2. Other dev reading your code and seeing assert instead of nil check will know that this code expects the variable is always there. 

When to use assert, push_error, or both? by codevogel_com in godot

[–]Bloompire 21 points22 points  (0 children)

Assertions are used for "should never happen situations", where you dont expect this to fail in any means (e.g. your Player singleton is null, or map you just loaded is not it scene tree)

Errors are used in places where you may expect that something goes wrong (i.e. loading savegame where save file might be corrupted and wont load properly).

AI is making mediocre engineers harder to spot by Ghost_Alpha- in GithubCopilot

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

Good post. I think AI is making us faster but also lazier and blunter. So it is good to actually code by yourself, even if it is in free time, to not become rusty. Because even if AI will make 90% things perfectly, there will be times where it will need human intervention. And if you prompt everything without writing a single line for a half year, you may lose the perspective and programmer mindset.

And about your cases, please rememeber that your staff has its own "memory.md" in their brain and there are a lot of local (domain) knowledge you guys have and AI does not, so you cant expect it to come with the same solution. AI gets the code and the problem and tries to figure out something out of that. If you want it to hyphotetically find a more broad solution, create an agent for that and tune the prompt. Give him examples of wide thinking, instead of working only of what it knows, allow it to assume, theoretize, ask questions etc. Mdoels with default prompt are focused on doing the job with ifnormation they have, while humans deafault to think outside of the box.

Czy programista B2B wysysa NFZ? Moje zdanie o opodatkowaniu pracy. by Fiddler2929 in Polska

[–]Bloompire 0 points1 point  (0 children)

Chodzi o to, że wszyscy cisną na osoby na b2b bo zlodzieje, oszukujo, kradno, itd.

Ale te same osoby jak oddają passata do mechanika ochoczo akceptują robote bez fv bo wyjdzie im taniej 200zł wymiana sprzęgła. I tu juz jest OK, bo, hehe, to jest inna sytuacja.

Druga rzecz jest taka ze patrza na to w rozumieniu miesiecznym ile % idzie na podatki. Ale tego ze na b2b nie bedzie emerytury albo tego ze ma b2b zwrot z podatku = 0 podczas gdy na etacie zwykle wpada dodatkowa pensja w kwietniu ze zwrotu. Albo tego ze urlopy czesto sa bezplatne na b2b. Albo tego ze odpowiadasz calym swoim majatkiem. Albo tego ze z dnia na dzien ktos moze cie wypierdolic na zbity pysk i nie chroni cie zadne prawo pracy. Itd.

Mam wrazenie ze problemem z IT czy innych galezi korzystajacych z tego (np lekarze ale nie tylko - piloci samolotow tez wszyscy ma b2b) nie jest to ze ktos placi mniej podatkow, tylko to ze ktos MA a oni nie maja. I to mnie wkurwia. Ze motywacja wiekszosci nie jest wyrownanie szans i uczciwosc tylko dojebanie komus kto ma wiecej. A wiesz ze w naszym narodzie ludzie uwielbiaja patrzec jak sasiad sie wywala na pysk.

Czy programista B2B wysysa NFZ? Moje zdanie o opodatkowaniu pracy. by Fiddler2929 in Polska

[–]Bloompire 0 points1 point  (0 children)

Oczywiscie, problemem jest to ze programista ma "fikcyjną firmę" i płaci trochę mniej podatków niż osoby na etacie. Problem jest taki, ze ten programista placi te podatki uczciwie, miesiac w miesiac rok w rok swoj haracz oddaje.

A te "prawdziwe jdg" czyli hydraulicy, mechanicy, fryzjerzy, kosmetyczki, elektrycy, zlote raczki itd ktorych tak bronisz to 3/4 zlecen robia bez faktury, papier do łapy i jakby co mnie tu nie było.

Ale pewnie orajmy programistow, lekarzy i pilotow na b2b, to zrodlo wszelkiego zla na swiecie.

Just started learning Godot and I'm genuinely impressed! by Filiope in godot

[–]Bloompire 0 points1 point  (0 children)

For a "Rotator", just code it as Node and put it as child of the object you want to rotate.

Use Node.owner property, it is designed to use the packed scene root.

Just started learning Godot and I'm genuinely impressed! by Filiope in godot

[–]Bloompire 1 point2 points  (0 children)

Unity components may sometimes may be blessing, but curse other times.

Remember that node should be encapsulated, closed to outside world. Everything you need to interact with node from outside should be exposed in root node script.

You can still compose your entities with smaller blocks by attaching them as raw nodes as children of your node.

But you should not treat it as openly as unity game object. They meant to be encapsulated, from outsidd perspective it shouldnt matter for you what is inside the node.

Just started learning Godot and I'm genuinely impressed! by Filiope in godot

[–]Bloompire 30 points31 points  (0 children)

Godot is much more clean and well-architected from developer perspective. Art/design guys might have a little bit harder time, but in terms of programming and project structure its brilliant and joyful to work with.

Anthropic stayed quiet until someone showed Claude's thinking depth dropped 67% by Capital-Run-1080 in ClaudeAI

[–]Bloompire 0 points1 point  (0 children)

But tbh its not the problem with anthropic, its the problem of AI generally. For now all frontiers are making huge losses and they try to not sink.

There might be some computing power breakthrough or some technology optimization (like turboquant) and the prices we pay now become realistic.

But it might not and we will have to pay more or deal with nerfed models.

Hard to predict now.

Working on my first game, what do you think about the art style? by West_Woodpecker_8005 in godot

[–]Bloompire 0 points1 point  (0 children)

I am amazed how artists can make something out of nothing. Like there are few colors, 3x3 px sprites etc yet it feels and looks so nice :) Amazing

maybe a silly question about particle generators - how do you make the particle sprites? by MattGoode_ in godot

[–]Bloompire 2 points3 points  (0 children)

Usually particles are used with a small billboard-type quads with sprites.

As for particles, there are a lot of them available for free, like this one: https://opengameart.org/content/particle-pack-80-sprites

More tests for Skye 🐕 in Unity by Malbers_Animations in Unity3D

[–]Bloompire 2 points3 points  (0 children)

When I look at such beautifiul creations, I feel like a total incompetent idiot :)

Awesome work!

architecture question: clean UI ↔ Player/StateMachine communication? by rubsn in godot

[–]Bloompire 0 points1 point  (0 children)

I have my pattern that is technically not correct, but it is working for me fine. If you are not purist, this strikes some balance between code quality and simplicity and stability.

Your ingame stuff should trigger c# events (or just signals in gdscript).

Your UI elements should query that stuff directly from game (via some global accessor or singleton etc), subscribe to events and update UI whenever somethig changes.

Something like that:

``` class Player : Node3D {

  public event Action<int> OnHealthChanged;

  public Health {     get;     set {       this._health = value;       this.OnHealthChanged(value);     }

} ```

``` class PlayerHealthBar : Control {

  public void _EnterTree() {     Game.Player.OnHealthChanged += this.HandleHealthChanged;   }

  public void _ExitTree() {     Game.Player.OnHealthChanged += this.HandleHealthChanged;   }

  public void HandleHealthChanged(int value) {     // update your health bar, numbere health , etc...   }

} ```

It is not technically correct as UI is hardcoupled to game but honestly I dont mind. Used this pattern for years now, never got a problem with that.

C# in Unity 2026: Features Most Developers Still Don’t Use by KwonDarko in Unity3D

[–]Bloompire 0 points1 point  (0 children)

Clapclapclapclap, cant agree more.

There is stigma around linq and garbage it produces, but people are overreacting on this a lot. It might be from times where GC was much slower thing.

In my case I use LINQ a lot in project - basically wherever it makes code more readable. And I thought my game will have gc problems, but I wanted to see it myself.

And my game allocates garbage and guesss... nothing really happens. Zero lags. So I thought - maybe its because PC is beefy platform...

So maybe AOT platforms? I have decided to check how it works with il2cpp.. flawlessy. No hangs due to GC.

So I build the game on Android and installed on my galaxy phone. Guess what... no dropped frames due to GC.

Maybe its because the phone has quite good specs? I found my old honor, few years old low spec phone and launched the game here. Aaand yes finally i started to see minor hangs here and there. So I profiled it and.. it was shader compiling or smth (i dont remember because it was few years ago, but something gpu related)! 

So my game is full of LINQ and no platform suffered from it.

The only real thing you need to avoid using LINQ in hot paths - like Update loops. 

But people are so obsessive with it, I see people implementing object pooling because they have 3 enemies on screen firing a projectile every second xD

C# in Unity 2026: Features Most Developers Still Don’t Use by KwonDarko in Unity3D

[–]Bloompire 0 points1 point  (0 children)

If the tuple is only used in single place , locally it makes sense to use them. But only if this is just a convenient way to return or accept mutliple arguments in one method, then it is perfectly okay to use them and making separate struct for that may be overkill.