Is using System.IO bad?

How does IsolatedStorage work?

i was looking if i might work on android and its supposed to… was in monotouch over 10 yeasrs but i havent tried…

using System.IO.IsolatedStorage;

it would be the best way because you can set limits on how big files can be and each app gets its own compartment. If you put in data in the current user some other app installed by that user, i think can maybe access it. so I think this is actually how your are supposed to do this… like saving replays, player state, unlockedc levels, etc.

Interesting, thanks for the link.

IsolatedStorage definitely works on iOS and Android.

It is very fine in most situations, just be aware that depending on the system, it isn’t quite what you’d expect in regard to file management. Depending on the implementation, it isn’t as predictable as AppData is and the path to the files (providing they are not obfuscated by the implementation of IsolatedStorage) changes from a computer to another. So whenever you have to do customer support with someone asking “where are my save files?”, IsolatedStorage makes it quite fuzzy to reply.

My personal recommendation (it’s not a consensus) would be to use the file paths I mentioned earlier when it comes to desktop PCs, and to use IsolatedStorage on iOS, Android, and UWP.

yea that sounds like good policy to me , if its in app store, use the ISO, desktop , don’t because its a app store construct . BTW regarding ur earlier comment aobut serializing, I stiil won’t do it manually, i use preserve references ,just tag persistent members, say preserve refernces on classes , and collections have references to those, and I dont get bloated files, i can allow modding levels by using xml, or can choose binary format or even encrypted stream, so i loved generalized serialization but when I recently did fall into hell with references as u warned. Once u have to mess with serialization order, say a joint refers to a Body the body muust be serialized first, etc… If you touch something near a Datamember with a load ordering 2 atrribute, file compatibilty can mysteriously break. I just sppent 6 hours to track it, fix it, the pull and then merge with GIT which i think takes 2 years to understand, after pull , fast fWd, rebase (merge , stash, POP, WTF??? ), with subversion i never ever failed to merge with 3 staff. now i bash my own changes , regularly, so i merge , broken again so im in hell at momement because of serialization order. but still no way am i gonna parse files manually, wiht datacontractserializer I was able to easily parse out just thumbnails using the same serializer so do i still reocommed it for loading levels of entities and polymorpthi collectiosn, but its can be a tar pit i agree, if you clean or reorganize some code and all your old levels wont load at all ( references unknown) or produce myserious results…

this is offtopic ranting, sorry but i need to vent. im talking aobut serializing levels which ussually are packed in the core DLLs. But user data i do the same way , a dictionary or something i can serialize. and
regarding app stores, i think
Im ditching Microsfot App store submission for 5 reasons. 1) it sucks to find an app, and barely anyone uses it. 2) a widows EXE from 1995 years old still runs on win 11 so better go that way or might get screwed over if they drop the uwp or chagne it too much 3) they dropped ad hosting, and xbox has a weird way of doing it. 4) And if you buy a game on Steam and run on your PC, and u change to a Mac or box which are cheaper and better now, u can still play my game w same DRM license. Games from 1995 still run on windows so i didnt commit for UWP, I tried the exe wrapper or WAP thing tho it made a windwos storepackage, its almost no work but its in flux. . 5) no Live tiles, win 11 has mac wanna be- like regressed start menu , i was gonna use tthose nice live tiles to promote my new levels. the new start menu sucks so bad to simply launch a recent app, i want to go Seattle and scream, because itw was so great in win10 if cortana wasnt so stupid, it could been just Natural language to launch an app. now u type first few letters, a its brigns up bing and searchees for that app i lauched recently. so i dont even want an “App” on their menu now. sorry for the rant im in serialzation hell…

Deserialization risks in use of BinaryFormatter and related types | Microsoft Docs
So this is what scared me away. It says BinaryFormatter class, but in that same article, when discussing alternatives, they say " * BinaryReader and BinaryWriter for XML and JSON." as opposed to just “these other classes are generally safe”, which makes it sound like you should only use them for binary encoding of XML or JSON?

Then again, if I’m missing something, I’d be happy to know.

For a game with static assets and no sensitive data, you are pretty much safe about those concerns. There’s nothing worth attacking or leaking there.

Thats only if you allow loading of user data from any source. Then if they are genius hackers, they can maybe load in a virus somehow, but you can say if you mod levels , do so at your own risk in your EULA. plus if you want to allow modding, dont use binary, use xaml or json , so they can see what to mod, like Max Thrust or whatever… modding builds community and itsnt a bad idea to allow it.

Actually i was more concerned about sending data over network for online multiplayer