[Devlog] iSPEED (carreras multiplayer WEB, PC, ANDROID)

B

En mi primera incursión con URP en 3D (Unity) usaré este proyecto para aprender y testar rendimiento en WebGL, Windows y Android tanto de los Shader Graph como los Visual Effect Graph.

En función del interés/seguimiento del hilo editaré este post con información detallada.

Para el prototipado emplearé placeholders del "Game Concept Starter" (Brainbox3d)

Para la física partiré de un desarrollo sobre simulación que hice hace 5 años basado en componentes propios (sin Wheel Collider) y formulación Pacejka, irá ajustado para lograr una física arcade (de paso le daré un upgrade).

El backend con TypeScript, Node y WebSockets.

B

Montando el proyecto de cero...

B

Agregando lógica de sectores y fantasma...

B

Sistema de logeo y guardado de fantasma en servidor.

B

Primera prueba de sincronización desde el server, editor y builds windows conectados...

B

Ajustando la física... tracción trasera vs rueda trasera en bordillo.

Drifting

Kalgator

6 post seguidos en vez de editar #1 lol

Cada vez tiene mejor pinta el juego!

1 2 respuestas
B

Primera prueba con Shader Graph... distorsión térmica.

#7 por no rellenar con "reservado"... más adelante probable que los edite.

B

Primera prueba con Visual Effect Graph... humo.

B

Ajustando física para superficies irregulares + distorsión térmica y humo.

B

Probando más efectos (y menos placeholders)

1 1 respuesta
isnotavail

#11 Pues tiene buena pinta, se le da un aire al speed devils online .

1 1 respuesta
AikonCWD

#1 lo sacarás para steam?

1 1 respuesta
B

Depende... si no lo abandono lo publicaré web y lo que haga después dependerá del resultado. Si consigue un target decente le seguiría la Play Store y en última instancia Steam.

1 respuesta
B

#12 en su momento de los juegos que más me impactó... aunque con este proyecto me gustaría inspirarme más en un Screamer 2

B

#14 Tío, yo no entiendo por qué tu main target es webgaming pero usas Unity..

De hecho hace nada firmé con Poki para rehacer un top performer suyo con PlayCanvas y le van a dar por culo al dev original, precisamente por no querer abandonar Unity. Según sus datos pierdes el 47% de los usuarios sólo con la carga.

El juego pinta increíble, la verdad. Pero es una putada lo de las cargas y el rendimiento.

1 3 respuestas
AikonCWD

#16 Usa tiny, en teoría es más rápido y ligero que PlayCanvas.

1 2 respuestas
B

#17 UTiny 3D? No sabía que se había lanzado ya eso. Probé el 2D pero era mejor usar directamente canvas2d.

En cualquier caso, más rápido y ligero imposible, estarán a la par siendo nativos.

PD: Viendo los vídeos, no parece UTiny, se supone que eso es estrictamente web y él tiene build standalone

1 2 respuestas
AikonCWD

#18 Que nos resuelva la duda. Realmente no sé qué está usando, pero siempre ha estado trasteando con tiny y supongo que este proyecto usa eso. Pero ni idea.

2
B

#18 el soporte 3D se lanzó hace meses, la demo de Tiny 3D con carga instantánea https://tiny.vision/demos/TinyRacing/Wasm/TinyRacing.html

Las demos tutorial https://github.com/Unity-Technologies/ProjectTinySamples/

La intro a DOTS https://docs.google.com/document/d/1A8hen2hLFY5FLkC5gd3JP2Z-IpHfnAX-CpYLK3aOdwA

#17 no uso Tiny, no creo que esté en el roadmap el soporte para Universal Render Pipeline Scriptable (URP), aunque realmente lo desconozco. Lo revisaré por si acaso.

#16 mi idea es previsualizar los mapas y su actividad desde un worker con threejs durante la carga. Realmente la que demora es la primera, las siguientes cargas usando un service worker además de ser muy rápidas son funcionales incluso sin conexión a internet (sin el multi).

edit: se me había pasado, thnks #7

B

#16 la segunda carga apenas dura un par de segundos (la primera carga iría con un preview instantáneo vía three).

Primera versión web, aviso: es un test... no hay ningún tipo de optimización de rendimiento por ahora.

edit: y la primera en la cara... Visual Effect Graph no es compatible por ahora con WebGL y tampoco con gran parte de GPUs móviles (está en el roadmap ampliar con soporte vía CPU)

Vamos, que para el humo y demás... habrá que tirar de las clásicas partículas en los dispositivos no compatibles.

2 2 respuestas
Kalgator

#21 Pues no está nada mal!

1 1 respuesta
B

#21 Lo de la segunda carga funcionaría en caso de que lances el juego y no lo actualices nunca más. Pero no creo que sea el caso, entonces..

Y por lo de las features que no están en WebGL.. hay muchas cosas en el roadmap que llevan ahí 4 años..

Así que sigo sin comprender por qué no has tirado threejs ya que parece que lo dominas.

He probado el juego y me molan las físicas, tengo curiosidad al saber que las has hecho desde 0, cómo simulas la suspensión?

1 respuesta
B

#23 uso Unity básicamente porque el motivo inicial es aprender URP. Y no uso threejs porque en caso de sacar algo, que sea multiplataforma para juego cruzado... web, pc y android compartiendo partida.

Por otro lado, portar las físicas a TypeScript es algo que tengo pendiente, me podría llevar semanas, quizás un par de meses.

Para la suspensión uso SphereCast que lanza una mini esfera a lo largo de un rayo (no uso Raycast porque puede llegar a ser impreciso). Con ese rayo se calcula la compresión y "fuerza reactiva".

Además, para cada rueda se lazan 8 rayos para determinar cargas, deformaciones... y obtener la "pisada" del neumático.

edit: la física tiene bastante más curro del que pueda aparentar

#22 Thanks again ^^

1
B

Disponible en itch.io la versión para PC (25MB). Portable, empaquetado en un archivo y si detecta actualización se auto descarga y reemplaza.

En windows funciona al 100% el VFX

B

La protección heurística de varios antivirus marcó con falsos positivos la actividad del auto actualizador de la versión windows. Así que he optado por eliminar esa función.

Es más, por ahora sólo desarrollaré WebGL.

1
Pirla

jajaja gracias por la mención, ahí estoy arriba en la tabla ya jeje
en cuanto a gameplay, me parece que los derrapes penalizan mucho el tiempo x vuelta, ya me dices!

1 1 respuesta
B

#27 penalizan exagerado, por ahora le estoy buscando el punto de dificultad para recuperaciones ante pérdida de agarre, que soporte un ligero drift controlado.

Los F1 serán mucho más duros y tendrán downforce.

Gracias por probar !

1 1 respuesta
Pirla

#28 esperando ese circuit de catalunya!

1 1 respuesta
B

#29 sería lo suyo, una pena que no puedo meterlo, necesita demasiados cambios, a ver más adelante.

2