8 ms·
Amazon Lumberyard: A Scream of Anguish
- royjacobs 8y agoOne thing that puzzles is me is why some of these checks aren't just part of the warnings that a compiler emits. I get that you wouldn't want to enable them all the time, but usually comparing a variable to itself is not what you want.
- cprecioso 8y agoYou're right, but just a fun edge-case to think about (in JS): NaN === NaN // -> false This check is sometimes used to check if a number is NaN.
- andreareina 8y agoBetter to use `Number.isNaN()`
- royjacobs 8y agoSure, and there are cases where you may been reading from some volatile register or something. But that's why I mentioned that this is usually what you want, not always :)
- pm215 8y agogcc and clang have been getting better at this recently. For instance if you do an "x == x" comparison for an int x clang will warn "warning: self-comparison always evaluates to true [-Wtautological-compare]". I completely agree that having these warnings in the compiler is much better than a standalone analysis tool, because they're less likely to be ignored. But I think it may have been a bit of a shift of mindset for the compiler developers to put more effort into warnings and diagnosing dubious code rather than simply being a code generator for correct code.
- CapacitorSet 8y agoTo add on this, clang-tidy is a tool specifically for static code analysis. I don't know if it implements all the checks mentioned in the article, but it is quite powerful, being able to detect eg. array overruns through several layers of function calls and ifs.
- pjmlp 8y agoLint exists since 1979. Everything that is outsourced for an external tool, just happens not to be used by the majority. Clearly the introduction of clang and its sanitizers has changed a bit the mindset, however they are still used by a minority. As per CppCon 2016, 1% of the audience confirmed they were using some kind of validation tool.
- pm215 8y agoI agree, but my sense is that the number of people and projects willing to fix complaints reported by compiler warnings is larger than the number of people who care enough to run a separate tool over their codebase. This is purely a UI thing -- if the compiler had a -Wlint option that ran lint and integrated its reports into its own warning output it would probably have a similar effect, especially if enabled by default...
- deng 8y agoTwo main reasons: Many warnings that a static analyzer will emit are quite costly to detect, so the compilation would get slower. And since compilation speed is an important benchmark (if not the most important), one would usually not sacrifice this for some warning. Also, people usually do not accept false-positives in compiler warnings. Static analyzers often have heuristics to detect typos like these: a.x = x; a.y = y; a.y = z; <== But those heuristics will usually also emit false-positives. This is why pretty much all static analyzers have an easy way to suppress warnings for a certain line (usually through a "magic comment"), but suppressing compiler warnings for a single line is much more cumbersome, since it has to be done through the preprocessor.
- pjmlp 8y agoThat is why it should at very least, be turned on the CI server.
- imglorp 8y agoIf it wasn't obvious from the URL, OP is more about a code analyzer product than Amazon Lumber, mentioned in passing as an example usage.
- Waterluvian 8y agoYeah. I think the analyzer is pretty neat. It's cool to focus on human mistakes writing code rather than validity of code itself. I see a bunch of errors I've made before, especially when copying and pasting. Time to find something like this for vscode to do realtime linting of human errors. That being said, I think this article really overstates the dire state of Lumberyard. Yep, it has bugs. I don't think this convinces me that the sky is falling if the devs don't change their ways.
- throwaway13337 8y agoOne of the best blog-ads for a product I've seen in a long time. It effectively shows value of their software while being interesting enough and relevant to something popular that already has (some) following. Perfect. Makes me wish they had something similar for JS or Python. I know I've made these mistakes all too often.
- Archibald_Eric 8y agoOne of the best comment-ads for a blog-ad for a product I've seen in a long time. It effectively paints the blog-spam as being a good article.
- nik736 8y agoWhy would anyone choose Lumberyard over CryEngine directly? I would think that ones core product will always be better maintained then just some side project that was bought in.
- usrusr 8y agoE.g. because Amazon might still be around next week? This hasn't been a given regarding Crytec for quite a while now.
- Jare 8y agoIntel is still around but a number of game technologies they bought are not anymore. Lumberyard appears to be rather far from the core (or even the periphery) of Amazon's business, so it's a valid concern.
- nebulous1 8y agoI haven't used either. Cryengine is notoriously difficult to use. Crytek have also had severe financial difficulties. Amazon have their own team working on the source, I'm not sure how this has worked out but clearly amazon have plenty of resources to throw at it if they choose to.
- AHTERIX5000 8y agoWell, Crytek's financial state isn't the most stable for one. Also Lumberyard's aim is to replace pretty much everything in the long run, some parts of the CryEngine are quite...interesting compared to other engines and the work Amazon has done for example regarding animation and workflow improvements has been great.
- fknop 8y agoI believe lumberyard also offers direct integration with AWS.
- wlll 8y agoCrytek recently (and it may still be going on) sued Cloud Imperium Games (CIG, the people behind StarCitizen) for switching from Cryengine to Lumberyard. The details are few and far between, but the possibility or being sued by the vendor would be a bit off putting for me.
- jlebrech 8y agowhat's the value add of Lumberyard over Cryengine? you'd think the netcode would be the selling point.
- rurounijones 8y agoAWS integration and everything that goes with it (scaling), Twitch.tv integration etc. https://aws.amazon.com/lumberyard/details/ https://aws.amazon.com/lumberyard/details/
- agameengineer 8y agoThe posts from these guys are pure BLACKMAIL. I work at one of the companies who's product they "reviewed" and many of us got unsolicited emails basically saying, we found all these bugs using our code analyzer. Buy a license from us to fix them or we will post a negative review of your code. It's a horrible business practice and they do that with many open source products. This behavior shouldn't be praised.
- naikrovek 8y agoThat's Russia for you. That's ANY shady son of a bitch for you, really.
- coldtea 8y ago>That's Russia for you. Yes, it could not happen elsewhere, e.g: https://www.xdesk.com/wirecutter-standing-desk-review-pay-to-play-model https://www.xdesk.com/wirecutter-standing-desk-review-pay-to... (And from a NYT backed website, nonetheless) >That's ANY shady son of a bitch for you, really. Better.
- wmeredith 8y agoREALLY disappointed to read this about The Wirecutter.
- coldtea 8y agoYeah, me too. Thought they were a legit site, and always checked them for 3-4 things I've bought they cover. Now I see them as any other site, to be read with a grain of salt.
- neurobashing 8y agoFrom context, Lams use of “kickbacks” in the email refers to Amazon affiliate payments. It’s a freakishly poor choice of words but hardly scandalous.
- andrepd 8y agoMore integration and hegemony in the Amazon behemoth. Is this what we want?
- jhare 8y agoEasy to pick on an open source project, suggest changes, but not actually make them on your OWN fork? Clickbait, gross. Similar to linting, where often I need variation in rules, sometimes there's red herrings even in static code analysis. Game software in general can be fly-by-the-wind because it's real-world software ... of course this is all me reacting and trying to argue with the clickbait :/
- cmjqol 8y ago> not actually make them on your OWN fork? Clickbait, gross. Yup. Something like : > You have bugs in your codebase of 1M+ line, you want to fix them ? Buy my proprietary software for 30$/Month per user , which was built 100% on open source tech obviously. Getting traffic using linting issues from a large codebase to promote a proprietary software , Outrageous.
- pjmlp 8y agoWell that is what happens when releasing open source tech with licenses that support this kind of behavior, nothing to be outrageous about.
- deleted 8y ago[deleted]
- ctvo 8y agotl;dr: Ran static analysis tool author is trying to sell on a 1 million+ line code base for Amazon's open source game engine Lumberyard. Found warnings. Used it to infer quality of the product and wrote a very click-bait title.
- k__ 8y agoThe funny thing is, the code wasn't even written by Amazon. They just bought it. Maybe the new team will clean up the code of Crytek?
- lowmagnet 8y agoThe version lumberyard started with a 2016 engine, a few revisions behind Crytek's current engine. Crytek had fixed some of the logic bombs, as mentioned in the article, in their current release.
- hguhghuff 8y agoThis is really, really poorly written.
- avryhof 8y agoNever heard of Amazon Lumberyard. I thought this post was going to be about them entering the market, and Home Depot/Lowes worrying.
- draw_down 8y agoYuck.