Why my friend had to retake his C++ course with a different professor



  • @Kian said:

    I agree that performance matters, but not in games.

    LOLWUT?

    The next time you play a game and have a single-digit framerate, or any framerate below 60 for that matter, I want you to think carefully about that statement.

    To maintain 60FPS, game developers have a 16ms deadline every frame. Taking longer than that deadline with a non-trivial scene is pretty easy. Beating it is not.

    @Kian said:

    If it matters, it's in the minority of games. Most games don't benefit from it. Probably high profile games do care. Engine development is a reasonable place to spend effort on, especially on consoles where the hardware is fixed for several years at a time (so no Moore's law for you).

    Engines abstract away some of the details, but all abstractions leak, so you still have to be careful with polycounts, batch sizes and texture sizes. Any 3D game is going to have these challenges.

    @Kian said:

    Of course, I'd choose C++ because it's a safe, expressive, extensible language. That it also gives you better performance is just a bonus.

    This is a good reason, but equally important is that C++ has a mature ecosystem of tools and libraries for game developers.



  • @Groaner said:

    LOLWUT?

    LOLWUTBBQASL!!!!^#%@^%&@5

    @Groaner said:

    The next time you play a game and have a single-digit framerate, or any framerate below 60 for that matter, I want you to think carefully about that statement.

    I R 1337 PC MASTER RACE HAX0R

    @Groaner said:

    To maintain 60FPS, game developers have a 16ms deadline every frame. Taking longer than that deadline with a non-trivial scene is pretty easy. Beating it is not.

    Right; and C++ helps with that... ... ... ... ... how? You forgot to provide that little tiny bit of information critical to your argument, Mr. PC MASTER RACE 1337 HAX0R

    In any case, I'd rather play a Fallout 4 with a fluctuating framerate than a, say, Turok with a rock-solid framerate. I'd much, much, rather see game developer focusing on making their game fun and polished, rather than focusing on getting a rock-solid framerate. And guess what? That need is better served by a language that focuses on reducing development time. Like, say, C#.

    @Groaner said:

    Engines abstract away some of the details, but all abstractions leak, so you still have to be careful with polycounts, batch sizes and texture sizes. Any 3D game is going to have these challenges.

    Yes, and none of them have anything to do with the selection of the programming language.

    @Groaner said:

    This is a good reason, but equally important is that C++ has a mature ecosystem of tools and libraries for game developers.

    What's funny here is you kind of accidentally in a footnote stumbled across the ONLY thing that makes C++ even slightly suitable for game development.



  • @blakeyrat said:

    I R 1337 PC MASTER RACE HAX0R

    Why thank you!

    @blakeyrat said:

    Right; and C++ helps with that... ... ... ... ... how? You forgot to provide that little tiny bit of information critical to your argument, Mr. PC MASTER RACE 1337 HAX0R

    If you read my post carefully, you might get that it was about performance being critical, not necessarily about C++ being critical.

    @blakeyrat said:

    In any case, I'd rather play a Fallout 4 with a fluctuating framerate than a, say, Turok with a rock-solid framerate. I'd much, much, rather see game developer focusing on making their game fun and polished, rather than focusing on getting a rock-solid framerate. And guess what? That need is better served by a language that focuses on reducing development time. Like, say, C#.

    We're going to have to agree to disagree on this one. The fluctuating framerate in Fallout 4 is incredibly irritating when you're trying to aim at something distant while taking fire. Having solid, responsive controls is part of having a fun, polished game. Now, in all fairness, the machine I'm playing it on is at least a couple years old, but doesn't that only support my point that performance is important?

    @blakeyrat said:

    Yes, and none of them have anything to do with the selection of the programming language.

    Cool, because I wasn't even talking about programming languages until the footnote!

    @blakeyrat said:

    What's funny here is you kind of accidentally in a footnote stumbled across the ONLY thing that makes C++ even slightly suitable for game development.

    I'd add "not having to work with the steaming turd that is Unity" to that list of reasons. Long build times and having to recompile your dependencies every time you upgrade Visual Studio is a lesser degree of suffering.



  • Fallout 4 on C#? That's a rather bold statement. I mean, maybe there are some parts made on it, like the launcher, but the engine? Doubt it.


  • area_pol

    Don't you just love the situatuins where someone has zero experience in some ragard but posts like an expert? I'm drunk now so I'll allow myslef this - blaky - your a piece of shit idiot and you know shit. go kill yourself,m because you are shit. Or get a clue and THEN post.



  • That was my argument all along: Just because you can do something doesn't mean that it's something you should do.

    Then your argument is worthy of ridicule, especially in the context of mathematics and tools.

    Probability spaces are hugely general structures, and you want to be able to calculate averages over any of them. Guess what: you can use the Lebesgue integral to it over any L^2 space. That includes Riemann manifolds. That includes discrete spaces. That includes the space of students and their GPAs.

    So, you don't get why it's "useful." That just reveals your ignorance, not the limitations of "my" tools.



  • @Captain said:

    So, you don't get why it's "useful." That just reveals your ignorance, not the limitations of "my" tools.

    Then enlighten us. Or are you unable to actually do so? As of yet, we only have a lot of bullcrap from you.



  • I just did.

    The Lebesgue integral defines an expectation operator for ANY PROBABILITY SPACE. THAT IS USEFUL IN AND OF ITSELF.



  • @Captain said:

    I just did.

    The Lebesgue integral defines an expectation operator for ANY PROBABILITY SPACE. THAT IS USEFUL IN AND OF ITSELF.

    How exactly is the mean of a non-linear metric useful? And I see we're rapidly approaching Tautology.



  • @Groaner said:

    We're going to have to agree to disagree on this one. The fluctuating framerate in Fallout 4 is incredibly irritating when you're trying to aim at something distant while taking fire.

    VATS!!!

    @Groaner said:

    Now, in all fairness, the machine I'm playing it on is at least a couple years old, but doesn't that only support my point that performance is important?

    No. It says if you want to play a AAA game in late 2015, you should have a machine from 2015. Or a next-gen console, which has more optimization efforts applied to it.

    AND NOTE THAT I SAID MULTIPLE TIMES THAT GAMEBRYO/CREATION ENGINE IS A SHITTY GAME ENGINE.

    But Fallout 4 is still like 43728463246276% more fun than any game made by developers who were like, "MORE FPS MORE FPS MORE FPS MORE MORE MORE LOOK AT ALL THE FPSSSS!!!!"



  • @Eldelshell said:

    Fallout 4 on C#? That's a rather bold statement.

    Da fuck?

    Nobody said Fallout 4 was written in C#.

    @NeighborhoodButcher said:

    Don't you just love the situatuins where someone has zero experience in some ragard but posts like an expert? I'm drunk now so I'll allow myslef this - blaky - your a piece of shit idiot and you know shit. go kill yourself,m because you are shit. Or get a clue and THEN post.

    Oh please, you and everybody else here knows I kicked your proverbial ass on that C++ console thing.

    @Captain said:

    I just did.

    The Lebesgue integral defines an expectation operator for ANY PROBABILITY SPACE. THAT IS USEFUL IN AND OF ITSELF.

    MATHY MATH MATHY GUYZZZ!



  • How would you calculate the temperature of a black hole without one?

    It's useful for the same reason that means on Euclidean spaces are useful. Because some spaces are Euclidean and some are not!

    And zOMG the same tool can handle both! Heresy! I'm doing it wrong! A real example Rhywden demonstrably should be familiar since he took statistical mechanics twice with doesn't meet the stringent requirements Rhywden artificially imposed!


  • area_pol

    @blakeyrat said:

    Oh please, you and everybody else here knows I kicked your proverbial ass on that C++ console thing.

    Of courseyou did. hVE A DONUT.



  • @Captain said:

    How would you calculate the temperature of a black hole without one?

    It's useful for the same reason that means on Euclidean spaces are useful. Because some spaces are Euclidean and some are not!

    And zOMG the same tool can handle both! Heresy! I'm doing it wrong! A real example Rhywden demonstrably should be familiar with doesn't meet the stringent requirements Rhywden artificially imposed!


    Okay, you idiot. You obviously don't understand the issue at hand and are so way up with your heads in the clouds that you're not able to perceive any ignorance on your part.

    What the GPA is doing is the equivalent of defining segment A as length 1 and segment B as length 2 - and then doing the mean over the amounts of both segments. Only problem: Segment A would have a real-world length of 1 meter and segment B a real-world length of 10 meter.
    Let's say you have a mean of 3 - how many real-world meters does that make?



  • @blakeyrat said:

    VATS!!!

    Hand-holding for casuals. I've pretty much beaten all the Serious Sam games on Serious difficulty, and I used to play fast-paced Half-Life 1 mods where you were expected to quickscope people across the map while flying through the air, so why would I use something that aims for me?

    @blakeyrat said:

    No. It says if you want to play a AAA game in late 2015, you should have a machine from 2015.

    Building a new rig every year is expensive and wasteful. And this is coming from someone who's dumped a significant amount of money into making his car go fast.

    @blakeyrat said:

    Or a next-gen console, which has more optimization efforts applied to it.

    Consoles are about as bad as building a new rig every year (or every 3 years?). I don't buy consoles until about 5-10 years after they come out, when they and their games become dirt cheap. It also makes things simpler, because once all the good games have stood the test of time and are well-known, it becomes easy to avoid the turds.

    @blakeyrat said:

    AND NOTE THAT I SAID MULTIPLE TIMES THAT GAMEBRYO/CREATION ENGINE IS A SHITTY GAME ENGINE.

    We can agree on something!

    @blakeyrat said:

    But Fallout 4 is still like 43728463246276% more fun than any game made by developers who were like, "MORE FPS MORE FPS MORE FPS MORE MORE MORE LOOK AT ALL THE FPSSSS!!!!"

    As I've been playing Fallout 4, I've begun to realize that its competitive advantage that sets it apart from other games is content.

    I've seen lots of indie open world games that allow the player to construct buildings. I've seen lots of indie games that allow the player to craft items. I've seen a few indie shooters. However, none of those indie studios have the resources for hundreds of hours of voice acting, or hundreds of quests, or creating a massive world to begin with.

    Fallout 4, like all the other Bethesda RPGs that preceded it, offers all this content to provide an "immersive" experience. We probably agree that they succeeded at this particular objective. However, if their objective was to make a fast-paced multiplayer shooter where people are aiming at each other across the map while flying through the air, they fell short.


  • Banned

    @blakeyrat said:

    Right; and C++ helps with that... ... ... ... ... how?

    Predictable object lifetimes.

    @blakeyrat said:

    In any case, I'd rather play a Fallout 4 with a fluctuating framerate than a, say, Turok with a rock-solid framerate.

    I'd rather play CS 1.6 than any newer game if it was going to be less than 30FPS. 60 if it's online.

    @blakeyrat said:

    I'd much, much, rather see game developer focusing on making their game fun and polished, rather than focusing on getting a rock-solid framerate.

    Except rock-solid framerate is prerequisite for being polished, and if it's online, also prerequisite for being fun.

    @blakeyrat said:

    Yes, and none of them have anything to do with the selection of the programming language.

    Except that C++ is much better suited for making reliably performant code.

    @blakeyrat said:

    VATS!!!

    I finished F4. Twice. Used VATS like .1% times. Would use it more if it was more useful and more available (damn AP...).

    @blakeyrat said:

    But Fallout 4 is still like 43728463246276% more fun than any game made by developers who were like, "MORE FPS MORE FPS MORE FPS MORE MORE MORE LOOK AT ALL THE FPSSSS!!!!"

    No, F4 is nowhere near CS level of fun.


  • Banned

    @Groaner said:

    Consoles are about as bad as building a new rig every year (or every 3 years?).

    PSX came out in 1995. PS2 came out in 2000. PS3 came out in 2006. PS4 came out in 2013.

    @Groaner said:

    I don't buy consoles until about 5-10 years after they come out, when they and their games become dirt cheap. It also makes things simpler, because once all the good games have stood the test of time and are well-known, it becomes easy to avoid the turds.

    @Groaner said:

    I've seen lots of indie open world games that allow the player to construct buildings. I've seen lots of indie games that allow the player to craft items. I've seen a few indie shooters. However, none of those indie studios have the resources for hundreds of hours of voice acting, or hundreds of quests, or creating a massive world to begin with.

    And if they dropped voice acting, they could make 10x more content than they already did!



  • @Gaska said:

    PSX came out in 1995. PS2 came out in 2000. PS3 came out in 2006. PS4 came out in 2013.

    What if you want to play something on N64/GameCube/Wii/WiiU? Or XBOX/360/XBone? Or DS/3DS? PSP?

    Yes, it is reasonable if you stick to one console. Less so if you have several.

    @Gaska said:

    http://imgs.xkcd.com/comics/cutting_edge.png

    Yeah, I play PC games as they come out. I only like consoles for the collection and nostalgia factors.

    @Gaska said:

    And if they dropped voice acting, they could make 10x more content than they already did!

    Perhaps, depends on storage requirements and whether a voice actor's time or a level designer's time is more valuable. I wonder what the Mount & Blade series would look like if it had a $10+ million budget?



  • @Groaner said:

    I wonder what the Mount & Blade series would look like if it had a $10+ million budget?

    It'd probably be a lot less fun.



  • @Gaska said:

    And if they dropped voice acting, they could make 10x more content than they already did!

    Games already have too much content. Where the fuck am I going to get the time to play Witcher 3?


  • Banned

    @Groaner said:

    What if you want to play something on N64/GameCube/Wii/WiiU?

    1996, 2001, 2006, 2012.

    @Groaner said:

    Or XBOX/360/XBone?

    2001, 2005, 2013.

    @Groaner said:

    Or DS/3DS?

    2004, 2011.

    @Groaner said:

    Yes, it is reasonable if you stick to one console. Less so if you have several.

    The ones that have games unavailable for other consoles, usually don't have PC ports either. So either you get the console or get another game.

    @Groaner said:

    Perhaps, depends on storage requirements and whether a voice actor's time or a level designer's time is more valuable.

    They have all the levels they need. What they don't have is dialogues. Writing dialogues is inherently cheaper than recording them (because you have to write them either way) - if I were to guesstimate, I'd say at least a couple orders of magnitude cheaper. Which means a couple orders of magnitude more dialogues for the same price. And not every quest has to get a new location!


  • Banned

    @blakeyrat said:

    Games already have too much content.

    There's no such thing as too much content.

    @blakeyrat said:

    Where the fuck am I going to get the time to play Witcher 3?

    Brotip: you don't have to do it all in one session.


  • Discourse touched me in a no-no place

    @Rhywden said:

    Only problem: Segment A would have a real-world length of 1 meter and segment B a real-world length of 10 meter.

    That all depends on what you mean by “real-world length”. That's quite a bit more of a complicated concept than it appears to be at first glance; Einstein was the first person to really drive hope how much more complicated it actually is.

    If you're somewhere that's flat (or nearly so) then you can pretend it is all Euclidean and that you've got simple mathematics. Alas, even the surface of the earth is not flat; never mind mountains and valleys and stuff like that, there's the whole curvature of the Earth and that makes things very not-flat. For example, there are many solutions for the distance from Seattle to Miami, and the figure you get from asking Google is not even close to the minimum. Yet it's not wrong either. It all depends on what you actually choose to measure.

    Metrics: making things simpler and more complicated at the same time.



  • That's not really a counter to my argument, then.



  • @NeighborhoodButcher said:

    Actually there is in C++ - the standard library. There is one in C too, which I hate. Those standard libraries are the same across all platforms - compile for one, compile for all. As mentioned above - you can't take The Sims post-1.0 code and use it with Unity.

    A standard that is ignored or badly implemented in several compilers. Even sprintf behaves differently between windows and linux.

    @blakeyrat said:

    Moore's Law takes care of the other.

    Because the heavy work is done in libraries coded in C, like opengl, directx, etc.


  • area_pol

    @fbmac said:

    A standard that is ignored or badly implemented in several compilers.

    Depends on what compilers you choose. The standard library in clang (libc++) is 100% C++14 compliant. MSVC and gcc (libstdc++) is almost at 100% - some small quirks remain unimplemented. Other compilers are pretty much non-existent in the broad world.


  • Discourse touched me in a no-no place

    @fbmac said:

    Even sprintf behaves differently between windows and linux.

    The conversion of floating point numbers to strings is much harder than it looks. Unsurprisingly, there are some vicious vendor bugs out there, some of which would cause the machine to crash or hang in some cases. I don't know how many of these still remain, but anyone claiming that everything is just perfect and that the standards specify what actually happens in all cases is going to get a really rude awakening sometime.

    I wouldn't expect C++ to be any better. The fundamental problems are rather more subtle than that.



  • We get to choose compilers now? Give me a good compiler for DOS. That's just one of the platforms my code has to run, and it's not the worse of them.

    @dkf said:

    The conversion of floating point numbers to strings is much harder than it looks.

    The conversion of floating point is all right, it's has differences when you want to pad a string with zeroes to the left, and the snprintf version of the function behaves different when there isn't enough space on the buffer between VC++ and GNU C.


  • area_pol

    @fbmac said:

    We get to choose compilers now? Give me a good compiler for DOS.

    Can't get any from the top of my head. Ancient systems may need ancient compilers with ancient problems.

    @fbmac said:

    The conversion of floating point is all right, it's has differences when you want to pad a string with zeroes to the left, and the snprintf version of the function behaves different when there isn't enough space on the buffer between VC++ and GNU C.

    That's why in C++ you don't use C API, but C++ one.



  • @fbmac said:

    Because the heavy work is done in libraries coded in C, like opengl, directx, etc.

    Ok. What's your point?

    C# is specifically designed to make it easy to call libraries written in other languages, specifically for that purpose. You're describing a strength of C# and somehow trying to make it sound like a weakness.



  • My point is that performance still matters for some stuff, and while C++ is a terrible mess, the available compilers for it generates a code much faster than the compilers we have for C#.



  • Ok; so you write 99% of the application in C#, which is nice and helps speed your development time, then write the 1% speed-critical stuff in C or C++.

    Otherwise known as "duh, what are you, a moron?"


  • area_pol

    How everyone loves taking numbers out of ones ass...



  • Are you claiming that 99% of something like an AAA FPS xbox360 game can be done in C#? With no loss of performance?



  • We keep discussing about c++ and c#, while javascript, that almost everyone can agree is a terrible language, is taking over the world.



  • @fbmac said:

    Are you claiming that 99% of something like an AAA FPS xbox360 game can be done in C#? With no loss of performance?

    Yes.

    Except why would a AAA game in 2015 be on Xbox 360?



  • @blakeyrat said:

    Except why would a AAA game in 2015 be on Xbox 360?

    Because it's the console I own, you insensitive clod!



  • @fbmac said:

    while javascript, that almost everyone can agree is a terrible language, is taking over the world.

    If I was a C# developer I would be worried. WinJS FTW!

    Now, on another serious tone, JavaScript is starting to get better with ES2015 and ES2016... Except for some crazy stuff like the Ruby '->' and the always annoying floating point magic.



  • The only way for JavaScript to get better is dying an horrible death



  • @fbmac said:

    The only way for JavaScript to get better is dying an horrible death

    https://youtu.be/Jdf5EXo6I68?t=58


  • :belt_onion:

    @blakeyrat said:

    COMPLETELY UNAWARE OF THE SECOND-MOST POPULAR OS IN THE WORLD AT THE TIME IT WAS CREATED.

    No, they were just aware of the obvious shittyness of having no console...



  • @Rhywden said:

    Listen, I actually get the use of Riemann manifolds.

    I usually just take my car in for a service every few months so I don't need to worry about that kind of thing...



  • @ben_lubar said:

    I'm terrified of them, too. Some of them look like this:

    B

    DFTFY...



  • @Gaska said:

    I finished F4. Twice. Used VATS like .1% times. Would use it more if it was more useful and more available (damn AP...).

    You need to dump more points into Agility and its associated perks.


  • Banned

    There are six enemies in the room. Need to put 3-5 rounds in each of them. VATS gives me at most 4 shots with my rifle. And it misses sometimes. And I have to think fast since the time doesn't pause completely and I'm still vulnerable to their shots. Sorry, but it's simply not a good option most of the time.


  • Discourse touched me in a no-no place

    Yeah I don't really use VATS either.



  • Ain't Fallout without VATS. VATS is the reason the game exists.



  • @Gaska said:

    There are six enemies in the room. Need to put 3-5 rounds in each of them. VATS gives me at most 4 shots with my rifle.

    You are :doing_it_wrong: then. You can easily 1-shot critical 5 of those guys in a single VATS round if you have the right perks. Also, you are invisible, and the other guy didn't notice everyone else in the room is now dead.


  • Banned

    @tar said:

    You can easily 1-shot critical 5 of those guys in a single VATS round if you have the right perks. Also, as long as you are invisible

    FTFY. And it's hard to be invisible outdoors in daylight. (Haven't actually played stealth build, but I guess it's similar to Skyrim).

    Oh, and - if this is the only way to use VATS effectively, then it's useless for anyone who's not making stealth build.



  • @Gaska said:

    Oh, and - if this is the only way to use VATS effectively, then it's useless for anyone who's playing Fallout incorrectly not making stealth build.

    Although I've heard of VATS being useful for a melee build as well, but who doesn't want to be a ninja?
    VATS is also useful for locking onto enemies a mile away in the open, before headshotting them manually with your most overpowered sniper rifle. Fallout is fun.


Log in to reply