Logical Expressions in C/C++. Mistakes Made by Professionals



  • @Sentenryu said in Logical Expressions in C/C++. Mistakes Made by Professionals:

    I have the Shem Drowne sword fully upgraded, is there a better one aside from legendary modifiers?

    General Chao's is better with no mods. It has a huge damage bonus against robots, too.

    I don't bother with the modding features in the game, because crafting is boring as shit. So maybe it's possible to get Shem Drowne better than General Chao. I couldn't say.

    The robot building DLC that's out now has a new sword called Assaultron Blade, which looks badass but alas is weaker than General Chao so I don't use it.



  • @blakeyrat I have that sword, didn't realise it was good.

    I didn't play with the DLC yet, didn't even know about it, apparently you can build a robot army, I need to find time to play it.



  • @Sentenryu Yeah; it's basically applying their code for power armor to robot companions. So each robot part, head, torso, legs, right arm, left arm, becomes a part you can swap-on to a robot "base". That's for every type of robot, and they added a couple new types as well. So you can make a SentryBot tank-treaded Assaultron with a Protectron laser-arm. Or whatever. Also like with power armor, you can paint them in various color schemes or add mods.


  • Winner of the 2016 Presidential Election

    @blakeyrat I'm not the hoarder type, but I'm the type who wants to finish every mission the game offers, which is both super-boring (because the side missions are incredibly repetitive and dungeons are all the same) and nearly impossible.



  • @blakeyrat that sounds awesome, time to dust off the game and make an army to defend the castle.



  • @asdf Well here's the super-magic secret key to enjoying Gamebryo games, only a mega-genius could come up with this: if the thing you're doing is boring, stop doing it. Do something else. There's like 50,000 things to do.


  • Winner of the 2016 Presidential Election

    @blakeyrat Sorry, but I strongly disagree with what you're implying. There are a lot of games which make exploring the open world fun. If you make and open world game, but make the world boring, then you failed to make your game appealing to "explorers" like me. Simple as that.

    Yes, there are other types of players who might still like your game. But that doesn't mean that I'm Doing It Wrongβ„’, it means that the game sucks in that regard.



  • @asdf said in Logical Expressions in C/C++. Mistakes Made by Professionals:

    @blakeyrat Sorry, but I strongly disagree. There are a lot of games which make exploring the open world fun.

    Did you shift gears without a clutch?

    The post I replied to was about doing every single side-mission in the game. Now you're talking about exploring an open world. Those are two different things.

    If you didn't think exploring the world of Skyrim was any fun, there must be bits missing from your brain. Best open world since STALKER.

    But in any case, you changed topics, that's not what I was replying to.


  • Winner of the 2016 Presidential Election

    @blakeyrat said in Logical Expressions in C/C++. Mistakes Made by Professionals:

    The post I replied to was about doing every single side-mission in the game. Now you're talking about exploring an open world.

    Well, if you explore the world and talk to the characters, you necessarily end up engaging in a lot of side missions before finishing the main storyline.


  • Discourse touched me in a no-no place

    @asdf But are you having fun doing it? If not, stop. Do what's fun for you.


  • Winner of the 2016 Presidential Election

    @dkf said in Logical Expressions in C/C++. Mistakes Made by Professionals:

    Do what's fun for you.

    I do, that's why I switched to a different game.



  • @asdf said in Logical Expressions in C/C++. Mistakes Made by Professionals:

    Well, if you explore the world and talk to the characters, you necessarily end up engaging in a lot of side missions before finishing the main storyline.

    Ok yes.

    But if you do it the other way around (take side quests specifically to explore the world) you have to rememeber Creation Engine games have Radiant. There are literally infinite side-quests, and since they're all machine-generated, of course they're going to be boring.

    If you want to explore, just explore. You don't need shit in your quest log to do that. Just walk around.

    "Exploration" and "doing tons of side quests" aren't even remotely similar, I have no idea why you're conflating the two and confusing the bejeesus out of me.


  • Winner of the 2016 Presidential Election

    @blakeyrat said in Logical Expressions in C/C++. Mistakes Made by Professionals:

    But if you do it the other way around (take side quests specifically to explore the world) you have to rememeber Creation Engine games have Radiant. There are literally infinite side-quests, and since they're all machine-generated, of course they're going to be boring.

    Yeah, of course I skipped all quests that sent me to a dungeon I've already been in. But even then, most quests are the same and boring.

    @blakeyrat said in Logical Expressions in C/C++. Mistakes Made by Professionals:

    "Exploration" and "doing tons of side quests" aren't even remotely similar, I have no idea why you're conflating the two and confusing the bejeesus out of me.

    OK, you've got a point there. But is it really so hard to understand why Elder Scrolls games kinda suck for people who like to explore every aspect of an RPG's world?


  • kills Dumbledore

    @asdf @blakeyrat you're conditioned by years of RPGs to complete all the sidequests to ge thte coolest stuff, then you get a game that has infinite sidequests, mostly autogenerated filler. But some that look like autogenerated filler turn out to be unique and very fun quests, e.g. the one that starts with a drinking competition and sees you retracing your steps to find out who you married and stuff.



  • @asdf said in Logical Expressions in C/C++. Mistakes Made by Professionals:

    But is it really so hard to understand why Elder Scrolls games kinda suck for people who like to explore every aspect of an RPG's world?

    It doesn't suck for people who like to explore every aspect of an RPG's world because by definition they would enjoy exploring it, even if it's samey in places. It "sucks" for people that expect a certain experience and don't get that specific experience they expected to get.

    You want a carefully crafted experience that tricks you into thinking you're exploring when you're really just being guided by a very careful designer. However, making a massive open world means careful design becomes expensive, so they took a few shortcuts (like the radiant quest system, which sends you to places you might not have visited because tying visiting every bandit camp into interesting quests would require designing the interesting quest to send you there).


  • Discourse touched me in a no-no place

    @Kian said in Logical Expressions in C/C++. Mistakes Made by Professionals:

    the radiant quest system

    I suspect that that will be an aspect that improves as we start to make proper progress on AI.



  • @asdf said in Logical Expressions in C/C++. Mistakes Made by Professionals:

    Yeah, of course I skipped all quests that sent me to a dungeon I've already been in. But even then, most quests are the same and boring.

    Ok; so don't do them. But what does that have to do with exploring the world? Jack shit.

    @asdf said in Logical Expressions in C/C++. Mistakes Made by Professionals:

    But is it really so hard to understand why Elder Scrolls games kinda suck for people who like to explore every aspect of an RPG's world?

    Honestly yes it is. I spent like a YEAR exploring Morrowind's world, reading all the books, talking to all the people, etc, and barely scratched the surface. Elder Scrolls Online, which I have a nasty love/hate relationship with, is even more amazing because for the first time you can explore ALL of Tamriel, you can go to every location mentioned in every one of those Morrowind books if you want (once you level up in each faction because fuck MMOs). I've spent like 1600 hours playing Skyrim, and not run out of stuff to do in it. (Although to be fair, probably half of that has been dicking with mods; and Steam counts "having the launcher open" as "playing the game" so the number's a lot higher than it really is.) As far as fantasy games go, Elder Scrolls is top-notch.

    I think it's more likely the problem you have is the same problem Japanese gamers have when they approach Elder Scrolls. They're so used to games that are extended tutorials, that always tell you exactly where to go and what to do at every given moment, that when you hand them a game that says, "here's your character. Here's a huge world. Do whatever you want. No, really, literally whatever you want." they can't cope with it. It's like their brains break. JRPG fans consider Final Fantasy VII some great masterpiece; when I played it you couldn't create your character, you couldn't decide where you wanted to go, what you wanted to do-- you had zero freedom. It's like an RPG prison. Now that sucks.

    Me? I grew up on games like Wizardry, Might & Magic, etc. Games where the premise was always "here's your party. Here's a huge world. Do whatever you want." The reason Gamebryo games like Elder Scrolls and Fallout 4 are so great is because they're the ONLY games left like that! They're utterly unique in the current market. (To be fair, I hear Witcher 3 is pretty close to that ideal, but I hate that asshole protagonist Witcher has and you can't make your own character, so. I played Witcher 1 and that was enough.)

    Now there are FPS games based on the concept, like STALKER and (the STALKER ripoffs which somehow get away with being ripoffs) Far Cry 2+. And those are great. But they ain't no Elder Scrolls.



  • @Jaloopa said in Logical Expressions in C/C++. Mistakes Made by Professionals:

    But some that look like autogenerated filler turn out to be unique and very fun quests, e.g. the one that starts with a drinking competition and sees you retracing your steps to find out who you married and stuff.

    That's a Daedric Lord quest. Every Elder Scrolls game since Daggerfall has had 15 of those. It's not "technically" a faction (like Mage Guild, Thieve's Guild, etc), but there's enough Daedric Lords that you get a faction's worth of content out of them.


  • Winner of the 2016 Presidential Election

    @Kian said in Logical Expressions in C/C++. Mistakes Made by Professionals:

    You want a carefully crafted experience that tricks you into thinking you're exploring when you're really just being guided by a very careful designer.

    Hm, no, not exactly. I don't really want to be guided (at least not in a non-linear game like that), but I want to feel like every single part of the game was designed carefully. Repetitive characters, items and quests are exactly what makes me hate a game pretty quickly. So both the auto-generated quests and the auto-leveling system are things that I really don't like.

    @blakeyrat said in Logical Expressions in C/C++. Mistakes Made by Professionals:

    I think it's more likely the problem you have is the same problem Japanese gamers have when they approach Elder Scrolls. They're so used to games that are extended tutorials, that always tell you exactly where to go and what to do at every given moment, that when you hand them a game that says, "here's your character. Here's a huge world. Do whatever you want. No, really, literally whatever you want." they can't cope with it.

    No, see above. My problem with Elder Scrolls games is that the world is huge, but most of it is boring. If they had made the world smaller and filled it with more unique characters and (manually written) quests, I would have liked it a lot better.

    Note that I'm not saying that Elder Scrolls games are bad. They're not, and I did have some fun with all of them. They're just not the kind of RPG I will play for months.



  • @asdf said in Logical Expressions in C/C++. Mistakes Made by Professionals:

    Hm, no, not exactly. I don't really want to be guided (at least not in a non-linear game like that), but I want to feel like every single part of the game was designed carefully.

    It was? Compared to what? Like I said, AFAIK, only Witcher 3 even slightly comes close although I'm getting that information second-hand.

    @asdf said in Logical Expressions in C/C++. Mistakes Made by Professionals:

    So both the auto-generated quests and the auto-leveling system are things that I really don't like.

    The WHOLE POINT of the auto-leveling system is to enable players to do whatever the hell they want, basically the Elder Scrolls credo. If you can't go into city X because a high-level monster were blocking the way and had to spend like 15 hours grinding to beat it, that would suck. Morrowind was like that. It sucked kinda.

    @asdf said in Logical Expressions in C/C++. Mistakes Made by Professionals:

    No, see above. My problem with Elder Scrolls games is that the world is huge, but most of it is boring. If they had made the world smaller and filled it with more unique characters and (manually written) quests, I would have liked it a lot better.

    What RPG does it better. In the HISTORY of RPGs. What RPG has more manually-written quests than Skyrim? Or Morrowind? Name one. I double-dog dare you.

    The thing is I 100% get what you're saying. But you're comparing Elder Scrolls games to mystical fairy games that don't exist. You're saying "well they're not ideal RPGs in this aspect" when they're *already an order of magnitude better than any other RPG ever made in history.

    So what kind of RPG will you play for months? Mass Effect? No, those games are 30 hours, max. Elite Dangerous? Just as randomly-generated as the worst of the Radiants. JRPGs? That give you zero freedom to choose what to do and don't even let you make your own character? Feh.


  • Winner of the 2016 Presidential Election

    @blakeyrat said in Logical Expressions in C/C++. Mistakes Made by Professionals:

    The thing is I 100% get what you're saying. But you're comparing Elder Scrolls games to mystical fairy games that don't exist.

    Damn, you caught me there. I guess what I'd really like is Gothic II with stealth mechanics, a way bigger world and a universe like Elder Scrolls. So yes, the game whose main questline I'd actually finish probably doesn't exist.

    @blakeyrat said in Logical Expressions in C/C++. Mistakes Made by Professionals:

    If you can't go into city X because a high-level monster were blocking the way and had to spend like 15 hours grinding to beat it, that would suck.

    Yes and no. Depends on how much of the world is occupied by overpowered monsters and how linear the game gets as a result. Ideally, you'd be able to visit all the important places at any time, but still have unbeatable monsters lurking in some places. I don't mind walking into a dungeon or making a wrong turn in the woods and getting insta-killed by a monster I've never seen before. That gives me an incentive to level up, unlike the auto-leveling system of Oblivion/Skyrim, where most dungeons are just hard enough to be moderately interesting at your current level.



  • @asdf said in Logical Expressions in C/C++. Mistakes Made by Professionals:

    I don't really want to be guided (at least not in a non-linear game like that), but I want to feel like every single part of the game was designed carefully.

    Until we have procedural generation systems robust enough, what you want is economically inviable, or leaves out people that want a huge world and don't care that some of it is samey.

    Take bandit camps. They're everywhere in Skyrim. They're superficially similar: they all have a bunch of mooks and a boss. You go in, clean it up, and tick it on your map. The bandits as characters are pretty much identical. They share the same lines (which they repeat incessantly if you have a stealth character), and you can only interact with them by killing them. There are some nice touches in the environment though. On some, you can read diaries and such that reveal relationships, plans, etc. They have some environment storytelling, with the way things are laid out telling little vignettes of what life was like in the camp. It's all static scenery of course, the bandits are just going to be there until you kill them. But it gives a bit of texture and rewards someone that bothers to read the notes and explore the chests scattered about the camp, and really look at the place.

    To make them more interesting, each and every bandit would have to be unique in some way. Add even more content for people to ignore so that the few that have an obsession for visiting every spot in the game can claim they "finished" the game without seeing the same bandit twice. You want to be able to get 100% completion and have it all be unique, and that's not a design goal given technological limitations.

    Honestly, I'd be more forgiving of repetitive bandit camps if the world had some level of simulation, so that things evolved over time. So if you clear a certain area of bandits, prosperity increases and such. But I prefer to have them be repetitive to the world being far more compressed.



  • @blakeyrat said in Logical Expressions in C/C++. Mistakes Made by Professionals:

    I think it's more likely the problem you have is the same problem Japanese gamers have when they approach Elder Scrolls. They're so used to games that are extended tutorials, that always tell you exactly where to go and what to do at every given moment, that when you hand them a game that says, "here's your character. Here's a huge world. Do whatever you want. No, really, literally whatever you want." they can't cope with it. It's like their brains break. JRPG fans consider Final Fantasy VII some great masterpiece; when I played it you couldn't create your character, you couldn't decide where you wanted to go, what you wanted to do-- you had zero freedom. It's like an RPG prison. Now that sucks.

    I don't usually have anything against the JRPG way of doing things, but I also like a bit more structure to games. I find that in a game like Skyrim, I just don't care enough to keep playing. It plays well, and it's a good idea; I'm glad games like it exist. But I just can't keep myself caring.

    But FFVII is very definitely, like you said, the opposite. The thing is, though, it teases you. I stopped playing soon after they gave me a boat and I went to some town and met Yuffie. I wasn't supposed to be able to get there yet, but I made it to the town barely. I couldn't get out though. Everything was like 10 levels above me, and would kill me instantly. A literal dead end in a linear game. Yeah, no thanks.

    There really are few RPGs that I get along with. The Chrono games had a compelling story, and The Four Heroes of Light was mechanically fascinating. The World Ends With You had an awesome aesthetic, good music, and systems I really enjoyed. But the only RPG I've played much of in years is Fairy Fencer F, which is a relatively bad game - I'm just a sucker for time loops and cheesy comedy.

    I don't know at all what it would take to make an RPG I'd feel invested in at this point.



  • @asdf said in Logical Expressions in C/C++. Mistakes Made by Professionals:

    Ideally, you'd be able to visit all the important places at any time, but still have unbeatable monsters lurking in some places.

    Right; that's why they backed-away from the auto-leveling from the Oblivion design. In Oblivion, you could literally go anywhere at any time and level barely mattered at all. In Skyrim, there are many places/enemies who have "nailed-down" levels which can be difficult to beat early on.


  • Winner of the 2016 Presidential Election

    @blakeyrat said in Logical Expressions in C/C++. Mistakes Made by Professionals:

    Right; that's why they backed-away from the auto-leveling from the Oblivion design.

    Which was definitely a huge step in the right direction. According to Steam, I played Skyrim way longer than Oblivion.



  • @asdf I find that oblivion had some regions that were more interesting than skyrim ones (I guess I have some nostalgia for it), but skyrim had way better fights and enemies.

    The thing about the world of skyrim is that it looks empty and generic, but there's loads of hidden stuff that was hand placed. There are easter eggs (like the packman cheese), random events on the road (you can't walk 100 meters without finding one), bandit holds, caravans actually travelling from city to city, etc.

    I found that my problem with skyrim was exactly the opposite. It always had so much that I wanted to do and I just wasn't able to do it all. I would get sidetracked, lost, find some new cool stuff that I wanted to do and keep procastinating.



  • @Sentenryu

    https://storify.com/KeeepSwinging/skyrim-dog-adoption

    I posted this to, I think Status, a few days ago.


  • BINNED

    I did this mistake yesterday and took me few hours to figure out:

    #define MIN_OF(x,y) ((x) ? (x) < (y) : (y))
    

    To my defense it was after long hours of Python πŸ˜†

    MIN_OF = lambda x,y: x if x < y else y
    
    

    It should have been this of course

    #define MIN_OF(x,y) ((x) < (y) ? (x) : (y))
    


  • @blakeyrat that sounds waaay too much like my experience, but instead of a dog, it was lydia. Do you know how hard it is to keep that woman alive?

    On the last playthrough I managed to set her essential flag (I couldn't be arsed anymore) and got a multiple followers mod. I had fun taking her and serana arround the land, but they are nowhere near as interesting as Fallout 4's followers.

    Fallout 4 got me excited to see what we will get on Elder Scrolls VI.



  • @Sentenryu said in Logical Expressions in C/C++. Mistakes Made by Professionals:

    @blakeyrat that sounds waaay too much like my experience, but instead of a dog, it was lydia. Do you know how hard it is to keep that woman alive?

    I always got pissed that she's just barge into your house without asking, and murdered her.

    I do have fond memories of trying to keep Dogmeat alive in Fallout 2, also that deathclaw follower guy whose name I can't remember. Neither of them leveled with the rest of the game, so it was a real challenge.



  • @blakeyrat I can't understand why followers don't level with you on bethesda games, are you just supposed to abandon them?

    fallout 2 wasn't from bethesda tho, so it is common for them to not level on RPGs?



  • @Sentenryu I imagine someone just said it doesn't make much sense for a junkyard mutt to be able to kill 3 supermutants.

    The deathclaw character not leveling along with the rest of the game is less excusable, though.


  • Winner of the 2016 Presidential Election

    @dse Macros :eek:



  • @asdf I find it so inexcusable that it wasn't std::minnor an inline function (in case it's pure C) that I gave it no attention.


  • BINNED

    @Sentenryu said in Logical Expressions in C/C++. Mistakes Made by Professionals:

    @asdf I find it so inexcusable that it wasn't std::minnor an inline function (in case it's pure C) that I gave it no attention.

    And how are templates any better? It is the abuse of a feature that is inexcusable.

    Good suggestion, will make it an inline. Old habits and all.


  • Winner of the 2016 Presidential Election

    @dse said in Logical Expressions in C/C++. Mistakes Made by Professionals:

    And how are templates any better?

    They don't break in wonderful ways when you use expressions with side effects as parameters.

    @dse said in Logical Expressions in C/C++. Mistakes Made by Professionals:

    abuse of a feature

    WAT? Templates are meant to be used for more than just generic types.



  • @dse use of macros to do anything more than define a constant IS an abuse of a feature.

    Keep in mind that the same people who created templates also created std::minand the other standard library templates, so you can hardly call it an abuse of a feature.


  • Winner of the 2016 Presidential Election

    @Sentenryu said in Logical Expressions in C/C++. Mistakes Made by Professionals:

    use of macros to do anything more than define a constant IS an abuse of a feature.

    I'm really looking forward to C++ modules. No more include guards, which means we might finally see C++ code without any macros whatsoever.


  • Discourse touched me in a no-no place

    @Sentenryu said in Logical Expressions in C/C++. Mistakes Made by Professionals:

    use of macros to do anything more than define a constant IS an abuse of a feature.

    Are we talking about C or C++ here?



  • @dse said in Logical Expressions in C/C++. Mistakes Made by Professionals:

    And how are templates any better? It is the abuse of a feature that is inexcusable.

    The purpose of templates is to make generic code. std::min will create an actual function for the parameters you passed it (as long as the expression "a < b" makes sense for them). Not just LOOK like a function but behave in weird ways because it's doing text substitution instead. If you were to say that template metaprograming is an abuse, we'd agree.

    @dkf said in Logical Expressions in C/C++. Mistakes Made by Professionals:

    Are we talking about C or C++ here?

    Considering the talk of templates, clearly C++.


  • BINNED

    @Kian said in Logical Expressions in C/C++. Mistakes Made by Professionals:

    If you were to say that template metaprograming is an abuse, we'd agree.

    Yes, and without meta-programming they are only marginally more useful than macros.

    @Kian said in Logical Expressions in C/C++. Mistakes Made by Professionals:

    Considering the talk of templates, clearly C++.

    If it was C++ I would be damned for not using std:min. This was C and in an embedded project in a tight :giggity: nested loop I could not afford any calls (inline maybe perhaps, but I should profile).



  • Ugh, can one of the @mods please jeff the giant offtopic discussion about video games and swords?

    @blakeyrat I thought you hated it when people hijack topics to talk about boring shit.


  • Java Dev

    @anotherusername Only when other people do it to his threads.



  • @dse a decent compiler shouldn't generate different code for your macro version and an inline function, but then again, not all compilers are decent.


  • BINNED

    @Sentenryu said in Logical Expressions in C/C++. Mistakes Made by Professionals:

    a decent compiler shouldn't generate different code for your macro version and an inline function, but then again, not all compilers are decent.

    I use IAR for final builds (MSVC/gcc for local test builds). IAR (as shitty and 80s era IDE as it is) is too fucking expensive but does a very nice job as a C compiler. I am sure it will know well how to optimize the inline, but I am too paranoid with optimizations and will not believe it before I profile.



  • @dse looks like they also have a static analyzer, so we might be back on topic!

    https://www.iar.com/about-us/newsroom/press/?releaseId=2160082


  • BINNED

    @Sentenryu Problem with IAR is the IDE is so crappy I rather develop in Eclipse (nowadays am trying CLion) and use putchar for debugging on actual target. I like printf-driven debugging with a console 😈 and all I want from IDE is nice code-completion and other magic. Since I write the code in this way, I tend to test it in multipe compilers MSVC/gcc/clang and get plenty of static analyzer for free. IAR generates the smallest code size, and is why I grudgingly recommend it for all final builds.



  • @dse said in Logical Expressions in C/C++. Mistakes Made by Professionals:

    IAR generates the smallest code size

    That kinda worries me. Several optimizations increase code size (including function inlining), the fact that this compiler generates the smallest code size either means that it isn't as optimized or that it's way better than the others at optimization.


  • BINNED

    @Sentenryu said in Logical Expressions in C/C++. Mistakes Made by Professionals:

    That kinda worries me. Several optimizations increase code size (including function inlining), the fact that this compiler generates the smallest code size either means that it isn't as optimized or that it's way better than the others at optimization.

    This is the tricky bit about optimizations that you must profile. Smallest code size usually means faster too, because cache-hits and such that is hard to explain but easy to find explanations πŸ˜•



  • @Sentenryu some optimizations may be for speed at the expense of size.

    Which is optimized better:

    char * digits_of_pi;
    /* laboriously calculate the first 1000 digits of pi */
    

    or

    char * digits_of_pi = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8, 9, 7, 9, 3, /* ... up to the 1000th digit */];
    

    The answer is, it depends on whether you're optimizing the code for speed or for size.


Log in to reply