How does Grow a Garden Publish Updates?

After viewing a few updates to Grow a Garden, I noticed they never use soft shutdown. This made me wonder how they publish updates to servers without shutting down servers any time in the week. Is it AssetService?

I want to hear your thoughts on how this system might work because it would be beneficial in the future, so as not to overload Roblox’s servers in major frontpage games.

8 Likes

I don’t play GOG at all and never have. Do the updates just suddenly appear in the server?

2 Likes

Yes, they do. A thought that I had was they schedule updates, but that would require a shutdown at some point to carry the assets from their [DEV] game to the main game.

1 Like

They update the place and teleport everyone to new servers.
That’s how we do it in our place.

1 Like

No, they don’t. As I stated, they don’t do SoftShutdowns any time in the week. Updates simply appear.

2 Likes

You update the game with all the assets already made in the game.
Then using MessagingService you execute the Update function.
(or a timer)


You can’t just insert the update. Inserting scripts along with meshes, models etc isn’t possible.

1 Like

Jandel is a billionaire with a billion dollar company so he could of implemented a bot at one point a few months ago that writes all the code in a command bar when he updates which will update the current servers. That’s my assumption, really crazy but I think he can do it and did.

2 Likes

That’d require every server to have a bot. On top of that you’d need to script the assets.

He can insert parts with a command and position them at specific positions and upload meshes and set their id to a mesh he just uploaded, he can use the command bar as the script for everything. This would be near impossible to do so I am assuming if he did do it it would be very very very expensive and that’s why no other game did it.

That’s completely stupid. There’s literally no point in doing that. Plus the payload would be too expansive.

1 Like

I believe the game was purposely designed that way to essentially have “live” updates. Jailbreak did this many years ago, and most likely other games did as well. I’m assuming this is utilizing Events or packages

19 Likes

It could be possible if you use AssetService to load a model or package in game, and built your game in such a way that it can update itself using it

Each server would receive a message (with MessagingService, or Datastores/MemoryStores) to update a server. They would load up an “update” model with AssetService, which would contain everything needed to update the game (easiest way might be to put literally the whole game inside the model). The servers would take the contents of the model, and replace everything to update the game

That would be my guess at how it is done. However, it is not hard to imagine the drawbacks this would have. Some properties cannot be changed at runtime (such as MeshId, you need to clone the mesh), and things like terrain cannot be copy pasted. If the datastores are updated, then you’d have to replace them while players are still playing. You would also have to consider how to handle updating core parts of the game, while they might be storing state about this or that, which would have to be maintained (if you have a round based game, you could perform the update during the intermission)

It’s kind of insanity to do such a system, but I guess these studios are so big, they can afford it

1 Like

My guess would be that updates are published with the new content disabled until the release date, when they are automatically enabled. The servers shut down/restart naturally from players leaving, and some time before the update outdated servers are restarted

1 Like

I believe the game was purposely designed that way to essentially have “live” updates. Jailbreak did this many years ago, and most likely other games did as well. I’m assuming this is utilizing Events or packages

1 Like

Probably by using require to retrieve a MainModule with the entire updated game code and assets. AssetService itself is slow and unreliable… but

Oh well, yeah, that’s Roblox for you.

2 Likes

My guess is that he uses packages, and he can send a message from messaging service telling all servers to update their code through the package

1 Like

im guessing it just uses a fast-flag system and updates are pushed ~a while in advanced (3+ days)

2 Likes

I was thinking that would be what they have implemented but why? Isn’t the whole point of that to test the stability of the updates?

Is everyone getting the update at the same time?

I’d say since its a cash cow game they work on update after update daily and just have something to change the flags on their servers and notify the servers when theyre supposed to release + pushing the update and pressing “shut down all servers” can cause a lot of issues

1 Like

What exactly is he gatekeeping?

16 Likes