(Apologies for reshuffling pieces of your reply but you made many points and i want - while addressing them - to link them in narrative)
I'm sorry you can't enjoy my game.
i had to bend over backwards to pass your "gimme-your-email" invasion of privacy - and set up a bogus email for Roku. That's the only time i have done it. In other cases my response is chuckle, followed by prompt "delete".
If hundreds of thousands of people are willing to share their email with PBS Kids for no apparent reason,
"Hundreds of thousands of people are doing it" is not a high mark.
Billions of people have trusted Yahoo with personal data. This past week 500,000,000 of them got burned - did you hear?
And a personal anecdote from me: i tend to hand unique email addresses to companies i open accounts with, so based on spam i know who have leaked their user DBs: Adobe, Sears, Scottrade, Paypal. Well not Paypal per se but one of the merchants i have paid to via Paypal and Paypal shared my email with said merchant - which is like the case with Roku sharing email with you. Now, if i cannot trust the above companies with my email - why should i trust you?
I figured I made it about as easy as possible. [...]
I'm sure the majority of people will have no problem clicking a button that instantly takes care of
How easy is something does not make it right. Killing a person is easy, guns have an easy "point & click" UI. Should you do it to spare annoyance?
It's essentially the same as OAuth, people love OAuth.
No, this is nothing like OAuth. OAuth provides an "access token", not abusable contact info.
Sorry, but an online game requires you to log in in some way.
Do they? Have you tried agar.io, slither.io, diep.io?
I have to store a large amount of user data; levels you've published, highscore/rating/difficulty vote for every level you play, all your work in progress editor levels, etc. It exceeds the amount of storage that we're allowed to use on an individual Roku.
... and so you store it on a server. Which uses unique ID to match the app instance. That could be many things - like .getPublisherId()
or a token handed down by the server. No excuse for email.
Plus this makes it so even if you get a new Roku you don't lose all your data, and it can sync between multiple devices in your house.
This thought makes sense. If Roku has a cloud service akin to iCloud, it would been easy for app to share info between different players via cloud storage. A bit on the side, i don't see the need to share data for "Tiles": the published levels have been "confiscated", the drafts probably should stay only on the player created, jury is out on the votes (as you mentioned it could be different people play on the same device, so it's not 1:1)... but maybe that's not all you have in mind.
I asked Roku if there is a way to get an account ID (because I just need something unique to identify the user) but they said it's not possible.
Well, the Co people tend to think "inside the box". And indeed, there is no "out of the box" way to auto-identify an account. And that is intentional.
the hassle of going to a separate website to create an account.... where they would also enter their email to create said account...
I am totally with you on this one. Which is why apps that really, really
need to create account with email/password et al - better have that friction point later in the workflow and not at the front door. Buy me a drink first!
I have seen many iOS apps suffering the "show me ID at the front door" syndrome. They don't fare well.
However! There are better ways to accomplish what you want on Roku. Specifically the one i have in mind, your app would benefit from it. True, it's not well-documented (shocker!) and it's not free - but on the plus side, it's an API that have existed for many years and you have used already even. Let me make it a puzzle trying to figure out what is it