[Unity 3D] trasteando ECS Tiny Mode

totespare

#30 deseando probarlo y ver el rendimiento!

1 1 respuesta
B

#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.

2
B

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.

1 respuesta
totespare

#33 cuanto español hay dios xD. Eres un crack, sigue descubriendonos el tiny mundo!

1 1 respuesta
B

#34 lo del español es intencionado, por j0der xD

B

Y poner en minusculas la primera letra de los Components.

Triggered

2 1 respuesta
B

#36 si te fijas va todo en minúsculas... xD solo uso la mayúscula si combino dos palabras en una.

B

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.

1
B

El player lo instancio y cacheo desde el sistema main con esto:

1
B

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

B

Yo sigo aun con los tutos, ya hice el de la nave espacial esquivando otras.

Ahora quiero probar otro.

1
B

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

1 1 respuesta
B

#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

1
B

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...

1
B

Tiny ya conecta... y en menos de 300KB

B

Dejo captura del servidor...

B

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

B

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?

kesada7

He entrado a probarlo y había otro volando xD

1
B

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

B

Al final no hay soporte FixedUpdate... un dev del engine me ofrece como "camino a seguir" una "ñapa" desde el update...

1 respuesta
totespare

#51 oye, podrían decirte que te comas un pene, mejor que nada... x)

1 respuesta
B

#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...

B

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

B

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.

1 respuesta
B

Por fin lo he encontrado. Estaba escondido en un GameState :/

1 respuesta
B

#55 en modo debug modifica la salida a la consola del navegador... en runtime creo que por ahora no hay soporte al editor.

#56 el tema es que usa las Cookies del navegador, del GameStateUpdateService a UserDataService

1 mes después
B

Bueno, he reescrito todo lo aprendido y ya tengo el SpaceJump en un punto similar a como estaba el proyecto de "trasteando ECS".

1
19 días después
B

El hilo sigue en https://www.mediavida.com/foro/gamedev/multiplayer-devlog-space-jump-shooter-2d-627746

Tema cerrado