darkserman escribió:DaniMan escribió:darkserman escribió:He mirado por encima el artículo, parece que dice:
- Que un multi online en indies no iría bien por el lag.
- Pero que el lag no es problema de la programación del juego.
Entonces, no entiendo por qué el lag es un problema en los indies, y no en los no-indies
Por lo que he entendido en el artículo, precisamente porque los indies tienen una programación mas simple es por lo que el lag les afecta mas. Los juegos con programación mas compleja permiten a los creadores del juego hacer una especie de predicción del movimiento que ayuda a que el lag no tenga tanta repercusión en el jugador.
Los juegos indies, al ser mas simples, no permiten establecer esta predicción, lo que hace que en ocasiones por culpa del lag sean injugables.
Gracias
Está un poco liante el artículo: el lag no "viene de" el código del juego.
Pero, el código del juego puede prevenir el lag
El problema no es tanto si el juego es indie o su código, si no cómo está diseñado: El tipo de juego que es.
El lag es el retardo que hay cuando dos o más consolas se están comunicando. Eso se traduce en que si juegas con alguien por internet, cuando mueves tu personaje, la consola de tu oponente no se entera de que lo has hecho hasta unos segundos después. Este retardo va a existir siempre, pero en algunos tipos de juegos se puede disimular para que no se note demasiado.
- Por ejemplo, en un juego de estrategia donde cada jugador indica a sus tropas dónde deben moverse, los programadores pueden introducir un ligero retardo entre el momento en el que tú das la orden y cuando tu muñeco empieza a moverse. En ese tipo de juego, ese pequeño retardo no molesta y así los programadores dan tiempo a que la información de tu movimiento llegue a la consola de tu oponente, de forma que el movimiento se produce en ambas a la vez.
- Para los juegos de conducción, este truco no funciona, pero como los movimientos del jugador no suelen traducirse en cambios bruscos, la consola de tu oponente puede predecir con razonable precisión dónde va a estar tu coche en cada momento, teniendo en cuenta la velocidad y dirección que llevabas. Si cuando recibe la información real de lo que has hecho, no coincide con lo que había predicho, procura corregir su predicción sin que se note mucho. Es decir, que tu oponente no verá exactamente lo que haces, pero sí algo suficientemente parecido.
- Y otro ejemplo que pone el artículo: En los juegos FPS (Call of Duty y demás), puede pasar que tu oponente te tenga a tiro y tú empiezes a apartarte, pero esa información no llegue a tiempo a su consola antes de que él dispare (es decir, que cuando él dispara, no debería acertarte pero él no podía saberlo porque en su consola no habías empezado a moverte todavía ). En esos casos, el juego te mata y la pequeña discrepancia entre lo que ves tú y lo que ve tu oponente, se disimula gracias a los trucos gráficos que se suelen utilizar en los juegos "realistas" (desenfoque de movimiento, etc...).
Todos estos truquillos para disimular el lag se hacen en el código del programa, pero no siempre es posible hacerlos.
El problema con algunos tipos de juegos, es que los movimientos deben ser muy rápidos (por lo que no puedes disimular el lag con retardos adicionales con en los juegos de estrategia), dichos movimientos no son graduales como en los juegos de conducción (la consola de tu oponente no puede predecir tus movimientos) y la perspectiva visual o el tipo de gráficos no permite usar trucos visuales para disimular las discrepancias que genera el lag entre una consola y otra (como sí se hace en los FPS).
Por ejemplo, ¿conocéis algún juego de plataformas que requiera velocidad y precisión (tipo Mario o Rayman, para entendernos) que permita jugarse por internet? Para ese tipo de juegos y otros habituales de los indies, no hay truco que valga, así que no es cuestión de que quieran meterle online o no, ¡es que mejor que ni lo intenten!
@LyxRok ¡Gracias por enlazar el artículo! Realmente interesante