Metodo più sicuro di scambio asincrono di bottino randomizzato in un ARPG rigorosamente offline

3

Sono interessato al processo concettuale (problema di agnostica del linguaggio di programmazione) di inviare un oggetto di gioco a un altro giocatore del gioco in cambio di un altro oggetto di gioco senza una presenza online faccia a faccia di entrambe le parti. Questo dovrebbe essere fatto in modo che, in teoria, nello sfruttamento del gioco di bug insiti nel sistema di trading non sarebbe possibile ingannare oggetti o rubare oggetti da un altro giocatore. In questo caso non sto considerando cheaters, (definisco rigorosamente l'imbroglio come manipolazione di RAM / salvataggi del gioco e NON lo sfruttamento della programmazione / bug / difetti intrinseci) solo la capacità degli utenti di ingannare o rubare gli oggetti direttamente all'interno del gioco stesso.

Possibile idea di metodo per risolvere questo problema:

  1. Il giocatore 1 (P1) e (P2) si incontrano fuori dal gioco per organizzare uno scambio di partite e raggiungere un accordo tra loro.
  2. Entrambi i giocatori entrano in gioco per impostare il commercio dando il loro oggetto "al gioco" da conservare e rimanere inaccessibile per la durata del commercio. In cambio ricevono un codice di cifratura alfanumerico generato proceduralmente (come dungeon misterioso pokemon o simile) specifico per se stessi e il nome e il numero ID dell'altro giocatore (simile ai giochi pokemon mainstream)
  3. Entrambi i giocatori condividono i loro codici e inseriscono il codice opposto nel loro gioco.
  4. viene visualizzata una schermata di conferma per entrambi i giocatori che mostrano l'offerta dell'altro giocatore. se un giocatore accetta l'offerta, gli viene dato un altro codice da dare all'altra persona.
  5. Entrambi i giocatori inseriscono il codice di conferma dell'altro nel loro gioco e entrambi i giocatori ricevono il loro oggetto nel gioco.
  6. non è sicuro, ma potrebbe anche essere necessario che entrambi i giocatori inseriscano un codice di ringraziamento per confermare che entrambi i giocatori hanno i loro articoli, ma penso che sia coperto dal codice di conferma perché se P1 conferma e ottiene la conferma di P2, significa che anche P2 ha confermato . E allo stesso modo se P2 ha confermato e ricevuto la conferma di P1, allora P1 ha confermato.

Ma come ci penso, se P1 accetta e P2 accetta e P1 dà il codice ma poi P2 non lo fa, allora P2 è in grado di ottenere il suo oggetto desiderato al costo del suo oggetto e P2 è ora un truffatore per P1 perché a P1 è stato negato il suo nuovo oggetto, (è svanito) Ciò avrebbe indotto i giocatori a scambiare in modo incrementale oggetti di valore inferiore perché non avrebbero perso quel bottino che non potevano usare ma sarebbero comunque preziosi; sprecare il tempo delle persone e il commercio scoraggiante. Anche un codice di ringraziamento aggiungerebbe tempo al processo e non causerebbe alcuna ulteriore sicurezza. In realtà penso che questo sia un problema reale nel mondo degli accordi, del commercio di beni e della fiducia che richiede un commercio sincrono. Penso che questo non possa essere risolto in un gioco più che nella vita reale. Correggimi se sbaglio.

    
posta 0xFFF1 11.02.2013 - 04:57
fonte

1 risposta

3

impegno
n. un'obbligazione, un atto o altro documento tenuto in custodia da terzi, con effetto solo quando una condizione specificata è stata soddisfatta.

Lascia che il sistema (la terza parte) amministri e adempia il contratto. Il contratto prevede che due giocatori concordino su una serie di articoli da scambiare. Questa soluzione presuppone anche che i giocatori siano estranei e non si incontreranno mai nella vita reale.

  1. Alice offre una +1 spada in vendita.
  2. Sistema prende +1 Spada da Alice .
  3. Il sistema pubblicizza Spada +1 in vendita.
  4. Bob fa un'offerta di 1000 gold .
  5. Il sistema prende 1000 ori da Bob .
  6. Sistema avvisi Alice dell'offerta.
  7. Alice counteroffers, richiedendo 1000 gold e una Pozione di Guarigione .
  8. Poiché l'offerta è stata rifiutata in modo efficace, Sistema restituisce 1000 gold a Bob .
  9. Sistema avvisi Bob del controfferta.
  10. Bob accetta il controfferta.

    Il contratto è soddisfatto.

  11. Il sistema prende 1000 ori e una pozione curativa da Bob .
  12. Sistema chiude l'annuncio.
  13. Sistema fornisce Mario +1 Spada .
  14. Il sistema fornisce Alice la 1000 gold e Pozione curativa .

Oppure, in qualsiasi momento:

  1. Alice ritira la vendita.
  2. Sistema chiude l'annuncio.
  3. Sistema restituisce Spada +1 a Alice .
  4. Sistema restituisce gli elementi conservati a Bob (e ad altri giocatori che hanno fatto offerte).

Per quanto riguarda gli imbroglioni, non impedirai mai a qualcuno di modificare i file di salvataggio locali. L'inventario deve essere replicato su un server sicuro e convalidato prima che avvenga qualsiasi vendita. Dovrebbe anche essere convalidato prima che il giocatore usi gli oggetti. Se un giocatore taglia il suo personaggio con un +58 Sword of Oblivion , può acquisire ricchezza molto più velocemente dei giocatori onesti. Se vendono il loro bottino mal-guadagnato, possono danneggiare l'economia.

    
risposta data 11.02.2013 - 05:44
fonte

Leggi altre domande sui tag