Jump to content
  • 4

Protection from Rollback Induced Inventory Wipes with Dupe Prevention [detailed]


Keykoh

Suggestion

   I wanted to share an idea I've taken the time to think upon to help alleviate the symptoms affecting players caused by server related problems such as frequent crashes and rollbacks. The major benefits of this idea will be listed at the bottom, after I have outlined the proposed system, its operational process, and basic requirements to achieve the intended function.

   I have already been filling out my outage reports as per usual, but at this point I am trying to pursue as many possible channels of contact that I can think of in the hopes that someone is able to get it the attention I believe it deserves from the people with the power to actually do anything about it assuming of course that they come to the same conclusion upon looking it over, due to what it can potentially accomplish.

   The shortest and simplest way I can think of to describe the system idea I am going to present here is essentially a glorified Automated, Auto-Character Restoration Triggered, Scan and Repair System for Character Inventory with built-in item dupe protection.

   The idea has evolved to some degree from the initial thought process and iteration I had come up with, but I'll detail the general through process below just in case earlier thoughts are easier or more likely to work with/accomplish than the full end result. I apologize in advance for how lengthy this is going to be, though I will try and format things in a way to make skim reading the most important bits relatively painless. (The final thought/idea will be found below in more detailed form than above and will be granted additional visibility in a similar manner to make things easier for people.)

   The idea started  as a system to basically allow customer support/GMs the ability to provide better support through creation of a tool to help them resolve tickets involving losses caused by server crashes and rollbacks following player character transfers. I suspect many of the current limitations in place at the moment regarding tame and item replacement are in place to prevent possible abuse/corruption, and I believe we can get around those concerns by altering the process by which replacements are carried out in the first place. The initial thought was simply a system/tool that would be able to access a server save file from the origin server immediately prior to the transfer that caused the inventory wipe at the destination server, confirm the contents of the player's inventory, and then basically be able to copy and paste that data to replace exactly what was lost in the event that it is confirmed the auto-character restoration service was triggered at the destination.

   The idea evolved a bit from that point to an automated system capable of simply checking for and replacing lost tames and items when triggered by using server save info and a data dump of their inventory contents into a system accessed and functioning similar to the Ark data, if not Ark data itself, where a player can download the missing items at their leisure in the event the Auto-Character Restoration service was triggered.

   First, I would like to point out that I am operating on the assumption  that some aspects of this idea are possible in the first place, and I am aware of the potential things may not be able to execute in exactly the way I am hoping or intending, however, I believe Studio Wildcard is still able to work from this general logic process to achieve a similar end result if that is the case. Ideally, this system would function in a logic path and method akin to the following:

 

Process of Operation

 

  • Step 1)   To protect from being abused for duplication purposes, when initially triggered, the first thing the system would do is check if the character still exists at the origin point of upload into the cloud 30 minutes following the trigger, and if the character exists at both points, the system stops there, job done, because that means that the origin server had also crashed and rolled back and no inventory data was really lost. That is the built-in dupe prevention I was referring to. If the character only exists at the destination where the Auto-Character Restoration Service was triggered, the system proceeds to the next step. Step 2 will be listed with 2 variant possibilities to account for different possible methods of implementation.

 

  • Step 2-1)   It loads the server save data with the time stamp just prior to the character uploading into the cloud, at which point it should be able to access, or view in some way, the entire contents of the inventory of the triggering player. The system then simply needs to copy that inventory data and dump it to the player's Ark Data or a similar network to be downloaded at their earliest convenience.

 

  • Step 2-2)   A backup copy is stored in the cloud upon upload that is accessed at this point. This is likely a more efficient and less resource intensive method than loading an entire server save file to scan since it would only contain the exact data that is required for the purpose needed. At this point, two possible methods exist.
  • -   Method One)    Method One operates in the same basic principle/method as in Step 2-1 in that it simply dumps the inventory data into a point that can later be accessed by the player at their destination and downloaded at their convenience.
  •  -  Method Two)    Method Two would be instead to re-download and overwrite the character data at the destination, as if they had only just downloaded there the first time.

   I suspect that Method Two is the simplest and most efficient way to execute this because it would not require access to the ark data network or creation of a similar resource in order to dump the inventory data. It quite simply just saves a back-up of the transfer data in the cloud to be accessed in the event the automated system requires its use.  In this event, if the character is currently still "online,"  then some process may need to run in order to prompt them to re-download their character with inventory contents from the cloud at their desired spawn location. My knowledge at this point is rather limited so I am unsure if something similar essentially already exists or would need to be added to accomplish this task.

 

Requirements For The Proposed System

 

   For this proposed system to be able to operate, requirements vary depending on which method is used. Due to the nature of Method Two listed above being more efficient and likely less resource intensive, I will operate on the assumption here that it is the more likely candidate.  For this Automated Inventory Protection System (or AIPS for short) with dupe prevention to operate, it would require the following:

  • A duplicate/backup copy of character data to be stored in the cloud upon upload that is overwritten at each upload
  • Ability to monitor the Auto-Character Restoration Service to trigger AIPS appropriately
  • Ability to track where the character last uploaded from. This data could theoretically be attached to the backup copy so the system knows specifically what server to scan upon trigger, reducing required resources for the process due to reduced search requirement.
  • Use the above information to scan said location for an instance of the character about half an hour after triggered.
  • In the event the character exists at both points the system should be able to flag the operation as complete. 
  • In the event the character exists only at the destination where restoration was triggered, the backup data in the cloud is re-sent to the destination as if the transfer was being done for the first time, prompting the player to select their spawn location as normal at this point.

 

The potential benefits of what I propose, and why I believe it is more than worth consideration and implementation:

   I believe a system such as what I have outlined above provides a number of benefits on both sides of the field. It provides better and faster support to the players due to its automated nature. It circumvents some of the current policies that are in place regarding replacements being necessary by removing the human from the equation, allowing not just general item replacement, but exact replacement of both items and tames lost from server rollback induced inventory wipes. These two reasons alone greatly increase the speed and quality of support offered to the players on the official network, which in turn can only reflect positively on the Studio itself, and by extension could even possibly help drive future sales of both Ark and  Ark 2. Quality of customer support is definitely one of the factors some people consider when choosing a product. A large improvement that something like this would offer on that front would eventually be reflected in reviews and word-of-mouth communication. Another thing this proposed system also accomplishes on top of all that is freeing up valuable time for staff on the customer support side of things because it would eliminate a majority of tickets related to dino replacement. Due to the relatively simple nature of what I have proposed, as well as accounting for the possibility of, as well as prevention of, being abused for duplication purposes, I feel like overall this will more than pay for itself in the long run. The same basic principle could also be applied to Ark 2 if it ends up operating on a remotely similar server network and transfer idea. The argument/concern relating to having inventory be part of the character restoration service to begin with being abused for duping purposes becomes moot with the system i propose due to it being its own entity and accounting for that type of behavior in its operation and execution. If it is not very possible or feasible to adequately or timely handle issues of server stability, I feel a system like this that at least minimizes the impact to players caused by said issues when they crop up provides enough benefits on both ends to be more than worth the effort to set up in the end.

 

 

Link to comment
Share on other sites

4 replies to this server topic

Recommended Posts

It's difficult to suggest a solution when I'm not really sure what the back end is and what schema/attributes are available. I'm assuming it's MongoDB or some other non-sql storage. What you are proposing would require globally unique identifiers (GUID) for every item generated unique across all cluster members - imagine generating a guid for every item when it is created across all official arks that allow transfer. You'd need a heck of an api service. With this you could scan regularly for duplicates, but it would be a massive undertaking and how would you account for item stacks, decay, etc would increase the writes to the database, unless they occurred only at save time... you might need to associate those guids to servers, and/or perhaps containers such as players / storage / tames / etc. I agree that there should be a fail safe scenario which is triggered for characters/items that have transferred since the last save. Another option could be a "volatile data" table that records transfers specifically since the last server "write to disk" - in the event of a catastrophic event causing the server to crash an reload from backup, this table would be read and processed against the last save, thus restoring xfer out/in records eliminating duping and losses. Data in the volatile table would be purged at every disk write. This would require the server to log/write these events in a compatible manner to a service that is external from the game server's processes (but perhaps still on local storage) in real time. I think all of this is moot though as there will be far less development cycles put into maintaining this games once Gen2 is delivered and development shifts solely to ARK2. Perhaps some of the shortcomings here will be addressed in the sequel.

Link to comment
Share on other sites

On 5/5/2021 at 11:01 AM, Sloanstar said:

It's difficult to suggest a solution when I'm not really sure what the back end is and what schema/attributes are available. I'm assuming it's MongoDB or some other non-sql storage. What you are proposing would require globally unique identifiers (GUID) for every item generated unique across all cluster members - imagine generating a guid for every item when it is created across all official arks that allow transfer. You'd need a heck of an api service. With this you could scan regularly for duplicates, but it would be a massive undertaking and how would you account for item stacks, decay, etc would increase the writes to the database, unless they occurred only at save time... you might need to associate those guids to servers, and/or perhaps containers such as players / storage / tames / etc. I agree that there should be a fail safe scenario which is triggered for characters/items that have transferred since the last save. Another option could be a "volatile data" table that records transfers specifically since the last server "write to disk" - in the event of a catastrophic event causing the server to crash an reload from backup, this table would be read and processed against the last save, thus restoring xfer out/in records eliminating duping and losses. Data in the volatile table would be purged at every disk write. This would require the server to log/write these events in a compatible manner to a service that is external from the game server's processes (but perhaps still on local storage) in real time. I think all of this is moot though as there will be far less development cycles put into maintaining this games once Gen2 is delivered and development shifts solely to ARK2. Perhaps some of the shortcomings here will be addressed in the sequel.

Good input. I'm limited on my knowledge of specifics and am just trying to brainstorm as best I can myself. Technical input for better ways to achieve a similar desired result is great.  As for the last point, while what you say is definitely likely, though they have said ark will still be supported to some degree, I know there are ways they could look into in order to make support still financially a viable option for both games, and theoretically enough so to be able to manage securing additional resources for the job.

Something I've brought up in the past that I think is a nice way to do things is along the lines of what Bungie does with Destiny. Bungie's Eververse store gives them extra income without adding an outright subscription and isn't a pay to win type of thing. Everything in the shop is cosmetic only, and a lot of it is possible to eventually earn even without spending real cash. They do limit some things to be purchased currency only, but 50-75% at least is possible to get through enough time and gameplay as well. It gives people of various incomes an ability to both still play as well as support the development of current and future projects. I think it's a system worth looking at and taking notes from to be able to provide better resources and support in a financially viable way that could also even help support future projects like Ark II and the animated series down the road. Once implemented, the upkeep of adding a few new things every few months and the general selection of goodies rotate regularly is relatively minimal and mostly down to a handful of artists just making the skins, emotes, etc.

Hope they manage to support both games in the future in the same way Square Enix still supports and updates both online Final Fantasy titles. Difference is that those are subscription based systems, but as I pointed out, there are ways to still manage that financially as Bungie has been doing with the Destiny series.

 

Either way, I hope we're able to see something eventually come of these ideas... both the original post (including input like yours to help smooth out any bumps and make things more possible/likely) and what I've said here regarding long term support being financially viable if the right avenues are pursued.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...