Distribution What goes on about updating games?

Mythi.T

Member
Ok. I want to release a game in the future. Nice but I have an issue playing in my mind:


Say I have a game. I publish it to Steam or Itch.io or whatever. Say people download it.
A month later, I have a 'patch'/update for the existing game, which is basically a new version of the game.

Would I Replace the existing game on Steam/Itch.io with the "newer" game? Can I even do that? Would people need to re-download everything? how would they know if there is an update? what would happen? how to a overcome this problem?

What happens to mobile games because users can update them from google play / iTunes... how does that work for the creator? I do not know! please help THANKS!


============

Would it be easier to just do this (my plan to update a windows game)

1. Someone has an outdated version of my game. NOT FOR LONG
2. The outdated version notices that its outdated
3. The outdated version downloads the updated version of the game AND a "launcher" from whatever website I choose (both GML projects)
4. The outdated version starts the "launcher"
5. The launcher stops the outdated game
6. The launcher copies the .ini in game save files from the outdated project appdata (or wherever that stuff is located) to the updated version
7. The launcher deletes the outdated version from the computer and out of existence
8. The launcher starts the Updated version and stops itself
9. The updated version checks for a launcher project, if so, it deletes the launcher project
10. Yay the user now has a updated version and no loss to in game save data! Only 2 programs were deleted but that doesn't matter! (i think...)

(repeats whenever there is an update detected)

Is this POSSIBLE??? how even can I do this?

I don't know how I would download a zip file and insert things into my outdated game to make it updated because what if there's a bug to an already existing thing in my game and it needs replaced or removed? that's why there is two separate projects

 
Last edited:

The-any-Key

Member
Steam has its own update feature. Upload your new version and steam do the rest.

If you sell your game on itch you can send a message to all who bought it and let them know there is an update.

You can make the game send a http request to a page where you write down the latest version and let people know they can update. You can also make it download the new version and run the installer. But you need to use an extension to go outside the sandbox file system.
 

Calvert

Member
I don't see this as a problem, but I do understand where you are coming from. You want everyone that plays your game to have the latest and greatest version of it. That's cool.

When I post games, I'll just update the main page on Itch.io and whatever other websites I have them on. I'll make sure to include a change-log so people can read what I've added/fixed.

I personally wouldn't worry about making sure everyone has an updated version of the game at all times, because I know the previous versions are still fun, otherwise I wouldn't have uploaded them. Upload content that you know isn't super buggy. If people like you as a developer, or like your game enough, they will likely regularly check your pages and update it themselves. You can let them know you are planning to update the game when you release it, that way the people that end up liking it are looking forward to your updates.

Some people enjoy playing older versions of games. What if they don't like/want your new update and you force the update anyway? Are they going to be happy?

Also as a gamer, I love going back to games I used to play and finding an awesome update that I never knew existed. It's like re-discovering the game all over again.
 

The-any-Key

Member
How do I do that? and I don't think Windows is sandboxed against ini files so things should be fine
All exports are sandboxed. You can only process files inside the project.
https://marketplace.yoyogames.com/assets/5172/non-sandboxed-filesystem

I dont know if you can execute an installer from within the sandbox. So you would need to move it do an outside directory and run the installer with https://marketplace.yoyogames.com/assets/575/execute-shell
Should work in theory. It may work if you try run the installer from the sandboxed directory, have not tested that.
 

Mythi.T

Member
I don't see this as a problem, but I do understand where you are coming from. You want everyone that plays your game to have the latest and greatest version of it. That's cool.

When I post games, I'll just update the main page on Itch.io and whatever other websites I have them on. I'll make sure to include a change-log so people can read what I've added/fixed.

I personally wouldn't worry about making sure everyone has an updated version of the game at all times, because I know the previous versions are still fun, otherwise I wouldn't have uploaded them. Upload content that you know isn't super buggy. If people like you as a developer, or like your game enough, they will likely regularly check your pages and update it themselves. You can let them know you are planning to update the game when you release it, that way the people that end up liking it are looking forward to your updates.

Some people enjoy playing older versions of games. What if they don't like/want your new update and you force the update anyway? Are they going to be happy?

Also as a gamer, I love going back to games I used to play and finding an awesome update that I never knew existed. It's like re-discovering the game all over again.

That cool, I understand your points.
However, I do not know how to allow others to "update" the outdated game even if they wanted without having to download a whole new .exe file and not having any progress from your previous version game

Should the updated version be separate game where you must repeat all your progress again that you did from the outdated version?
 
Last edited:

Mythi.T

Member
You can make the game send a http request to a page where you write down the latest version and let people know they can update. You can also make it download the new version and run the installer. But you need to use an extension to go outside the sandbox file system.
is it possible to download a program that replaces the outdated game with the updated game WITHOUT harming the ini save files?

I just dont know how to have an installer download a new game version and have it run AND have the save files from the outdated game accessible to the updated game too

I its super simple to have a game maker project download its updated version but I don't know what to do after that...
 

The-any-Key

Member
is it possible to download a program that replaces the outdated game with the updated game WITHOUT harming the ini save files?
Sometimes people on the forum mention that saved files will be removed when you re-install the game. This is most about the mobile targets. But if you want to be fully safe, why not upload the data to the cloud, install, and let the user login and download the data?
 

Mythi.T

Member
Sometimes people on the forum mention that saved files will be removed when you re-install the game. This is most about the mobile targets. But if you want to be fully safe, why not upload the data to the cloud, install, and let the user login and download the data?
How? wouldn't I need to create a website, which costs money, and MAKE a system to do that? I have no clue how!
 

The-any-Key

Member
I have an webapi where users can create accounts and upload data and download it. Sure, you need a website with PHP and a database and do some work. And for most time paid websites is both faster and you get better support. I myself use one.com and it works fine.

But you could make your own system for free and make it work on a free webspace. But that involves some work and studying. But that is what being a coder is about. Get to a roadblock and figure out how to tear it down.
 

Yal

🐧 *penguin noises*
GMC Elder
10. Yay the user now has a updated version and no loss to in game save data! Only 2 programs were deleted but that doesn't matter! (i think...)
This is exactly why I hate automatic updates and do everything I can to disable them... :p

But on a serious note, unless you really need to keep the thing up-to-date, don't go through that mess. It just opens up security holes for a feature people won't appreciate. The only time you'd really need an update feature is for an online multiplayer game, and then you already have a server to talk to as part of the infrastructure so you could just ask it if there's a new version available.
 

Mythi.T

Member
Sometimes people on the forum mention that saved files will be removed when you re-install the game. This is most about the mobile targets. But if you want to be fully safe, why not upload the data to the cloud, install, and let the user login and download the data?
I just had an idea

Could all of my separate game version applications all share one directory, say, called "<game name>_global_data? or can GMS games ONLY use the app data folder that they are assigned to, as in whats the limit of sandboxing? Can I access anything within localappdata or only within the folder the game made within localapp data.

If I could make a system in my games that allow uses to 'sync' data between all game versions (which would be seperate applications) that would be AWESOME...
 

The-any-Key

Member
I have not tried to access sprites or sounds in the app folder from a game. My guess is that the sandbox only allow access to the "included files" folder and any new files you create and save in the game. Not the actual app folder. But you could try. Else you would need an extension to break the sandbox.
 

Mythi.T

Member
I have not tried to access sprites or sounds in the app folder from a game. My guess is that the sandbox only allow access to the "included files" folder and any new files you create and save in the game. Not the actual app folder. But you could try. Else you would need an extension to break the sandbox.
What I mean, is that each game would look for ONE custom folder in %localappdata% that every version of the game would use to load and save data, so every game version would already be "synced" with each other. I want to know if games can access other folders WITHIN %localappdata% except the one it originally created
 
Top