Posted: 13th Dec 2020 16:51
I did ask this on the Discord server, so apologies for double posting.

Has anyone created games in Tier 1 where users can share levels/files with each other, without requiring a server in the middle? I'm specifically speaking about Mobile games/apps, not desktop where you can browse your whole computer for files.

The only way I can see how it's possible at the moment is for the user to upload their level design to their own server, or upload it to a public site, and provide other users a URL which the app would download with GetHTTPFile. The problem I have with this is that you can't make up your own file extension, so you have to provide links to things like funLevel.json, or funLevel.zip.

The files I want users to share aren't levels, but if you can share levels then I can do what I need to do. ShareFile() would send the file to a user but they have no way of then loading that file into their copy of the app because ChooseRawFile according to the documentation only works on desktop. Using GetHTTPFile with your own extension fails to download the files.

The reason why I can't really have an app server in the middle is because I would be responsible for the user created files. What I'm mulling over at the moment is something like Army Builder / Battle Scribe, but much simpler, and possibly used differently (never really used either of those). The users of these apps share content/lists/data that is often copyrighted, and the developers of the apps get around not being responsible because they just create the editor/program to create and view these user created files.
Posted: 13th Dec 2020 19:36
1) You could save you data as an image (Maybe make the first block of the image say "Kevin Cross's shared data" with your sexy new logo, so the user knows what it is), then the application data
2) Then you chould use ShaeImage() to share the image via messaging/mail/social media etc
3) Then you could use ShowChooseImageScreen() to get an image from the devices camera roll and process it as you wish
Posted: 13th Dec 2020 19:44
Thanks, interesting idea. But I wonder if users might find that fishy? Loading an image that's got hidden data in that the app needs.
Posted: 13th Dec 2020 22:00
I guess it depends on what they want to share.
If it's a level from a game and it's sent from one of their friends and it has a big banner that says "It's from this game and was made by your friend" i don't think they would have a problem.

Also, if you think about it the following thngs need to happen.
1) The person creating the content needs to generate it via your app and then send it via messaging or social media
2) The person recieveing it needs to start your app and then import the image from the messaging app
3) And in the end it's just a level, if it's a dodgy level what harm can it do?
4) I know it's a couple of steps but i go through those exact steps when sharing any content.

Attached example of encoding/decoding an image
Posted: 25th Jan 2021 20:45
The users of these apps share content/lists/data that is often copyrighted, and the developers of the apps get around not being responsible because they just create the editor/program to create and view these user created files.


Article 230 of the Communications Decency Act "protects" you from such actions, unless your Parlor!!, if you want to publish on app stores you will need to moderate which makes article 230 null-void, unless your Facebook!

Seriously speaking here I would refrain from making an app that allows users to share stuff in this climate, one wrong think post and your toast!, just saying!
Posted: 26th Jan 2021 4:54
Also iirc there is the infamous Article 13 in the EU things they are trying to pass this would make the creator responsible for anything shared not the end user.
Posted: 26th Jan 2021 5:39
If that's the case then how come Nintendo and just about every other publisher does it?
Posted: 26th Jan 2021 8:08
You could save you data as an image

If you chose an image you could also watermark it with your program adding security

the bottom of this thread explains the encryption
https://forum.thegamecreators.com/thread/222027?page=1

Also I have used images for 3D object placement etc that should be on that thread somewhere
Posted: 26th Jan 2021 8:28
Now that i think about it i don't believe that's true at all (Being liable for what people create with your product)
The whole point here was to allow users to share stuff WITHOUT using a server.
If the developer is responsible for content created by it's product then that's like saying the people who make welding equipment would be responsible if one of their customers used the equiptment to make a gun.
I understand how platforms are responsible for the content they provide but in this circumstance none of that applies.
Posted: 26th Jan 2021 9:15
Being liable for what people create with your product

NOT TRUE
I agree with blink but if your worried make up a disclaimer document/TOS thats the whole point of those kinds of accompanying documents
Posted: 26th Jan 2021 10:56
Although if it was true.. we could finally sue Gibson and Fender for indirectly creating Nickleback.

Let's not dismiss this. There might be value to this law after all
Posted: 26th Jan 2021 13:11
I flip flop between projects, and this one is currently sitting on the back burner. I'm not a lawyer but I'm fairly certain I wouldn't be held liable, especially as I'm not hosting those files.

Would Microsoft be liable if I typed up a chapter or two from Lord of the Rings and shared it as a .doc file on public forums and between friends?
Posted: 30th Jan 2021 22:29
https://www.google.com/amp/s/www.bbc.com/news/amp/technology-47239600

It's originally meant to protect musicians and other people when people splash thier work on YouTube, however it's a very small step from YouTube to your app/game etc and no disclaimer in the world will save you from a hungry lawyer.
Posted: 4th Feb 2021 13:48
Just for causion.

What about : "The Developer of this App, does not take responsability of what you do with the app, Please use Export/Import on your own sake" (sorry not a lawyer and english is 2nd)

Show this msg, both when exporting stuff and when importing on the other side.

Dont even worry about an Unsee button for this warning.
If ppl got to a point where they load up other people maps, they wont mind clicking it 100 times a day. And you can "fool" them by

Creating a msg box
"The Developer of this App, does not take responsability of what you do with the app, Please use Export/Import on your own sake" and a Button near it, (Ok, ImportMap) or another button saying Cancel.

You can also not only load a map from img or txt or just a *.fake file or one that ends with *.zip (just change the ending to what you want even if its an img so it wont be fishy)
You can also password protect them as a must until Law stuff applies.

I am using the same idea for my app.
As it has no internet connection at all, i can still share stuff...
Posted: 4th Feb 2021 14:16
Taking into consideration that the ruling would stop the likes of YouTube etc I don't thing they would have trouble with an indie studio.
Posted: 5th Feb 2021 21:28
I don't see what's all the hubbub about the legal aspects of it all. No company can be held responsible if their products are used for illegal purposes unless the product are specifically made for illegal activities. I could probably stab your eyes out with a sharp carrot and vegetables won't suddenly become illegal. I could run you over with a car and Ford won't be responsible. I could use toys to smuggle cocaine. Etc etc.

Somehow, I doubt that Kevin's intention is to secretly embed secret nazi propaganda is video game levels. I mean.. maybe he does, but I'm willing to bet at least 3$ that he doesn't
Posted: 6th Feb 2021 4:27
Firstly the legislation is initially to "protect" musicians as more often than not sharing of music is rife at present. There is loads of times places like YouTube, Facebook and loads of others allow file sharing with no safeguards, now once it's in full swing these companies either put in safeguards OR face prosecution. You can view full music videos on YouTube etc with no royalty payment to the musician at all which is where the original idea came from.

You can bet your bottom dollar though that once it's gone through for music everything else will follow. In the OPs original idea there is nothing at all there to stop me sending copyrighted material through his system this alone would infringe the legislation, whether or not this was his intent is irrelevant in the eyes of the law.

It's a bit like abandonware, yes the company no longer sells it BUT it's illegal to put it up for download but loads did and have been shut down accordingly. Places like GOG appeared and gave the prosecutor's a legitimate reason to say it's still for sale
Posted: 25th Mar 2021 15:48
Back on topic people.

Kevin, how do you normally save your levels and what type of format used? If you could upload an example saved file and the function used to save/load the file, we could find an easy solution for you to use. Since no level, editor or game uses the same level format, it's difficult to come up with a system that works for your game, let alone any game. Are we talking simple grid with boxes layout, or floating position 1000+ objects with various edited properties?

My idea is to use an image, where each pixel is assigned a certain aspect of the level, where you have a scale of properties ranging from 0,0,0,0 to 256,256,256,256. This would require the use of memblocks, but since this would be used to save/load a level, speed wouldn't be much of a factor.

Example: Say you have a grid based level 10x10 and the only information you need is the creation and position of boxes. So you make a level with a box in grid space 1x1. So the image output would be 10x10 pixels in size, with the pixel at 1x1 = 256,0,0,256 (can be anything really, just needs to be consistent), while the rest of the pixels in the image = 0,0,0,256.

Hope that makes sense.
Posted: 14th Apr 2021 15:13
I added a similar feature to my most recent game "Micro Maze" for mobile devices. I allow players to share mazes that they like with friends, post them on social media etc. so others can play them and even compete for the best time.

My first thoughts were to try and build the mazes using a "seed". You can think of this as similar to how fractals are made. To share a maze you would just need to share the seed value and an exact copy of the level could be recreated. I don't know what sort of game you are creating so I don't know if this would be suitable for you. If the seed isn't too long, you could share it as a hexadecimal string or maybe even a QR code.

This wasn't suitable for my game as I also wanted to be able to release special codes for custom mazes that I built. So, for example, I released a special maze for Easter (looks like an Easter egg) and another for International Space Day (looks like a rocket) etc. My game does not allow users to create custom mazes so I have no worries about them inserting swastikas, rude drawings or obscene words - they can only share randomly generated mazes. So, I basically wrote a neat little compression routine to squash down the maze data to a few hundred bytes and send it to my server - which saves it in a database (much better than using files) and returns a neat little 7 digit code they can share. Anyone who enters a code into the app has it sent to my server which returns the corresponding compressed maze data to be decompressed and turned back into the full maze at the players end.

I don't know if this helps you at all but it works great for "Micro Maze" (available for iOS and Android )
Posted: 17th Apr 2021 15:41
Did you guys already suggest the Multiplayer or Socket commands ?