[Devlog] IDWTBH

Czhincksx

I don't want to be here será un juego 3D de exploración, sigilo, terror y puzles en mundo abierto.

Todo el 3D será cosa mía con primitivas de Unity y las partículas y efectos seguramente tire de algún asset de la store. Ya tengo algunos de nubes y el de Feel.

Para el control del personaje tenía comprado el Physics Based Character Controller, que pintaba genial, pero no me terminé de hacer con el manejo de la cámara para dejarla a mi gusto ni tampoco con los movimientos del personaje. En ese asset cuando le dabas hacia atrás el personaje corría hacia la cámara, mientras que yo quiero que la cámara esté siempre a la espalda. Estuve cambiando el código pero se quedaba todo muy engorroso y no terminaba de moverse como yo quería.

Empecé el viernes a programarlo con el asset ese pero no me gustaron los resultados así que ayer me puse por mi cuenta a hacer la cámara y las físicas del personaje y de momento tengo esto:

Esta es la cámara que quería conseguir. Tendré que hacer ajustes de posición, distancia y eso, pero está todo parametrizado. Cuando tenga el personaje hecho ya la ajustaré a mi gusto.

Como se ve en el gif, al girar el ratón el personaje rota suavemente. Al mismo tiempo, la cámara también rota con suavidad hasta mirar en la dirección en la que mira el personaje y con un poco más de retraso se recoloca a su espalda. De este modo, al girar hacia un lado el personaje se desplaza en la pantalla hacia el contrario y se despeja más área visible en la zona que querías ver. Además así se puede ver un poco el lateral del personaje. A parte, también hice que si nos encontramos un muro entre la cámara y hacia donde está mirando, esta avance para intentar evitarlo. Eso quizás no esté perfecto aún, pero de momento no me preocupa.

Sobre el movimiento del personaje, va con físicas. Aplico fuerzas para moverlo. Tiene un valor para adelante, otro hacia atrás y otro diferente hacia los lados. Además, hay una velocidad límite para cada dirección, de modo que por ejemplo puedes ir más rápido hacia adelante que corriendo de lado.

Para solucionar el tema de no correr más en diagonal, tenía que calcular la velocidad en la dirección del personaje y limitarla proporcionalmente, y como tengo el álgebra y las matrices bastante olvidadas iba a ser un dolor de cabeza. Por suerte descubrí una función que no conocía y que me vino de lujo para convertir coordenadas del mundo a coordenadas locales de un transform y eso me dio la vida.

Tengo que mejorar ahora un poquito el tema de subir escaleras. Tengo que pensar cómo detectar un peldaño escalable y entonces aplicar fuerza hacia arriba a ver si con eso sube bien, pero aún no me he puesto a ello.

Intentaré actualizar este hilo cada mes o así para ver el progreso. El objetivo sería sacarlo para PC si no lo abandono, que espero que no. De momento llevo 2 días de desarrollo, que en horas sería como media jornada más o menos. No está mal.

Por cierto, el juego no va a tener hud ingame. El menú será muy minimalista, jugar, ajustes de sensibilidad de ratón, invertir ejes y volumen. Estoy harto de los menús en el trabajo como para hacer ahora un juego con menús. Aquí gameplay todo y rollo inmersivo.

4
Jastro

Tiene buena pinta, mirare con ilusion la evolucion del juego :D

1
Czhincksx

Os presento a Mono, el prota de mi juego. Puede caminar y saltar. Además mover algunos objetos físicos. También podrá agacharse y hacerse un ovillo para esconderse de los enemigos. Cuando se agache apagará la linterna de la cara, pero no podrá moverse. Aunque sí podrá rotar la cámara libremente a su alrededor. De las animaciones me falta hacer la de agacharse y todo el comportamiento que conlleva. Luego de todas las animaciones me faltaría ajustarlas para que fueran mejores, pero de momento me valen. También le he instalado el HDRP para poder empezar a ver algunos efectillos gráficos.

También se puede ver cómo su cara mira siempre a la dirección en la que mira la cámara y su pie siempre está apoyado sobre el plano de la superficie en la que esté.

Czhincksx

No pensaba actualizar más hasta dentro de un par de semanas que hubiera metido algún enemigo o algo pero es la primera vez que toco los Terrains de Unity y me ha gustado el resultado así que quería compartir el progreso de hoy. El terreno y la escala de los árboles no es final. Sólo de prueba. En el juego real se ve algo más de profundidad que en el gif.

Intenté hacer los árboles con las primitivas de Unity pero no había manera de que me quedaran bien. Por suerte tengo un porrón de assets comprados y en alguno de ellos había árboles lowpoly y alguna otra cosa chula más. Me he hecho un proyecto a parte para ir importando assets que necesite y luego hacer cherry-pick de ellos creando unity-packages.

1
Jastro

recuerdo que hace tiempo habia un juego rollo de este palo, ademas con el movimiento asi, este juego lo habias presentado antes al subforo?

Eso o estoy flipando yo solo

1 respuesta
Czhincksx

#5 sí hace como 5 años. Perdí todo el código porque debí borrarlo sin crear repo pero da igual, aquello era un prototipo y ahora ya voy a por el juego final. El ejecutable del prototipo aún lo tengo por el ordenador, me ha ayudado a inspirarme 😅

Brutal tu memoria.

1 2 respuestas
Jastro

#6 Me alegra ver que no estoy loco :D

Me acuerdo porque era muy caracteristico el movimiento y las luces, siempre me quede muy WTF y queria probarlo, esperaré a la demo

1
puntocom

Tal vez es mi monitor, pero entre pequeño y oscuro yo soy incapaz de ver nada del último post xd.

2 respuestas
carra

#8 Está bastante oscuro pero yo sí lo distingo

B

#6 Creo recordar que hace 5 años no había pase IL2CPP para las standalone... probablemente se pueda recuperar código fuente e incluso el proyecto entero, lo has intentado?

1 1 respuesta
Czhincksx

#8 creo que la compresión de los GIFs tiene la culpa. El juego es oscuro pero se distingue mucho más de lo que se ve en el gif.

#10 gracias pero no merece la pena, lo único que tenía aquello que no tengo ya es algún FX y unos enemigos, pero que también estaban hechos a lo cutre. El prototipo aquel lo hice también en unos pocos días.

13 días después
Czhincksx

Un primer vistazo en vídeo a ver si se ve con un poco más de color. La captura ha sido horrible, no sé qué configuración de calidad meter en OBS porque le he dado todo lo que podía, pero bueno.

Se puede ver a un enemigo persiguiéndome. El enemigo va por navMesh a diferencia del personaje principal que va por físicas puras. El enemigo que se ve se llama Fowl y es un demonio inspirado en la película It Follows. Este enemigo te perseguirá durante todo el juego de forma incansable. Corre menos que el jugador pero el cabrón siempre sabe dónde estas y no te puedes esconder de él. De otros bichos podrás esconderte si te camuflas en las sombras. El enemigo sólo tiene animación de andar y es una primerísima primera versión. Las manos por ejemplo no las he tocado aún. A parte de no poder esconderte de él, hay algunas pendientes que el jugador no puede subir y el Fowl sí así que puede que pille algún atajo de vez en cuando. Si se aleja demasiado le subo un poco la velocidad hasta que vuelva a estar a cierta distancia.

1
zErOx

Currazo.

1
kidandcat

Que chulo, a seguir!
Creo que una niebla bien densa le quedaría muy bien a lo que llevas ahora mismo, además del toque siniestro, y de menos visibilidad sin necesidad de hacer todo tan oscuro que no se ve nada, también haría que el haz de luz del personaje se viese mucho más

1 1 respuesta
Czhincksx

#14 la niebla es bastante densa ya. Aunque tendré que ajustarla más para dejarla como quiero realmente. A parte pensaba ponerle en algunas zonas algo de niebla típica que sale a la altura de los pies. Gracias por el feedback :)

1 respuesta
Jastro

#15 tengo que preguntartelo, porque creo que en su dia cuando salio, no te lo pregunte.

El movimiento del pj al estilo saltos, es asi adrede? entiendo que el pj esta encima de algo? o como va? me tiene muy desorientado ese enfoque

1 respuesta
Czhincksx

#16 sólo tiene una pata así que no tiene otra forma de moverse 😅

1 respuesta
Jastro

#17 si si, pero porque tiene solo una pata? esa es la pregunta jajajjaa.

El bicho que has puesto tiene 2, es por algo especial o simplemente has hecho el diseño asi y ya xD

1 respuesta
Asnarth

Es un mediavidero medio, pero perdió las piernas en un accidente, y sólo puede moverse así.

1
Czhincksx

#18 me parecía que daba más angustia así. Además así es un poco más adorable, como la lámpara de Pixar y a lo mejor la gente empatiza más con él para que no le maten.

1 respuesta
Jastro

#20 ajajaja okey, okey :D

11 meses después
Czhincksx

¡Tengo novedades! Después de un tiempo abandonado por diversos motivos, voy a volver a su desarrollo. Además cambia de plataforma y va a salir para web. Ya hice el cambio a webgl y aunque ha sido un poco problemático porque he tenido que cambiar de HD Render Pipeline a Universal Render Pipeline, el aspecto gráfico da más o menos el pego. De todos modos voy a tener que seguir ajustando los colores, niebla y eso. Pero poco a poco.

A ver si compro el dominio, el host y me hago cuenta en AWS y lo subo este finde para que podáis probar el control. Porque de momento solo tiene eso, los controles. Ninguna mecánica implementada.

1 2 respuestas
B

#22 la capa gratuita de aws va bastante capada pero para ir empezando te puede valer.

1 respuesta
Czhincksx

#23 sí, pesa 30MB así que creo que me da de sobra. Creo que me va a costar superar el mínimo 😅

1 respuesta
B

#24 lo decía más bien por cpu, no hace mucho monté un foro con nodebb e iba justita con no muchos concurrentes.

Eso sí, toca montar swap porque va con 1gb de ram.

Suerte, por aquí estaremos... Gracias

1
Jastro

#22 me alegra que hayas resucitado el proyecto, tenia ganas de seguirlo de probarlo desde hace tiempo, asi que a esperar a esa version jugable

1
Czhincksx

Bueno ya hice todo el rollo de crearme las cuentas. Ya está pagado el dominio etc así que a la fuerza tengo que hacer algo con esto. Así me obligo.

La web es un html cutre y el juego como digo acabo de pasarlo de un render pipeline en el que se veía más o menos como quería al universal, que tiene muchas más carencias y está sin ajustar. Además que de juego no tiene nada, sólo controles.

Se puede probar aquí: https://tipmegames.com/

Edit: He estado jugando un poco con el css/js de la web y de la build para poder reescalar bien el canvas. Qué dolor de cabeza ha sido. Me ha costado bastante dar con la clave pero ya parece que va bien.

En otras pantallas que no son la mía lo veo súper oscuro. Parece que toca revisar la iluminación.

1
Czhincksx

Pues ayer y hoy estuve haciendo cosillas. Aumenté un poco la luz y metí unas partículas de niebla a ver si ganaba algo de ambientación.

Además, visto que el juego en webgl arrancaba desde mi teléfono, un Poco F2 Pro con el snapdragon 865 (ya tiene unos años), me animé a meterle controles de móvil para dar esa alternativa. Aún en el caso de que a día de hoy el rendimiento fuera lamentable, dentro de unos años el juego seguiría subido y los teléfonos deberían ser mucho más potentes.

El caso es que meter los joysticks flotantes ha sido muy sencillo, bien por Unity, pero me encuentro con un problemilla que de momento no sé la solución.

Estoy usando el nuevo Input System. He definido los controles de mirar con el movimiento del ratón o un joystick derecho un mando. Para los sticks flotantes ya tiene una cosa Unity que hace que simulen ese joystick derecho de un mando y la implementación es instantánea. El problema es que tocar la pantalla es detectado como mover el ratón. Entonces cuando toco la pantalla para mover los joysticks la cámara también se mueve.

Tenía activado un tick en el delta del ratón de "touchscreen". Lo he desactivado pero sigue pasando. Ahora tengo que averiguar cómo hacer para ignorar el ratón cuando estoy en modo móvil, porque no lo veo tan sencillo. Al final el sistema lo que me devuelve es que estoy mirando, pero no me da acceso (que yo sepa) a ver si estoy mirando usando el ratón o el joystick.

Ese playerRotate es de tipo InputAction. No sé si a través de ahí puedo desactivar el ratón de alguna forma.

Si alguien sabe cómo puedo hacerlo me vendría genial su ayuda.

Edit: me llegó la inspiración por la noche. En el PlayerInput voy a meter un LookMobile en el que no haya ratón. Luego cuando asigno lo de PlayerRotate y el look lo selecciono en función de si soy móvil o no. Tiene que funcionar. Después del trabajo lo hago.

2
3 meses después
Czhincksx

Hola. Proyecto cancelado. Me paso a Godot (aunque en la empresa seguiré usando Unity).

Edit: al final me paso a Defold

3

Usuarios habituales