#30 deseando probarlo y ver el rendimiento!
#31 Al final me he liado a resolver un animador para múltiples entidades...
He creado un componente al que llamo Animador, contiene la lógica, este componente se añade a las entidades que se quieran animar...
Por ahora contiene una variable estado, almacenando el estado actual de la animación.
Y una EntityReference ajustada en modo array, para almacenar los clips.
Así queda añadido a la entidad jugador con los clips ajustados...
He eliminado el sistema animacion y creado un nuevo sistema animador que por ahora consta solo de la función asigna.
He creado un componente de tipo Struct para alojar la lógica de los controles... ControlesJugador
Así queda al añadir el Struct al componente Jugador visto desde la entidad jugador... nombrado como control.
También he añadido en el animador la variable sentido para gestionar el mirror en los sprites.
Estoy investigando si Tiny ya soporta FixedUpdates... para evitar frame dependencias.
Si no encuentro nada ya implementaré algo más adelante... primero avanzaré el multiplayer.
Al final he optado por usar mayúsculas en los componentes y minúsculas en los sistemas...
Dejo enlace con la build actualizada, son 310KB
Play en https://debug64.com/dev/006.html AWSD SPACE
Yo sigo aun con los tutos, ya hice el de la nave espacial esquivando otras.
Ahora quiero probar otro.
Ahora estoy con el de Match Gem que es el más completo y el que puedo sacar conclusiones globales.
Pensaba que al final iba a ser miy diferente en la gestion de datos pero no difiere mucho en lo que es el apartado de POO en el sentido de que tienes tus scripts. Contenedores que serian los objetos y los componentes que gestiona los datos. Lo unico es tenerlos en partes separadas para formar el conjunto.
Cuando desgrane el de Match3 me pongo a hacer pruebas porque salvo typescript que nunca he dado me gusta lo que veo
#42 a final de cuentas la diferencia no es tanta... depende de como quiera usarlo cada uno.
ECS aporta muchas posibilidades nuevas y mejores... que tratar de replicar el comportamiento clásico.
He aprendido a crear módulos...
...con sus propios sistemas y componentes... creando módulo multiJugador
Una muestra de referencia en el proceso de aprendizaje...
Estoy creando una serie de helpers... más adelante los juntaré y organizaré por módulos.
Por ejemplo... para la consola de texto en pantalla del módulo multiJugador que estoy desarrollando...
A partir de una entidad llamada consola a la que he añadido un componente UI Text2D, con
var consola = new Texto2D(this.world, "nombre entidad");
busca la entidad usando el nombre, guarda la referencia, lee el componente...
Después...
consola.Texto2D("una cadena");
Saca el texto al UI Text2D de la entidad consola.
Resulta algo laborioso ahora... pero con un buen conjunto de módulos...
Primeros test de comunicación...
Por ahora conecta, envía ping, crea usuario y sincroniza coordenada de jugador (no esferas) sin interpolar 270KB
Play en https://debug64.com/dev/008.html AWSD SPACE
He creado un temporizador fijo (no Update) para las comunicaciones, moveré la física/controles ahí para eliminar la frame dependencia que ya empieza a ser molesta.
Debería haber un camino mejor, alguna implementación en Tiny...
¿Alguien sabe si Tiny Mode soporta ya FixedUpdate o similar?
Actualizado, ahora sincroniza estado animación y sentido... sin interpolar. A ver si encuentro algo sobre el FixedUpdate.
Play en https://debug64.com/dev/008.html AWSD SPACE 270KB
Al final no hay soporte FixedUpdate... un dev del engine me ofrece como "camino a seguir" una "ñapa" desde el update...
#52 bueno, esa ñapa (similar) ya la había implementado y no es buena idea para manejar física... No voy a entrar al detalle, le he dado las gracias y vía.
Lo que me interesaba era implementación nativa para manejar el engine, y no hay (por ahora).
edit: lo curioso es que en la configuración de Tiny se puede ajustar el fixed time step...
Da igual, no voy a usar la física de Unity... Tiny me interesa para multiplayer web empaquetado en menos de 1MB, la física va del lado del server con http://brm.io/matter-js/index.html
Lo que me tiene rallado es como montar el modo debug desde el editor. Soy un bulto.
Estoy intentando hacer poco a poco el tutorial del MatchThree, pero no consigo ver de donde coge el Popup para que cuando pulses sobre uno de los botones, salte el que tiene que salir.
Bueno, he reescrito todo lo aprendido y ya tengo el SpaceJump en un punto similar a como estaba el proyecto de "trasteando ECS".