Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

AppGameKit Classic Chat / Sharing Game Levels (without a server)

Author
Message
Kevin Cross
20
Years of Service
User Offline
Joined: 15th Nov 2003
Location: London, UK
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.
OryUI - A WIP AGK2 UI Framework
blink0k
Moderator
11
Years of Service
User Offline
Joined: 22nd Feb 2013
Location: the land of oz
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
Kevin Cross
20
Years of Service
User Offline
Joined: 15th Nov 2003
Location: London, UK
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.
OryUI - A WIP AGK2 UI Framework
blink0k
Moderator
11
Years of Service
User Offline
Joined: 22nd Feb 2013
Location: the land of oz
Posted: 13th Dec 2020 22:00 Edited at: 14th Dec 2020 07:33
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

Attachments

Login to view attachments
PartTimeCoder
AGK Tool Maker
9
Years of Service
User Offline
Joined: 9th Mar 2015
Location: London UK
Posted: 25th Jan 2021 20:45
Quote: "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!
EdzUp
21
Years of Service
User Offline
Joined: 8th Sep 2002
Location: UK
Posted: 26th Jan 2021 04: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.
-EdzUp
Patreon: https://www.patreon.com/EdzUp
Buy me a coffee:https://www.buymeacoffee.com/EdzUp
blink0k
Moderator
11
Years of Service
User Offline
Joined: 22nd Feb 2013
Location: the land of oz
Posted: 26th Jan 2021 05:39 Edited at: 26th Jan 2021 05:39
If that's the case then how come Nintendo and just about every other publisher does it?
fubarpk
Retired Moderator
19
Years of Service
User Offline
Joined: 11th Jan 2005
Playing: AGK is my friend
Posted: 26th Jan 2021 08:08 Edited at: 26th Jan 2021 09:17
Quote: "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

fubarpk on Itch...………...https://fubarpk.itch.io/
fubarpk on googleplay..https://play.google.com/store/apps/developer?id=fubarpk
blink0k
Moderator
11
Years of Service
User Offline
Joined: 22nd Feb 2013
Location: the land of oz
Posted: 26th Jan 2021 08:28 Edited at: 26th Jan 2021 08:29
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.
fubarpk
Retired Moderator
19
Years of Service
User Offline
Joined: 11th Jan 2005
Playing: AGK is my friend
Posted: 26th Jan 2021 09:15 Edited at: 26th Jan 2021 09:16
Quote: "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

fubarpk on Itch...………...https://fubarpk.itch.io/
fubarpk on googleplay..https://play.google.com/store/apps/developer?id=fubarpk
n00bstar
20
Years of Service
User Offline
Joined: 9th Feb 2004
Location: Montreal, Canada.
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
-----------------------------------------------------------------------------
We all got a chicken duck woman thing waiting for us
Kevin Cross
20
Years of Service
User Offline
Joined: 15th Nov 2003
Location: London, UK
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?
EdzUp
21
Years of Service
User Offline
Joined: 8th Sep 2002
Location: UK
Posted: 30th Jan 2021 22:29 Edited at: 30th Jan 2021 22:30
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.
-EdzUp
Patreon: https://www.patreon.com/EdzUp
Buy me a coffee:https://www.buymeacoffee.com/EdzUp
haliop787
4
Years of Service
User Offline
Joined: 22nd Mar 2020
Playing: With reality.
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...
Nadav "Haliop" Rosenberg
Lets make the world great forever.
EdzUp
21
Years of Service
User Offline
Joined: 8th Sep 2002
Location: UK
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.
-EdzUp
Patreon: https://www.patreon.com/EdzUp
Buy me a coffee:https://www.buymeacoffee.com/EdzUp
n00bstar
20
Years of Service
User Offline
Joined: 9th Feb 2004
Location: Montreal, Canada.
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
-----------------------------------------------------------------------------
We all got a chicken duck woman thing waiting for us
EdzUp
21
Years of Service
User Offline
Joined: 8th Sep 2002
Location: UK
Posted: 6th Feb 2021 04: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
-EdzUp
Patreon: https://www.patreon.com/EdzUp
Buy me a coffee:https://www.buymeacoffee.com/EdzUp
JLMoondog
Moderator
15
Years of Service
User Offline
Joined: 18th Jan 2009
Location: Paradox
Posted: 25th Mar 2021 15:48 Edited at: 25th Mar 2021 15:50
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.
Zappo
Valued Member
19
Years of Service
User Offline
Joined: 27th Oct 2004
Location: In the post
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 )
janbo
15
Years of Service
User Offline
Joined: 10th Nov 2008
Location: Germany
Posted: 17th Apr 2021 15:41
Did you guys already suggest the Multiplayer or Socket commands ?
Loktofeit
AGK Developer
15
Years of Service
User Offline
Joined: 21st Jan 2009
Location: Sarasota, FL
Posted: 17th Apr 2021 16:07
"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."

I don't quite think that's true, otherwise Nexus Mods, Steam Workshop, Bethesda Creation Club, Rockstar Social Club, and the countless other sides/services that do so... wouldn't be doing so.



LynxJSA's web games/quizzes - LynxJSA's Android apps
AGK Resource Directory
"Stick to a single main loop (DO...LOOP) and loop through it every frame.
Do everything inside functions.
Use finite state machines to control your game.
Use lots and lots of source files.
Use virtual resolution instead of the default percentage system." - Digital Awakening
Kevin Cross
20
Years of Service
User Offline
Joined: 15th Nov 2003
Location: London, UK
Posted: 18th Apr 2021 09:51 Edited at: 18th Apr 2021 09:54
Didn't realise this post was still getting replies as I don't frequent the forum often.

As for the type of game, I mentioned in my first post it's not really a game, it would be something similar to Army Builder/Battle Scribe. I just used game levels as an example of sharing user created levels without the need of a server in the middle. The Army Builder app is for table top wargamers to help build their armies to play with. The legal issues with these kind of apps is that the data that users create and share in these army building type of apps has a lot of information about every single character and infantry type for each army and game, that you could almost do away with not needing and buying the relevant rulebooks that are sold for these game systems. I think they get away with not being liable because they don't sell the program with all that data in, and some of them don't host these army data files on their own servers. Everything is user created and shared amongst users via other methods like forums, github, and email etc.

That was why I was interested in finding out how to share such data through the app using images that contained all of that data embedded.

I've been thinking again about this app again lately and may have another go. But I may actually use a central server to host the files, because those files would now just be blank templates so users would still need to own the rule books for the games they play. Users won't be able to share files that has data for the armies included.

I did start doing it in AppGameKit but will move it to another language as I don't think it's suitable for it.

Login to post a reply

Server time is: 2024-03-29 15:22:43
Your offset time is: 2024-03-29 15:22:43