Estoy desarrollando un juego de tres en raya donde los jugadores pueden jugar por ETH. Creé un contrato inteligente en el que un jugador envía ETH y balances
se actualiza, el jugador recibe algunos life
.
Luego pensé que cuando el jugador juega y gana/pierde, envío una solicitud a un servidor, y ese servidor envía una transacción al contrato inteligente.
¿Es esa la forma correcta de implementación o, por lo general, los desarrolladores usan otro enfoque?
Un enfoque típico sería establecer un contrato que acepte apuestas de dos jugadores por juego y luego dejar que cada uno haga movimientos sobre la marcha. El contrato reenviaría el bote al ganador.
Un problema que no es obvio pero que se aborda fácilmente es el problema del "perdedor". Un jugador que puede ver que no va a ganar nunca toma su turno. Simplemente haga que el contrato declare que el jugador pierde el juego después de un tiempo.
Un solo contrato podría rastrear muchos juegos en curso, con muchos botes. Si fuera realmente serio, podría hacer que los jugadores carguen fondos una vez en una cuenta de jugador para que el movimiento de fondos internamente sea mera contabilidad. Los jugadores cobrarían cuando ya no quieran jugar.
Hay algunas cuestiones regulatorias jurisdiccionales fuera de las cuestiones puramente técnicas. Precaución con eso.
Espero eso ayude.
rel1x
Rob Hitchens