Bueno, y no se te vaya a olvidar que cada comentario ayuda muchÃsimo al canal, asi que pongan lo que gusten: Un saludo, una duda, si ven que alguien sabe algo y saben la respuesta, no esperen que yo responda, ayuden a sus compaÃąeros, participen y colaboren para aumentar el alcance de los contenidos que comparto en el canal ÂĄGRACIAS! ð
esto es una locura, singletons ya integrados en el sistema, FSM con funciones super faciles de definir, conexiÃģn entre scripts ridiculamente ordenadas y de acceso facil, definitivamente tengo que quedarme aquÃ
Es lo que tiene un engine creado por y para la comunidad jajaja no digo ser fÃĐrreo defensor del software libre, porque uso software privativo y lo seguirÃĐ haciendo, salvo que existiera una alternativa libre que me convenciese lo suficiente, pero indudablemente que Godot Engine sea software libre es una ventaja en este caso, pues todos sus errores, correcciones y mejoras que se han ido aÃąadiendo son cosas que la propia comunidad ha ido pidiendo o ha querido aÃąadir, por ejemplo en Godot los setter/getter existen, pero me atreverÃa a decir que estÃĄn de adorno o para casos muy concretos y especÃficos (o simplemente para los que sean personas de costumbres), ya que perfectamente puedes cambiar el valor de prÃĄcticamente cualquier propiedad directamente sin usar un set/get ðĪ
Lo importante no es saber, sino saber el numero del que sabe. Tu si que sabes Leedeo. Gracias por compartir tu conocimiento y por animarnos en este camino.
AÚn no sÃĐ ni que juego quiero hacer, pero estoy seguro de que serÃĄ pequeÃąo y de que es bueno familiarizarme con el motor. Muchas gracias por tus explicaciones tan claras.
Y a ver si puedo terminar pronto el siguiente, el siguiente tambiÃĐn va a ser algo vital que yo uso demasiado: Las seÃąales. Es que la intenciÃģn de enseÃąarles que son los autoload, seÃąales, etc. es como para ir enseÃąando buenas costumbres desde el principio e ir quitando malas costumbres a los que ya tienen mÃĄs experiencia, pues la mayorÃa, al empezar, abusa de una funciÃģn que todavÃa no he usado en este curso: La funciÃģn process, que se ejecuta una vez en cada fotograma (si son 60 FPS significa que todo lo que esta funciÃģn contenga se ejecuta 60 veces por segundo), y la funciÃģn process estÃĄ para ser usada, sin duda alguna, y posiblemente serÃĄ una de las que mÃĄs terminemos usando, pero el reto aquà es usarla lo menos posible, pensar siempre formas de evitar recurrir a ella, y una forma son precisamente las seÃąales.
Mil gracias!! ð y ya preparando el siguiente tutorial de la serie de Hagamos Videojuegos (La de ejercicios prÃĄcticos...), esos me llevan tiempo porque son superlargos y tediosos de hacer, pero espero guste y sea de ayuda. ð
Muchas gracias javo!!!, gracias por tus tutoriales me ayudaste a entender mejor godot engine y me dieron mas ganas de probar otro motores. No entiendo porqno eres mucho mas famoso gracias
Mil gracias!!! ð pues igual no te preocupes, yo ando creciendo con ustedes, ustedes crecen, y yo crezco en el proceso, ya sea compartiendo un tutorial, compartiendo mi trabajo cuando estoy desarrollando un juego (que ya dentro de poco sigo Leedeo Backrooms) o haciÃĐndoles reÃr, pero es un premio para mà vuestra satisfacciÃģn. ð
Me alegro!!! ðel que me siga verÃĄ la importancia que tiene mÃĄs adelante, estas lecciones son supervaliosas, son temas que perfectamente se podrÃan explicar sobre la marcha, pero no, por su valor prefiero que tenga un tutorial independiente con su "que, como y cuando". ðĪ
Ok... Estoy intentando hacer un PokÃĐmon como proyecto personal, creo que esta serÃa la manera de guardar el equipo PokÃĐmon del jugador y sus objetos, pero necesito mÃĄs informaciÃģn. Gracias por la idea
QuÃĐ justo estoy en eso ð con suerte y lo termino entre hoy y maÃąana, y mientras lo hago, estaba pensando en sacar una serie nueva de Shorts como para no estar todo el rato haciendo tutoriales ðĪĢ ahorita quiero centrarme en terminar este curso, por eso no estoy haciendo videos largos de otra cosa, pero tambiÃĐn es repetitivo para mà y para el canal, asà que la serie nueva que he pensado serÃa como una chucherÃa como para desestresarme, ya que los shorts sà que los puedo hacer de rÃĄpido y ahora que el canal llegÃģ a los 10 mil subs creo que el algoritmo agradecerÃĄ esa inyecciÃģn extra. ð
autoload o singleton jajaja son tecnicismos de programaciÃģn, no se traducen, que ya me toco ver como lo traducÃan como autocarga y fui corriendo a corregir eso ð pero sà son superprÃĄcticos, y sirven para infinidad de cosas, partiendo del hecho que siempre permanecen en ejecuciÃģn incluso entre cambios de escenas. Por ejemplo, servirÃan para tener una mÚsica que jamÃĄs dejase de sonar, siendo honesto no recuerdo haber visto ninguno juego que hiciera esto, pero si me ha tocado ver gente preguntando como hacerlo... asà que bueno... pues asà es como se harÃa.
Creare un juego se llamarÃĄ exodo serÃĄ terraria pero con asteroides espero y mi juego inspirado en ese juego en 4 aÃąos este listo muchas gracias bro por tu apoyo y si algÚn dÃa lanzo el juego y es ÃĐxito te lo agradezco
Esta muy bueno, onda puedo tener literalmente una hoja de personaje con stats, niveles e informaciÃģn que no se muestra en pantalla todo el rato no? y decÃs que se puede modificar y actualizar y no perdes la info nueva? por cierto, soy nuevo en tu canal y en esto de godot, querÃa entrar al grupo de discord pero parece que la invitaciÃģn caduco, puede ser?
Puedes, pero pensarÃa 2 veces esa idea... si otros nodos requieren acceder a los stats del personaje constantemente, entonces sÃ, es buena idea hacer un autoload/singleton/global (como quieran llamarlos jajaja en realidad todos son nombres correctos), pero si no es necesario acceder a esa informaciÃģn del personaje mÃĄs que en una ocasiÃģn (por ejemplo al subir de nivel), entonces es mejor hacerlo sin un autoload. Y sÃ, lo que se ponga en el autoload, permanece en el autoload durante toda la ejecuciÃģn del proyecto (si se cierra, se pierde, no es un archivo save, eso ya es otro tema), hay infinidad de usos para eso y es algo que en otros engines cuesta mucho mÃĄs realizar y en Godot lo facilitaron una barbaridad, en poco mÃĄs de 1 minuto en realidad explique todo lo necesario. ð
ÂŋPero si has visto lo que hago al reproducir el proyecto? ð inclusive un script definido como autoload en ejecuciÃģn se carga como un nodo en el ÃĄrbol de escenas, 3 no es exagerado, vamos que tampoco es que estÃĐ mal, pero si el cÃģdigo es corto es recomendable si en lugar de 3 los unes en 1 o 2... ð 2 tal vez, porque un sistema de diÃĄlogos, si utilizas el autoload para guardar los textos como un diccionario, entonces ese sà que puede alargarse bastante... aunque incluso en ese caso lo que yo recomendarÃa para rizar el rizo es tener uno solo y los textos de los diÃĄlogos en un script aparte que no sea un autoload, pero que sea cargado desde el script global, de esa forma si eligen espaÃąol carga X script, y si eligen inglÃĐs, carga Y script. Un sistema de traducciones bÃĄsico, pero efectivo, creo que Godot ya integra un sistema de traducciones nativo, pero he trabajado demasiado tiempo con APIs en desarrollo web, estoy demasiado acostumbrado al mÃĐtodo tradicional ðĪĢ
Muy bien. Lo aplicarÃĐ cuanto antes. Solo me queda la duda de quÃĐ diferencia hay entre hacer global una escena con script y un script en solitario. Supongo que todavÃa no necesito el primer escenario, ahora mismo solo requiero un script a modo de clase de utilerÃa.
Cualquiera de los 2 ðĪĢ puedes hacer un autoload con un script o con una escena, como te organices eso ya depende de cada uno, porque por ejemplo podrÃas decir "pues es que voy a tener X escena que SIEMPRE debe estar reproduciÃĐndose, esa no va a desaparecer nunca, nunca, nunca..." pues perfectamente la puedes poner como autoload y asà no la tienes que estar instanciando nivel por nivel y accedes a ella usando su nombre identificador, o si simplemente necesitas un script, pues pones un script y listo. ð Puedes hacer ambas cosas, esto incentiva que te pares y pienses que necesitas hacer, lo de poner una escena como autoload yo lo hago nunca, no se ha dado el caso que necesite hacerlo, por ejemplo en Leedeo Backrooms podrÃa decir la GUI, pero es que hay una GUI diferente para el menÚ, y otra distinta dependiendo del nivel...
Mil gracias!! ð este va a ser rÃĄpido, pero es algo que han preguntado demasiado ð a partir de aquà la mayorÃa van a ser dudas frecuentes en Godot ðĪ
No te lo esperabas tan rapido?? ðĪ pues a ver si el prÃģximo lo tengo tambiÃĐn en unos dÃas ðĪĢ el que para mi serÃĄ bonito/entretenido de hacer, yo creo que serÃĄ el que le sigue a ese, el 7... que salvo sorpresa ya comunique desde hace algÚn tiempo serÃa el de aprender a leer y corregir bugs en GDScript 2.0, y esa es una idea que me encanta, porque tal vez no le interesara a nadie, pero es que el 99.9% de los errores que me han comentado desde que empecÃĐ se debe a que no saben leer errores de cÃģdigo ðĪ
Sà jajaja en Unity hacer esto es bastante mÃĄs complejo, doy fÃĐ, y mucho menos versÃĄtil, ya que en Godot puedes definir como Autoload desde un simple script hasta una escena al completo (aunque cuidado con hacer eso, es Útil si uno sabe lo que estÃĄ haciendo jajaja), y sÃ, ese script o escena sÃĐ instancia como un nodo en todas las escenas del juego, si por ejemplo es un script que extiende de Node, pues serÃĄ un nodo del tipo Node, si extendiese de Node3D, pues serÃĄ un nodo del tipo Node3D. ð
Hola, una pregunta, seria viable usar autoload para guardar la posicion en x e y del jugador? En ese caso como se podria mantener esa variable constantemente actualizada porque cuando lo intento el autoload se queda con el valor inicial, Null (en caso de solo definir la variable y despues actualizarla en la funcion _process) y el valor que defina al declarar la variable, Gracias!
Pues de hecho asà se harÃa para una funciÃģn de guardado, asà que sà es viable, aunque depende del objetivo, por supuesto. Creas tu variable en el autoload, pero la actualizas desde el player, ya sea en una funciÃģn que sea llamada en un momento concreto, o en una seÃąal, o aunque quizÃĄs esto fuese menos recomendable, pues desde el process, que insisto que actualizar la posiciÃģn en cada fotograma no es muy Ãģptimo, pero bueno, pudiera existir quizÃĄs algÚn caso donde fuese necesario, en plan una funciÃģn para retroceder el tiempo, quizÃĄs...
ÂŋDe occlusion culling? pero eso no hace falta programarlo, ya va integrado en Godot, en ConfiguraciÃģn del Proyecto activas el Occlusion Culling, luego pones un nodo Occluder y lo extiendes para que cubra toda el ÃĄrea de la escena y bakeas el occluder, hecho esto la cÃĄmara va a controlar la distancia de dibujado con la propiedad Far. Vamos, que no hay que tocar nada, salvo que quisieras cambiar el far por cÃģdigo en ciertos casos, es un caso raro, pero posible donde podrÃas hacer uso de un script global para controlar la distancia de dibujado de la cÃĄmara.
@@Leedeo gracias por la info, no tenia ni idea de que se podia hacer asi. Y esto que elementos de la escena afecta? todo o algunas cosas? me interesa saber.
@@francomasip Todlas las mallas bakeadas por el nodo Occluder, eso si ya es prueba y error porque si son espacios grandes abiertos, es mejor meterle niebla para que no aparezcan objetos de golpe, ya que si pones una distancia de dibujado grande, pues asà que gracia tiene Âŋverdad? Es prueba y error, jugar hasta encontrar un punto que te agrade.
@@Leedeo gracias por la info leedo he buscado esa info y no encontraba nada. No es muy comÚn encontrar informaciÃģn de cÃģmo optimizar proyectos 3d y asÃ..
Ante tu comentario de no abusar de los singleton, porque consumen recursos a que te refieres? Ocupan memoria en Ram o estan usando continuamente el procesador? Cuanta memoria puede ocupar una variable numerica? 1 byte, 1Kb ?? Es realmente tan consumidor de recursos?? QUe es lo que mas podria consumir recursos?? Cargar escenas enteras en el singleton?? Cargar variables alfanumericas?? No se, me causa preocupacion tu comentario Un saludo
Pues sÃ, sà consumen, aunque es por eso y no es por eso. Si te fijas (que creo que esto no lo enseÃąado hacer) cuando ejecutas el juego, en el panel de escena aparecen 2 nuevas pestaÃąas, remoto y local, local es tu ÃĄrbol de escenas, tal cual, y remoto es el ÃĄrbol de escenas del juego en ejecuciÃģn, ahà puedes ver los nodos que se generan y sirve precisamente para eso, testeo. Pues si te fijas en remoto, cada singleton se crea como un nodo, por lo tanto, 5 singleton son 5 nodos y siempre se colocan en primer lugar, en el orden indicado en la pestaÃąa de autoload. MÃĄs nodos, mayor consumo de recursos, quizÃĄs no es algo tan exagerado, salvo que uno hiciera 20 o 30 singleton, que eso sà es exageradÃsimo, 5 todavÃa podrÃan ser pasables... pero mÃĄs allÃĄ del rendimiento afectan en otros sentidos, por ejemplo, si tÚ no sabes lo que acabo de decir y con un bucle for buscas el primer nodo del ÃĄrbol de escenas, que quizÃĄs piensas que es un nodo de tipo Control que tÚ pusiste, pues no, el primero serÃa un singleton y tÚ esperarÃas que fuera el nodo Control, por lo tanto, no tendrÃas el resultado esperado, quizÃĄs hasta te tira un fallo porque estÃĄs intentando llamar a una funciÃģn de tu nodo Control y pensarÃas que es un fallo de Godot, pero no, estÃĄ bien, simplemente que dependiendo de cuantos singleton, pues tu nodo control puede ser el 1 (porque recuerda que se empieza a contar desde el 0), o el 5. Ya cuanto ocupe cada singleton, pues depende de lo que se ponga como singleton, ya que realmente se puede poner un script muy simple, un script muy avanzado o incluso una escena con muchos otros nodos como hijos, que a su vez tienen otros scripts y funciones... Por eso siempre digo que precauciÃģn con los singleton, porque son muy necesarios, son muy Útiles y son muy tentadores, pero aprender a organizar bien un proyecto es la primera buena prÃĄctica que podemos aprender para optimizar un juego.
@@Leedeo Que excelente explicacion, ademas de rapida!! Contigo, y dos mas como tu (para que tengas compaÃąia, no por falta de eficiencia), y arreglamos los problemas de todo el planeta. Eres un crack!! ðð
Hola que tal? me gustan mucho estos tutoriales que haces, por que explicas muy bien, me podrÃas ayudar con una duda, quiero colocar un pÃĄjaro como un enemigo pero no se como generar el script para que me haga la animaciÃģn correcta y que vuele y luego pueda ser eliminado por mi personaje, te agradezco si me puedes ayudar.
Mil gracias!! ð tu peticiÃģn es que es algo muy abierto jajaja bÃĄsicamente es ayuda para desarrollar una mecÃĄnica desde cero, para eso hice distintos cursos, primero en Godot 3, ahora de introducciÃģn a Godot 4, aprendiendo una versiÃģn se pueden extrapolar los conocimientos de la versiÃģn anterior. Lo que puedo hacer es ayudarte con alguna duda que tengas, pero cosas mÃĄs concreta, mÃĄs precisas, algo que pudiera ser respondido en un solo comentario. ð
No entiendo si solo se puede poner una variable en un solo script de autoload, ya que tengo uno con 2 variables pero no cambian el valor de una de ellas, no se si deba hacer otro autoload
Pues es un script normal y corriente que se carga como un nodo en el ÃĄrbol de escenas (si es de tipo Node, pues se crea un nodo de tipo Node), simplemente que se carga automÃĄticamente al inicio del juego y no desaparece incluso aunque se cambie de escena, eso significa que es persistente, pero vamos que puedes crear 1000 variables si quieres, simplemente hay que llevar un control adecuado, saber estructurar el proyecto es tan importante como escribir un buen cÃģdigo, y esas cosas se hacen antes de empezar el proyecto, lo que sà puedo decir es que no crearÃa un autoload por cada variable, eso desde luego.
Hola, una pregunta si uso el singleton para mis monedas dentro del juego de que forma puedo hacer que estas dejen de aparecer una vez las tome? como las estrellas grandes de mario que aunque entres al nivel estas ya no estan?
No sÃĐ si entendi bien, pero si es lo que creo, reseteas valores al principio del nivel. En el script del nivel pones GLOBAL.coins = 0 por ejemplo para que cada vez que cargue ese nivel, se resetee el valor a 0, que de hecho en los ejercicios prÃĄcticos despuÃĐs de este curso asà le estoy haciendo.
@@Leedeo gracias por responder. resulta que en singleton global cree una variable Coins = 0, y en el scrip de las monedas puse: func _on_body_entered(body): if body.get_name() == "Player": SingletonGlobal.coins += 1 queue_free(). asi cuando mi Player toca una moneda esta suma 1 al singleton, pero al momento de entrar a es nivel las monedas siguen ahi y me gustaria saber si es posible eliminar las monedas que el player recolecta de ese nivel. son 3 niveles y 3 monedas por nivel
A eso siempre... en realidad tengo una maÃąa con los corazoncitos, pero siempre me olvido, y es que cuando envÃo un corazoncito te llega notificaciÃģn, deberÃa al menos, entonces la idea era no dar corazoncitos hasta que publicase algo y luego darlos todos de golpe para que envÃe la notificaciÃģn y vean que publique algo nuevo, pero se me olvida porque como respondo comentarios ya no me aparecen en la lista de "no he respondido" y se me pasan... he calculado que la campanita funciona aproximadamente 5 de cada 10, vamos que hay un 50% de que funcione... igualmente recomiendo activarla por si acaso, pero sÃ, funciona como quiere esa cosa...
Por favor ayuda tengo dos niveles y necesito pasar mÚsica al segundo, como hago? O como llamo el sonido desde el Script del segundo nivel ðĒðð
Como, o sea, tienes mÚsica en el primero, Âŋy quieres que no se corte y siga en el segundo? Si es asÃ, tienes que hacerlo en un autoload precisamente, y aquà hay que entender como funciona el autoload: Se carga como un nodo que perdura durante toda la ejecuciÃģn del programa, jamÃĄs se elimina a diferencia de una escena normal donde al descargarla, todos sus nodos se desaparecen con ella. Para hacer esto tienes 2 vÃas: Crear una escena con un AudioStreamPlayer con reproducciÃģn automÃĄtica, que es la soluciÃģn rÃĄpida, o bien lo que yo harÃa es crear un script, ponerlo como autoload y en este script crear el nodo por cÃģdigo y reproducirlo por cÃģdigo, que suena mÃĄs complejo, pero son 2 lÃneas de cÃģdigo y una vez hecho te permite trabajar mÃĄs rÃĄpido y eficiente.
Hola Leedeo! tengo una gran confucion de cuando usar Node (Control) por que tengo un player (Node3D) y dos escenariostambien Node3D, pero al entrar a un portal (Area3D) solo cambio el escenario 1 por el 2 pero me desaparece el player. Si agrego al player en autoload al dar play sale volando hacia arriba (si tiene gravedad todo el gdscript del personaje anda bien)... llevo una semana tratando de ver como hacer que el player pase al escenario 2 sin exito esperr puedas subir algo al respecto, o al menos tirarme una idea. Saludos y gracias!
Con mucho gusto!! ð aquà tal vez haya una confusiÃģn, no es que estÃĐ mal poner el player como autoload, se puede, hay casos donde podrÃa funcionar, pero evita crear autoload siempre que puedas y crearlos solo cuando sean cosas a las que el resto de nodos tenga que acceder en algÚn momento, a eso le llamo "sistema de responsabilidades", lo mismo con tu nodo control, piensa que el control si lo pones como autoload, cargara siempre, que repito, habrÃĄ casos donde no sea inconveniente, pero piensa que tenemos escenas como el menÚ, o los crÃĐditos donde quizÃĄs no queramos que se cargue el player, o queramos que se cargue una GUI diferente ÂŋsÃ? Pensando en esos casos digo que no es recomendable meterlos como autoload. Ahora bien, en el caso que mencionas, Âŋpor quÃĐ desaparece el player? PiÃĐnsalo y verÃĄs que tiene lÃģgica, los autoload permanecen entre escenas, con todas sus propiedades incluidas, y eso incluye la posiciÃģn por ejemplo, si estÃĄs en la escena 1, y cambias a la escena 2 y por ejemplo eliminas al player al cambiar escenas, el player permanece eliminado en la escena 2, o si el player se encontraba en la posiciÃģn Vector(104, 207), en la escena 2 seguirÃĄ en esa posiciÃģn, porque los autoload asà son, nunca se descargan de memoria y se cargan nuevamente en la nueva escena, sino que se mantienen de principio a fin incluso entre escenas, por eso es recomendable que esas escenas las pusieras manualmente, pero si quieres mantener esa metodologÃa, entonces al cargar tu escena 2 deberÃas indicar el estado y posiciÃģn del player en esta nueva escena para que se ubique donde tÚ quieras exactamente y no donde quedase en la escena anterior ÂŋsÃ? Espero que se entienda, es que tal vez suena un poco confuso, lo importante aquà es entender que los autoload se mantienen a lo largo de toda la ejecuciÃģn del juego, por eso mi recomendaciÃģn es usarlos Únicamente cuando eso no sea necesario, vease un sistema de puntaje, de inventario, etc.
@@Leedeo Excelente amigo gran respuesta, no voy a usar autoload salvo score o algo asi, pero antes debo descubrir como poner el player en escenario_2 por que no he sabido mantener el nodo global que contiene player y tambien el world enviroment por eso cuando paso a change scene to file escena 2 desaparece hata la luz jaja solo cambia el escenario1 al dos y ya xD a seguir aprendiendo entonces. Gracias por esa info espero lograrlo en esta semana insistiendo. Nuevamente gracias Ledeeo por compartir siempre y la buena predisposicion!
@@mrkaratedo No te preocupes, siempre digo que se aprende mÃĄs de los errores, que de los aciertos, tal vez si te digo como funcionan las cosas y lo haces bien a la primera jamÃĄs lo hubieras entendido del todo por completo hasta que hubieras hecho las cosas y empezaran a surgir problemas, pero al solucionarlos, aprendiste mucho mÃĄs, asà que velo por ese lado, estÃĄ perfectamente bien fallar y aprender ð y al contrario, como crees, no hay porque agradecer, para mà es un placer poder haber sido de ayuda. ðĪ
Pues son 3D a fin de cuentas, es 3D con sprites 2D, honestamente yo no soy para nada conservador, creo que la tecnologÃa estÃĄ para mejorar lo que hemos visto hasta ahora y tenemos ejemplos como Dead Cells donde si lo ves juras que es 2D pixel art y no, de hecho ni siquiera usa sprites 2D, es 3D puro, y hace poco mostraron una escena de Ranma en 3D hecha con Blender que parece 2D puro... sin irnos tan lejos tenemos juegos como los Dragon Ball FighterZ y los ultimos Guilty Gear de Arc System Works que parecen 2D totalmente, o casi al menos, ya esta a un nivel donde se ve bonito ahora y se verÃĄ bonito en 20 aÃąos... uno de mis RPG favoritos es Breath Of Fire 3, de PS1, que es 2.5D al mezclar entornos 3D con sprites 2D, y la evoluciÃģn de esos juegos es Octopath Traveller, que hace uso de efectos de luz y post-procesado de un motor 3D usando sprites 2D... En realidad todos los estilos me gustan si se hacen bien, yo serÃa feliz haciendo un juego en cualquier estilo artÃstico siempre que cumpla con mis estÃĄndares personales de calidad, no digo que sean perfectos, pero son los que son, no soy conformista, si yo digo que algo me gusta es que me gusta de verdad, y cuando no me gusta, igual lo voy a decir, para esas cosas nunca me ando por las ramas.
Pues yo creo que la mayorÃa estarÃa de acuerdo que Isaac es mÃĄs popular, pero me gusta mÃĄs Dead Cell, en lo Único en lo que son comparables es en la generaciÃģn procedural de mazmorras, pero Dead Cell es un plataformero de acciÃģn lateral mucho mÃĄs frenÃĐtico para mi gusto, que eso a mà ya saben que me gusta, mientras que Isaac es de acciÃģn cenital al estilo Zelda, ese detalle cambia por completo el gameplay. No es que uno sea mejor que el otro, eso ya dependerÃĄ de gustos, yo por ejemplo no me veo haciendo un juego estilo Binding Of Isaac, aunque tampoco sÃĐ si me animarÃa con un juego estilo Dead Cell... Dead Cell tiene mucho de los nombrados "Metroidvania", y no es que no me gusten, sino que pienso que estÃĄ quemadÃsimo el gÃĐnero, hay un exceso de juegos de este estilo ð claro, podrÃamos decir "es que si salen bien, salen tremendos juegos como X y Y", pero es que ese argumento no me sirve, porque si te sale bien, no importa el gÃĐnero, va a ser un buen juego. ðĪĢ
No, son objetos/nodos persistentes a lo largo de toda la ejecuciÃģn de la aplicaciÃģn, jamÃĄs desaparecen, aunque se cambie de escenas, y se puede acceder a ellos desde cualquier otro nodo usando el nombre/identificador que le hayamos dado. Un punto de guardado, guardarÃa X datos en un archivo para despuÃĐs recuperarlos al cargar, pero si cierras la App, los Autoload no mantienen sus valores, si quieres guardarlos, tendrÃas que implementar un sistema de guardado.
Hola, para mover al jugador de un nivel a otro, por ejemplo con un area3D en una puerta (exterior de una casa) para entrar a otra escena (interior casa) se hace desde un singleton o es distinto? intente hacerlo y al cambiar de nivel/escena se ve un solo nivel, pero se cargan los dos niveles al mismo tiempo, osea que se ejecutan los dos al mismo tiempo, no he sabido la manera mas adecuada de cambiar un nivel en 3d y liberar el otro. no se si me explico, aun soy nuevo en Godot no he encontrado mucha info de godot 4 para cambiar de niveles. Muchas gracias por los tutoriales
PodrÃa ser un ejemplo de uso donde se puede emplear un autoload, guardar la posiciÃģn del player en una escena para que al regresar, parta desde ese punto igualando la posiciÃģn a la posiciÃģn guardada en el autoload, y no es necesario hacer mil autoload, uno solo puede servir para muchas cosas, de hecho solo recomendarÃa hacer varios cuando el cÃģdigo ya sea muy grande y fuera necesario separar el cÃģdigo por mejorar la legibilidad, que yo por ejemplo asà lo tenÃa en Leedeo Backrooms versiÃģn Godot 3, allÃĄ tenÃa un autoload de nombre GLOBAL para casi todo, y otro para las funciones de guardar/cargar partida, en la versiÃģn de Godot 4 como refactorice y simplifique muchas cosas pues lo reduje a 1 solo autoload.
SÃ, lo que es la parte de los autoload se hace exactamente igual, pero pasa que en el anterior curso yo hice un curso de introducciÃģn muchÃssisimo mÃĄs corto de lo que serÃĄ este, luego ya empecÃĐ con los ejercicios prÃĄcticos, mi norma es no repetir lecciones y hacer las cosas siguiendo un orden, pero explico como crear autoloads en X tutorial, luego la gente no hace caso de las indicaciones y una de las preguntas mÃĄs frecuentes era esta ÂŋquÃĐ son los autoload y como crearlos? Entonces para este curso tomÃĐ nota de esas cosas, sigo con mi metodologÃa de no repetir, pero ahora explico las cosas bÃĄsicas desde un principio, mÃĄs adelante Âŋtienen dudas? Pues aquà estÃĄ el tutorial en especÃfico donde enseÃąo hacer esta cosa. Me mantengo fiel a mi metodologÃa, pero ahora estarÃĄ mucho mÃĄs ordenado todo y me ayudarÃĄ precisamente a no alargarme en futuros tutoriales explicando estas cosas (ya el que no lo quiera ver, serÃĄ culpa suya, yo mÃĄs no puedo hacer... ðĪĢ)
Jajaja bueno es que es tip rÃĄpido, aquà no habÃa necesidad de alargar mÃĄs el tema o meter otras cosas, es que si no vuelvo a caer en errores pasados ð mi idea es que el tutorial dure lo que tenga que durar, ni mÃĄs ni menos, y centrÃĄndose en 1 tema, luego los chistes si se me ocurren, pues los meto, pero en tutoriales cortitos como este, pues tampoco tenÃa caso meter 1 minuto de chiste que es el 50% del tutorial. ðĪĢ Este es cortito, pero intenso ð una de las cosas esenciales de Godot Engine que hay que grabarse a fuego. ðĪ
Pero si nunca voy a hacer un proyecto en este curso ðĪĢ en este curso enseÃąarÃĐ a usar Godot a full, pero eso ya lo avise desde el principio. Los proyectos vendrÃĄn despuÃĐs de una pausa comercial indefinida, porque terminando este curso me quiero dedicar a Leedeo Backrooms, y despuÃĐs de eso tampoco voy a hacer tutoriales con proyectos completos, yo enseÃąare las bases y partiendo de ahà cada quien deberÃĄ poner de su parte y hacer su propio juego usando lo aprendido... ð, de todos modos vamos a un ritmo excelente, Godot 4.0 saliÃģ hace menos de 1 mes (saliÃģ a principios de marzo, aÚn no termina el mes) y ya vamos por 5 tutoriales. ð
Bueno, y no se te vaya a olvidar que cada comentario ayuda muchÃsimo al canal, asi que pongan lo que gusten: Un saludo, una duda, si ven que alguien sabe algo y saben la respuesta, no esperen que yo responda, ayuden a sus compaÃąeros, participen y colaboren para aumentar el alcance de los contenidos que comparto en el canal ÂĄGRACIAS! ð
esto es una locura, singletons ya integrados en el sistema, FSM con funciones super faciles de definir, conexiÃģn entre scripts ridiculamente ordenadas y de acceso facil, definitivamente tengo que quedarme aquÃ
Es lo que tiene un engine creado por y para la comunidad jajaja no digo ser fÃĐrreo defensor del software libre, porque uso software privativo y lo seguirÃĐ haciendo, salvo que existiera una alternativa libre que me convenciese lo suficiente, pero indudablemente que Godot Engine sea software libre es una ventaja en este caso, pues todos sus errores, correcciones y mejoras que se han ido aÃąadiendo son cosas que la propia comunidad ha ido pidiendo o ha querido aÃąadir, por ejemplo en Godot los setter/getter existen, pero me atreverÃa a decir que estÃĄn de adorno o para casos muy concretos y especÃficos (o simplemente para los que sean personas de costumbres), ya que perfectamente puedes cambiar el valor de prÃĄcticamente cualquier propiedad directamente sin usar un set/get ðĪ
Lo importante no es saber, sino saber el numero del que sabe. Tu si que sabes Leedeo.
Gracias por compartir tu conocimiento y por animarnos en este camino.
Un gran curso, sin ningÚn tipo de dudas
Excelente, me estÃĄ encantando este curso
AÚn no sÃĐ ni que juego quiero hacer, pero estoy seguro de que serÃĄ pequeÃąo y de que es bueno familiarizarme con el motor. Muchas gracias por tus explicaciones tan claras.
Espectacular... see you!
Mil gracias!! ð
Vamoooooooooos! Bueno el contenido. Adelante con la informaciÃģn
Y a ver si puedo terminar pronto el siguiente, el siguiente tambiÃĐn va a ser algo vital que yo uso demasiado: Las seÃąales.
Es que la intenciÃģn de enseÃąarles que son los autoload, seÃąales, etc. es como para ir enseÃąando buenas costumbres desde el principio e ir quitando malas costumbres a los que ya tienen mÃĄs experiencia, pues la mayorÃa, al empezar, abusa de una funciÃģn que todavÃa no he usado en este curso: La funciÃģn process, que se ejecuta una vez en cada fotograma (si son 60 FPS significa que todo lo que esta funciÃģn contenga se ejecuta 60 veces por segundo), y la funciÃģn process estÃĄ para ser usada, sin duda alguna, y posiblemente serÃĄ una de las que mÃĄs terminemos usando, pero el reto aquà es usarla lo menos posible, pensar siempre formas de evitar recurrir a ella, y una forma son precisamente las seÃąales.
Buenas Leedeo, sÃĄcalos todos los dÃas porfa, estoy que me urge un curso en godot 4 y estoy intentando pasar los de godot 3 y me cuesta un huevo, tkm
Todos los dÃas me es imposible, no tengo tiempo ð los voy sacando segÚn los termino, si los termino rÃĄpido, los publico rÃĄpido.
Estupendo me encanta esto de las variables globales, infinitamente practico para llamar a las variables desde cualquier nodo diferente.... ðð!!!
Gracias por el tutorial
me veo todos los comerciales para apoyarte profe, tus video son excelentes
Mil gracias!! ð y ya preparando el siguiente tutorial de la serie de Hagamos Videojuegos (La de ejercicios prÃĄcticos...), esos me llevan tiempo porque son superlargos y tediosos de hacer, pero espero guste y sea de ayuda. ð
lo espero con ansias profee
Muchas gracias javo!!!, gracias por tus tutoriales me ayudaste a entender mejor godot engine y me dieron mas ganas de probar otro motores. No entiendo porqno eres mucho mas famoso gracias
Mil gracias!!! ð pues igual no te preocupes, yo ando creciendo con ustedes, ustedes crecen, y yo crezco en el proceso, ya sea compartiendo un tutorial, compartiendo mi trabajo cuando estoy desarrollando un juego (que ya dentro de poco sigo Leedeo Backrooms) o haciÃĐndoles reÃr, pero es un premio para mà vuestra satisfacciÃģn. ð
@@Leedeo Muchas gracias javo
@@Leedeo Javo una pregunta desde godot se pueden crear aplicaciones?
Maravisollo video , sos capo.
buenisimo me encantan ð
Me alegro!!! ðel que me siga verÃĄ la importancia que tiene mÃĄs adelante, estas lecciones son supervaliosas, son temas que perfectamente se podrÃan explicar sobre la marcha, pero no, por su valor prefiero que tenga un tutorial independiente con su "que, como y cuando". ðĪ
@@Leedeo es una idea espectacular ya tengo idea en que parte usarlos, yo tengo un juego pequeÃąo en mente que hare al finalizar el curso ðĪ
Ok... Estoy intentando hacer un PokÃĐmon como proyecto personal, creo que esta serÃa la manera de guardar el equipo PokÃĐmon del jugador y sus objetos, pero necesito mÃĄs informaciÃģn.
Gracias por la idea
Gracias. Esperando el siguiente impacientemente. Un saludo
QuÃĐ justo estoy en eso ð con suerte y lo termino entre hoy y maÃąana, y mientras lo hago, estaba pensando en sacar una serie nueva de Shorts como para no estar todo el rato haciendo tutoriales ðĪĢ ahorita quiero centrarme en terminar este curso, por eso no estoy haciendo videos largos de otra cosa, pero tambiÃĐn es repetitivo para mà y para el canal, asà que la serie nueva que he pensado serÃa como una chucherÃa como para desestresarme, ya que los shorts sà que los puedo hacer de rÃĄpido y ahora que el canal llegÃģ a los 10 mil subs creo que el algoritmo agradecerÃĄ esa inyecciÃģn extra. ð
Muchas gracias. Excelente video, muy bien explicado y sobre todo con la actitud que se necesita para inspirar. Felicidades!
Son muy utiles las autocargas
autoload o singleton jajaja son tecnicismos de programaciÃģn, no se traducen, que ya me toco ver como lo traducÃan como autocarga y fui corriendo a corregir eso ð pero sà son superprÃĄcticos, y sirven para infinidad de cosas, partiendo del hecho que siempre permanecen en ejecuciÃģn incluso entre cambios de escenas. Por ejemplo, servirÃan para tener una mÚsica que jamÃĄs dejase de sonar, siendo honesto no recuerdo haber visto ninguno juego que hiciera esto, pero si me ha tocado ver gente preguntando como hacerlo... asà que bueno... pues asà es como se harÃa.
Creare un juego se llamarÃĄ exodo serÃĄ terraria pero con asteroides espero y mi juego inspirado en ese juego en 4 aÃąos este listo muchas gracias bro por tu apoyo y si algÚn dÃa lanzo el juego y es ÃĐxito te lo agradezco
Esta muy bueno, onda puedo tener literalmente una hoja de personaje con stats, niveles e informaciÃģn que no se muestra en pantalla todo el rato no? y decÃs que se puede modificar y actualizar y no perdes la info nueva?
por cierto, soy nuevo en tu canal y en esto de godot, querÃa entrar al grupo de discord pero parece que la invitaciÃģn caduco, puede ser?
Puedes, pero pensarÃa 2 veces esa idea... si otros nodos requieren acceder a los stats del personaje constantemente, entonces sÃ, es buena idea hacer un autoload/singleton/global (como quieran llamarlos jajaja en realidad todos son nombres correctos), pero si no es necesario acceder a esa informaciÃģn del personaje mÃĄs que en una ocasiÃģn (por ejemplo al subir de nivel), entonces es mejor hacerlo sin un autoload.
Y sÃ, lo que se ponga en el autoload, permanece en el autoload durante toda la ejecuciÃģn del proyecto (si se cierra, se pierde, no es un archivo save, eso ya es otro tema), hay infinidad de usos para eso y es algo que en otros engines cuesta mucho mÃĄs realizar y en Godot lo facilitaron una barbaridad, en poco mÃĄs de 1 minuto en realidad explique todo lo necesario. ð
Muy buen tuto Bro
Mil gracias!! Espero te haya sido de ayuda!! ð
Soy del team de triple autoload, uno general, otro para guardado y otro para diÃĄlogos
ÂŋPero si has visto lo que hago al reproducir el proyecto? ð inclusive un script definido como autoload en ejecuciÃģn se carga como un nodo en el ÃĄrbol de escenas, 3 no es exagerado, vamos que tampoco es que estÃĐ mal, pero si el cÃģdigo es corto es recomendable si en lugar de 3 los unes en 1 o 2... ð 2 tal vez, porque un sistema de diÃĄlogos, si utilizas el autoload para guardar los textos como un diccionario, entonces ese sà que puede alargarse bastante... aunque incluso en ese caso lo que yo recomendarÃa para rizar el rizo es tener uno solo y los textos de los diÃĄlogos en un script aparte que no sea un autoload, pero que sea cargado desde el script global, de esa forma si eligen espaÃąol carga X script, y si eligen inglÃĐs, carga Y script.
Un sistema de traducciones bÃĄsico, pero efectivo, creo que Godot ya integra un sistema de traducciones nativo, pero he trabajado demasiado tiempo con APIs en desarrollo web, estoy demasiado acostumbrado al mÃĐtodo tradicional ðĪĢ
Excelente video.
Gracias por el trabajo.
Saludos.
Muy bien. Lo aplicarÃĐ cuanto antes. Solo me queda la duda de quÃĐ diferencia hay entre hacer global una escena con script y un script en solitario. Supongo que todavÃa no necesito el primer escenario, ahora mismo solo requiero un script a modo de clase de utilerÃa.
Cualquiera de los 2 ðĪĢ puedes hacer un autoload con un script o con una escena, como te organices eso ya depende de cada uno, porque por ejemplo podrÃas decir "pues es que voy a tener X escena que SIEMPRE debe estar reproduciÃĐndose, esa no va a desaparecer nunca, nunca, nunca..." pues perfectamente la puedes poner como autoload y asà no la tienes que estar instanciando nivel por nivel y accedes a ella usando su nombre identificador, o si simplemente necesitas un script, pues pones un script y listo. ð
Puedes hacer ambas cosas, esto incentiva que te pares y pienses que necesitas hacer, lo de poner una escena como autoload yo lo hago nunca, no se ha dado el caso que necesite hacerlo, por ejemplo en Leedeo Backrooms podrÃa decir la GUI, pero es que hay una GUI diferente para el menÚ, y otra distinta dependiendo del nivel...
@@Leedeo Gracias : )
@@tottori_games Como que gracias, ahora me debes un favor de vida, asà lo dicta las normas, las leyessssss ðĪĢ
Re-visualizando videos para aprender
super completo, gracias
Gracias por los tutoriales
Este tema saliÃģ un poquito mÃĄs complicado de entender, pero por lo que entiendo es bÃĄsicamente una manera de globalizar los datos o variables.
Ok, definitivamente ahora lo entiendo mejor despuÃĐs de usarlo XD
Gracias por todos estos tutoriales de Godot 4
Espero q te vaya bien âïļ
Mil gracias!! ð este va a ser rÃĄpido, pero es algo que han preguntado demasiado ð a partir de aquà la mayorÃa van a ser dudas frecuentes en Godot ðĪ
muy bueno.
No te lo esperabas tan rapido?? ðĪ pues a ver si el prÃģximo lo tengo tambiÃĐn en unos dÃas ðĪĢ el que para mi serÃĄ bonito/entretenido de hacer, yo creo que serÃĄ el que le sigue a ese, el 7... que salvo sorpresa ya comunique desde hace algÚn tiempo serÃa el de aprender a leer y corregir bugs en GDScript 2.0, y esa es una idea que me encanta, porque tal vez no le interesara a nadie, pero es que el 99.9% de los errores que me han comentado desde que empecÃĐ se debe a que no saben leer errores de cÃģdigo ðĪ
Este video me dejo XD, entonces los Autoload son scrips que se inician al arrancar el juego y se mantienen hasta cerrarlo ?.
Sà jajaja en Unity hacer esto es bastante mÃĄs complejo, doy fÃĐ, y mucho menos versÃĄtil, ya que en Godot puedes definir como Autoload desde un simple script hasta una escena al completo (aunque cuidado con hacer eso, es Útil si uno sabe lo que estÃĄ haciendo jajaja), y sÃ, ese script o escena sÃĐ instancia como un nodo en todas las escenas del juego, si por ejemplo es un script que extiende de Node, pues serÃĄ un nodo del tipo Node, si extendiese de Node3D, pues serÃĄ un nodo del tipo Node3D. ð
@@Leedeo gracias ð
Hola, una pregunta, seria viable usar autoload para guardar la posicion en x e y del jugador? En ese caso como se podria mantener esa variable constantemente actualizada porque cuando lo intento el autoload se queda con el valor inicial, Null (en caso de solo definir la variable y despues actualizarla en la funcion _process) y el valor que defina al declarar la variable, Gracias!
Pues de hecho asà se harÃa para una funciÃģn de guardado, asà que sà es viable, aunque depende del objetivo, por supuesto. Creas tu variable en el autoload, pero la actualizas desde el player, ya sea en una funciÃģn que sea llamada en un momento concreto, o en una seÃąal, o aunque quizÃĄs esto fuese menos recomendable, pues desde el process, que insisto que actualizar la posiciÃģn en cada fotograma no es muy Ãģptimo, pero bueno, pudiera existir quizÃĄs algÚn caso donde fuese necesario, en plan una funciÃģn para retroceder el tiempo, quizÃĄs...
Una pregunta? Se podrÃa poner ahà un script que cumpla la funciÃģn de oclusiÃģn culling? O es algo mÃĄs para la cÃĄmara?
ÂŋDe occlusion culling? pero eso no hace falta programarlo, ya va integrado en Godot, en ConfiguraciÃģn del Proyecto activas el Occlusion Culling, luego pones un nodo Occluder y lo extiendes para que cubra toda el ÃĄrea de la escena y bakeas el occluder, hecho esto la cÃĄmara va a controlar la distancia de dibujado con la propiedad Far.
Vamos, que no hay que tocar nada, salvo que quisieras cambiar el far por cÃģdigo en ciertos casos, es un caso raro, pero posible donde podrÃas hacer uso de un script global para controlar la distancia de dibujado de la cÃĄmara.
@@Leedeo gracias por la info, no tenia ni idea de que se podia hacer asi. Y esto que elementos de la escena afecta? todo o algunas cosas? me interesa saber.
@@francomasip Todlas las mallas bakeadas por el nodo Occluder, eso si ya es prueba y error porque si son espacios grandes abiertos, es mejor meterle niebla para que no aparezcan objetos de golpe, ya que si pones una distancia de dibujado grande, pues asà que gracia tiene Âŋverdad? Es prueba y error, jugar hasta encontrar un punto que te agrade.
@@Leedeo gracias por la info leedo he buscado esa info y no encontraba nada. No es muy comÚn encontrar informaciÃģn de cÃģmo optimizar proyectos 3d y asÃ..
Ante tu comentario de no abusar de los singleton, porque consumen recursos a que te refieres?
Ocupan memoria en Ram o estan usando continuamente el procesador?
Cuanta memoria puede ocupar una variable numerica? 1 byte, 1Kb ??
Es realmente tan consumidor de recursos??
QUe es lo que mas podria consumir recursos?? Cargar escenas enteras en el singleton?? Cargar variables alfanumericas??
No se, me causa preocupacion tu comentario
Un saludo
Pues sÃ, sà consumen, aunque es por eso y no es por eso. Si te fijas (que creo que esto no lo enseÃąado hacer) cuando ejecutas el juego, en el panel de escena aparecen 2 nuevas pestaÃąas, remoto y local, local es tu ÃĄrbol de escenas, tal cual, y remoto es el ÃĄrbol de escenas del juego en ejecuciÃģn, ahà puedes ver los nodos que se generan y sirve precisamente para eso, testeo. Pues si te fijas en remoto, cada singleton se crea como un nodo, por lo tanto, 5 singleton son 5 nodos y siempre se colocan en primer lugar, en el orden indicado en la pestaÃąa de autoload.
MÃĄs nodos, mayor consumo de recursos, quizÃĄs no es algo tan exagerado, salvo que uno hiciera 20 o 30 singleton, que eso sà es exageradÃsimo, 5 todavÃa podrÃan ser pasables... pero mÃĄs allÃĄ del rendimiento afectan en otros sentidos, por ejemplo, si tÚ no sabes lo que acabo de decir y con un bucle for buscas el primer nodo del ÃĄrbol de escenas, que quizÃĄs piensas que es un nodo de tipo Control que tÚ pusiste, pues no, el primero serÃa un singleton y tÚ esperarÃas que fuera el nodo Control, por lo tanto, no tendrÃas el resultado esperado, quizÃĄs hasta te tira un fallo porque estÃĄs intentando llamar a una funciÃģn de tu nodo Control y pensarÃas que es un fallo de Godot, pero no, estÃĄ bien, simplemente que dependiendo de cuantos singleton, pues tu nodo control puede ser el 1 (porque recuerda que se empieza a contar desde el 0), o el 5.
Ya cuanto ocupe cada singleton, pues depende de lo que se ponga como singleton, ya que realmente se puede poner un script muy simple, un script muy avanzado o incluso una escena con muchos otros nodos como hijos, que a su vez tienen otros scripts y funciones...
Por eso siempre digo que precauciÃģn con los singleton, porque son muy necesarios, son muy Útiles y son muy tentadores, pero aprender a organizar bien un proyecto es la primera buena prÃĄctica que podemos aprender para optimizar un juego.
@@Leedeo Que excelente explicacion, ademas de rapida!!
Contigo, y dos mas como tu (para que tengas compaÃąia, no por falta de eficiencia), y arreglamos los problemas de todo el planeta.
Eres un crack!! ðð
Hola que tal? me gustan mucho estos tutoriales que haces, por que explicas muy bien, me podrÃas ayudar con una duda, quiero colocar un pÃĄjaro como un enemigo pero no se como generar el script para que me haga la animaciÃģn correcta y que vuele y luego pueda ser eliminado por mi personaje, te agradezco si me puedes ayudar.
Mil gracias!! ð tu peticiÃģn es que es algo muy abierto jajaja bÃĄsicamente es ayuda para desarrollar una mecÃĄnica desde cero, para eso hice distintos cursos, primero en Godot 3, ahora de introducciÃģn a Godot 4, aprendiendo una versiÃģn se pueden extrapolar los conocimientos de la versiÃģn anterior. Lo que puedo hacer es ayudarte con alguna duda que tengas, pero cosas mÃĄs concreta, mÃĄs precisas, algo que pudiera ser respondido en un solo comentario. ð
No entiendo si solo se puede poner una variable en un solo script de autoload, ya que tengo uno con 2 variables pero no cambian el valor de una de ellas, no se si deba hacer otro autoload
Pues es un script normal y corriente que se carga como un nodo en el ÃĄrbol de escenas (si es de tipo Node, pues se crea un nodo de tipo Node), simplemente que se carga automÃĄticamente al inicio del juego y no desaparece incluso aunque se cambie de escena, eso significa que es persistente, pero vamos que puedes crear 1000 variables si quieres, simplemente hay que llevar un control adecuado, saber estructurar el proyecto es tan importante como escribir un buen cÃģdigo, y esas cosas se hacen antes de empezar el proyecto, lo que sà puedo decir es que no crearÃa un autoload por cada variable, eso desde luego.
Hola, una pregunta si uso el singleton para mis monedas dentro del juego de que forma puedo hacer que estas dejen de aparecer una vez las tome? como las estrellas grandes de mario que aunque entres al nivel estas ya no estan?
No sÃĐ si entendi bien, pero si es lo que creo, reseteas valores al principio del nivel. En el script del nivel pones GLOBAL.coins = 0 por ejemplo para que cada vez que cargue ese nivel, se resetee el valor a 0, que de hecho en los ejercicios prÃĄcticos despuÃĐs de este curso asà le estoy haciendo.
@@Leedeo gracias por responder. resulta que en singleton global cree una variable Coins = 0, y en el scrip de las monedas puse:
func _on_body_entered(body):
if body.get_name() == "Player": SingletonGlobal.coins += 1
queue_free().
asi cuando mi Player toca una moneda esta suma 1 al singleton, pero al momento de entrar a es nivel las monedas siguen ahi y me gustaria saber si es posible eliminar las monedas que el player recolecta de ese nivel. son 3 niveles y 3 monedas por nivel
TH-cam tiene bugs por que nunca avisa que subes video y los correos de estreno me llegan al dia siguiente, nisiquiera me avisa de los short
A eso siempre... en realidad tengo una maÃąa con los corazoncitos, pero siempre me olvido, y es que cuando envÃo un corazoncito te llega notificaciÃģn, deberÃa al menos, entonces la idea era no dar corazoncitos hasta que publicase algo y luego darlos todos de golpe para que envÃe la notificaciÃģn y vean que publique algo nuevo, pero se me olvida porque como respondo comentarios ya no me aparecen en la lista de "no he respondido" y se me pasan... he calculado que la campanita funciona aproximadamente 5 de cada 10, vamos que hay un 50% de que funcione... igualmente recomiendo activarla por si acaso, pero sÃ, funciona como quiere esa cosa...
Por favor ayuda tengo dos niveles y necesito pasar mÚsica al segundo, como hago? O como llamo el sonido desde el Script del segundo nivel ðĒðð
Como, o sea, tienes mÚsica en el primero, Âŋy quieres que no se corte y siga en el segundo? Si es asÃ, tienes que hacerlo en un autoload precisamente, y aquà hay que entender como funciona el autoload: Se carga como un nodo que perdura durante toda la ejecuciÃģn del programa, jamÃĄs se elimina a diferencia de una escena normal donde al descargarla, todos sus nodos se desaparecen con ella.
Para hacer esto tienes 2 vÃas: Crear una escena con un AudioStreamPlayer con reproducciÃģn automÃĄtica, que es la soluciÃģn rÃĄpida, o bien lo que yo harÃa es crear un script, ponerlo como autoload y en este script crear el nodo por cÃģdigo y reproducirlo por cÃģdigo, que suena mÃĄs complejo, pero son 2 lÃneas de cÃģdigo y una vez hecho te permite trabajar mÃĄs rÃĄpido y eficiente.
Hola Leedeo! tengo una gran confucion de cuando usar Node (Control) por que tengo un player (Node3D) y dos escenariostambien Node3D, pero al entrar a un portal (Area3D) solo cambio el escenario 1 por el 2 pero me desaparece el player. Si agrego al player en autoload al dar play sale volando hacia arriba (si tiene gravedad todo el gdscript del personaje anda bien)... llevo una semana tratando de ver como hacer que el player pase al escenario 2 sin exito esperr puedas subir algo al respecto, o al menos tirarme una idea. Saludos y gracias!
Con mucho gusto!! ð aquà tal vez haya una confusiÃģn, no es que estÃĐ mal poner el player como autoload, se puede, hay casos donde podrÃa funcionar, pero evita crear autoload siempre que puedas y crearlos solo cuando sean cosas a las que el resto de nodos tenga que acceder en algÚn momento, a eso le llamo "sistema de responsabilidades", lo mismo con tu nodo control, piensa que el control si lo pones como autoload, cargara siempre, que repito, habrÃĄ casos donde no sea inconveniente, pero piensa que tenemos escenas como el menÚ, o los crÃĐditos donde quizÃĄs no queramos que se cargue el player, o queramos que se cargue una GUI diferente ÂŋsÃ? Pensando en esos casos digo que no es recomendable meterlos como autoload.
Ahora bien, en el caso que mencionas, Âŋpor quÃĐ desaparece el player? PiÃĐnsalo y verÃĄs que tiene lÃģgica, los autoload permanecen entre escenas, con todas sus propiedades incluidas, y eso incluye la posiciÃģn por ejemplo, si estÃĄs en la escena 1, y cambias a la escena 2 y por ejemplo eliminas al player al cambiar escenas, el player permanece eliminado en la escena 2, o si el player se encontraba en la posiciÃģn Vector(104, 207), en la escena 2 seguirÃĄ en esa posiciÃģn, porque los autoload asà son, nunca se descargan de memoria y se cargan nuevamente en la nueva escena, sino que se mantienen de principio a fin incluso entre escenas, por eso es recomendable que esas escenas las pusieras manualmente, pero si quieres mantener esa metodologÃa, entonces al cargar tu escena 2 deberÃas indicar el estado y posiciÃģn del player en esta nueva escena para que se ubique donde tÚ quieras exactamente y no donde quedase en la escena anterior ÂŋsÃ? Espero que se entienda, es que tal vez suena un poco confuso, lo importante aquà es entender que los autoload se mantienen a lo largo de toda la ejecuciÃģn del juego, por eso mi recomendaciÃģn es usarlos Únicamente cuando eso no sea necesario, vease un sistema de puntaje, de inventario, etc.
@@Leedeo Excelente amigo gran respuesta, no voy a usar autoload salvo score o algo asi, pero antes debo descubrir como poner el player en escenario_2 por que no he sabido mantener el nodo global que contiene player y tambien el world enviroment por eso cuando paso a change scene to file escena 2 desaparece hata la luz jaja solo cambia el escenario1 al dos y ya xD a seguir aprendiendo entonces. Gracias por esa info espero lograrlo en esta semana insistiendo. Nuevamente gracias Ledeeo por compartir siempre y la buena predisposicion!
@@mrkaratedo No te preocupes, siempre digo que se aprende mÃĄs de los errores, que de los aciertos, tal vez si te digo como funcionan las cosas y lo haces bien a la primera jamÃĄs lo hubieras entendido del todo por completo hasta que hubieras hecho las cosas y empezaran a surgir problemas, pero al solucionarlos, aprendiste mucho mÃĄs, asà que velo por ese lado, estÃĄ perfectamente bien fallar y aprender ð y al contrario, como crees, no hay porque agradecer, para mà es un placer poder haber sido de ayuda. ðĪ
Yo tengo algo y es que a veces abro un Nodo y no se como quitarlo
Como que no sabes como quitarlo?? el nodo?? Solo elimina del ÃĄrbol de escenas y listo ð
@@Leedeo a bueno no sabia pero ya se, Gracias
Comentario
Te gustan hacer juegos en 2,5D?
Pues son 3D a fin de cuentas, es 3D con sprites 2D, honestamente yo no soy para nada conservador, creo que la tecnologÃa estÃĄ para mejorar lo que hemos visto hasta ahora y tenemos ejemplos como Dead Cells donde si lo ves juras que es 2D pixel art y no, de hecho ni siquiera usa sprites 2D, es 3D puro, y hace poco mostraron una escena de Ranma en 3D hecha con Blender que parece 2D puro... sin irnos tan lejos tenemos juegos como los Dragon Ball FighterZ y los ultimos Guilty Gear de Arc System Works que parecen 2D totalmente, o casi al menos, ya esta a un nivel donde se ve bonito ahora y se verÃĄ bonito en 20 aÃąos... uno de mis RPG favoritos es Breath Of Fire 3, de PS1, que es 2.5D al mezclar entornos 3D con sprites 2D, y la evoluciÃģn de esos juegos es Octopath Traveller, que hace uso de efectos de luz y post-procesado de un motor 3D usando sprites 2D...
En realidad todos los estilos me gustan si se hacen bien, yo serÃa feliz haciendo un juego en cualquier estilo artÃstico siempre que cumpla con mis estÃĄndares personales de calidad, no digo que sean perfectos, pero son los que son, no soy conformista, si yo digo que algo me gusta es que me gusta de verdad, y cuando no me gusta, igual lo voy a decir, para esas cosas nunca me ando por las ramas.
@@Leedeo Dead Cell juegazo, aunque me gusta mÃĄs The Binding Of Isaac como roguelike
Pues yo creo que la mayorÃa estarÃa de acuerdo que Isaac es mÃĄs popular, pero me gusta mÃĄs Dead Cell, en lo Único en lo que son comparables es en la generaciÃģn procedural de mazmorras, pero Dead Cell es un plataformero de acciÃģn lateral mucho mÃĄs frenÃĐtico para mi gusto, que eso a mà ya saben que me gusta, mientras que Isaac es de acciÃģn cenital al estilo Zelda, ese detalle cambia por completo el gameplay.
No es que uno sea mejor que el otro, eso ya dependerÃĄ de gustos, yo por ejemplo no me veo haciendo un juego estilo Binding Of Isaac, aunque tampoco sÃĐ si me animarÃa con un juego estilo Dead Cell... Dead Cell tiene mucho de los nombrados "Metroidvania", y no es que no me gusten, sino que pienso que estÃĄ quemadÃsimo el gÃĐnero, hay un exceso de juegos de este estilo ð claro, podrÃamos decir "es que si salen bien, salen tremendos juegos como X y Y", pero es que ese argumento no me sirve, porque si te sale bien, no importa el gÃĐnero, va a ser un buen juego. ðĪĢ
Entonces son algo asi como un punto de guardado?
No, son objetos/nodos persistentes a lo largo de toda la ejecuciÃģn de la aplicaciÃģn, jamÃĄs desaparecen, aunque se cambie de escenas, y se puede acceder a ellos desde cualquier otro nodo usando el nombre/identificador que le hayamos dado.
Un punto de guardado, guardarÃa X datos en un archivo para despuÃĐs recuperarlos al cargar, pero si cierras la App, los Autoload no mantienen sus valores, si quieres guardarlos, tendrÃas que implementar un sistema de guardado.
Porque godot no exporta a flatpak en linux?
Porque no todos usan Flatpak. ð
@@Leedeo deberia godot lanzar una plataforma tipo consola para exportar
@@Leedeo deberias hablar de mugen y su version ikemu que es libre
!
Hola, para mover al jugador de un nivel a otro, por ejemplo con un area3D en una puerta (exterior de una casa) para entrar a otra escena (interior casa) se hace desde un singleton o es distinto? intente hacerlo y al cambiar de nivel/escena se ve un solo nivel, pero se cargan los dos niveles al mismo tiempo, osea que se ejecutan los dos al mismo tiempo, no he sabido la manera mas adecuada de cambiar un nivel en 3d y liberar el otro. no se si me explico, aun soy nuevo en Godot no he encontrado mucha info de godot 4 para cambiar de niveles. Muchas gracias por los tutoriales
PodrÃa ser un ejemplo de uso donde se puede emplear un autoload, guardar la posiciÃģn del player en una escena para que al regresar, parta desde ese punto igualando la posiciÃģn a la posiciÃģn guardada en el autoload, y no es necesario hacer mil autoload, uno solo puede servir para muchas cosas, de hecho solo recomendarÃa hacer varios cuando el cÃģdigo ya sea muy grande y fuera necesario separar el cÃģdigo por mejorar la legibilidad, que yo por ejemplo asà lo tenÃa en Leedeo Backrooms versiÃģn Godot 3, allÃĄ tenÃa un autoload de nombre GLOBAL para casi todo, y otro para las funciones de guardar/cargar partida, en la versiÃģn de Godot 4 como refactorice y simplifique muchas cosas pues lo reduje a 1 solo autoload.
@@Leedeo Muchas gracias leedeo, si creo que lo mejor de preferencia es mantener un autoload y asi tener mas organizados los scripts
Veo que se mantiene igual que en la 3.5
SÃ, lo que es la parte de los autoload se hace exactamente igual, pero pasa que en el anterior curso yo hice un curso de introducciÃģn muchÃssisimo mÃĄs corto de lo que serÃĄ este, luego ya empecÃĐ con los ejercicios prÃĄcticos, mi norma es no repetir lecciones y hacer las cosas siguiendo un orden, pero explico como crear autoloads en X tutorial, luego la gente no hace caso de las indicaciones y una de las preguntas mÃĄs frecuentes era esta ÂŋquÃĐ son los autoload y como crearlos? Entonces para este curso tomÃĐ nota de esas cosas, sigo con mi metodologÃa de no repetir, pero ahora explico las cosas bÃĄsicas desde un principio, mÃĄs adelante Âŋtienen dudas? Pues aquà estÃĄ el tutorial en especÃfico donde enseÃąo hacer esta cosa.
Me mantengo fiel a mi metodologÃa, pero ahora estarÃĄ mucho mÃĄs ordenado todo y me ayudarÃĄ precisamente a no alargarme en futuros tutoriales explicando estas cosas (ya el que no lo quiera ver, serÃĄ culpa suya, yo mÃĄs no puedo hacer... ðĪĢ)
Void
Que cortitoâĶðĒ
Jajaja bueno es que es tip rÃĄpido, aquà no habÃa necesidad de alargar mÃĄs el tema o meter otras cosas, es que si no vuelvo a caer en errores pasados ð mi idea es que el tutorial dure lo que tenga que durar, ni mÃĄs ni menos, y centrÃĄndose en 1 tema, luego los chistes si se me ocurren, pues los meto, pero en tutoriales cortitos como este, pues tampoco tenÃa caso meter 1 minuto de chiste que es el 50% del tutorial. ðĪĢ
Este es cortito, pero intenso ð una de las cosas esenciales de Godot Engine que hay que grabarse a fuego. ðĪ
jajaja cuando termines de hacer los tutoriales que completen un projecto tangible ya va salir godot 5.
Pero si nunca voy a hacer un proyecto en este curso ðĪĢ en este curso enseÃąarÃĐ a usar Godot a full, pero eso ya lo avise desde el principio. Los proyectos vendrÃĄn despuÃĐs de una pausa comercial indefinida, porque terminando este curso me quiero dedicar a Leedeo Backrooms, y despuÃĐs de eso tampoco voy a hacer tutoriales con proyectos completos, yo enseÃąare las bases y partiendo de ahà cada quien deberÃĄ poner de su parte y hacer su propio juego usando lo aprendido... ð, de todos modos vamos a un ritmo excelente, Godot 4.0 saliÃģ hace menos de 1 mes (saliÃģ a principios de marzo, aÚn no termina el mes) y ya vamos por 5 tutoriales. ð
no entendi :(
ÂŋQuÃĐ no entendiste? Para intentar ayudar digo...
explicaste autoload pero no el singleton
Es lo mismo ð un autoload es un singleton