Pararegistros escribió:@Jimmyhoo 1.Justamente, a eso me refiero: todos los ejemplos de agua en juego que mencionas son single player y algunos con multiplayer con calzador.El cálculo de los shaders visibles para optimizar ya se hacía desde tiempos del motor de Unreal 99, de ahí que fuera más eficiente que su homólogo Quake 3.
Pero aquí estamos hablando de un juego EMINENTEMENTE MULTIJUGADOR, donde cada jugador ve lo mismo y eso requiere sincronizar con un servidor. Si para uno una ola tiene 5 m no puede tener 1 para otro jugador, por ejemplo. Y los ejemplos que pones, son fragmentos in-game "cinemáticos" scripteados, hechos con el motor del juego. Por ejemplo, cuando Lara es arrastrada por el agua, la acción se centra en ella, se amplia el tamaño de la escena, dando mayor número de detalles a lo visible a costa de restringir lo visible en la distancia y siendo guiado por una secuencia con interacción mínima.
las olas se estan calculando en los shaders, pueden ocurrir scripts pero eso no significa que el oleaje este precalculado, de hecho eso no tiene sentido hacerlo, te das cuenta que estas diciendo que entonces el juego estaria haciendo streaming de millones de posiciones de vertices que ocuparian una gran cantidad de espacio cuando se puede hace con funciones en tiempo real, no funciona no funciona como crees
y las olas si se puede sincronizar no se por que creesn que no y ademas esto no es complicado, el servidor marca el tiempo que todos los jugadores usan, cuando se carga una seccion del escenario se pide la variable o variables de un punto en el tiempo y con eso se calcula toda la superficie del oleaje, un oleaje sencillo uniforme como seria el agua de una piscina o una parte quieta del mar por ejemplo se utiliza la funcion seno de y para calcular el movimiento "Y" de cada vertice , es decir la altura de los vertices de una superficie en forma de cuadricula, no es necesaria pasar todos los valores, con que sepa el valor de un solo vertice en el momento de cargar esa seccion del escenario puedo distribuir las posiciones de los demas vertices y apartir de ahi ir modificando cada frame la altura de todos con solamente ir cambiando de 1.0 a -1.0
si yo se que el vertice de una esquina tiene 1.0 yo se que el siguiente vertice le puedo dar digamos 0.9 y al siguiente 0.8 .. 0.7 0.6 .. 0.0 -0.1 -0.2, etc, si alguien llega a esa parte del esceario, cuando carga el el escenario el servidor le dice que valor tiene en la orilla y a partir de ahi esa xbox puede calcular las olas en la misma posicion que los demas
luego se puede ir haciendo mas complejo el algoritmo como seria y = seno de x + coseno de z
y asi se le va a agregando complejidad segun se quiera, se puede ademas agregar complejidad extra ya sea con vertices o con texturas dentro de las curvas de las olas grandes pero estas no necesitan sincronizarse entre jugadores ya que solo son esteticas, pueden ser random para cada jugador(nadie lo notara) ya que lo que marca la ola para la caja de colision es la parte mas grande como se vio en el gif donde va nadando el personaje en SoT y esa colision es muy simple por lo que se ve
cualquier movimiento extra del agua es una perturbacion que se agrega a los shaders de esa parte como puede ser un personaje moviendose en el agua o una gota que cae al agua, cuando en ps2 se jugaba champions of norrath, baldurs gate y en general los juegos con el motor de snowblind en linea y los jugadores llegaban a un lugar con agua, el juego solo necesita la posicion de donde estan los jugadores y enemigos para calcular toda la perturbacion del agua en todos los ps2 que estaban jugando
3:30
https://www.youtube.com/watch?v=mt9fPerR9ncsincronizar con un servidor NO es los mismo que CLOUD COMPUTING, para que MS usase la nube para ayudar a la xbox y darle "poder ilimitado" como decian, en el caso de sea of thieves el servidor tendria que calcular la posicion del agua de manera que la GPU no tendria que hacer los calculos seno, coseno, etc y en su lugar podria hacer otros calculos, pero esto no ocurre asi en una sincronizacion, ahi el servidor dice el tiempo y a partir de ahi cada xbox es responsable de contar como se va a modificar el oleaje que muestra, en el caso de crack down 3 ellos pregonaban hace 2 años que la destruccion de los edificios que mostraron se hacia en el servidor y las partes del edificio llegaban a la xbox como x,y,z + rotacion, asi la xbox no calculaba los rebotes y las colisiones de los objetos dentro de la demolicion, solamente posicionaba las partes del edificio como indicaba el servidor, lo mismo cuando hacian agujeros en la pared, el servidor mandaba nuevas cajas de colision a la xbox y los cambios en la estructura, esta no usaba su tiempo para calcular donde toco cada bala para modificar el modelo y la caja de colision, los MMO y como operan no tiene nada que ver y SoT tampoco vamos que si a esas vamos Fortnite es mucho mas complejo en cuanto a su servidor y el apoyo que brinda al juego que SoT y no vemos a nadie diciendo que la "nube" le da "poder ilimitado" a ps4
lo que pasa es que no entendiste lo que MS estaba diciendo sobre la nube en su momento, no era sincronizar y poner de acuerdo jugadores y llevar la cuenta de lo que hacian como en un MMO, era apoyar en calculos de fisica e incluso rendering a la consola, es decir servir como co-procesador, eso no era viable(sigue sin serlo), muchos desarrolladores opinaban al respecto sobre lo inviable que era en su tiempo, pero los fans de la marca insistian basandose en lo de la "salsa secreta", el "chip secreto", todo lo que se invento de mejoras que supuestamente traia DX 12 exclusivamente a xbox y que nadie mas podia usar segun ellos, los tiled resources y por supuesto la nube, y MS no desmentia nada, por el contrario hacia hype a la nube hasta que poco a poco MS fue admitiendo en algunas entrevistas(sobre todo con eurogamer) como funcionaban las cosas, pero fue todo un caos basado entre el hype por la nube de MS y un tal Mr. X en su blog inventando cosas que supuestamente le daban la ventaja tecnica a xbox sobre la ps4, luego de todo eso normal que la gente recuerde la nube y su "poder ilimitado" cuando se menciona crackdown 3 sobre todo ahora que no tiene esas fisicas que mostraron
ironicamente al final si habia un chip secreto pero fue en la ps4 y fue solo para dar soporte a HDR en la ps4 basica con una actualizacion por que no habia un estandar definido que lo incuyera cuando salio asi que sony emulaba el estandar a base de software en un chip programable que luego podia actualizar mientras no sobrepasara las capacidades del chip muy ingenioso aunque lamentablemente cuando se habla de HDR los reviews tienden a omitr la PS4 estandar y basarse solo en las consolas actualizadas por lo que es algo que pasa inadvertido a pesar del esfuezo