Always consider: your code is a guest on someone else's system. Any other agreements you think everyone is signing up for are built on top of that.
/end rant.

As someone who likes to buy & own games, to run them on my own hardware for my enjoyment (when not agreeing to community rules for competitive online), this Denuvo quote is chilling (conflating eg Cheat Engine with criminal piracy):
"the increase in mobile usage has also attracted criminals to develop a variety of ways to bypass, cheat, modify or pirate mobile games"

My first thought when hearing about Denuvo for Android was "exactly how different will it behave to a power virus?" considering games are already pushing the limits of what mobile SoCs consider an acceptable workload.
DRM punishes customers. Run-time decrypt & obfuscation-first code already seems dodgy on laptops (where many gaming laptops are on mains) but mobile: I know what I'd avoid ever installing (if not hidden from store listings).

Jess Birch boosted

I'll write about it more once Clang 9 is fully out (soon-ish), but here's a little tool I scribbled together: Clang Build Analyzer.

If you're doing game dev and have an eye on Rust (the language) then it's probably worth putting a pin in this:

@jon_valdes Unfortunately I've not been paying enough attention to know what the current state of the art is.

@jon_valdes An area where my understanding is colleagues in image/video compression are doing the work (when previously we might have just computed PSNR or similar & called it good enough rather than focus on perceptual metrics) with plenty of cash from eg Netflix wanting better metrics to help tune their compression (over a variety of visual styles of video). Seems a good fit for full scene render tests stable over hardware / drivers / minor renderer evolution.

@jon_valdes It sounds like their history with A-like approaches was pretty bad (eg pixel value matching images 😱) giving very negative impression. I'd personally still prefer to answer questions like "is our TAA gamma-correct" with approach B & only catch vendor or major regressions via fuzzy matching of scene renders (vs previous output or offline rendered "ground truth" targets - def lots of space for eg trying to calculate "proximity to 64x offline render of scene" for evaluating AA quality).

Good blog about testing and graphics - what is a test suite you can maintain and gives you actionable results?

@runevision The multiple files is more about allowing users to rollback through a saved history of changes. But the core of avoiding potential issues would be two files so one is read-only & known good throughout the other being modified & verified (then just keep both, rewriting the older one next time you need to save [once reverifying latest file is still good on HDD]; ensure ordering with data in the file rather than relying on modified etc timestamps).

@runevision I wouldn't dispute that temp & rename is the common choice. It's also not necessarily atomic or bug free, which is covered at the end of this:
I really like keeping filesizes small & just having lots in effectively a ring buffer so worst case corruption of something means rollback to last good file.

Something one of my supervisors used to say: "C types are really just sugar for pointer maths."
They let the compiler do the maths on sizes of types rather than forcing you to do it yourself. But that's all you're being given. What is an array of 3 vec3s but 9 ints? Changing the type of a pointer without changing the address is just modifying how far it moves when you increment or index off it. At best, a good modern compiler adds warnings based on types but that's not strictly C's intent.

C++ quiz answer 

@patrickmcurry Robust live online connectivity.
Go from a working solo experience to fixing any non-determinism / efficiently syncing any elements of randomness with a single wave of a magic wand? As a free refactor / feature, that seems like a lot of concentrated magic (in place of doing the work to get it right & thoroughly test it).

Occasionally I'll be tweaking a game I'm playing & start thinking about AAA testing reqs. 😱
(I think Fast-Sync + Application-controlled Maximum frames + Triple buffering gives the most responsive & smooth experience in Watch Dogs 2 but you can definitely make it report the same framerate but feel infinitely worse if you've defaulted your driver settings to something it doesn't like. I can't imaging testing for those edge cases * GPU series * driver/OS versions & requesting/coding driver tweaks.)

@cidney I've freelanced previously in some indie roles but my impression of coding expectations are so much more expertise with far less pay than outside of gamedev. I'd rather freelance outside games for 3 months & make enough income to ramen solo/hobbyist for the next 9 months.

Something I've not considered before: if you detect for running on a virtual machine then currently Windows 10 is often configured to use virtualisation features (even when not a classic VM).
Defender (System/Application Guard), Sandbox, etc all make use of these CPU features so if you can't run on machines with it enabled then you're asking users to disable some of their OS security. All editions, on by default for clean installs (if enabled in BIOS).

Jess Birch boosted

The "would be" there: the original headlines about this were wrong. SteamVR is only required for the VR modes (both HTC/Valve & Oculus headsets are driven via the SteamVR API). See update:

VR-compatible game shipping requiring Steam would be badly configured build (that always requires the HTC Vive driver/SteamVR) rather than egg on Epic's face.
TBH, the ease with which you can dev & release a game totally tied to Steam (APIs) isn't great; makes me think of required publisher stores (uPlay Club/Origin Achievements). Surely Epic could include dev tools in EGS installation that make it very easy to accidentally build something that needs EGS (dlls) installed to run?

Show more
Gamedev Mastodon

Game development! Discussions about game development and related fields, and/or by game developers and related professions.