Jon Blow was right.

https://loglog.games/blog/leaving-rust-gamedev/

say sorry to Jon Blow RIGHT NOW. he was right about all of this in 2018, 6 years ago.

Shopping Cart Returner Shirt $21.68

Black Rifle Cuck Company, Conservative Humor Shirt $21.68

Shopping Cart Returner Shirt $21.68

  1. 2 weeks ago
    Anonymous

    he's right.
    > relentless positivity and praise
    that's part of the marketing. meanwhile as they jerk off each other they organize raids to flood reddit, IQfy, forums and other places with lies, harassment, attacks and bullying because you aren't sucking on corporate wieners. as anons and many others highlight the obvious dangers of having a bunch of corporations having full control of a language (and every other lie associated with it - such as "safety") they lose their fricking minds.

    • 2 weeks ago
      Anonymous

      Then that is why Biden want us to use it?

  2. 2 weeks ago
    Anonymous

    The funny thing is rust troons still don’t understand the point he’s making in the video. Its so reasonable he probably thought it was safe from a flamewar, but he just didn’t know how rabid rust troons are

  3. 2 weeks ago
    Anonymous

    So
    Rewrite it in Rust: probably an OK idea
    Write your first, very exploratory version in Rust: probably not a good idea

    • 2 weeks ago
      Anonymous

      rewriting a video game after it is done is a ridiculous idea lol you'll go bankrupt or take double the time shipping in the best case
      rewrites in general are a bad idea.

      If you’re using anything but Unreal, you aren’t a serious dev. That includes Blow.

      if you have shipped software to users then you are a serious dev. Blow has shipped games to millions of players.

      the core problem is gross misuse of the language. mozilla made rust as a fast but memory safe language for security purposes (web browsers). people are making the imo ridiculous decision of using it for game dev.

      • 2 weeks ago
        Anonymous

        >people are making the imo ridiculous decision of using it for game dev.
        yeah. people have been trying to use it for anything that has nothing to do with security. some of the extremely moronic programmers somehow think rust code can't be hacked or exploited, as if it has some magical layer of protection nobody else can see except rust trannies with severe schizophrenia. meanwhile on CVE databases, it still suffers from the same problems as C/C++

      • 2 weeks ago
        Anonymous

        By your definition Notch is the most serious dev because he shipped to the most people / manhours played on his game

        • 2 weeks ago
          Anonymous

          unironically yes notch is a serious dev because he made and sold something that works and that people liked
          i doubt people can give me reasons as to why that is not the case other than vague
          >but java
          >but performance
          >but code quality (what i believe to be aesthetically pleasing)

          • 2 weeks ago
            Anonymous

            >he made and sold something that works and that people liked
            That applies to Blow's games too

          • 2 weeks ago
            Anonymous

            >blowie games
            >anywhere near minecraft level
            b***h aint even out of indie status yet lmao. Fricking stardew valley is more relevant than anything blowie ever did. blow is a grifter

          • 2 weeks ago
            Anonymous

            >made
            Stole infiniminer

        • 2 weeks ago
          Anonymous

          Notch actually is an extremely competent dev.

          Results are the most important thing, not just in development, but in everything in life. Never let anyone convince you otherwise.

          • 2 weeks ago
            Anonymous

            >Results are the most important thing
            survivorship bias

          • 2 weeks ago
            Anonymous

            I mean he's right though. At the end of the day if you don't produce any results you are deemed worthless by society and the people around you. No one cares how much you try they only care if you succeed.

          • 2 weeks ago
            Anonymous

            Would you rather take programming advice from Carmack or Notch? That kind of mentality means you'd take Notch because he made the most money. The guy who made WORDLE was a first year student and sold it for a million dollars. That's a project tons of people could have implemented if they had the idea. Is he a god programmer for having the idea?
            The point is that it's silly to use money as a proxy for programming credibility. "Getting results" has more to do with business, economics, and timing than programming ability.

          • 2 weeks ago
            Anonymous

            Carmack is rich and is still getting tons of money funneled to him to work on stuff while Notch just got a lump sum. Not a good example.

          • 2 weeks ago
            Anonymous

            Carmack: 1 million made per game
            Notch: 1 billion made per game
            i.e. Notch is a greater programmer

          • 2 weeks ago
            Anonymous

            >Donald Knuth
            frick all, idk
            clearly he can't program for shit

          • 2 weeks ago
            Anonymous

            Donald Knuth is a serious academic, maybe even programmer depending on how you define things. He is not a serious developer.

          • 2 weeks ago
            Anonymous

            Correction: Hasn't been for a long time. TeX is useful I guess.

          • 2 weeks ago
            Anonymous

            Carmack also made his millions in the 80s. You’ve gotta adjust for inflation if you’re going to go full moron with this example.

          • 2 weeks ago
            Anonymous

            Even with inflation that's not 1 billion and obviously he made them in the 90s-00s no the 80s. Notch is the best programmer after Gates, Zuck and Brin. He even beats Jeff Dean.

          • 2 weeks ago
            Anonymous

            If i needed to do something as extreme as to squeeze out ever bit of performance out of P4 for software rendering for Q1 its carmack, if its just getting shit out of the door and getting youtubers playing it (java was enough to mesh the voxels and get it running on the browser) its my bald swedish gay that is telling me what to do, all in all its a shit analogy because everything depends on the context and you picking the right tool for the job depends on your competence level. Carmack said on so him self on lex slopcast

          • 2 weeks ago
            Anonymous

            Anon you only care about the experiences of people who have succeeded, that's why you referenced Notch and Carmack. You never mentioned a good programmer for a game that never sold well, or was never even published, you picked two people who have results.
            That was my point.

          • 2 weeks ago
            Anonymous

            >Would you rather take programming advice from Carmack or Notch?
            I would take advice from either of them depending on the situation. I have communicated with Carmack over email before, and for things such as

            If i needed to do something as extreme as to squeeze out ever bit of performance out of P4 for software rendering for Q1 its carmack, if its just getting shit out of the door and getting youtubers playing it (java was enough to mesh the voxels and get it running on the browser) its my bald swedish gay that is telling me what to do, all in all its a shit analogy because everything depends on the context and you picking the right tool for the job depends on your competence level. Carmack said on so him self on lex slopcast

            has said, he is the man to talk to.
            If I wanted to talk about game design itself, I would talk to Notch.
            You are being obtuse and creating an arguably moronic strawman

          • 2 weeks ago
            Anonymous

            YOU are being obtuse. It's a simple illustration for why more money doesn't equal more skill. There are people who are better than Notch at game design as well but you've never heard of them.

          • 2 weeks ago
            Anonymous

            > There are people who are better than Notch at game design as well but you've never heard of them.
            Because they, ironically, probably haven't shipped anything of note. You are the one that has brought up money. Notch could have open sourced Minecraft for all I care, and I would still value his opinion of some no name homosexual on this website, least of all (You)

          • 2 weeks ago
            Anonymous

            You're just proving my point. Minecraft is nothing incredible and also poorly coded and it only got Notch a billion dollars because he was born at a certain time. There are many better games out there and you can't name their creators. You just know OOGA MONEY MEAN GOOD like a brainlet.

          • 2 weeks ago
            Anonymous

            And they are still no name homosexuals who couldn't turn a profit from their abilities. Just this fact alone means their opinion is worthless if they can't derive a few bucks from their supposed "skills".
            Money creates status. I know this is hard for you to accept.

          • 2 weeks ago
            Anonymous

            The common denominator is that he stopped posting here because he was serious. You (and myself) still post here.

          • 2 weeks ago
            Anonymous

            notch kept browsing IQfy for a while after minecraft became successful, hence his "problematic" phase. sometimes he used to even post under a known tripcode (maybe you can still find the tweet proving that it's his)

        • 2 weeks ago
          Anonymous

          well, he did make 1B dollars out of that, so yes i would say hes a serious dev.

    • 2 weeks ago
      Anonymous

      >Dude just write you're entire system twice!
      >In a completely different language no less!
      It's all so tiresome. If you're going to go the moron path to a full rewrite, then just rewrite it in the same language and you will get just as many benefits as if you write it in Rust.

      • 2 weeks ago
        Anonymous

        This is pretty standard
        most startups use a language that's very quick to iterate on like js. this is garbage of course and bites them later but most startups don't even reach later, goal is to build it very quickly

        Once they make it, then the rewrite comes in something more scalable, java, c#, elixir, haskell, ...

        • 2 weeks ago
          Anonymous

          most game companies dont have vc hype money to burn like startups... they gotta ship something and it has to be good
          startups do a lot of dumb shit because they can afford it.

          • 2 weeks ago
            Anonymous

            the opposite, they can't afford it and they don't know its dumb until they do it (there are exceptions)
            too many dumb moves and they're out

  4. 2 weeks ago
    Anonymous

    Top jej, people were literally warning about the iteration speeds for years. Instead, Rust community went deeper into async hell, not caring about build and iteration times. It will be so much fun watching the community fall apart over the years, and maybe some fork overtaking Rust lang. The absolute state of Rust is mix of incomplete async crap, lack of many useful linker options available in other native languages, abandoned rewrite projects, incorrect planning warranting a full re-write of existing Rust projects..

    Jesus.

  5. 2 weeks ago
    Anonymous

    I'll say sorry when more games are made in jai than rust LOL

    • 2 weeks ago
      Anonymous

      jai has a somehow working sokoban clone
      rust has.. nothing?

      • 2 weeks ago
        Anonymous

        Veloren is far more impressive than Blowjob's unfinished Sokoban clone thoughbeit. You have to do better.

        • 2 weeks ago
          Anonymous

          What's impressive about it? Looks like another unfinished Cubeworld clone.

          • 2 weeks ago
            Anonymous

            What's impressive about the Sokoban clone? Looks like a two-months-in-Unity project.

            nta but I looked it up
            >autistic voxel shit
            lmao typical rust troon garbage
            blow's games also suck though

            Yeah, I wouldn't actually play it.

          • 2 weeks ago
            Anonymous

            blow has a knack for making superficially unimpressive games that turn out to be complete bangers:
            >braid: lmao 2d platformer mario clone there aint no point
            >witness: lmao cereal box maze walking simulator game
            both of those games did very well and are widely respected as being really high quality and full of interesting ideas.

          • 2 weeks ago
            Anonymous

            >well-respected
            >interesting ideas
            sounds like you need a reminder, Blow

          • 2 weeks ago
            Anonymous

            soulja boy was having fun thoughever

          • 2 weeks ago
            Anonymous

            This is how Blow made his fortune... having a game on the fricking xbox arcade as a download during the time where you still had to physically go get your games and so all the NFL madden playing people thought they'd try this one mario game that was available there while waiting for their bro to bring the madden disk and some weed

          • 2 weeks ago
            Anonymous

            yo bro, the homie liked it so much

          • 2 weeks ago
            Anonymous

            I certainly hope it'll be good when he actually finishes it. It's just not as impressive now.
            The Witness was genuinely too bland for me tbqh, but I get why other people liked it.

          • 2 weeks ago
            Anonymous

            Oh no anon, you praised something. You’ve called out all the shitters who wouldn’t dare say they like something.

        • 2 weeks ago
          Anonymous

          nta but I looked it up
          >autistic voxel shit
          lmao typical rust troon garbage
          blow's games also suck though

    • 2 weeks ago
      Anonymous

      Dumb metric, because jai is not being aggressively marketed as ready for mainstream production use.

  6. 2 weeks ago
    Anonymous

    We are looking at yet another wayland/systemd situation where the maintainer thinks his ideas are the best and everyone should obey.. right? It'll be fun to watch Rust community imploding in the following years. It's also so tiring, just same mistakes being repeated in the OSS community.

    • 2 weeks ago
      Anonymous

      Wayland and systemd are diametrically opposite.

      One is ugly, but works. The other is beautiful, but doesn't work.

    • 2 weeks ago
      Anonymous

      >It'll be fun to watch Rust community imploding in the following years
      it's not going well for them as it is. their lofty ambitions of everyone abandoning every other language for rust hasn't happened and never will. when the NSA released some press about how they were using rust for various things (god knows what) they also stated they weren't replacing everything with rust and estimated it would take 30-40 years to rid their systems of everything coded in C.

      • 2 weeks ago
        Anonymous

        the blog post is written by a moron who still doesn't understand ownership semantics 3 years into using rust

        rewriting things for the sake of rewriting them is obviously dumb, but having 40 years of legacy c cruft doesn't make it a sane choice for every new project. they picked java for ghidra for a reason

        • 2 weeks ago
          Anonymous

          >attacking the messenger and not remotely arguing the message
          ...

          • 2 weeks ago
            Anonymous

            >complaining about this on an east german messenger-shooting forum

        • 2 weeks ago
          Anonymous

          >rewriting things for the sake of rewriting them is obviously dumb,
          rust trannies don't think like this. in their drug addled minds they seriously believe people will just delete everything they have and rewrite it in rust for no apparent reason whatsoever. since rust trannies don't have jobs and aren't in any positions of power they can't comprehend how much it would cost. they assume everyone is working for free or some shit.

      • 2 weeks ago
        Anonymous

        It would be to everyone's benefit if NSA used rust to 41% their spying systems

  7. 2 weeks ago
    Anonymous

    So what language am I supposed to learn then?

    • 2 weeks ago
      Anonymous

      c go perl

    • 2 weeks ago
      Anonymous

      The industry standard

      • 2 weeks ago
        Anonymous

        moron, this whole thread is about game development

        • 2 weeks ago
          Anonymous

          >He's not making his game in electron and node

          • 2 weeks ago
            Anonymous

            You can make a game in pure css because its turing complete
            https://speckyboy.com/pure-css-games/

        • 2 weeks ago
          Anonymous

          Vampire Survivors is written in JS and that's a top seller.

          • 2 weeks ago
            Anonymous

            >it's actually real
            Holy shit. Completely proves OP's point.
            If you can make a massive success game with JS, rust trannies should seriously invest in rope.

          • 2 weeks ago
            Anonymous

            Dynamic scripting language + C++ is unironically the way to go.

            Like Lua, angelscript, wren or homemade I guess if you like making interpreters.

        • 2 weeks ago
          Anonymous

          Yes.

    • 2 weeks ago
      Anonymous

      Jai.

  8. 2 weeks ago
    Anonymous

    If you’re using anything but Unreal, you aren’t a serious dev. That includes Blow.

  9. 2 weeks ago
    Anonymous

    why would you try to write a game in something that has never been used for games before
    making games is not cutting edge research there is nor eason to do something wired

    • 2 weeks ago
      Anonymous

      Games were using C++ before it was even standardised.

      • 2 weeks ago
        Anonymous

        And according to Seamus Blackley, doing so was a massive mistake. They found so many bugs in the Compiler related to things not working due to no standard to follow.

        I feel doing something in Rust would result in the same shit

        • 2 weeks ago
          Anonymous

          it does show that c++ is very practical for gamedev. i feel like jai is similar, people (not just jon blow) are programming serious games in it right now, with it still in private beta.
          rust on the other hand...
          so much funding ($7k for bevy alone!), and yet, no games...

          • 2 weeks ago
            Anonymous

            it's practical because it has 30 years and millions of man hours put into tooling to make it work, nothing inherent with the language

          • 2 weeks ago
            Anonymous

            rust friend... did you even read the reply chain? they were using it before it was even standardized.

            GIVE UP, BRUCE.

          • 2 weeks ago
            Anonymous

            yes, because nothing else existed

          • 2 weeks ago
            Anonymous

            >they were using it before it was even standardized.
            Just like companies using Rust now...which then proves it is a practical language by your logic. Thanks for the confirmation

          • 2 weeks ago
            Anonymous

            where are the GAME companies SHIPPING GAMES written in rust?

            yes, because nothing else existed

            really? no languages existed before sepples?

            i am by no means a sepples fan but it is a practical language for building complicated software. not ideal, but practical.

          • 2 weeks ago
            Anonymous

            I feel like C++ (and C for that matter) are practical because they allow you talk to hardware implicitly through "unsafe" pointer access. Want to allocate a shared DRAM/GDRAM buffer? No worries, just call this OpenGL function.
            I've never understood the whole "borrow checker memory safety" bullshit that moronic Rust advocates (usually trannies) espouse. Either you shit, or you get off the pot, there's no real in-between.
            If I'm going to be slowed down by some moronic Rust construct, that's the total opposite of streamlining my development when I could just log/set breakpoints in my C/C++ code and work out what happened instead of insisting that the compiler hold my hand like I'm a moron or have a brain addled by sex hormone injections. The same goes for embedded where you do MMIO every second function. What's the point if I've got "unsafe" littered in my code? It's like using a sledgehammer to nail a fence together.

            it's practical because it has 30 years and millions of man hours put into tooling to make it work, nothing inherent with the language

            No, it's because it literally "just works" without anything getting in the way of the developer

          • 2 weeks ago
            Anonymous

            The whole argument for the average rustacean is "its too hard or takes too much practice to develop the skill of allocating and freeing memory therefore I will project and assume it's hard for everyone and in conclusion if you don't adopt Rust you're just unsafe." While boiling plastic grocery bags during the lockdown

          • 2 weeks ago
            Anonymous

            I wonder if this comes from the fact that proper debugging skills aren't really taught any more. Everything is so large and abstract now, that doing any sort of debugging for the average programming socks wearing zoomzoom triggers their anxiety
            Back in the 80s/90s, systems were small enough you could debug the whole thing to gain some understanding. Now they feel like they need the compiler to hand hold them while they develop, instead of relying on something like warnings, static analysis and an actual fricking IDE lmfao

          • 2 weeks ago
            Anonymous

            Their argument will be "muh segfaults" but the key to debugging is assuming you made the mistake yourself and then finding where you went wrong, but the average rustroon is a sociopath incapable of self criticism

          • 2 weeks ago
            Anonymous

            i will use a compiler that can solve issues at compile time instead of using a debugger or sanitizer every single time

          • 2 weeks ago
            Anonymous

            if only that came at no cost...
            did you read the blog post? or are you here just to shill?

          • 2 weeks ago
            Anonymous

            for me, the cost is worth it because i spend less time debugging than i do in c++

          • 2 weeks ago
            Anonymous

            broken record...

          • 2 weeks ago
            Anonymous

            i have personal experience that contradicts the blog, i know you have no experience whatsoever

          • 2 weeks ago
            Anonymous

            nice projection
            im sure your experience writing an ls clone is plenty

          • 2 weeks ago
            Anonymous

            no clones, just original utilities that have a bunch of downloads

          • 2 weeks ago
            Anonymous

            >my experience programming cli tools is more relevant than your experience making games when talking about gamedev
            crazy

          • 2 weeks ago
            Anonymous

            i've also worked on games in unreal and unity

          • 2 weeks ago
            Anonymous

            so.... not written in rust?

          • 2 weeks ago
            Anonymous

            my experience in games and writing rust leads me to different conclusions than the author. rust is a force multiplier for me because i know how to use it and plan out my systems. i'm not doing massive refactors constantly like he was because i sit down and think about the problems i want to solve before hand, have a scope that i won't expand, and then i execute the plan

          • 2 weeks ago
            Anonymous

            >i sit down and think about the problems i want to solve before hand, have a scope that i won't expand, and then i execute the plan
            that results in bad games, you really need to iterate on things

          • 2 weeks ago
            Anonymous

            >that results in bad games, you really need to iterate on things
            nowhere did i say iteration doesn't happen. you can still iterate within the confines of the scope you've set up, and then iterate on more ideas in your next game. getting the feeling everyone else here is larping about writing games...

          • 2 weeks ago
            Anonymous

            >you can still iterate within the confines of the scope you've set up
            You also need to iterate on the scopes you've set up

          • 2 weeks ago
            Anonymous

            The belief that "all issues can be solved at compile time" is a dangerously naive assumption to have. I strongly believe that a large uptake in rust will actually generate significant security holes in software if people programming rust genuinely believe this.
            You should always be skeptical of the compilers output.

  10. 2 weeks ago
    Anonymous

    That blog post was all I needed to avoid Rust forever. Borrow checkers are shit. Either have the IQ to manage memory yourself and reap the performance rewards, or play in a fully managed language. His observation that Rust trannies are like teenagers in their opinions is also spot on, just look at this board.
    >C dev: it can be great for high performance but it's not for everything.
    >C++ dev: very good performance, good features, some draw backs, it's not for everything.
    >Rust dev: OMFG EVERYONE SHOULD USE RUST ALL THE GOD DAMN TIME IF YOU'RE NOT USING RUST YOU'RE A CNILE AND YOU SHOULD BE SHOT YOU'RE THE REASON WE HAVE HACKERZ!!!

    Oh, and I've come to realize that Python devs are also like children in their opinions.
    >good morning sir, do you have a moment to talk about our Lord and Savior, Python?
    >"ehhh...interpreted is too slow for my needs and frick indentation why did they do that?"
    >REEEEEEEE
    >YOU DON'T NEED COMPILED
    >AND WE COULD COMPILE IT IF WE WANTED, WE JUST DON'T
    >THEY'RE IMPROVING THE SPEED
    >INDENTATION IS ACTUALLY BETTER
    >I WANT YOU TO DIE FOR REJECTING PYTHON!!!!!

    • 2 weeks ago
      Anonymous

      schizo

      • 2 weeks ago
        Anonymous

        YWNBAW

    • 2 weeks ago
      Anonymous

      >Either have the IQ to manage memory yourself and reap the performance rewards, or play in a fully managed language.
      Or just use C++ and get both high performance and automatic memory management. The only memory management I ever have to do is for graphics API stuff and even then it mostly just consists of packing the cleanup instructions into an array of lambda functions whenever something is initialized, and unwinding it on shutdown.

    • 2 weeks ago
      Anonymous

      >Borrow checkers are shit. Either have the IQ to manage memory yourself and reap the performance rewards, or play in a fully managed language
      fricking amen to that

    • 2 weeks ago
      Anonymous
    • 2 weeks ago
      Anonymous

      idk why you decided to attack python completely out of the blue with a straw man that doesnt actually happen
      literally everyone knows python is slow, but it doesnt matter for what python is used for
      shitting on python is one of the surest signs that someone is basically nocoder or is an autistic maintainer who doesnt actually make anything

    • 2 weeks ago
      Anonymous

      >python devs
      >elitists
      lmao. the average vocal python user is some casual boomer hobbyist that just wants to make a quick script for something to share with his bros

  11. 2 weeks ago
    Anonymous

    I’ve given rust a shot a few times but there’s always something dumb I bump into which usually involves screaming at the borrow checker. They also have some weird obsession of nesting generics in generics which gets incredibly annoying and long-winded, it reminds me too much of inheritance hell in c++.

  12. 2 weeks ago
    Anonymous

    How whole post is based on a false assumption.
    Rust is a language much more productive than cpp if you actually know it.
    He is just trying to fud for his unrealized j meme.

    • 2 weeks ago
      Anonymous

      >Rust is a language much more productive than cpp if you actually know it
      Then where are all the other Rust games?

      • 2 weeks ago
        Anonymous

        Video games are a meme and productive people build more important stuff.

    • 2 weeks ago
      Anonymous

      can you link me your published video game written in rust as proof?

    • 2 weeks ago
      Anonymous

      if a language is productive it will video games will be used made with it this did not happen once in 20 yrs

    • 2 weeks ago
      Anonymous

      Ah thanks for clarification, could you post your finished and stable AAA game written in Rust please? Thanks anon!

    • 2 weeks ago
      Anonymous

      The dude literally spent years and wrote tens of thousands of lines of code in Rust. He opened his blog post with a discussion about the "just git gud" mentality in the Rust community. He went into detail on why that's not the case for his problem space (indy game dev where he wants to rapidly iterate his game). And you think the correct response to him is "just git gud?"

      You didn't even read his blog post.

      • 2 weeks ago
        Anonymous

        >You didn't even read

    • 2 weeks ago
      Anonymous

      And I'm going to add: when he brought up the borrow checker I immediately knew what he was going to b***h about. I would rather deal with C++ any day of the week than Rust's borrow checker.

    • 2 weeks ago
      Anonymous
      • 2 weeks ago
        Anonymous

        when you look at this meme rust evangelism unironically starts to look like marxism and i am not saying this as a joke

        the blog post is written by a moron who still doesn't understand ownership semantics 3 years into using rust

        rewriting things for the sake of rewriting them is obviously dumb, but having 40 years of legacy c cruft doesn't make it a sane choice for every new project. they picked java for ghidra for a reason

        1) you did not read the blog post.
        2) you are midwit because you made this argument.

        • 2 weeks ago
          Anonymous

          >you did not read the blog post
          I skimmed it and stopped reading when he unironically suggested cloning as being the way to deal with dangling references

          I also wonder if this guy had multiple crates for his project or was just compiling the whole world every time lol

          compile time isn't the only thing game devs mean when they talk about fast iteration time

          • 2 weeks ago
            Anonymous

            >dangling references
            that was not even the problem that was described lmao midiwit

            in c this is just
            struct Character {
            char* name;
            };

            struct Context {
            Character* selected_duck;
            int other;
            };

            void character_select_duck_detail(..., Character*, Context*);

            void Update(Context* context) {
            if (context->selected_duck) {
            character_select_duck_detail(..., context->selected_duck, context);
            }
            }

            and it works fine!
            the problem is that rust's borrow checker is not sophisticated enough to realize when aliasing is safe.

          • 2 weeks ago
            Anonymous

            >the problem is that rust's borrow checker is not sophisticated enough to realize when aliasing is safe.
            Bingo. I don't even have experience with Rust and when he started to describe that problem I intuitively understood where he was going. But that goes against the Rust narrative so it has to be mocked rather than understood and acknowledged.

            I'll defend C when brainlets attack it on IQfy. But I would never, ever suggest it for everything except as sarcasm. I don't deny that it has problems, in fact I fricking hate null terminated strings (though if you're using C to accelerate string processing you simply don't do it that way and ignore standard library string calls). But C has its strengths and its place. Rust (and some Python) evangelists just can't admit the language is not perfect. Criticism and using another language literally triggers them.

            There are no perfect languages, frameworks, etc. Use the best one for the job.

          • 2 weeks ago
            Anonymous

            Hi anon, brainlet here. Can you explain to me what this code is able to do that Rust can't? I don't know any Rust at all, but this C snippet is something quite simple. What's the problem with Rust when trying to rewrite this?

          • 2 weeks ago
            Anonymous

            >Can you explain to me what this code is able to do that Rust can't?
            access selected_duck from two different pointers lol

          • 2 weeks ago
            Anonymous

            I dont get it, where does it happen?
            (..., context->selected_duck, context)
            or
            if (context->selected_duck) and (..., context->selected_duck, ...)

          • 2 weeks ago
            Anonymous

            you are passing two pointers to the function: a pointer to a character and a pointer to a context. but the context pointer points to a struct that has a pointer to the same character. so now you effectively have two pointers to the same character. rust doesn't like this.

          • 2 weeks ago
            Anonymous

            Frick Rust then lmao, I am happy in my simple C world

          • 2 weeks ago
            Anonymous

            Sounds about right? Good on rust for automatically pointing out shit programming...

          • 2 weeks ago
            Anonymous

            you are a midwit!

          • 2 weeks ago
            Anonymous

            you have no argument!

          • 2 weeks ago
            Anonymous

            >le nocoder has arrived

          • 2 weeks ago
            Anonymous

            if you automate memory management you permit weak programmers to have jobs which is contrary to principles of social darwinism

          • 2 weeks ago
            Anonymous

            C has allowed weak programmers to push security nightmare after security nightmare for almost 70 years with no social repercussion

          • 2 weeks ago
            Anonymous

            >t. doesn't understand the blog post or the patterns used in rapid, iterative game dev

            C has allowed weak programmers to push security nightmare after security nightmare for almost 70 years with no social repercussion

            >noooo only c has memory exploi...
            Pic is for you. I can post more pics for any language you like. The CPU is not "memory safe" which means safety is a skill issue, even in "muh safe" languages.

            >t. never had to write truly high performance code

          • 2 weeks ago
            Anonymous

            >>t. never had to write truly high performance code
            cope harder, midwit

          • 2 weeks ago
            Anonymous

            >no reply but seethe
            Your concession is accepted anon.

          • 2 weeks ago
            Anonymous

            >no reply but harder cope
            yep

          • 2 weeks ago
            Anonymous

            >rust CVEs
            >they're buffer overflows
            What was the point of this language again?

          • 2 weeks ago
            Anonymous

            People seem to have forgotten that we need "unsafe" code to do anything useful in systems programming. It's no surprise that there's unsafe C-style code sprinkled throughout the entire standard library, that's practically a requirement.

            However, Rust is the only systems language that gives users this dangerous false sense of perfect security. Those buffer overflow CVEs from the standard library are just a consequence of their own arrogance.

          • 2 weeks ago
            Anonymous

            pretty sure airplanes and rockets don't need it

          • 2 weeks ago
            Anonymous

            They literally do. They have used and continue to use "unsafe" languages. But they look for a minimum skill level and have standards, and the code must meet those standards in review.

            Unless you're modern Boeing. Then H1B pajeets can write the software and have it tested in India and then the planes can crash.

          • 2 weeks ago
            Anonymous

            Even airplanes and rockets will have to make system calls (unsafe) into whatever kernel they're running on, and the kernel has to interface with the hardware (unsafe) to provide a number of those system calls.
            If they aren't running on top of one then they're directly interfacing with the hardware and likely have access to the entire memory (absolutely unsafe).

            >But they look for a minimum skill level and have standards
            by standards and minimum skill you mean they use formal verification? Or do you mean in your fantasy world we rely on the god given skill of Cniles to make sure planes software doesn't have unwanted behavior?

          • 2 weeks ago
            Anonymous

            give up bruce. rust lost. cniles won.

          • 2 weeks ago
            Anonymous

            I've run into morons on IQfy that actually think Rust can prevent memory leaks. The cult doesn't even understand basic terminology.

            >if there was a fricking standard
            There won't be one, standards give people the power to write competing implementations.
            We can't have that with corporate Rust, the foundation won't willingly give away any of its power in the ecosystem.

            Which bizarre for something that is critical to safety. Everything else related to safety or shit that *has* to be correct in all sorts of engineering, software, technology etc contexts is standardized. Yet here the Whitehouse wants people to use Rust and there's no standard or spec to speak of. A standard's committee would at least be able to sit down and get ahead of these issues before they become bugs in an implementation that everyone uses. People could at least run conformance tests put out by the committees against their implementations too.

          • 2 weeks ago
            Anonymous

            y'know maybe this wouldn't be such a big deal if there was a fricking standard instead of just an implementation

          • 2 weeks ago
            Anonymous

            >if there was a fricking standard
            There won't be one, standards give people the power to write competing implementations.
            We can't have that with corporate Rust, the foundation won't willingly give away any of its power in the ecosystem.

          • 2 weeks ago
            Anonymous

            >having to drag CVEs from 3 years ago
            raise

          • 2 weeks ago
            Anonymous

            I never said it wasn't less likely in a "memory safe" language. It is. But it still has happened and will happen. In all of them. It's also less likely in C/C++ with qualified engineers who understand security.

            The difference is that there are dozens of classes of exploits. So if you assume that your code is "safe" because of the language not only will you get your ass bit by the other types, you might even get bit by the type you believed could never happen.

            tl;dr - qualified engineers should be writing code that needs to be safe/secure. That's more important than anything else.

          • 2 weeks ago
            Anonymous

            >I never said it wasn't less likely in a "memory safe" language. It is.
            backpedal
            >So if you assume that your code is "safe" because of the language not only will you get your ass bit by the other types, you might even get bit by the type you believed could never happen.
            did anyone claim otherwise?
            try asking for unsafe rust help on the usual places without reading the unsafe docs, you will (rightfully) be yelled at

          • 2 weeks ago
            Anonymous

            >>I never said it wasn't less likely in a "memory safe" language. It is.
            >backpedal
            No, I'm correcting your straw man.

            >did anyone claim otherwise?
            Repeatedly on this forum Rust fans act as if Rust is absolutely immune to buffer overflow errors.

            >try asking for unsafe rust help on the usual places without reading the unsafe docs, you will (rightfully) be yelled at
            Not everything can be safe anon. Do you understand that the CPU is not safe, and systems programming therefore cannot 100% be guaranteed to be safe? Also, you're assuming all of those were "unsafe code" when a bug at a lower level can result in an exploit in "safe code."

          • 2 weeks ago
            Anonymous

            here is an example of the type of problem rust's language design is centered around preventing:
            std::vector<int> xs;
            xs.push_back(1);
            int& ref = xs[0];
            // can segfault: xs was moved in memory after resize, we're accessing stale memory.
            xs.push_back(ref);
            xs.push_back(ref);
            xs.push_back(ref);

            the way rust does this is by making mutable references exclusive:
            let mut xs = Vec::new(); // 1.
            xs.push(0); // 2.
            let refval = &xs[0]; // 3.
            xs.push(*refval); // 4.
            xs.push(*refval); // 5. <- compile error! xs borrowed in (3) and used in (5), but was also borrowed mutably in (4)

            what it is doing is preventing you from aliasing a value. this means your code can't hold more than one mutable reference to a thing simultaneously.

            the analysis that rust is trying to do is fundamentally conservative.
            if it can't prove that your code is safe, it will not compile it; as opposed to refusing to compile when it can prove that your code is unsafe (much, much, much harder).

            so in some cases, you might have aliasing that is perfectly safe to do when taking into account what the code does but rust will just refuse to compile the code because it conservatively rejects all mutable aliasing.

            in this specific case, the author presumably wanted to borrow a struct mutably whilst also borrowing one of its fields at the same time.

            >the problem is that rust's borrow checker is not sophisticated enough to realize when aliasing is safe.
            Bingo. I don't even have experience with Rust and when he started to describe that problem I intuitively understood where he was going. But that goes against the Rust narrative so it has to be mocked rather than understood and acknowledged.

            I'll defend C when brainlets attack it on IQfy. But I would never, ever suggest it for everything except as sarcasm. I don't deny that it has problems, in fact I fricking hate null terminated strings (though if you're using C to accelerate string processing you simply don't do it that way and ignore standard library string calls). But C has its strengths and its place. Rust (and some Python) evangelists just can't admit the language is not perfect. Criticism and using another language literally triggers them.

            There are no perfect languages, frameworks, etc. Use the best one for the job.

            basically yes. the correct answer is the boring one. just evaluate requirements and use the thing that's suitable for the task. then nuanced part is knowing how to evaluate requirements and correctly pick the tool in an objective way that's not influenced by hype or emotion.

          • 2 weeks ago
            Anonymous

            You will get compile error at 4 not 5.
            The index operator has a signature fn(&Self,usize)->&T which after removing lifetime ellision is fn(&'a Self,usize)->&'b T where 'a: 'b. That last part with where means lifetime of 'a (the vector borrow) is encompasses (outlives) lifetime of 'b (borrow of specific element). Or if you inverse the wording, as long as an element is borrowed (referenced), the whole vector is borrowed. Makes sense, can't get rid of the whole container while something may be referencing into it.
            push-back takes a &mut Self, so it borrows the container mutably. Something can be either not borrowed, uniquely borrowed mutably, or borrowed immutably one or multiple times over. The Vec is still borrowed immutably so you can't borrow mutably.

      • 2 weeks ago
        Anonymous

        Mental illness

      • 2 weeks ago
        Anonymous

        Very succinct explanation of why rust is complete shit. Its aspiration is a language beyond complete shit

  13. 2 weeks ago
    Anonymous

    >We are a small indie game dev studio of two people, working on various games across different engines over the past few years.

    >holding mic to twitter user.jpg

  14. 2 weeks ago
    Anonymous

    No shit. Rust is a horrible choice for videogames

  15. 2 weeks ago
    Anonymous

    Is it time to learn zig? Why can't there just be something good like C but better?

    • 2 weeks ago
      Anonymous

      No, zig has the same iteration speed problems the article author is complaining about: https://github.com/ziglang/zig/issues/335
      and it's going to get worse as they implement more of these. They don't want to add warnings to the compiler so you're forced to put up with this bullshit.

      • 2 weeks ago
        Anonymous

        >moving the lamp post

  16. 2 weeks ago
    Anonymous

    >rapid iteration
    Skill issue.

    If you you can't run through like 10 consecutives steps of your game loop in your head you're a fraud.

    • 2 weeks ago
      Anonymous

      I also wonder if this guy had multiple crates for his project or was just compiling the whole world every time lol

      • 2 weeks ago
        Anonymous

        language skill issue. jai can compile 100klocs in less than a second.

  17. 2 weeks ago
    Anonymous

    Duh. He's ALWAYS right!

  18. 2 weeks ago
    Anonymous

    The blog post is right and it extends to far more than just making games.

  19. 2 weeks ago
    Anonymous

    Manual memory management in a non-trivial project is a fool's errand.
    Just use garbage collection.
    https://crates.io/crates/crossbeam-epoch

    • 2 weeks ago
      Anonymous

      What's the point of using Rust at that point? Just use Go

  20. 2 weeks ago
    Anonymous

    Even airplanes and rockets will have to make system calls (unsafe) into whatever kernel they're running on, and the kernel has to interface with the hardware (unsafe) to provide a number of those system calls.
    If they aren't running on top of one then they're directly interfacing with the hardware and likely have access to the entire memory (absolutely unsafe).

    • 2 weeks ago
      Anonymous

      Was meant as a reply to

      pretty sure airplanes and rockets don't need it

    • 2 weeks ago
      Anonymous

      Yeah pretty much, even the official Rust support in the Linux kernel is just one giant blob of code wrapped in unsafe {} which throws all of the Rust benefits out of the window.

      • 2 weeks ago
        Anonymous

        for Linus, its just that kids don't wanna learn C and wanna learn Rust because its the cool new thing. Despite google's shilling he has no delusions of Rust's safety like the cargo cult does. He just supports it because eventually the current gen of maintainers will die off. And tbh, from what I've seen of zoomers, they are all utter morons so I don't blame him going after the Rust community. They tend to be filled with troon autists but that's still better than the average CS grad these days

        • 2 weeks ago
          Anonymous

          I absolutely love Linus, and you forgot to include the explanation.
          Also Rust still doesn't have a stable ABI and probably never will, so why the hell are they trying to push it into the Linux kernel?

        • 2 weeks ago
          Anonymous

          I absolutely love Linus, and you forgot to include the explanation.
          Also Rust still doesn't have a stable ABI and probably never will, so why the hell are they trying to push it into the Linux kernel?

          >if you can't deal with the rules that the kernel requires, then just don't do kernel programming.
          >Linus Torvalds
          LMAO RUST TROONS IN SHAMBLES

          • 2 weeks ago
            Anonymous

            I absolutely love Linus, and you forgot to include the explanation.
            Also Rust still doesn't have a stable ABI and probably never will, so why the hell are they trying to push it into the Linux kernel?

            for Linus, its just that kids don't wanna learn C and wanna learn Rust because its the cool new thing. Despite google's shilling he has no delusions of Rust's safety like the cargo cult does. He just supports it because eventually the current gen of maintainers will die off. And tbh, from what I've seen of zoomers, they are all utter morons so I don't blame him going after the Rust community. They tend to be filled with troon autists but that's still better than the average CS grad these days

            Linus is such a bigot.

          • 2 weeks ago
            Anonymous

            >t. Rust Foundation Sponsored Brainlet

        • 2 weeks ago
          Anonymous

          >for Linus, its just that kids don't wanna learn C and wanna learn Rust because its the cool new thing.
          This isn't really true though. I can't think of any unis teaching Rust right now meanwhile pretty much any uni worth its salt still teaches C as well as a basic operating systems class.

          • 2 weeks ago
            Anonymous

            well at any rate zoomers are the most useless generation for programming by far

            [...]
            >if you can't deal with the rules that the kernel requires, then just don't do kernel programming.
            >Linus Torvalds
            LMAO RUST TROONS IN SHAMBLES

            god help us when Linus dies and Microsoft and Google fight over who can frick over the kernel harder

        • 2 weeks ago
          Anonymous

          >kids don't wanna learn C and wanna learn Rust because its the cool new thing.
          People don't want to learn C because it's just tedious as frick. Linus himself summarized it well: good programmers want to deal with data structures and their relations, they don't want to deal with the code itself more than strictly necessary.

          • 2 weeks ago
            Anonymous

            >because it's just tedious as frick
            And dealing with the annoying screeches of the borrow checker and forced thread safety even on single-threaded code isn't? And all the type masturbation needed to get anything done in Rust?
            >hey don't want to deal with the code itself more than strictly necessary.
            This applies more to Rust than to C and C++, that's the entire point of the article in this thread...

          • 2 weeks ago
            Anonymous

            >rust is a huge pain in the ass to deal with but also it's a crutch for brainlets
            You don't like change. Man up and admit it.

          • 2 weeks ago
            Anonymous

            >but also it's a crutch for brainlets
            Brainlets shouldn't be doing systems programming. They shouldn't be anywhere near the linux kernel codebase trying to push their brainlet language into it.
            Maybe learn an easier GC'd language if you can't deal with it?

        • 2 weeks ago
          Anonymous

          Linus completely understands why you'd use Rust and is on their side. Try living in the present

          • 2 weeks ago
            Anonymous

            >Linus completely understands
            Your screenshot doesn't seem to demonstrate this, he's talking about the safety obsession in Rust and how the unsafe parts are necessary to make it all work. Otherwise, you get a straitjacket language that can't do what C is capable of.
            Tell this to your average rustroon and you'll get incomprehensible screeching. Most don't believe "unsafe" code should be used at all.

          • 2 weeks ago
            Anonymous

            > Most don't believe "unsafe" code should be used at all.
            Yes, which is why when confronted with

            People seem to have forgotten that we need "unsafe" code to do anything useful in systems programming. It's no surprise that there's unsafe C-style code sprinkled throughout the entire standard library, that's practically a requirement.

            However, Rust is the only systems language that gives users this dangerous false sense of perfect security. Those buffer overflow CVEs from the standard library are just a consequence of their own arrogance.

            they earn their status as a… cargo cult
            If unsafe is considered harmful (TM), then the STL shouldn’t use it, Rusttards unironically act like cult members trying to explain why they need to be celibate but the Supreme Leader gets to frick four chicks a day

          • 2 weeks ago
            Anonymous

            Come back to earth and reality. He's saying how Rust does it, siloing off the unsafe bits into a small part that experts write and application developers can use without dipping into unsafe themselves, is a good thing.

          • 2 weeks ago
            Anonymous

            >a small part that experts write and application developers
            Do you even hear how ridiculous your own propaganda sounds?
            Rust is a systems programming language, not something you'd normally use for user applications. There are better languages for that that are easier to write in and with much better GUI support.
            The only reason rustroons keep pushing for Rust outside of systems programming is because it hilariously failed at it with its safety at all cost obsession.

          • 2 weeks ago
            Anonymous

            >Tell this to your average rustroon and you'll get incomprehensible screeching.
            No you won't. The trannies in your head are not real people

          • 2 weeks ago
            Anonymous

            >trannies aren't real
            Now we're agreeing. They're delusional.

          • 2 weeks ago
            Anonymous

            based and understands why unsafe exists unlike the cretins that troll IQfy

    • 2 weeks ago
      Anonymous

      You moved the goalpost from internally unsafe code to external calls

  21. 2 weeks ago
    Anonymous

    2018 was 6 years ago? Why does it feel so recent?

  22. 2 weeks ago
    Anonymous

    >rust isn't good for making cheap rushed sloppy buggy corpjank so it's bad

  23. 2 weeks ago
    Anonymous

    >getting filtered this hard by the borrow checker
    jblow once again shows off his 300 iq

  24. 2 weeks ago
    Anonymous

    >i dont understand how to do this
    >3 years later
    >i still dont understand how to do this, and im going back to python
    yeah im gonna keep using rust

  25. 2 weeks ago
    Anonymous

    >not good for game development
    >too high-level for system dev
    >too low-level and tedious for webshit
    >by laws, can't be used in most safety-critical systems because there's no standard
    >areweguiyet: no
    What's this language for again?

    • 2 weeks ago
      Anonymous

      >What's this language for again?
      Advertising to others that you are proudly transgender and have regime-approved politics.

  26. 2 weeks ago
    Anonymous

    I don't understand why gamedevs switch to Go. It's the best mix of being both fast as a language and being able to prototype rapidly.

    • 2 weeks ago
      Anonymous

      if gamedevs wanted to spend all day reinventing wheels they would still be making their own game engines

      • 2 weeks ago
        Anonymous

        >making your own engine == reinventing the wheel
        So if I wanted to make a Paradox-style game, given that Europa & Clausewitz are closed-source, which engine would I use for that?

        • 2 weeks ago
          Anonymous

          Unreal or Unity
          Unity runs many large simulation games just fine like City Skylines

          • 2 weeks ago
            Anonymous

            >Unreal or Unity
            Oh no, you're moronic.

          • 2 weeks ago
            Anonymous

            Simulation games made in those engines run better than Paradox's pieces of shit

          • 2 weeks ago
            Anonymous

            Simulation games that actually have a large workload run horribly in those engines (see: Per Aspera, Endless Legend). Additionally, their simulations aren't deterministic, which means either a brutal amount of network traffic or routine desyncs.

            Compare that with the blazing fast speed of modern Clausewitz Engine games like Crusader Kings 3. You're probably looking at older single-threaded Paradox games and not the newer ones.

            You can't make a grand strategy game in Unity or Unreal or Godot.

          • 2 weeks ago
            Anonymous

            >Endless Legend
            lol what, it's turn-based
            >You're probably looking at older single-threaded Paradox games
            I'm looking at HoI4, runs like complete dogshit
            If you want a deterministic sim you can just use integers

    • 2 weeks ago
      Anonymous

      Go is a stunted language, no generics
      No reason to use that instead of C#

      • 2 weeks ago
        Anonymous

        Wtf are you talking about? Go added generics over a year or two ago.

        • 2 weeks ago
          Anonymous

          my bad, still probably worse than C# though

          • 2 weeks ago
            Anonymous

            Nah, it's better then C# for sure.try programming in it. It is extremely trivial.

          • 2 weeks ago
            Anonymous

            >it's better then C# for sure
            Why?

          • 2 weeks ago
            Anonymous

            What’s so better about it? Honest question. No MSFT baggage?

            It doesn't follow OOP dogma.

          • 2 weeks ago
            Anonymous

            Any objective reasons?

          • 2 weeks ago
            Anonymous

            The language haa been designed to help you write faster code, plus it share's a lot of great things with C, plus the standard library is head and shoulders above other languages.

          • 2 weeks ago
            Anonymous

            What’s so better about it? Honest question. No MSFT baggage?

      • 2 weeks ago
        Anonymous

        Wtf are you talking about? Go added generics over a year or two ago.

        12 years of "people" crying about lack of generic support. 2 years of having generic support and yet hardly any use found for them that wasn't already satisfied with interfaces or the base types.

        • 2 weeks ago
          Anonymous

          >yet hardly any use found for them
          Generics aren't some experimental feature the're heavily used in many languages

          • 2 weeks ago
            Anonymous

            That can be said for a lot of features. You failed to make a case for their inclusion in Go. Let alone a point at all. Dynamic types with defined interfaces have proven to be sufficient for over a decade, and the addition of generic support doesn't seem to reflect the importance people implied it had when they where complaining about it for that decade.

          • 2 weeks ago
            Anonymous

            >Dynamic types with defined interfaces have proven to be sufficient for over a decade
            No they haven't, I need static generic data structures, so does anyone else making a game

          • 2 weeks ago
            Anonymous

            >need
            For what purpose? I strongly doubt you have a collection of arbitrary data that is so generic there is no commonality amongst the objects that their behavior can't be described in an interface. It's more likely your abstractions and control flow is terrible.

          • 2 weeks ago
            Anonymous

            Ok I have a vector of ints and a vector of bytes
            They're exactly the same thing except they contain a different data type
            How you gonna do that without generics?

          • 2 weeks ago
            Anonymous

            I fail to see why you can't just have a slice of an interface which has methods that defines the common behavior they have.

          • 2 weeks ago
            Anonymous

            ints and bytes are different data types with different sizes that need a different underlying data structure to store them

          • 2 weeks ago
            Anonymous

            That doesn't change anything. I'll write you a contrived example.

          • 2 weeks ago
            Anonymous

            Yes it does
            You can't do generic data structures with interfaces, you can only do generic dynamically dispatched behaviour

          • 2 weeks ago
            Anonymous

            I don't get what you're talking about, especially without any code examples.
            You can define a method on a slice of ints and bytes, describe the commonality between them, and utilize the interface type regardless of the underlying type. The same can be done for a slice of slices if that's what you're doing.
            https://go.dev/play/p/DJfxBLy0MfH

            This applies for things like encoding too. Even if you have different underlying types, you're still going to funnel towards some common behavior somewhere, like encoding a collection of items to a byte sequence before writing it to disk or the wire, it doesn't matter what their underlying type is as long as it has some common interface. Which you're going to need anyway if you're passing around generic types and doing the type discrimination and dispatch manually.

          • 2 weeks ago
            Anonymous

            You've gotten around this by making an interface to either an array of ints or an array of bytes
            But what if you want to make a generic data structure that could hold an int, a float, a struct, or whatever, and the underlying data structure would actually need to change based on what type it was holding? You can't do this via interfaces

          • 2 weeks ago
            Anonymous

            >You've gotten around this by making an interface to either an array of ints or an array of bytes
            You specifically said

            Ok I have a vector of ints and a vector of bytes
            They're exactly the same thing except they contain a different data type
            How you gonna do that without generics?

            >I have a vector of ints and a vector of bytes
            So that's what I used. And
            >How you gonna do that without generics?
            I showed you how.

            >But what if you want to make a generic data structure that could hold an int, a float, a struct, or whatever
            Nothing prevents you from using the interface type as the type of your struct's field.
            >and the underlying data structure would actually need to change based on what type it was holding?
            You'll have to explain why the struct "needs to change" based on what type it's holding, because that sounds like fragile and bad design.
            Again even in situations where a types size matters, that is easily abstracted out.
            And to reiterate, if you're in that situation already and not utilizing an interface, it implies you're doing the same thing somewhere anyway, but manually. There's no reason I can think of to do that instead of allowing the language and compiler to aid you here.

          • 2 weeks ago
            Anonymous

            >>I have a vector of ints and a vector of bytes
            >So that's what I used
            I'm asking you how you would IMPLEMENT a vector of ints or a vector of bytes, you're using the existing implementations

            >Nothing prevents you from using the interface type as the type of your struct's field.
            I'm assuming the interface is a tagged union in that case, so it would be the size of the biggest option. An array of interfaces to a byte or an int is going to be the size of an int, wasting memory
            >You'll have to explain why the struct "needs to change" based on what type it's holding
            Performance
            You can implement everything via dynamically typed interfaces, but you're wasting memory and execution time

          • 2 weeks ago
            Anonymous

            >I'm asking you how you would IMPLEMENT a vector of ints or a vector of bytes, you're using the existing implementations
            The same principle applies. Now the question is why you're choosing such an example. Because there are theoretical problems and real problems, and choosing to implement your own vector of ints seems like a contrived problem made up just for argument sake and I don't want to have that discussion.
            I already showed how you can have a vector of arbitrary types so long as each type within the set conforms to an interface's method set.

            >I'm assuming the interface is a tagged union so it would be the size of the biggest option
            It's tagged, but not a union. It's a type descriptor paired with the data. So if your interface implementation is a slice of ints (a pointer to an array), then an interface value holding one is the type information and the slice itself.

            >Performance
            >You can implement everything via dynamically typed interfaces, but you're wasting memory and execution time
            Without any measurements you're simply assuming. I can just as easily say the the cost of doing the discrimination and dispatch by hand is equal or more than the time it takes for the runtime to do it, if the compiler hasn't already optimized the dispatch out.
            The same can be said for memory usage. Without measurements you're just assuming.
            Considering what you've said so far, I wouldn't be surprised if your structures are suboptimal in that regard. Not to small size not being important on all architectures. Alignment typically matters more, but as always you have to measure on your target machine to find out.

          • 2 weeks ago
            Anonymous

            >I already showed how you can have a vector of arbitrary types so long as each type within the set conforms to an interface's method set.
            To clarify, you could do the same thing to implement your own vector of ints if you were inclined to. Or a vector of any collection. But again, Go has slices and arrays built in to its type system.

            >Not to small size not being important on all architectures.
            Not to mention, small size is not important on all architectures*

          • 2 weeks ago
            Anonymous

            Yeah you don't need to implement a vector yourself, but you have to implement more complex and specialized data structures yourself, I chose a vector because everyone knows what it is
            >Without any measurements you're simply assuming
            It's the way computers work. If you want a vector of something that might be an byte (1 byte) or an int (4 bytes) at runtime, it's going to be at least 4 bytes per element, which is going to be wasteful
            And dynamic dispatch is slower than static dispatch, this is fact
            >I wouldn't be surprised if your structures are suboptimal
            This feels like a strange thing to say, you're advocating for suboptimal data structures

          • 2 weeks ago
            Anonymous

            >Yeah you don't need to implement a vector yourself, but you have to implement more complex and specialized data structures yourself
            In regard to our topic, you're not making any point here. I already demonstrated that any type within Go can have methods attached to it, and those can be stored and referenced via an interface type.
            So no matter what your game objects are, you can put method on them, and no matter what type needs to store them, be it a struct, a vector, map, etc. you can do so by utilizing the interface type. This extends to function parameters as well. And moreover, your types can implicitly implement multiple interfaces and thus be assigned and passed around between any of them.

            >If you want a vector of something that might be an byte (1 byte) or an int (4 bytes) at runtime, it's going to be at least 4 bytes per element
            I already said that's not the case. It's not a union.
            >And dynamic dispatch is slower than static dispatch, this is fact
            And I already said the compiler can optimize dispatches out. If you care about performance you're likely going to implement the call stack in such a way the types can be inferred at compile time. Because you're not likely going to be utilizing reflection or other runtime dynamic features which would prevent such optimizations. It's not much different from how C++ can do the same with templated calls.

            >This feels like a strange thing to say, you're advocating for suboptimal data structures
            I'm not advocating for anything. You said these things are not possible without generics which is false. Now the topic is shifting into how it can't be done in a performant way which is also false. You also have no data to back your claim, or have any bar set.
            You can make the argument it might be slower, but you have no implementation to compare. And even if you did, without numbers you can't even say if the delta is negligible or not.

          • 2 weeks ago
            Anonymous

            >I already said that's not the case. It's not a union.
            You said it's a "type descriptor paired with the data". That's a union. What else could it be? These are the fundamental rules of reality, you either have compile time generics or you're wasting extra space accounting for any possible value. You don't need data for this, it's a logically provable fact. The same way that dynamic dispatch is slower than static dispatch, more work needs to be done at runtime

          • 2 weeks ago
            Anonymous

            You specifically eluded to the C type of union where a type is as big as it's largest type which is not the case here. For Go specifically the interface semantics can be implemented however the compiler wants, as long as it conforms to the spec.

            Regardless, you're still driving off topic. First you said it wasn't possible, now you're just saying you're not satisfied with it.

            If you want to argue about the hypothetical difference in performance, we can do that.
            Go might not be the fastest language but it's usually ranked pretty high. And it allows you to interop with C code, as well as implement functions in assembly for really-really hot paths if that's your requirement. There's also several implementations of the compiler, including ones for embedded and high performance systems.

            If we're going to pull numbers out of our ass, lets assume your game is nanoseconds slower on average. Unless you're Grace Hopper's ghost, it aint gonna matter. And I'm saying this with utmost confidence because we've had several decades of people saying shit like "you can't write games in a garbage collected language!" yet here we are where there's many many successful games without performance issues implemented in Java, C#, JavaScript, et al.
            The language is not going to be your performance bottleneck, I promise. If you write it shit enough in Go that it causes frame rate issues, you're going to write it just as shit in C.

            This is important to remember for this topic too because far too often do people get tricked into using languages like C and writing their engines from scratch and they never ever just make the damn game at all, let alone a performant one.

          • 2 weeks ago
            Anonymous

            >And I'm saying this with utmost confidence because we've had several decades of people saying shit like "you can't write games in a garbage collected language!" yet here we are where there's many many successful games without performance issues implemented in Java, C#, JavaScript, et al.
            More importantly we have the opposite case where games written in C++ from AAA studios run like absolute dogshit. The language matters less than the implementation of the game.
            A recent successful game Balatro is a Love2D game (Lua game engine) and from what I heard the implementation isn't the best, yet it runs fine.

          • 2 weeks ago
            Anonymous

            >More importantly we have the opposite case where games written in C++ from AAA studios run like absolute dogshit.
            Not really
            Many games might not hit 60 FPS but that's not because they're badly programmed

          • 2 weeks ago
            Anonymous

            >You specifically eluded to the C type of union where a type is as big as it's largest type
            That's how it HAS to work, there's literally no other way to do it
            >First you said it wasn't possible
            Generic data structures aren't possible. This is a non-generic data structure that operates on generic objects. Generic data structures need to be able to change their data representation based on the generic parameter

            You can write games in Go or C# or any garbage collected language, it's perfectly fine for many tasks, but if you want to do anything that deals with primitive data types or has high performance requirements you're going to have issues. You can't optimize interface dispatches very well unless you're willing to generate different function variants for every type

          • 2 weeks ago
            Anonymous

            >That's how it HAS to work, there's literally no other way to do it
            I cited the reference implementation that shows you exactly how it works, and I've said several times it's not a C style union. You're simply wrong.

            >I'm asking you how you would IMPLEMENT a vector of ints or a vector of bytes, you're using the existing implementations
            The same principle applies. Now the question is why you're choosing such an example. Because there are theoretical problems and real problems, and choosing to implement your own vector of ints seems like a contrived problem made up just for argument sake and I don't want to have that discussion.
            I already showed how you can have a vector of arbitrary types so long as each type within the set conforms to an interface's method set.

            >I'm assuming the interface is a tagged union so it would be the size of the biggest option
            It's tagged, but not a union. It's a type descriptor paired with the data. So if your interface implementation is a slice of ints (a pointer to an array), then an interface value holding one is the type information and the slice itself.

            >Performance
            >You can implement everything via dynamically typed interfaces, but you're wasting memory and execution time
            Without any measurements you're simply assuming. I can just as easily say the the cost of doing the discrimination and dispatch by hand is equal or more than the time it takes for the runtime to do it, if the compiler hasn't already optimized the dispatch out.
            The same can be said for memory usage. Without measurements you're just assuming.
            Considering what you've said so far, I wouldn't be surprised if your structures are suboptimal in that regard. Not to small size not being important on all architectures. Alignment typically matters more, but as always you have to measure on your target machine to find out.

            implements it as a tuple of a value's type and a pointer to the underlying value. I.e. not a C style union type.

            >Generic data structures aren't possible.
            That's wrong considering Go has generic types.
            I said originally that you don't need them, and you said it's impossible to do certain things without them which I demonstrated was not the case.
            Now you're going on about how they might use more memory in a hypothetical program that doesn't exist and we can't measure with any of the compilers. Which is moot regardless since you can do the thing you're talking about with generic type parameters in Go, the fact of the matter is that you never required them to accomplish the same ends.

            Pretty much everything you've said so far is obtuse, vague, and inaccurate. And even after being told and cited you're still not understanding things so I'm going to back out of this discussion with you.

            >More importantly we have the opposite case where games written in C++ from AAA studios run like absolute dogshit.
            Not really
            Many games might not hit 60 FPS but that's not because they're badly programmed

            At least give some examples of excuses if you're going to make that claim. Because evidence suggest that lots of AAA games don't even function properly, let alone are they programmed well or in some optimized way.

          • 2 weeks ago
            Anonymous

            >le business CRUD developer handling 2 pieces of state at a time think he's better at making video games that juggle thousands of pieces of independent interacting state at a time
            the reason video games are buggy (not unlike other software) is because they're really fricking hard to make.

          • 2 weeks ago
            Anonymous

            >video games are hard to make and they're buggy
            >this somehow means they're not programmed badly
            You sure convinced me with that one Reddit-san.

          • 2 weeks ago
            Anonymous

            what doesprogrammed "badly" mean? does it not mean worse relative to other software? my point is that you coudnt do better.

          • 2 weeks ago
            Anonymous

            Video games are terribly programmed, except when you compare them to all other software which is even worse

          • 2 weeks ago
            Anonymous

            >a pointer to the underlying value
            Having a pointer to a byte stored randomly in memory is WAY worse for performance
            >Now you're going on about how they might use more memory in a hypothetical program that doesn't exist and we can't measure
            I gave you a concrete example
            If you have a generic array that can hold a byte or an int, it's either going to have to allocate enough memory for the maximum size or it's going to be a pointer to some allocated block of memory somewhere else which is way worse
            >I'm going to back out of this discussion with you.
            This is always what bullshitters say when they're on the verge of having to admit they're wrong about something

          • 2 weeks ago
            Anonymous

            Generic does not mean dynamically typed.
            Obviously if it is a list of byte it's a block of n bytes.
            If it's a list of a larger type it's a larger block of memory.

          • 2 weeks ago
            Anonymous

            If it a list of interfaces to a byte or an int, that interface is going to be fricking huge and slow compared to just a byte. That's what you need generic data structures for
            You cannot compare an interface to a byte array or int array to an array of interfaces to a byte or an int, these are not the same thing

          • 2 weeks ago
            Anonymous

            Right, obviously the list has the interface and it's a list of some primitive type or something else.

          • 2 weeks ago
            Anonymous

            >This is always what bullshitters say when they're on the verge of having to admit they're wrong about something
            Sounds like your way to cope and/or projection. Sorry I ran out of patience with you bro.
            It just seems like you're genuinely not able to grasp the concepts so it's not worth talking to you about it.
            Remember, it's not my job to educate you, and I gain nothing if I convince you of anything. And it seems like you've made up your mind and are trying to go in circles or divert to another topic, so it's frustrating to talk to you. Sorry man, it is what it is.

            >evidence suggest that lots of AAA games don't even function properly, let alone are they programmed well or in some optimized way.
            Having bugs is a completely different ballpark to not running well, every program has bugs

            I fail to see how any program that hardly functions isn't somehow "programmed badly".

            what doesprogrammed "badly" mean? does it not mean worse relative to other software? my point is that you coudnt do better.

            >my point is that you coudnt do better
            Whether this was the case or not wouldn't change the fact or somehow excuse them.
            Me being worse at something wouldn't somehow make their results acceptable. That's a horrible argument.
            In any case it didn't convince me that they're programmed well or optimized. Neither of them.

          • 2 weeks ago
            Anonymous

            >It just seems like you're genuinely not able to grasp the concepts
            You can't grasp what I'm talking about. You don't understand how generics are fricking implemented so you're arguing about terms and false equivalencies and basically anything beside the point. You're comparing {byte[],int[]} to {byte,int}[]. These aren't the same fricking thing at all. You're suggesting that holding a pointer to a single byte is something worth considering. That's ridiculous.

            >I fail to see how any program that hardly functions isn't somehow "programmed badly".
            All programs have bugs, there's no game released that "hardly functions"

          • 2 weeks ago
            Anonymous

            Actually laughed at the irony of this post. I suspected you were trolling and this part specifically confirmed it
            >All programs have bugs, there's no game released that "hardly functions"
            GG you tricked me.

          • 2 weeks ago
            Anonymous

            >I suspected you were trolling
            I'm not trolling. You're being a typically confident ignorant, close-minded idiot and refusing to engage with any facts. You don't know and you don't need to know, because you know everything despite knowing nothing. You asked what you needed generic data structures for, I told you, and then you showed me an example of something that wasn't equivalent and said you'd solved the problem. Are you being ignorant on purpose because you have some bias towards Go, or is this just stupidity?

            Name a single AAA game that "barely functions"

          • 2 weeks ago
            Anonymous

            >You're being a typically confident ignorant, close-minded idiot and refusing to engage with any facts.
            Bro, I replied to you like several times. You're not even being fair. I'm not reading the rest if you're gonna act this way. It just reinforces my judgment that it's not worth it.

            Every AAA game does it just to get their games to run

            That's a generalization that can't be substantiated. You're clowning if you think all AAA games are releasing in some optimized state.
            Which isn't the argument regardless.
            The original point is that the timing difference between languages is not likely to be the primary cause of your suboptimal performance. Everyone jumping out of the woodwork to defend AAA games as if this will change that fact.

            literally every game using unity is a direct benefactor of this fact. the engine is very optimized so that people can do scripting on top of it.
            likewise for unreal.
            and of course every single custom engine.
            go watch a siggraph or gdc talk bro.

            That changes nothing. An optimal engine doesn't automatically equal an optimal game. You can surely find countless examples of people using an engine poorly.
            I like the game The Citidel, it uses the Unreal engine. It's comparable to Marathon in terms of looks and gameplay.
            Yet randomly sometimes a level will load and you'll get single digit FPS. Sometimes you don't.
            This isn't the engine's fault, the game developer is likely doing something wrong on top of it and tanking performance.
            So not only did he not write the engine, nor optimize it, he managed to take an existing engine and have bad performance arbitrarily too. So what difference did it make?
            This happens in AAA studios all the same.

          • 2 weeks ago
            Anonymous

            >Bro, I replied to you like several times
            So? Your replies were close minded and fallicious. I try to point this out to you and you're like "nah bro not engaging anymore, this is over". How willfully ignorant of you. I wasn't even rude about it

            >You're clowning if you think all AAA games are releasing in some optimized state.
            Substantiate this

          • 2 weeks ago
            Anonymous

            >refusing to engage with any facts
            >>Bro, I replied to you like several times
            >So?
            Are you actually moronic?

          • 2 weeks ago
            Anonymous

            You replied to reiterate the fallicious things you said, while ignoring what I said because I was correcting you. You don't want to see the other side of the argument

          • 2 weeks ago
            Anonymous

            I can't tell if you're joking or not. The irony is too thick.
            Regardless, if you're going to be this persistent let's get to the bottom of this.
            You should either
            1) remain confident in your own perspective and walk away knowing you're right
            2) look into an alternative on your own instead of asking me specifically to change your mind when that hasn't worked so far
            You're clearly not understanding what is being said, you also don't seem to want to change your mind, I've made it clear you're a pain to talk with, and you're still pestering me to talk with you.
            Sorry if I hurt your feelings or whatever, I'm just being honest with you. If you're seriously interested in the topic, look into it on your own time or ask someone else. There appears to be at least 3 other people replying to you and they didn't make any progress either, maybe someone else will continue the chain.

            yes, i agree indie games are sometimes badly optimized, this is pretty obvious given that they are often made by people who aren't even programmers.
            >This happens in AAA studios all the same.
            this part makes absolutely no sense. the only performance-related thing you can criticize AAA games for is the shader compile stutter. and even then, to be fair, this is a mix of modern graphics API being truly braindead and developers not wanting to use ubershaders because they sometimes just can't effort the perf or flexibility loss.
            there is very little other software that comes even remotely close to AAA games in terms of how well it is optimized.
            [...]
            classic rust mentality. "you're not supposed to want that"

            You're reducing things too hastily and then generalizing too. Shaders are not the only thing that could cause performance issues and not all studios are going to produce optimal works. I can't believe I have to write something that obvious.
            And again none of this has to do with the original point that the difference in language isn't going to be the significant factor in your game's performance. The point made was that even AAA games written in C++ can have bad performance. Are you really trying to argue that can't be true? I'm not convinced.

          • 2 weeks ago
            Anonymous

            >2) look into an alternative on your own instead of asking me specifically to change your mind when that hasn't worked so far
            Just listen to what I am saying you stubborn idiot
            Let me give you a recap:
            I claim you can't do <Byte,Int>[] efficently in a language with no generics
            You say, yes you can, just do <Byte[],Int[]>
            These are not equivalent. Do you understand this?
            > I'm just being honest with you
            Nothing about what you're saying is honest. You are incredibly pompous and downright unwilling to engage with anyone that says anything that contridicts what you believe.

          • 2 weeks ago
            Anonymous

            >difference in language isn't going to be the significant factor in your game's performance
            you need a language that gives you low-level control over memory and has no gc. just because some games have manged to scrape by without this, like minecraft (still experiencing perf issues to this day despite their voxels being insanely low-res) doesn't mean that it is not true in general. in general, you would prefer a high performance real-time language.
            of course, you can write slow c++ if you're bad at programming or just don't care, but the perf ceiling is way-way-way higher than in any managed language.

          • 2 weeks ago
            Anonymous

            You're not wrong.
            I'm just saying game developers don't require such a language and that using such a language isn't a guarantee that they'll have a fast game either.
            The other Anon is acting as if a few bytes or ns difference is going to be the biggest perf concern in their game when it's extremely unlikely.

            As an aside, I don't like the dogma being pushed since it can stifle game development, especially for amateurs. They get told they have to use XYZ when ultimately it wouldn't practically matter for their game and audience. And even the AAA studios aren't immune to perf problems when using things like Unreal and C++. It's important to mention these things sometimes.

            >2) look into an alternative on your own instead of asking me specifically to change your mind when that hasn't worked so far
            Just listen to what I am saying you stubborn idiot
            Let me give you a recap:
            I claim you can't do <Byte,Int>[] efficently in a language with no generics
            You say, yes you can, just do <Byte[],Int[]>
            These are not equivalent. Do you understand this?
            > I'm just being honest with you
            Nothing about what you're saying is honest. You are incredibly pompous and downright unwilling to engage with anyone that says anything that contridicts what you believe.

            You've said this already, and just like before with multiple things your recollection is inaccurate.
            Your recap is a misconstruction based on your misinterpretation.
            It doesn't matter how many times you repeat it, and clearly my clarifications don't matter either since you're still misunderstanding.
            You have an idea in your head of what was said and how things work, but they're not what was said nor how they work. But you're acting as if that's the case. Do you see why that kind of discussion leads in circles and goes nowhere?

            You're also claiming I'm not willing to engage for reasons you've made up, and doing so after I engaged with you for several posts.
            Writing your speculation, stating that I'm not being honest with you, might convince yourself, but that's all it will do. It doesn't make something a fact.

            In any case, the answer is "no". You're going to have to do your own research on your own time or ask someone else.
            All you're going to get from me is meta commentary, which appears to be frustrating you, so it's not wise to engage with me either.

          • 2 weeks ago
            Anonymous

            yes, you can make a game without a systems programming language, but it will be a lot slower than what is possible.
            if you make a game with a systems programming language, it is highly likely it will be less slow unless you're very bad at programming.
            all non-trivial games, no matter the language they're made in, will have to be optimized to fit in frame budget. whether it is by cutting features (minecraft runs on a 20Hz tick and has 1 meter voxels) or by writing optimized code (see https://www.youtube.com/watch?v=6BIfqfC1i7U)

            in the end it boils down to this boring set of statements.

          • 2 weeks ago
            Anonymous

            >Paragraphs and paragraphs to say absolutely nothing
            Here is your example
            https://go.dev/play/p/DJfxBLy0MfH
            Your example isn't equivalent to the problem I presented. In the problem I presented, without generic data types, you need an interface structure which contains a tag and either a union or the pointer to the data somewhere. The first option being inefficent, the second option being extremely inefficent. There is no way around this. This is why generic data types are a useful feature for a language to have

            Honest people talk to each other like human beings. You are talking to me like a pompous narcissist so convinced he is right that he doesn't even need to bother listening to anyone who disagrees. Your position on game development is even more ridiculous - you have absolutely no idea how games are developed, yet you confidently claim they're badly programmed because you saw a bug

          • 2 weeks ago
            Anonymous

            I'm not reading that. I don't know why you think I'm going to engage with the technical discussion after stating several times I won't, including the post you replied to.

          • 2 weeks ago
            Anonymous

            We didn't even get started on a "technical discussion", you literally dipped the moment the first disagreement arose
            Is this how you talk to everyone? Can't imagine what it would be like working with you at a job, do you just pretend you're better than everyone and know everything?

          • 2 weeks ago
            Anonymous

            I appreciate that you write out the projections, it makes it very transparent and provides useful insight. I'm not kidding. The psychology aspect of this place makes reading rants worth it. Like a kind of exercise.

          • 2 weeks ago
            Anonymous

            I'm not the guy clamming up and saying "I refuse to engage" over one of the most minor disagreements ever
            It's not like you even said anything particularly foolish, generic interfaces are suitable for most situations after all, but when you need the performance you need real generic data structures

          • 2 weeks ago
            Anonymous

            The claim was this

            That can be said for a lot of features. You failed to make a case for their inclusion in Go. Let alone a point at all. Dynamic types with defined interfaces have proven to be sufficient for over a decade, and the addition of generic support doesn't seem to reflect the importance people implied it had when they where complaining about it for that decade.

            which you argued against here

            >Dynamic types with defined interfaces have proven to be sufficient for over a decade
            No they haven't, I need static generic data structures, so does anyone else making a game

            but now you seem to agree with me.

            You're changing the narrative by saying your claim was
            >I claim you can't do <Byte,Int>[] efficently in a language with no generics
            when efficiency was not part of the original claim, and was something I pointed out earlier.

            You specifically eluded to the C type of union where a type is as big as it's largest type which is not the case here. For Go specifically the interface semantics can be implemented however the compiler wants, as long as it conforms to the spec.

            Regardless, you're still driving off topic. First you said it wasn't possible, now you're just saying you're not satisfied with it.

            If you want to argue about the hypothetical difference in performance, we can do that.
            Go might not be the fastest language but it's usually ranked pretty high. And it allows you to interop with C code, as well as implement functions in assembly for really-really hot paths if that's your requirement. There's also several implementations of the compiler, including ones for embedded and high performance systems.

            If we're going to pull numbers out of our ass, lets assume your game is nanoseconds slower on average. Unless you're Grace Hopper's ghost, it aint gonna matter. And I'm saying this with utmost confidence because we've had several decades of people saying shit like "you can't write games in a garbage collected language!" yet here we are where there's many many successful games without performance issues implemented in Java, C#, JavaScript, et al.
            The language is not going to be your performance bottleneck, I promise. If you write it shit enough in Go that it causes frame rate issues, you're going to write it just as shit in C.

            This is important to remember for this topic too because far too often do people get tricked into using languages like C and writing their engines from scratch and they never ever just make the damn game at all, let alone a performant one.

            >Regardless, you're still driving off topic. First you said it wasn't possible, now you're just saying you're not satisfied with it.
            Not to mention the disagreement you're hung up about, seems to stem from a reply you made to another Anon, but you're asserting it was me and getting mad at me for it.

            >but when you need the performance you need real generic data structures
            You don't "need" them to have performant programs. This is yet another vague statement about nothing. No context, no metrics, nothing.

            I'm not even sure what you're frustrated about. I have doubts it actually relates to our discussion.
            If you want to talk about it, I'd rather read that.

          • 2 weeks ago
            Anonymous

            The original claim was I need static generic data structures
            Because in the real world, in the programs I write, I can't have an array of bytes where every byte is wrapped in a virtual interface, it's way too inefficient on space and performance

          • 2 weeks ago
            Anonymous

            And your claim was incorrect. You don't "need" them. You seem to think you do, and that's where we disagree. You also seem to think there's only one way to implement such semantics which isn't the case.

          • 2 weeks ago
            Anonymous

            How do you know what I need or not? Can you read my mind?
            There is one practical way to implement it for a primitive type, a tagged union. Implementing it as a tagged pointer to a specifically allocated block of memory just to contain one primitive is technically another way to do it yes, it's just so impractical it's not even worth entertaining the thought. And by "primitive" I mean basic data types like byte, int, float, etc. It's fine if it's an actual object being pointed to

          • 2 weeks ago
            Anonymous

            >How do you know what I need or not?
            The better question is, without measuring it, how do you know? You're claiming it's not performant enough but present no metrics and no implementation to compare. It's a baseless claim along with requirements that are not presented.
            >There is one practical way to implement it
            You learned about one implementation in this very thread, today, and now you're claiming there's one way to do it. You're ignoring compile time elision as well.

            Your entitled to your opinion, but at the end of the day you did not convince me that generic types are a requirement for game development. Without any data to back you up, you're just saying you need them because of some imaginary benchmark you've made up in your mind. "that's just how computers work", that's not how engineering works. Either you have the proof that it can't render frames fast enough for your target, or you don't.

          • 2 weeks ago
            Anonymous

            >You learned about one implementation in this very thread, today
            I didn't learn about it today, it's obvious, it's just like I said, not practical enough to consider
            Compile time elision is very limited in what it can do, it's not a real solution
            >without measuring it, how do you know?
            I have a data structure for a game used for AI that is full of small packed arrays, vector, hash tables, skip lists, etc. that uses bytes and shorts and ints wherever possible to save space because it's about 100mb. If I didn't use generic data structures it'd be over 1GB. Is that good enough for you?

          • 2 weeks ago
            Anonymous

            Until you have real numbers from a real instance, it is what it is, pulling numbers out of your ass. It's baseless, made up numbers in a made up language that you don't have a working implementation in. Anything else is just self-convincing.
            It doesn't even address the fact your requirements aren't stated. Even if we assume it's less optimal, the question is if it's within the window of acceptance. Can you make a game in the language and can the game run on the specs you intend. Most likely.
            The reason you're saying it won't boil down to "trust me dude", and "I can't think of any other way to implement this so I just assume it won't work". As well as a potential unrealistic standard like trying to get the thing to run on ancient hardware or something esoteric like that. Which at least would be somewhat valid.

          • 2 weeks ago
            Anonymous

            >Until you have real numbers from a real instance
            That is literally a real number, I didn't pull it out of my ass, that's how much memory it takes right now, not speculative
            >your requirements aren't stated
            I consider using 1gb of memory on the user's PC instead of 100mb unacceptable

          • 2 weeks ago
            Anonymous

            Obviously I meant the 1GB figure, not the 100. Unless you're saying you have 2 implementations and did compare them.
            If that's the case, you should post the latter because I'm willing to bet you're doing something horrendously wrong to get such a delta. Especially if we're talking about Go which DOES have generic types that you can use if somehow that proved to reduce the memory significantly.

          • 2 weeks ago
            Anonymous

            >Obviously I meant the 1GB figure, not the 100
            It's being able to do simple multiplication, I have a bunch of data that's stored in 1 or 2 bytes, if they were expanded out to more than 16 bytes as a generic interface would need to be then it's going to be at least 10 times bigger
            I'm not using or crticizing Go, I'm just saying you need generic data structures for things like this lest you either rewrite things over and over again for different data types of you take an efficiency hit

          • 2 weeks ago
            Anonymous

            So the numbers aren't real...and doesn't even have anything to do with the language we're talking about.
            Didn't implement anything, didn't test anything, didn't measure anything. Just came up with some scenario and asserted it to be generally true.
            The only reason I was asking was because I thought you had a real problem you didn't understand and could use real help with it. But you're just making shit up to argue about for no actual reason. That's wild.

          • 2 weeks ago
            Anonymous

            >So the numbers aren't real
            If you have an array of bytes (1 byte)
            And you need to change it into an array of generic interfaces (between 8 - 16 bytes on a 64 bit system)
            You can do some simple math and see that you've increased the size of your array 8-16 times
            These are facts, there's no speculation
            >I thought you had a real problem you didn't understand
            Please be honest instead of patronizing, I understand literally everything about this problem, you just want to defend your opinion that interfaces are good enough for any problem
            They're good enough for most problems but not all of them

          • 2 weeks ago
            Anonymous

            The math being correct has no bearing if we don't even know what the implementation is being written in, let alone how it was compiled. This is the entire point of why you measure things. What you're doing is the equivalent of reading a C++ function and trying to tell me what instructions it will compile to and how much time those things use on a specific CPU. The issue here is that without actually running it through the compiler, you're speculating. You don't even know which compiler is being used, which optimizations are being performed, etc. This is why it's important to have REAL numbers, not made up statistics. What you're doing is, yes, actually, speculation. How you're still arguing that is baffling.

            >Please be honest instead of patronizing
            You're the one being dishonest. You ask and ask for me to engage with the problem when it turns out there was no actual problem. You just made it up. And asked me to engage not because you needed any kind of help, then for what reason? You finally get what you've been asking for and then get mad about it and call it patronizing.

          • 2 weeks ago
            Anonymous

            >if we don't even know what the implementation is being written in
            It doesn't matter because that's literally the only way to represent it on a computer
            The only way it gets smaller is if you don't use your generic data structure to contain types larger than a specific size, but give we're talking about something as ubiquitous as an array that's not that case
            You're acting like this is black box magic, it's not

            >You ask and ask for me to engage with the problem
            I never said there was a problem, I'm just trying to tell you there is indeed a use for generci data structures

          • 2 weeks ago
            Anonymous

            It 100% matters. Without knowing how the program is even going to execute we don't know shit about it. The numbers you're inserting are literally made up. You have no idea how much memory it's going to use at runtime because you never executed it. You're just assuming some worst case scenario because it's what you assume to be the case, in some hypothetical language. That's nonsense.

            >I never said there was a problem, I'm just trying to tell you there is indeed a use for generci data structures
            I never said there was no use for generic data structures. I said that Go did not need them for over a decade and now that it has them hardly anyone uses them despite the disproportionate bemoaning.
            If there was no real problem to solve and you didn't care to learn about the language, I don't know why you were so incessant on asking for answers to things you have no experience nor problem with. I assume it was just to pass the time?

          • 2 weeks ago
            Anonymous

            >Without knowing how the program is even going to execute we don't know shit about it.
            You do
            There are logical constraints the language must obey
            If you're using your generic array to store 16 byte numbers, each element must be 16 bytes, even when that generic array is just storing 1 byte numbers. There is no way around this
            >I never said there was no use for generic data structures. I said that Go did not need them
            Fair enough then
            >I don't know why you were so incessant on asking for answers
            Never asked for answers, I was saying that generic data structures are useful

          • 2 weeks ago
            Anonymous

            >There are logical constraints the language must obey
            >If you're using your generic array to store 16 byte numbers
            This is a constraint you are imposing. You made this number up. I don't know why I have to point this out since the source is you.
            You have considered 1 approach to solve the problem and you have decided it is a generic one, and that the only possible way to solve it otherwise would be with a tagged union. Not even humoring the idea of any other possibility nor even giving anyone else the possibility to implement an alternative approach themselves, because there actually is no implementation in the first place. It's an incredibly unfair and baseless argument.
            There is no code to review and apparently we haven't even settled on a language, so what rules it must "obey" are written in the nonexistent spec. But you've somehow nailed down the specific implementation details in your mind. You're making up these constraints and not even considering there could be an alternate approach that doesn't utilize either method for such a task. While also making assumptions about the width of the data type in hypothetical-lang.

            >Never asked for answers
            How about you start being honest. Remember when you kept complaining about not being engaged with? If you want to be pedantic, go for it. But you know, and I know.

          • 2 weeks ago
            Anonymous

            >This is a constraint you are imposing
            It's a constraint imposed by the way interfaces work
            I should have said 8 bytes though
            >ou have considered 1 approach to solve the problem and you have decided it is a generic one, and that the only possible way to solve it otherwise would be with a tagged union
            I'm not talking about just a tagged union, I'm talking about any approach
            >Remember when you kept complaining about not being engaged with?
            That's not because I wanted a question answered

          • 2 weeks ago
            Anonymous

            Originally you asked how to implement something without using generics. Performance was not mentioned yet. An interface solution was presented and explained. As well as how it could be adapted to follow up questions.
            You mentioned that performance is required for game development to which I roughly said "so what" because the difference in performance is likely negligible. You have conflated the 2 concepts and still have not separated them despite the fact you and I both mentioned them several times now.

            You don't need generics to solve the problem you presented.
            Go has generic support so if you want to solve it that way you can.
            In either case, it's unlikely that either solution would be unsuitable for use in a game, there is no implementation or evidence suggesting otherwise.
            You proceeded to assert that there's only 1 way to solve this and that it would be unsuitable because of numbers you made up for your own arbitrary requirements which aren't even directly relevant. (We should be caring about render time, not memory usage, and the memory usage figure is made up anyway.)
            As I said before if you use the generic approach in Go the same as you are in your existing language, the difference in performance will be negligible. And even if you use the interface approach it is likely still going to render at an acceptable framerate, it's not unsuitable for games in either case, and you're not even humoring a potential third case where the code is written in an entirely different way than the original implementation's design (which was never presented nor was an alternative).

            >That's not because I wanted a question answered
            Sure bud. You just ask questions rhetorically. Totally not seeking attention after projecting "narcissist".

          • 2 weeks ago
            Anonymous

            >he difference in performance is likely negligible
            The difference in perfomance between just a number and a virtual interface to a number is huge, that'd definitely be unsuitable for a game
            Virutal interfaces are ok for objects, for numbers definitely not
            I haven't used Go but if it has inbult array types I'm pretty sure they contain the actual number and not an interface to it
            >you're not even humoring a potential third case where the code is written in an entirely different way
            This is kind of like the "do it the Rust way" fallacy
            Sometimes there's only way to do something well, like an array. There aren't multiple ways to implement an array, an array is an array
            >You just ask questions rhetorically
            Yes, I'm trying to convince you that generic data structures are useful

          • 2 weeks ago
            Anonymous

            >The difference in perfomance between just a number and a virtual interface to a number is huge,
            That's it. You won. I quit.
            You're still refusing to acknowledge there's more ways to solve the problem than just one. Despite presenting one yourself.
            I concede.

          • 2 weeks ago
            Anonymous

            >You're still refusing to acknowledge there's more ways to solve the problem than just one.
            The interface problem?

          • 2 weeks ago
            Anonymous

            Who cares. Just use C++. It's faster.

          • 2 weeks ago
            Anonymous

            Your fundamental problem here is you're arguing from a position of ignorance, yet you think you know more than anyone else about the topic. It was the same when you were talking about games. You don't know how games are made, but you KNOW they're badly programmed, and nobody can possibly know more than you about this topic.
            You do not know how interfaces are implemented by compilers. You're assuming I also don't, so I can't make any claims about this because it's speculative. I know how compilers implement interfaces, I know the constraints they must obey. It would take a lot of words to explain it completely, especially to someone who doesn't want to hear the answer, but the short of it is what I have said: If a generic array must contain elements as large as the word type, its elements cannot be smaller than the word type. It is not possible.

          • 2 weeks ago
            Anonymous

            What part of "I concede" don't you understand.
            You've convinced me that in engineering there's only 1 way to solve a problem and I won't consider any other possibilities. It worked for me once in one language so it's probably the only way to implement it correctly or performantly in every language. There's no need to actually test theories when you can just trust your gut and stick with designs you know will work.
            Not even reading what you wrote for the same reason, I just have an intuition I'm right and don't have to back it up in any way. That's what I've learned.

          • 2 weeks ago
            Anonymous

            No, there's many ways to implement it, there's only a few that are actually good, and they all must obey the constraint I just laid out for you
            This isn't my gut feeling, this is cold hard logic
            Have you made a compiler that implements interfaces? Have you attempted to optimize them?

          • 2 weeks ago
            Anonymous

            Go has had generic support for multiple years now so there's no reason you have to use interfaces in your structure, but you keep saying "no dude trust me there's no other way to implement it". It's a constraint you made up and it's still the only strawman you want to argue against despite knowing up front that Go supports doing it the exact same way you're already doing it, which is good enough in that case but somehow not performant enough in the other case.
            What do you even want me to say at this point? How do I take the L?

          • 2 weeks ago
            Anonymous

            Go probably has native arrays that contain the actual value, not an interface. Pretty much all languages do this. I was just talking about some theoretical generic array you would make with interfaces

          • 2 weeks ago
            Anonymous

            >I was just talking about some theoretical generic array you would make with interfaces
            Which is exactly my point, it's a theoretical made up problem and you're choosing 1 specific solution as if there's not other ways to solve it. If you don't want to pay the overhead price of interfaces then simply don't use them. Again there's 3 possibilities here but you only ever harped on 1. And constantly deflected to other topics entirely like how every AAA game is guaranteed to be pristine. There's not even a chance even 1 of them could have faults. Not a single one.

          • 2 weeks ago
            Anonymous

            I choose the simplest example to avoid misunderstanding, given how many misunderstandings there are already
            say you make a struct that contains generic member + one other member
            and you make an array of that struct
            suddenly you have the same problem even if it's a "native" array, the generic member of the elements has the be the size of the biggest possible member
            Have I run into this before in real life? Yes

          • 2 weeks ago
            Anonymous

            The issue you're still not seeing is that you're not even considering other approaches. You posit that it must be either an array of tagged unions of {type;value}, or an array of C style unions. And this is all predicated on your design's implementation details for your game objects in your engine which nobody know anything about. Realistically we don't know if these objects even need to be paired in this way, you're just asserting it as such and with no code examples and no clear requirements or goals, how is anybody supposed to present a counter case.
            You keep saying the only way to solve this in a language like Go is to have a slice of interfaces which is just one possibility. The other is to utilize generics the same way you're doing in your existing project. Yet another is to just design the program in a different way if possible that obviates this theoretical constraint you've imposed.

            This detail has almost nothing to even do with the overarching topics, which were that Go got by without generics for a decade, and even without them you could make a playable game with it. The fact that you disagree with that premise doesn't preclude the scenario where you make a game in Go with generics or even some other approach that is equally as performant given with respect to differences between the language's compiler/runtime/spec.

            I really have no idea what you're arguing that is real and not abstract concepts you've inserted into the argument. There's nothing tangible at all.

          • 2 weeks ago
            Anonymous

            I'm arguing for the utility of generic data structures, I don't give a shit about Go, according to you it even has generic data structures so what's the issue there?
            Do I need to literally explain everything down to the most minute detail or you'll disagree with me? Do I need to spend a page explaining exactly why interfaces must be over a certain sizes regardless of their implementation, and then spend another page explaining why they're the best solution for my problem?

          • 2 weeks ago
            Anonymous

            >I don't give a shit about Go, according to you it even has generic data structures so what's the issue there?
            That has been both my point and question to you for nearly the entirety of our discussion. You keep pretending like the interface solution is the only solution and then go on about how they're not sufficient for you specifically in your specific project with your specific design, to which the question arises why are the other solutions not viable, one of which includes using generics. Every time I tell you "that's not the only way to solve the problem" you just go "trust me dude, it really is". So it's even worse when you present them as a solution after refusing to acknowledge them otherwise.

            Since we're on page 9 and the thread is concluding. I'll admit my perspective. I suspect you're either trolling, or you're yet another blub programmer who only has 1 worldview.
            In either case, I got severely owned by feeding into it.

          • 2 weeks ago
            Anonymous

            Go has generic data structures, so clearly there's no problem with Go
            If you're writing code where space or performance is important, runtime generics might not be enough, we've been over why. In these cases "use a different approach" is literally copy and pasting code to change the data type, which gets pretty tedious
            I think the simplest example is math functions, like do you want to copy and paste math functions 10 times for each number type? It's a pain in the ass

          • 2 weeks ago
            Anonymous

            This is why I mentioned seeing the output of the compiler.
            A generic math function is probably going to generate a finite set of fixed functions in cases where the calls are few and inferrable at compile time, and if you find that to not be the case, code generation in Go is particularly easy using the standard library and the standard tool `go generate`.
            The latter of which might be considered a pain in the ass if you have to write the template yourself (it's no different than any other metaprogram), but lots of generators for Go already exist.
            For something like math the standard library likely has you covered anyway.
            And I mentioned before that it may be such you can better abstract things to not even require so many type dependent code paths. Without seeing real code nobody can say for certain. As-is, I have no idea what you're using your ints and bytes for, let alone their code paths.

            >https://go.dev/play/p/DJfxBLy0MfH

            >
            type (
            ints []int
            bytes []byte

            common interface {
            count() int
            }
            )

            what is this construct called? what does it do? I can see it's a sort of list of type definitions and the types in it can be used independently, i don't understand why it's all within one "type" thing

            It's just a typedef block. It's equivalent to this
            type ints []int
            type bytes []byte
            type common interface {
            count() int
            }
            )

            Go allows this for I think everything except functions. E.g.
            var x int
            var y int
            var (
            x int
            y int
            )

            Same for `const`, etc.

          • 2 weeks ago
            Anonymous

            >A generic math function is probably going to generate a finite set of fixed functions
            If your compiler is generating multiple copies of a data type or a function, guess what, that's not runtime genericsm, that's compile time genericism
            And using code generators is cope, that's shit the language is supposed to do for you, but you don't need to defend Go I already told you I'm not saying it's bad
            >it may be such you can better abstract things to not even require so many type dependent code paths
            This is baby advice
            Sometimes the problem just boils down to "I need to do the same function or have the same data structure except using a different type" and that's as simple as it gets
            You copy and paste the code, you cope by finding an inferior solution or you use generics
            I used languages without generics for a very long time, I konw all about the coping you do to avoid them

          • 2 weeks ago
            Anonymous

            >If your compiler is generating multiple copies of a data type or a function, guess what, that's not runtime genericsm, that's compile time genericism
            Stating the obvious for some reason. Are you implying it's somehow not sufficient?

            >And using code generators is cope
            Maybe in languages with bad tooling and syntax.

            >This is baby advice
            It's good for you. Arrogance is a sign of stagnation in programmers. Thinking you know a solution precludes you from even thinking about alternatives and you've certainly demonstrated that stubbornly today. Be careful with that if you care to.

          • 2 weeks ago
            Anonymous

            >Are you implying it's somehow not sufficient?
            I've been saying compile time genericism is useful, that's my whole point
            But it's an inferior solution, because usually the compiler can't know what can be made static or not, unless the language has some special compliation model where everything is compiled at once

            >Arrogance is a sign of stagnation
            You're being arrogant telling me I just haven't thought about the problem hard enough
            Like if I disagree with you, clearly I must be less experienced. I've been working around not having generics for like 15 years

          • 2 weeks ago
            Anonymous

            >Maybe in languages with bad tooling and syntax.
            I should clarify that Lispers probably have opinions on this topic too.

            >Are you implying it's somehow not sufficient?
            I've been saying compile time genericism is useful, that's my whole point
            But it's an inferior solution, because usually the compiler can't know what can be made static or not, unless the language has some special compliation model where everything is compiled at once

            >Arrogance is a sign of stagnation
            You're being arrogant telling me I just haven't thought about the problem hard enough
            Like if I disagree with you, clearly I must be less experienced. I've been working around not having generics for like 15 years

            I didn't say you were less experienced and even implied the opposite by saying stagnation. Of course you are one minded, stubborn and take offense to it...

          • 2 weeks ago
            Anonymous

            You're saying I'm arrogant and stagnant
            I'm not, I just know this problem inside and out
            I know the workarounds. The fact that workarounds exist doesn't change the fact that it's just fricking better to have generic code sometimes. Sounds like you'd do anything rather than admit that

          • 2 weeks ago
            Anonymous

            Poetically ironic as usual. It was at least half nice talking to you. Goodbye.

          • 2 weeks ago
            Anonymous

            Bro you've been talking to me this entire thread about things you don't understand and I do while acting like you know better

          • 2 weeks ago
            Anonymous

            lol

          • 2 weeks ago
            Anonymous

            You don't know how generics are implemented and you don't know what they could possibly be used for
            Yet you think you can lecture me on them

          • 2 weeks ago
            Anonymous

            Bro you've been talking to me this entire thread about things you don't understand and I do while acting like you know better

          • 2 weeks ago
            Anonymous

            Most of the time you were confused by my brief explainations because you don't understand the topic very well
            You never considered your world view might be wrong, and there might be a use for this programming feature, all you tried to do was convince me I was wrong, like a religious zealot

          • 2 weeks ago
            Anonymous

            You've misinterpreted and misconstrued everything I said. And are continuing to do so.
            Whether it was intentional or not, I'm not sure. But I think not considering what you wrote.

          • 2 weeks ago
            Anonymous

            >But I think not
            I have a confession to make

          • 2 weeks ago
            Anonymous

            Oh, so you do think generics are useful? Then what the frick were you arguing about?

          • 2 weeks ago
            Anonymous

            I never said they weren't. I said Go didn't need them for over a decade and hardly anyone uses them.
            You're the one putting words in my mouth the entire way. You were the one making things up and arguing about it, half of my posts are pointing that out while you just get more frustrated at your own strawman.

            >But I think not
            I have a confession to make

            Not like this bros.

          • 2 weeks ago
            Anonymous

            >I never said they weren't
            Then what the frick are you arguing about? I said there was nothing wrong with Go like 50 posts ago. Are you having trouble reading?

          • 2 weeks ago
            Anonymous

            I wasn't arguing, you were the one asking me to engage with your posts while I kept saying you're not making sense and going in circles over multiple things you made up. I pointed this out constantly which is why I thought you were trolling.

          • 2 weeks ago
            Anonymous

            >you were the one asking me to engage with your posts
            Yeah I said that like 100 posts because you turned into a pompous moron as soon as I pointed out you were wrong
            Then you tried to convince me I don't need generics for no apparently reason

          • 2 weeks ago
            Anonymous

            You pointed out I was "wrong" on an argument you made up.
            I wasn't trying to convince you that you don't need generics, you specifically asked how to do something without using generics and I wrote you an example to show you how. Then you said something like "I wasn't expecting my questions to get answered lol".

          • 2 weeks ago
            Anonymous

            I pointed out that your example wasn't equivalent and it didn't answer the question
            You spent all this time arguing with me about the utility of generics but turns out you don't even disagree
            What's the point

          • 2 weeks ago
            Anonymous

            The behavior is equivalent, the performance may not be depending on the language. You're argument was that this preclude any other solution somehow which was not my argument in the slightest.

            >What's the point
            There was no point, you made up an argument and I asked you the same thing because you were simultaneously proposing a solution to the problem while saying one doesn't exist.

          • 2 weeks ago
            Anonymous

            >The behavior is equivalent,
            its not

          • 2 weeks ago
            Anonymous

            What difference does it make if you have the option for either. We're back to square one.

          • 2 weeks ago
            Anonymous

            I already answered it ages ago
            That's the problem, you don't get what I'm saying
            I mean I could be clearer but I'd have to write pages and pages, I'm sick of typing already

          • 2 weeks ago
            Anonymous

            The bottom line is this. You can use generics to solve this problem, and you seem to want to, and you can. So you should. Why you refuse to acknowledge this possibility, I don't know.

          • 2 weeks ago
            Anonymous

            > I said Go didn't need them for over a decade and hardly anyone uses them.
            uses them in Go even now that it has them*

            I wasn't arguing, you were the one asking me to engage with your posts while I kept saying you're not making sense and going in circles over multiple things you made up. I pointed this out constantly which is why I thought you were trolling.

            To clarify this is also why I kept saying you're misunderstanding and misconstruing thing. And as usual being ironic. Talking about reading problems now, very funny.

          • 2 weeks ago
            Anonymous

            yes, i agree indie games are sometimes badly optimized, this is pretty obvious given that they are often made by people who aren't even programmers.
            >This happens in AAA studios all the same.
            this part makes absolutely no sense. the only performance-related thing you can criticize AAA games for is the shader compile stutter. and even then, to be fair, this is a mix of modern graphics API being truly braindead and developers not wanting to use ubershaders because they sometimes just can't effort the perf or flexibility loss.
            there is very little other software that comes even remotely close to AAA games in terms of how well it is optimized.

            Video games are a meme and productive people build more important stuff.

            classic rust mentality. "you're not supposed to want that"

          • 2 weeks ago
            Anonymous

            >effort the
            afford the

          • 2 weeks ago
            Anonymous

            >programmed well or optimized. Neither of them.
            you don't know how a video game works. lmao.
            if you did, you would know that people go to insane lengths optimizing the majn rendering/physics/skinning subsystems to make sure all their processing fits in 1/60 of a second (some esports game targetting 140Hz+ these days).

          • 2 weeks ago
            Anonymous

            >some people do this therefore everyone does this
            No.

          • 2 weeks ago
            Anonymous

            Every AAA game does it just to get their games to run

          • 2 weeks ago
            Anonymous

            literally every game using unity is a direct benefactor of this fact. the engine is very optimized so that people can do scripting on top of it.
            likewise for unreal.
            and of course every single custom engine.
            go watch a siggraph or gdc talk bro.

          • 2 weeks ago
            Anonymous

            >evidence suggest that lots of AAA games don't even function properly, let alone are they programmed well or in some optimized way.
            Having bugs is a completely different ballpark to not running well, every program has bugs

          • 2 weeks ago
            Anonymous

            >https://go.dev/play/p/DJfxBLy0MfH

            >
            type (
            ints []int
            bytes []byte

            common interface {
            count() int
            }
            )

            what is this construct called? what does it do? I can see it's a sort of list of type definitions and the types in it can be used independently, i don't understand why it's all within one "type" thing

          • 2 weeks ago
            Anonymous

            >You failed to make a case for their inclusion in Go
            The only advantage they have over interfaces is slightly better performance. That's mostly it, but Go was not exactly meant for extremely high performance so a lot of people simply don't care about generics, including Go's designers it seems.

  27. 2 weeks ago
    Anonymous

    protip: everytime someone says they need rapid prototyping and iteration they just suck at their job

    • 2 weeks ago
      Anonymous

      word, same thing every time someone blabs on and on about needing a repl. they can't think 2 seconds ahead of what they're trying to do so anything that doesn't let them "iterate quickly" (completely subjective) is a failure

    • 2 weeks ago
      Anonymous

      word, same thing every time someone blabs on and on about needing a repl. they can't think 2 seconds ahead of what they're trying to do so anything that doesn't let them "iterate quickly" (completely subjective) is a failure

      you haven't made games so you don't know what you're talking about

      • 2 weeks ago
        Anonymous

        i have and i do

        • 2 weeks ago
          Anonymous

          Then you'd know about the need to quickly iterate on gameplay to find the fun

          • 2 weeks ago
            Anonymous

            whoa dude it's almost like i can tweak things in game as i'm playing with dev tools? crazyyyyyyy

          • 2 weeks ago
            Anonymous

            No I mean writing code to create or change gameplay systems

          • 2 weeks ago
            Anonymous

            your brain is the bottleneck

  28. 2 weeks ago
    Anonymous

    Jai release date when?

  29. 2 weeks ago
    Anonymous

    >Rust flaws thread derailed into a Go interfaces vs generics thread
    How the frick did this happen?

    • 2 weeks ago
      Anonymous

      I saw someone on page 0 saying something silly and replied without caring about the OP.

  30. 2 weeks ago
    Anonymous

    anyone with a brain could have told you rust doesn’t work for games. c++ is the way.
    also don’t listen to Blow. he has only written 2 games and they are not exactly hard games technically. his language is a vanity project, nothing more

    • 2 weeks ago
      Anonymous

      >c++ is the way.
      only because there was nothing else 30 years ago. let's see 20 years from now what things are like

  31. 2 weeks ago
    Anonymous

    IT'S OVER

    C & C++ CHADS WON

    WANNA DO PURE SYSTEMS SHIT? YOU VILL USE C

    WANNA PROGRAM SOME GAMES AND SHIT? YOU VILL USE MODERN C++

    YOU NEED SCRIPTING FOR NEWBS? YOU VILL EMBED LUA

    YOU DO NOT NEED MORE THAN THAT

    VI VON

  32. 2 weeks ago
    Anonymous

    ITT: Rust trannies on suicide watch

  33. 2 weeks ago
    Anonymous

    cute and cool trannies program in c/c++
    insane trannies program in rust

    case closed!

  34. 2 weeks ago
    Anonymous

    Honestly i thought this thread was about the game rust not the game engine. Was not gonna watch an hour long presentation on either subject.

  35. 2 weeks ago
    Anonymous

    non-coder here, why not just have an option on rust to disable said borrowchecker?

    • 2 weeks ago
      Anonymous

      The guy is a brainlet. The option is to just copy/clone the data

    • 2 weeks ago
      Anonymous

      really fun fact: you can't just put your code in unsafe and write things like in C++ in rust.
      aliasing is UB in rust whether you're in an unsafe block or not. it has a fundamentally different programming model.

      my experience in games and writing rust leads me to different conclusions than the author. rust is a force multiplier for me because i know how to use it and plan out my systems. i'm not doing massive refactors constantly like he was because i sit down and think about the problems i want to solve before hand, have a scope that i won't expand, and then i execute the plan

      you cannot "plan systems out in advance" when doing gamedev. unless you're like, making a clone or something... you should know this given your experience with unity and unreal.

      Nice frame locked bullshit you got there suzuki.

      frame locking is the most robust way to step simulation logic in a game. im not saying it should be used, but it is actually the most robust way.

      The guy is a brainlet. The option is to just copy/clone the data

      cloning is not cheap if you're making a video game.

      • 2 weeks ago
        Anonymous

        >cloning is not cheap if you're making a video game.
        Proof? People write dogshit code that copies tons of data all the time. Games have been written in slow languages, garbage collected languages which do even worse things with memory.

        • 2 weeks ago
          Anonymous

          i didn't say it's not feasible, i said it's not cheap. isn't rust supposed to be a fast language? how can you accept it being slower than _equivalent_ C++ code in some cases? sad.

          • 2 weeks ago
            Anonymous

            There are cases where equivalent C++ code is slower. Both languages are roughly same speed in practice.

          • 2 weeks ago
            Anonymous

            not due to fundamental language limitations.

          • 2 weeks ago
            Anonymous

            Yes, exactly due to that.
            C++ moves are not destructive, unlike in Rust. That means that shared pointers are always going to have an overhead, while in Rust it is truly zero cost. See the "There is no zero-cost abstractions" talk.

          • 2 weeks ago
            Anonymous

            how can you watch that talk and still call rust shared pointers "truly zero cost"?
            this is more of a standard library issue anyway. by fundamental language limitation i mean that you just MUST clone the thing to reference the same value from multiple places. c++ has no such limitation, you can do that just fine, it's just memory.

          • 2 weeks ago
            Anonymous

            >how can you watch that talk and still call rust shared pointers "truly zero cost"?
            Because the cost comes from C++ moves not being destructive. This is not the case in Rust.

            >this is more of a standard library issue anyway.
            Moves being destructive or not is a language feature, not standard library feature.

            >by fundamental language limitation i mean that you just MUST clone the thing to reference the same value from multiple places.
            This is not the case in either language.

          • 2 weeks ago
            Anonymous

            i dont think shared pointers were even mentioned in the talk, are you talking about unique_ptr?
            and yeah, turns out it's a standard library issue as i said!
            [[trivial_abi]] is what you use to fix it, but it's an abi break so std implementors dont fix it.
            >This is not the case in either language.
            it is in rust, you can't alias a thing like that.

            i think this is a stupid argument anyway because RAII is misguided.

          • 2 weeks ago
            Anonymous

            >i dont think shared pointers were even mentioned in the talk, are you talking about unique_ptr?
            You are right. It does apply to both. I just assumed it can't be that bad to also affect unique_ptr but it does make sense.

            >and yeah, turns out it's a standard library issue as i said!
            Standard library is not the one dictating the kind of moves allowed by the language.

            >[[trivial_abi]]
            This is not standard, it's from a non standard extension from a certain compiler implementation. It also imposes extra restrictions on how you can use the pointer, which again are not present in Rust.

          • 2 weeks ago
            Anonymous

            to repeat, I think RAII is misguided. but anyway,

            >Standard library is not the one dictating the kind of moves allowed by the language.
            the thesis C++ RAII advocates have is that an optimizing compiler can deal with the moves and have them be as efficient as if they were destructive in perf sensitive code (ideally when the compiler has visibility into all the function implementations and can inline and DCE as it wishes).
            >This is not standard
            you're right. it isn't, so the language doesn't offer a 100% fool-proof solution for it.

            in any case, since it's all just memory and C++ has no concept of "unsafe", you can always get the optimal behavior (but not the optimal code in some cases for compiler backend reasons) without having to use some different "unsafe" dialect of the language like in rust.

          • 2 weeks ago
            Anonymous

            >the thesis C++ RAII advocates have is that an optimizing compiler can deal with the moves and have them be as efficient as if they were destructive in perf sensitive code
            It doesn't always work as illustrated in the talk.

            >you can always get the optimal behavior (but not the optimal code
            You can't actually, because destructive moves are simply not possible. It doesn't matter if you can inline asm or whatever to avoid the costs, the problem is that this is a fundamental language limitation that introduces costs that are not needed. C++ can't have efficient RAII. If you want your code using RAII to be zero cost you need to get rig of RAII altogether. This is a language limitation.

          • 2 weeks ago
            Anonymous

            >It doesn't always work as illustrated in the talk.
            yes, that's why i included the remark that the compiler has to be able to see the function implementation. in some way you can consider that a library issue in the sense that you have separate translation units in the first place. either way, i would argue, i would agree it's much less cut and dry compared to how you just can't alias a thing in rust and have to clone it.

            >C++ can't have efficient RAII
            assuming there is such a thing as "efficient RAII", C++ does have it in the case where stuff is visible in the same translation unit and maybe with LTO.

            imo RAII is never zero cost in any practical terms. having resources owners scattered around in memory is just not a good idea. c++ here shines in that you're not forced to use it unlike in rust where the whole ownership system is centered around it.

          • 2 weeks ago
            Anonymous

            >assuming there is such a thing as "efficient RAII",
            There is in Rust.

            >imo RAII is never zero cost in any practical terms.
            unique_ptr should not have any overhead over just using a raw pointer.

          • 2 weeks ago
            Anonymous

            you are missing the forest from the trees. we're arguing about how zero-overhead it should be to malloc and free small objects but the reality is that mallocing and freeing small objects is slow no matter how you put it and you should not be doing it in perf sensitive code anyway.

          • 2 weeks ago
            Anonymous

            >the reality is that mallocing and freeing small objects is slow no matter how you put it and you should not be doing it in perf sensitive code anyway.
            That doesn't justify the extra costs that C++ adds on top.

          • 2 weeks ago
            Anonymous

            correct, it doesn't. but you can drop down into a lower-level and manipulate things to get what you want. in rust, mutable aliasing is UB and always will be no matter what you do, code in an unsafe block is expected to respect this.

          • 2 weeks ago
            Anonymous

            >in rust, mutable aliasing is UB and always will be no matter what you do
            If you use raw pointers it's no longer UB. It's only UB when using references.

          • 2 weeks ago
            Anonymous

            i dont think it's feasible to make all of your functions take and operate on pointers in rust... it has this viral property, like const, except much more severe

          • 2 weeks ago
            Anonymous

            And it's not feasible to switch to raw pointers every time you want to move a RAII pointer to different scope in C++.

            Fortunately if your program is well designed, you won't need aliasing mutable references in Rust. This also enables extra optimizations that are not available in C++, unless you mark them as noalias which no one does since it's like a walking on a minefield.
            However, moving smart pointers around is very basic operation that happens all the time.

      • 2 weeks ago
        Anonymous

        >you cannot "plan systems out in advance" when doing gamedev
        moron alert

        • 2 weeks ago
          Anonymous

          nodev alert. you can shill rust here all you want, the reality is that you won't make anything of significance with that attitude.

      • 2 weeks ago
        Anonymous

        >frame locking is the most robust way to step simulation logic in a game.
        Blighttown ...

        In 3D games you can't predict the worst case FPS, not even on consoles, it's no longer 2D sprites.

        • 2 weeks ago
          Anonymous

          well yeah, provided that you still have hardcore programmers who believe games should be realtime (idtech!) and who can get you to 30/60/144/... fps locked on min spec

          the opposite, they can't afford it and they don't know its dumb until they do it (there are exceptions)
          too many dumb moves and they're out

          or that, either way it's dumb.

          • 2 weeks ago
            Anonymous

            >well yeah, provided that you still have hardcore programmers who believe games should be realtime (idtech!) and who can get you to 30/60/144/... fps locked on min spec
            Blighttown suzuki ... Blighttown.

  36. 2 weeks ago
    Anonymous

    Iterate? On a AAA title? Try to get it right early on, fail, suffer for years with the technical debt ... that's your only option.

    • 2 weeks ago
      Anonymous

      works on my dark souls engine
      >t. mitsubishi miyazaki

      • 2 weeks ago
        Anonymous

        Nice frame locked bullshit you got there suzuki.

  37. 2 weeks ago
    Anonymous

    Everyone knows that Rust is not good for making games. If you want to make a game, just pick a premade engine.

    Rust is a fine choice for game engines though.

    • 2 weeks ago
      Anonymous

      If this were true Bevy would already be usable and we would have games coming out using it that look like Unreal/Unity games

      • 2 weeks ago
        Anonymous

        Bevy is a young hobbyist, FOSS engine. Unreal and Unity are commercial engines made by large corporations. Comparing them doesn't really tell you anything about the differences between Rust and the languages they were written in (C++/C#)

  38. 2 weeks ago
    Anonymous

    Now kiss goodbye you two. The universe demands this thread ends.

    • 2 weeks ago
      Anonymous

      How about we kiss you instead.

Your email address will not be published. Required fields are marked *