Godot #HO | Información General

isvidal

#660 Vale, arreglado, me falta transformarlo a la clase pertinente:

1 1 respuesta
Ridote

#661 Pasa lo mismo con los GetNode pero en los GetNode los puedes parametrizar GetNode<NombreClase>. El instance creo que no pero le puedes hacer el casting también usando "GrassEffect.Instance() as Node2D", es lo mismo pero a mí me resulta más elegante y fácil de escribir xD

Por cierto, ¿has pensado en hacerte una clase para hacer pooling de objetos? Si te interesa lo podemos discutir, yo empecé también el tuto de HeartBeast pero estoy cambiando muchas cosas y tengo por ahí un manejador de recursos para evitar el crear y destruir cosas que voy a usar muy a menudo. Y se hace todo automático sin tener que preocuparte, simplemente pides un objeto de un tipo y luego lo devuelves cuando hayas terminado con él. Cuando necesita reservar más memoria porque se requieren más objetos lo hace todo esa clase y listo.

1 respuesta
isvidal

#662 No he pensado nada de eso, es la primera vez que trabajo con C# y la primera con GODOT, asi que me limito a seguir el tutorial para visualizar todas las herramientas disponibles que tengo a mi dispocicion.

Si quieres compartir el codigo de esa clase me la miro y aprendo!

1 respuesta
Ridote

#663 Pues llevaba esto escrito y estaba pensando en que le falta algo. Por ejemplo poder liberar los recursos de algún tipo durante cambios de fase o algo. Pero tengo que pensar bien cómo voy a hacer el juego y si se van a reusar algunos recursos que no compense liberar. O liberar solo parte de ellos. La cosa está en no mantener en memoria 800 bombas solo porque en una parte muy específica del juego necesite 800 bombas. Pero igual es una chorrada, yo que sé.

¿Qué opinas tú?

Por cierto, el PlayerUI no va en esta clase proque hay solo uno, pero estoy haciendo pruebas y me era más fácil así xD

spoiler

Edit: Otra cosa que tenía pensada era hacer mundos espejo como en el a link to the past, y reusar objetos pero cambiando las texturas de donde se lean o algo.

1
7 días después
Ridote

Estoy terminando el tuto ese de juego tipo zelda de heartbeast y lo vuelvo a recomendar. Le cambie unas cuantas cosas a como las hace él que no me terminaban de molar, pero el tutorial está muy muy chulo! Se pueden esquivar golpes con los saltitos jaja

2
AikonCWD

Estoy intentando hacer que mi corazón se ponga en escala de grises, con un shader, y no soy capaz xd

Al final duplicaré el sprite, lo pondré en gris con el editor y pista, pero joder, me gustaría poder usar un shader y creo que este es el más sencillo del mundo y no sé ni por donde empezar.

Alguien sabe cómo se hace?

1 respuesta
B

#666 no conozco los nodos que implementa godot en ese visual. Pero vamos, tienes que pasarle la coordenada uv a la textura, la salida de color de la textura al nodo "ColorFunc" y este conectarlo a "Color" en el Output.

B

#667 he montado esto a base de recortes de google xD... debería ser algo así.

1 respuesta
AikonCWD

#668 ññeeee. no va.

El tema es que no tengo una textura, si no el típico png con una secuencia de frames. Al poner el png en la textura me carga toda la secuencia y se ve horriblemente mal.

En fin, que da igual. Este ha sido el enésimo intento mío de acercarme al mundillo de los shaders con resultado penoso. He terminado en 1 minuto replicando el sprite en blanco y negro, a mano, y pista.

gracias btw

1 respuesta
B

#669 cambia el nodo "Texture" por un nodo "Texture Uniform" y conéctalo tal cuál estaba Texture.

Entiendo que ese nodo cargará la textura asignada en el shader... sino funciona, debería haber algún nodo o variable relacionada con un maintex o similar.

Pero vamos, nunca he usado Godot... a ver si alguien sabe decir.

1 respuesta
AikonCWD

#670 No sale

Te lo comento para que veas que lo he probado. No te preocupes porque como te digo lo he solucionando creando un segundo sprite.
Por cierto me ha hecho mucha gracia que en tu imagen de ejemplo hayas puesto el icono de godot en gris. Muy profesional

1 1 respuesta
B

#671 que va... en la captura original ya estaba en gris xD

AikonCWD

@Potito me ha preguntado por MP unas dudas con Godot y prefiero trasladar su consulta al hilo y responderle desde aquí:

Hace tiempo me entretenia mucho con Unity y pasaba mis horas haciendo chapucillas.
Me gustaría empezar con godot, hay algún curso que me recomiendes? Me da igual pagar si es necesario.
Por otro lado mi nivel de programación es muy espagueti, comenzarias primero por un curso en algún lenguaje concreto para manejar mejor godot?
Muchisimas gracias de antemano por este par de consejos.

Yo no he realizado ningún curso de pago, supongo que los habrá buenos, pero creo que no es necesario, al menos para empezar. Ya verás que Godot tiene una curva de aprendizaje bastante suave.

Te recomiendo que empieces por aquí: https://docs.godotengine.org/en/stable/getting_started/step_by_step/index.html

Es importante leerse bien este temario. Es de lectura rápida y fácil, muchas imágenes para que puedas ir siguiendo las explicaciones. Es importante que entiendas como funciona la filosofía de Godot. Las escenas y los nodos.

En el punto número 8 verás que se titula "Your First Game". Aquí podrás hacer un juego desde 0, paso a paso. Con este ejemplo yo aprendí muchísimo.

Luego yo te animaría a que intentes realizar tu primer juego por tu cuenta, siempre teniendo este link abierto como referencia. Para tu primer proyecto es importante que sea algo pequeño y sencillo, que te permita practicar las diferentes mecánicas que todo juego suele tener. Yo siempre recomiendo que cojas un juego antiguo/clasico y lo intentes hacer por tu cuenta. Juegos como: Arkanoid, Space Invaders, Pong, Tetris, Snake, Pacman, etc...

http://aikoncwd.ovh/space-invaders/

Este fue mi primer juego que hice tras completar el tutorial. Intenta enfocar tu primer trabajo en algo parecido, sencillo, sin complicaciones y que te permita practicar.

Sobre el lenguaje de programación: Godot utiliza GDscript, que es practicamente igual que Python. Sería bueno que supieras manejar mínimamente ese lenguaje. También hay una versión de Godot Mono que usa C#. Si Conoces C# (o Java) quizás te ayude más programar en esa versión.

Ánimos!

1 1 respuesta
Potito

#673 Se me había pasado darte las gracias !!! Me puse directo manos a la obra. ^^ ! Mil graciassssss

Kalgator

God-op

shader de agua
https://github.com/jospic/godot3_shaders/blob/master/fast-ocean/thumb/fastocean.gif

neoline

Aunque conocía Godot casi desde la versión 1.x, por fin me he puesto a hacer cosillas, así que me veréis por aquí a menudo con preguntas y muchos juegos sin acabar xD

Me voy a centrar sólo y exclusivamente en juegos 2D para móvil, algún tutorial interesante?
Estoy siguiendo éste:

Pero dicen en Reddit que es muy malo, no sé, no está mal, el tutorial se sigue de una forma muy agradable y su inglés se entiende muy bien, aunque es verdad que se pierde mucho xD

Si hay algún curso orientado a mobile dev (da igual que sea de pago), mandad enlace, por favor.

Gracias de antenodo.

1 respuesta
Ridote

#676 HeartBeast es la leche, posiblemente es buena elección

2
neoline

Merece la pena, ahora que estoy a tiempo que no he entrao en faena, meterme a aprender Visual Scripting o sigo con GDScript? Tiene alguna ventaja significativa teniendo en cuenta que vengo del mundo de la programación y he trabajado con Python?
o C# o C++?

1 respuesta
Ridote

#678 Si sabes programar no le veo sentido meterte con visual scripting, aunque no lo he probado. Yo le estoy dando caña a Godot con C# y encantadísimo.

1 1 respuesta
neoline

#679 Ok, gracias, entonces seguimos con no visual. He trabajado con los 3, pero a nivel tutoriales, documentación, etc... supongo que la mayoría está en GDScript, no? o no voy a tener problemas si me paso a mono?

Me autorespondo: https://www.reddit.com/r/godot/comments/fg3pzt/gdscript_vs_c_vs_c/
C# sería el que tiene mejor balance performance - documentación, es algo que tengo que tener muy en cuenta si mi target van a ser móviles, por experiencia, el performance en iOS y sobretodo Android, es algo que tienes que tener siempre en la cabeza. Así que casi seguro tiro por C#
Gracias otra vez !

1 respuesta
Ridote
#680neoline:

pero a nivel tutoriales, documentación, etc... supongo que la mayoría está en GDScript, no?

Las llamadas a cualquier cosa relacionada con Godot van a ser iguales, simplemente va a cambiar de mi_llamada a MiLlamada. Si tu target es plataformas móviles, igual sí te viene mejor quedarte en GDScript y usar GLES2. Creo que IOS no estaba soportado con Godot Mono.

Aunque creo que en Godot 3.2.2 meten soporte para IOS con c# pero no estoy muy puesto así que no me quiero mojar. Tienes más información aquí https://godotengine.org/article/release-candidate-godot-3-2-2-rc-3

Pero si tu target es pc, yo personalmente recomiendo c#, un poco por gusto personal pero también porque te ofrece muchas más herramientas como lenguaje que GDScript. Sin meterme a hablar de performance, que para los juegos que hacemos como aficionados te sirven ambos lenguajes.

1 respuesta
Ridote

Otro tío interesante al que seguir:

3
neoline

#681 Llevabas razón, acaba de salir la 3.2.2 y:

Godot 3.2.2 includes 5 major features:

C# support for the iOS platform (note: the C# version is not distributed via Steam)
2D batching for the GLES2 renderer
Re-architecture of the Android plugin system
DTLS support and ENet integration
Better handling of Variants pointing to released Objects

Ya tenemos C# en iOS :tada:

1 1 respuesta
kidandcat

#683 Te recomiendo encarecidamente C# si sabes programar, puedes hacer prácticamente cualquier cosa, es un lenguaje de programación completo, y además puedes usar las miles de librerías de nuget.

GDscript esta muy bien para la gente que se inicia en la programación y tal.

Eso sí, si tiras por C#, no uses el entorno integrado de godot para programar, usa un IDE de dotnet en condiciones, Visual Studio, vscode con omnisharp o Rider.

PD: yo uso Rider, y pago encantado los 14€ al mes que cuesta, si puedes permitirtelos te lo recomiendo, de todas formas tienes 30 días para probarlo. Yo es que tengo varios productos de jetbrains ya, que para el curro me renta no, lo siguiente.

2 respuestas
Ridote

#684 Visual Studio Code va de lujo y es gratis. GRatiiiiiiiiiiiiiiiiiiis

1 respuesta
B

#685 Yo estoy yan contento con el VS Code que hasta en Linux lo tengo instalado. Quién hubiera dicho hace 10 años que instalarías una app de Microsoft en Linux xD

neoline

#684 Hace 9 años que no toco C#, pero supongo que no habrá cambiado mucho. Seguiré el par de tutoriales que tengo ahora mismo y me pasaré a C# cuánto antes.
Para el curro uso VSCode, así que tiraré por ese, de Jetbrains puedo conseguir una licencia pero del IDEA, ya veré lo qeu hago, pero lo dicho, seguramente tire por el VSCode que la verdad es que va muy bien, llevo 3 años usándolo y va de lujo.

AikonCWD

A ver si me podéis ayudar:

Tengo un Vector2() (lo llamaremos V1) en la posición (0,0) y quiero calcular la posición de cada punto rosa que veis.
Sabiendo el radio (20 unidades), sacar los puntos verdes es muy fácil, pero los puntos rosas situados en el extremo del radio... pues no se me ocurre como sacarlos xd.

Creo que estoy preguntando algo elemental de matemáticas de la ESO, pero estoy super espeso y no me sale xddd.

Alguien me ayuda? Os dejo la documentación de los vectores, para que sepáis los métodos que tengo disponibles: https://docs.godotengine.org/es/stable/classes/class_vector2.html

3 respuestas
EruGreen

#688 edit: me he venido arriba con la respuesta, no es como he dicho, pero creo que sabría hacerlo, mañana le hecho un ojo.

Porcierto, el dato que conoces cual es? Los grados/radianes?

Edit 2: para resolverlo utilizaría esto: https://es.m.wikipedia.org/wiki/Circunferencia_goniom%C3%A9trica

Gif

#688 que quieres hacer exactamente?
Puedes rotar direction(apunta para arriba aka 0, -1) e ir multiplicando para dejarlos en el sitio

   degrees = 15 //?
   increment = 0
   vectors[size]
   direction  = vector(0, -1).normalized()
   for(...)
      vectors[i] = direction.rotated(degreeToRad(degrees + increment)) * 20
      increment += 10 // ?

Usuarios habituales

  • kidandcat
  • AikonCWD
  • Ridote
  • Jastro
  • Kalgator
  • MisKo
  • Leos

Tags