Not sure if I want to call it by design.
It is not a dark pattern, it is just "what is the minimum we can do to sell this without doing the curation work?"
Seems to be a much larger amount of work to design, implement, and support a more-or-less dozen-step customer journey that does NOT work than just implementing a few switches. And that goes even if the switch must be designed-in from the beginning by designing operation for local-only operation.
Surely, implementing a simple block-all-strangers to send-to-bitbucket all communications attempts by accounts not already on the whitelist is easier than all these overlapping settings described?
Unless it is explained how building a much more complex system is easier and lower-cost than a simpler system with fewer controls, the default conclusion is it is intentional.
>>It is not a dark pattern, it is just "what is the minimum we can do to sell this without doing the curation work?"
Even if for the sake of discussion we treat it as laziness, a dark pattern created by accident is still a dark pattern. The customer is no less screwed into doing something they do not want and the company does want.
The 29 separate confusing overlapping effects is by design. A single "local only" switch would (so long as that switch is enabled) lock out all manner of potential future revenue and recurring rents, which these companies very much want to see hit the balance sheet.
So the 29 separate confusing overlapping settings is designed to frustrate you to the point that you allow what they want from the start, the ability of the device to generate future revenue (via both of one time sales and recurring rents on rental sales).
>>The 29 separate confusing overlapping effects is by design
>>designed to frustrate you to the point that you allow what they want from the start, the ability of the device to generate future revenue
And this explains why they are willing to do all the extra work to do it.
It is not even close to accidental or lazy — there is nothing accidental about the intention or going to the extra cost to build those dark patterns to screw the customers.
Yes, absolutely. 29 separate overlapping settings likely match up precisely to arguments in various APIs that are used. On the other hand, what does local only even mean? No wifi? No hardwired connection? LAN only? Connection to the internet for system updates but not marketplace? Something else? All with a specified outcome that requires different implementation depending on hardware version and needs to be tweaked everytime dependencies change.
Let's start with this: Design the architecture so the core system works fine locally. Features requiring Internet connection are in separate modules, so they can be easily turned on/off, and designed so they are still primarily local.
E.g., store all current status locally and if requested another module sends it to the cloud, instead of cloud-first.
E.g.2, install updates by making a pull of all resources and then doing the update instead of requiring continuous communication.
Allow user control with options to completely shut off, whitelist, blacklist, etc.
Simple design decisions up front to make a software package meeting the user's local needs first, THEN allowing controlled access to the internet, under the USERS' control, instead of designing every feature to contact your servers first and compromising both usability and control at every step.
We are only talking about the architecture, setup, and options for each particular game.