this post was submitted on 31 Aug 2023
399 points (97.2% liked)

Programmer Humor

25040 readers
1217 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 2 years ago
MODERATORS
 
all 33 comments
sorted by: hot top controversial new old
[–] SpaceNoodle@lemmy.world 51 points 2 years ago (2 children)

"This would be better if it were covered in rust"

[–] nieceandtows@programming.dev 9 points 2 years ago

They’ve played us for absolute fools!

[–] QuazarOmega@lemy.lol 45 points 2 years ago (1 children)

This engine is not the best practice

[–] andrew@lemmy.stuart.fun 40 points 2 years ago (2 children)

This engine is an antipattern.

[–] QuazarOmega@lemy.lol 12 points 2 years ago (2 children)

We're dissing Unity here right?

[–] MJBrune@beehaw.org 6 points 2 years ago (1 children)

Godot follows the same pattern though... oh no.

[–] QuazarOmega@lemy.lol 3 points 2 years ago (1 children)

Not gonna lie, I just threw a random joke in there, I never even touched Unity

[–] MJBrune@beehaw.org 3 points 2 years ago (2 children)

I mean, you aren't wrong in your joke. Godot's pattern is slightly but not much better. Unreal is far more structured and realistic but still lacking in a lot of ways.

[–] QuazarOmega@lemy.lol 2 points 2 years ago

Oh lucky shot then XD

[–] Metriximor@lemmy.ml 1 points 2 years ago (1 children)

I don't know a lot of game dev, care to educate me on the rights and wrongs of each of the engines?

[–] MJBrune@beehaw.org 1 points 2 years ago (1 children)

Unreal is what I have the most experience in. It's very strict and structured. Everything in Unreal is a UObject. There are Actors and Actor Components. Every feature has a requirement, such as, some of the AI features require you to have your AI as Pawns which are Actors that can have a Controller (an actor that manages the connection to a player) which then there is a PlayerController and an AI Controller which can hold a behavior tree to tell the AI how to control their pawn.

In Godot, things are far less structured. Godot has everything based on Nodes like Unreal but it expects you to build out whatever you want. So it doesn't come with Behavior Trees or the concept of a player. It expects you to build these things. Mainly because it's a budding engine that hasn't had the maturity or time put into it like Unreal.

Unity is a mix of both. Unity has a huge freeform nature to it. Again Unity starts with a class, everything in Unity is an Object. It has the concepts of Components that attach to a GameObject (which GameObject and Object are different). There is no Actor class, and no defined way to move an actor across a floor, a controller object in Unity is seen as the place where all the logic to control the actor is. So Unity has its own structure but it's also less built out like Godot. As such the AssetStore in Unity has taken the task of providing whatever the developer needs. So a Behavior Tree system on Unity differs from project to project from whatever they made or bought off of the store. Unreal allows you to, of course, use something else for behavior trees but no one does because their base implementation works and works well. It's standardized.

So overall, Unreal is standardized, strict, and gives you a ton of features. Unity is less strict, provides less standardized features, and forces developers to make their own things. Godot furthermore is less strict, has very little built-out, and the standardization it's attempted to create gets changed in the next major update because it's very new.

[–] Metriximor@lemmy.ml 1 points 2 years ago

Oh mate thanks for the detailed write up, it makes sense with my very little experience too.

[–] andrew@lemmy.stuart.fun 6 points 2 years ago

Could also be your least favorite container engine. Or rules engine. Man, we really like to call things engines don't we?

[–] Knusper@feddit.de 4 points 2 years ago

This engine is not idiomatic.

[–] TootSweet@lemmy.world 32 points 2 years ago (1 children)

"Documentation considered harmful" - my coworkers probably.

[–] railsdev@programming.dev 22 points 2 years ago (5 children)

iT’s SeLF dOcUmenTiNg 🥴

[–] redcalcium@lemmy.institute 11 points 2 years ago* (last edited 2 years ago) (1 children)

It perfectly makes sense if you think like me.

-- a deranged programmer

[–] QuazarOmega@lemy.lol 9 points 2 years ago

-- a deranged programmer

Aren't we all?

[–] docAvid@midwest.social 6 points 2 years ago (1 children)

Using "self documenting" as a blanket excuse to not document things that need it is inexcusable, yes, but I'd rather work on code written by somebody who seriously thinks about how to make it clean and self documenting, and then documents whatever still needs it as well, than on code written by somebody who doesn't make that effort, but documents heavily. And as for people who claim they're documenting everything, when the documentation is function fooTheBar() // foos the bar, they can eat a bag of docs.

[–] railsdev@programming.dev 1 points 2 years ago

100% agree. Sometimes I start a comment and realize I’ve either explained exactly what it’s doing and delete it or just update my variables to be more concise.

My job doesn’t like when I document the parameters and return type/value of methods. I think that that is really important in a dynamic language like Ruby and sets expectations that the method should ONLY return that type.

[–] TheYear2525@lemmy.world 5 points 2 years ago (1 children)
bool ticket2387_ac3 = true; // TODO
if (!ticket2387_ac3) return;
[–] funkless_eck@sh.itjust.works 5 points 2 years ago

ticket is too exposed, what if they reverse engineer the name? just use t2387ac3 instead it saves time

[–] hairyballs@programming.dev 2 points 2 years ago

My coworkers do document the code:

/// Returns a list of foos, given a bar. 
fn get_foos_from_bar(bar: Bar)
[–] princess@lemmy.blahaj.zone 19 points 2 years ago (1 children)
[–] profoundlynerdy@programming.dev 4 points 2 years ago (1 children)

Perl has entered the chat.

[–] WhiskyTangoFoxtrot@lemmy.world 3 points 2 years ago

No, that's just some random line noise.

[–] gregorum@lemm.ee 8 points 2 years ago
ifelse 
    eatme