Buscar en el blog

viernes, 15 de marzo de 2024

POLÍTICA DE PRIVACIDAD

POLÍTICA DE PRIVACIDAD

El presente Política de Privacidad establece los términos en que Airéate usa y protege la información que es proporcionada por sus usuarios al momento de utilizar su sitio web. Esta compañía está comprometida con la seguridad de los datos de sus usuarios. Cuando le pedimos llenar los campos de información personal con la cual usted pueda ser identificado, lo hacemos asegurando que sólo se empleará de acuerdo con los términos de este documento. Sin embargo esta Política de Privacidad puede cambiar con el tiempo o ser actualizada por lo que le recomendamos y enfatizamos revisar continuamente esta página para asegurarse que está de acuerdo con dichos cambios.

Información que es recogida

Nuestro sitio web podrá recoger información personal por ejemplo: Nombre,  información de contacto como  su dirección de correo electrónica e información demográfica. Así mismo cuando sea necesario podrá ser requerida información específica para procesar algún pedido o realizar una entrega o facturación.

Uso de la información recogida

Nuestro sitio web emplea la información con el fin de proporcionar el mejor servicio posible, particularmente para mantener un registro de usuarios, de pedidos en caso que aplique, y mejorar nuestros productos y servicios.  Es posible que sean enviados correos electrónicos periódicamente a través de nuestro sitio con ofertas especiales, nuevos productos y otra información publicitaria que consideremos relevante para usted o que pueda brindarle algún beneficio, estos correos electrónicos serán enviados a la dirección que usted proporcione y podrán ser cancelados en cualquier momento.

Airéate está altamente comprometido para cumplir con el compromiso de mantener su información segura. Usamos los sistemas más avanzados y los actualizamos constantemente para asegurarnos que no exista ningún acceso no autorizado.

Cookies

Una cookie se refiere a un fichero que es enviado con la finalidad de solicitar permiso para almacenarse en su ordenador, al aceptar dicho fichero se crea y la cookie sirve entonces para tener información respecto al tráfico web, y también facilita las futuras visitas a una web recurrente. Otra función que tienen las cookies es que con ellas las web pueden reconocerte individualmente y por tanto brindarte el mejor servicio personalizado de su web.

Nuestro sitio web emplea las cookies para poder identificar las páginas que son visitadas y su frecuencia. Esta información es empleada únicamente para análisis estadístico y después la información se elimina de forma permanente. Usted puede eliminar las cookies en cualquier momento desde su ordenador. Sin embargo las cookies ayudan a proporcionar un mejor servicio de los sitios web, estás no dan acceso a información de su ordenador ni de usted, a menos de que usted así lo quiera y la proporcione directamente . Usted puede aceptar o negar el uso de cookies, sin embargo la mayoría de navegadores aceptan cookies automáticamente pues sirve para tener un mejor servicio web. También usted puede cambiar la configuración de su ordenador para declinar las cookies. Si se declinan es posible que no pueda utilizar algunos de nuestros servicios.

Enlaces a Terceros

Este sitio web pudiera contener en laces a otros sitios que pudieran ser de su interés. Una vez que usted de clic en estos enlaces y abandone nuestra página, ya no tenemos control sobre al sitio al que es redirigido y por lo tanto no somos responsables de los términos o privacidad ni de la protección de sus datos en esos otros sitios terceros. Dichos sitios están sujetos a sus propias políticas de privacidad por lo cual es recomendable que los consulte para confirmar que usted está de acuerdo con estas.

Control de su información personal

En cualquier momento usted puede restringir la recopilación o el uso de la información personal que es proporcionada a nuestro sitio web.  Cada vez que se le solicite rellenar un formulario, como el de alta de usuario, puede marcar o desmarcar la opción de recibir información por correo electrónico.  En caso de que haya marcado la opción de recibir nuestro boletín o publicidad usted puede cancelarla en cualquier momento.

Esta compañía no venderá, cederá ni distribuirá la información personal que es recopilada sin su consentimiento, salvo que sea requerido por un juez con un orden judicial.

Airéate Se reserva el derecho de cambiar los términos de la presente Política de Privacidad en cualquier momento.

viernes, 22 de octubre de 2021

KiwiArgo el desarrollador Argentino de videojuegos que en Nueva Zelanda puede ganar hasta US$128.000 al año.

 Ariel Arias, alias: "KiwiArgo" es un desarrollador autodidacta de videojuegos y empresario. Consiguió en Estados Unidos una inversión para desarrollar un videojuego, pero no funciono. Sin conformarse con eso inmigro a Nueva Zelanda. Entre sus frases destaca que como Artista el portafolio es lo más importa y como desarrollador la experiencia abre puertas.





Su Alias "KiwiArgo" está relacionado con "Kiwi" por Nueva Zelanda y "Argo" por Argentina. 
Lo conocimos gracias al Canal de youtube "y un día nos fuimos" y mientras hacia un streaming en Twich nos conto varios tips de la industria del GameDevelopment, incluyendo Godot Engine, unity y Unreal Engine. Si quieres ver el video puedes hacerlo desde aqui. Trabajar como PROGRAMADOR en Nueva Zelanda 🕹️ [Experiencia de Ariel] Cuánto ganan??? 🤑





En su información de Twich podemos ver lo siguiente.



Qué nos contó de los motores de videojuegos:


Sobre Godot Engine:

Conoce a Godot Engine hace mucho tiempo y afirma que de forma profesional se suele usar en los juegos de tipo Craps, "o sea de casinos" porque su licencia es excelente para esta clase de juegos. También dice que godot puede ser utilizado para otra clase de juegos. Personalmente nos cuenta que actualmente no usuaria Godot porque no tiene sentido, pero destaca, que eso no quiere decir, ¡que el motor no esté bueno!.


Sobre Unity:


Tiene una relación de Amor más que de odio con Unity, destaca el lenguaje c# como herramienta fundamental para desarrollo de videojuegos, una frase que dice es:  "sin C# Unity no seria Unity". Según lo que nos contó, C# es lo mejor que tiene el motor acompañado de la comunidad. Tambien nos cuenta que su último juego lo está desarrollando en Unity porque son un equipo chico, y que todas las cagadas que se mandó con el motor, ya sabe como solucionarlas. 


Sobre Unreal engine:

Está bueno en todo, pero en la realidad no le gusta C++, dice que es un lenguaje que no lo disfruta ni un segundo, al utilizarlo es más el sufrimiento que otra cosa, sin embargo domina el lenguaje porque es fundamental para manejar el motor y ser un profesional de la industria. También dice que "quisas" Unreal Engine es un motor pesado, con problemas de productividad, porque hay cosas que son más complicadas, sin embargo en equipos grandes se pueden llegar a resultados muy buenos. Como detalle le encantaría que Unreal Engine utilice C# como lenguaje de scripting, pero los desarrolladores de Unreal Engine por alguna razón no lo quieren implementar más que como un complemento que anda en la web llamado UnrealCLR. Como profesional de la industria comenta que desaparecería Unity si Unreal Engine implementaría C# como lenguaje de scripting


Entonces sobre los motores:



Unity y Unreal son sin lugar a duda los motores más pedidos para trabajar en videojuegos. También C++ y C# son cosas que ayudan mucho, hay empresas que no usan ni Unity ni Unreal pero tienen motores propios (por ejemplo Grinding Gear Games aca en New Zealand, los creadores de Path of Exile, entre muchas otras)

Godot estuvo creciendo y es una buena alternativa para ciertas situaciones, pero lo cierto es que aún no tiene un mercado laboral muy grande.


¿Y los sueldos?


Los sueldos en Nueva Zelanda de un programador jr rondan los NZD60.000 a NZD75.000 al año, Osea US$43.000 a US$50.000, aunque alguien sin experiencia puede ganar NZD50.000 o NZD40.000, pero es poco, muy difícil y puede ser para personas de 18 años que quieran conseguir su primer empleo sin experiencia, sin embargo dice que al toque subís y si sos intermedio ganas mucho más.El sueldo intermedio suele ser de 85.000 hasta 110.000 al año,(US$60.700 a US$78.000 aprox ), y como senior entre 95.000 o 100.000 para arriba, (US$67.915 a US$78.000 aprox para arriba )  y si sos contratista ganas mucho más.



Como sueldo máximo destaca que se puede ganar hasta NZD180.000,(US$128.682), al año siendo senior y que es posible ser contratista, osea pasar de ser empleado a emprendedor o empresario. Destaca que Nueva Zelanda no es Argentina y que la estabilidad que se siente en ese país es incomparable. No hay dudas, que no solamente es así en Argentina, lamentablemente en toda Latinoamérica.


Algunas de las cosas a destacar de un país como Nueva Zelanda.


Fue a Nueva Zelanda en 2017 y trabaja principalmente en el area de videojuegos, VR, osea "lo que a el le gusta", aunque también sabe otras cosas como web.



Con dos sueldos mínimos puede comprar un vehículo y cuando llego como inmigrante le prestaron una camioneta por 3 meses.


Por su experiencia profesional consiguió empleo en gamedevelopment en 2 semanas

¿Estabas mejor económicamente en Argentina o Nueva Zelanda? Contesto: ¡no hay comparación!, ¡no hay forma ni siquiera de compararlo!. Tiene amigos en Argentina que trabajan de programador y ganan bien para lo que es Argentina, pero igual no hay comparación. En Nueva Zelanda destaca el ahorro que se puede tener con un sueldo mínimo y como a los 3, 4, 5 años casi todos los que van para allá se compran una casa




El sueldo en un comienzo era poco en Nueva Zelanda, pero incomparable al valor que tenía en Argentina, y desde este blog opinamos que lamentablemente debe ser incomparable a cualquier país latino.

Según él iba a las entrevistas sabiendo que no lo iban a contratar, pero su determinación le permitió concretar sus objetivos.



Afirma que la plataforma windows es la que tiene más demanda, linux es más para backend y quisas quieras usar MAC para desarrollar en esa plataforma, pero la industria pasa más por windows.

Antes de ir a nueva Zelanda solo conocía el "haka" de los "all black" y sabía nada o muy poco de ingles. Cuando hizo un juego que se hizo conocido en San Francisco aprendió en USA el inglés a los palazos, "dice que tenía un trauma con el ingles", "como miedo". Osea: no necesitas ser un shakespeare en ingles, porque en la práctica no se usa todo, pero algo tenés que saber, por lo menos saber lo que te van a decir y darte a entender. Una cosa que opina del ingles, "es que al estár trabajando", entendés perfecto, pero en la vida común, capas te juntas a con amigos y no entendés nada porque hablan más rápido, relajados, etc: ¿De qué están hablando?, se ríen, jaja.. ¡qué no me pregunten nada porque ni idea!..Para terminar nos dice que la mejor manera de aprender ingles es vivir en un país donde hablen ingles.


Hay más cosas por decir, pero este post sería interminable, así que puedes seguirlo y preguntarle lo que quieras. En nuestro caso respondió todas las preguntas sobre desarrollo de videojuegos, GameEngine y nos dio un panorama desde un país donde los sueldos de un desarrollador de videojuegos son bastante más altos.

Dejo el link de algunas de sus redes sociales

https://www.facebook.com/kiwiargo

https://www.youtube.com/channel/UCbzHhyprztmBXZlsJD_O-MA

https://www.twitch.tv/kiwiargo

https://kiwiargo.com/

UNITY VS UNREAL, UNA COMPARACIÓN PROFESIONAL


miércoles, 26 de mayo de 2021

Unreal Engine Blueprint activar input en un Actor o cualquier blueprint

¿Como Maneja unreal engine los input de teclado, mouse, joystick?



Unreal Engine maneja los eventos con un player controller, el player controller forma parte de un blueprint llamado pawn, si queremos presionar una tecla en un actor o otro tipo de blueprint que no sea un pawn no vamos a poder hacerlo a no ser que lo habilitemos.

Si venis de Unity o Godot eso puede ser medio chocante ya que en esos motores no existe una clase que se llame peón y que sea obligatorio usarla y sino se usa la que trae por defecto.

Unreal Engine tiene cosas bien definidas que permiten organizar mejor un proyecto, pero por suerte es posible modificar algunas cosas para usarlas a nuestro necesidad.

Simplemente agregamos después del begin play el blueprint enable input y agregamos la referencia al player controler, con eso podremos usar teclas en cualquier lado

Dejo video de referencia donde doy play a una animación del sequenser.



domingo, 9 de mayo de 2021

Unreal Engine cómo mover hacia adelante o hacia el forward con Blueprint o C++

En este post hablaremos de como mover hacia el forward,(adelante), con Blueprint y C++ en Unreal Engine.

Tengan en cuenta que en Unreal Engine el forward global es el eje X, asi que abra que acomodar la posición local del frente del objeto 3D para que coincida con la global.


Aqui hay un video mostrando el procedimiento con Blueprint



Aqui hay un video mostrando el procedimiento con C++.




Algunas capturas de pantalla del Blueprint.




Guardo el delta second en una variable.

Guardo la posición actual en una variable tipo Vector 3 llamada location.


Creo una variable llamada velocity para multiplicar el movimiento por una velocidad y multiplico por GetActorForwardVector y por deltatime.
Pueden aumentar el valor de velocity para que se mueva más rápido.

Sumo la variable location que tiene la posición actual del blueprint más el forward que calculamos anteriormente y lo guardamos nuevamente en la variable location. Tengan en cuenta que esto se hace 60 veces por segundo ya que estamos usando el EventTick.

Luego usamos la variable location para mover el actor en cada frame.


Y con eso ya se tendría que mover perfectamente hacía el frente sin importar la dirección.



En C++ sería parecido, dejo el código a la vista, tengan en cuenta que la clase tiene que heredar de Actor.



Y con esto podemos mover tanto con blueprint como con C++ cualquier objeto hacia adelante o forward.




Comparación entre GDscript de Godot engine Vs Blueprint de Unreal Engine y C++

Qué se siente usar Blueprint después de usar Gdscript.
¡Extremadamente prácticos, pero difícil de leer!



Después de hacer varias pruebas con Blueprint me doy cuenta lo dinámico que son, ya que no necesitan compilar como C++ y eso ahorra mucho tiempo, aunque obviamente son 10 veces más lentos.

Sin embargo... ¡En la práctica fácilmente se puede hacer una telaraña!.

Como vemos en esta imagen, 4 líneas de código en c++ para mover en forward, se hace un completo caos en Blueprint.





El principal problema surge cuando hay que hacer operaciones matemáticas. Aquí por ejemplo quiero sumar la locación actual + el vector forward * una velocidad * el delta time. En un lenguaje como C++ se puede hacer en una línea de código, pero en un Blueprint vemos como se empieza a llenar de hilos dificultando la lectura del código.


Los blueprint son extremadamente ágiles, es comparable con usar Gdscript en Godot, incluso los blueprint tienen interesantes herramientas visuales. Sin embargo no tengo dudas que un lenguaje como GDscript es más fácil de comprender en proyectos grandes.

Tanto Gdscript en Godot Engine como los Blueprint en Unreal Engine tienen herramientas parecidos como por ejemplo crear eventos fácilmente. Los eventos más conocidos son cuando dos cuerpos colisionan, cuando el mouse entro a un area entre muchos otros.

 En godot tiene un nombre técnico llamado señales, cada nodo tiene una señal según la característica del mismo, es prácticamente instantáneo y fácil de comprender.


 En Unreal Engine se llaman eventos y podemos acceder a ellos fácilmente desde el panel de propiedades de los blueprint o haciendo click derecho arriba de un componente..


En muchos lados dicen que usar blueprint es para diseñadores, sin embargo es programación y es un lenguaje visual que tiene que ser aprendido como cualquier lenguaje.

La curva de aprendizaje de los Blueprint es prácticamente igual a GDscript, cada cual tiene sus ventajas y desventajas.

Como ventaja los blueprint tienen interesantes herramientas visuales como por ejemplo cuando ponemos play y vemos por donde va el flujo del código, como desventaja se hace difícil leer el código en proyectos grandes.

Como ventaja GDscript es fácil de comprender y en proyectos grandes no se hace tan difícil seguir el flujo del código, como desventaja es un lenguaje de programación de puras letras y eso puede asustar en un comienzo.



Es evidente que un lenguaje como GDscript con los nodos es mucho más práctico que un Blueprint con los componentes, Lo ideal sería que exista un lenguaje como Gdscript con las capacidades de un blueprint ya que el principal problema surge cuando el código visual crece y literalmente se puede formar "código spaguetti".







martes, 4 de mayo de 2021

¿Cómo importar librerias C++ con Unreal Engine? ¿Donde importar librerias en Unreal Engine C++? ¿ Por qué hay errores al importar librerian en Unreal Engine con C++?

 

Cuando importamos librerías en una clase creada desde Unreal Engine, "UClass", hay que tener en cuenta algunos detalles, ya que por defecto la posición de las librerias de la "UClass" tienen que ser respetadas.


¿Cómo importamos las librerías en ".h"?

Todas las librerías que quieras importar en el archivo con extensión, ".h", tienen que ir arriba de la linea de código "CoreMinimal.h".


 
Si importamos una librería debajo de "PajaroCpp.generated.h" tendremos un error en "GENERATED_BODY()" y eso es muy importante para la compilación y ejecución de nuestro juego. Por lo tanto siempre importa las librerías arriba de "CoreMinimal.h".



¿Cómo importamos las librerías en ".cpp"?

Si queremos importar librerías en el archivo con extención ".cpp" las colocaremos debajo de "moverColumna.h", ósea siempre debajo de la inclusión de la clase misma y antes de la declaración de cualquier función o línea de código




Si importamos una librería en el archivo con extención ".cpp" arriba  de la inclusión de la clase misma como por ejemplo ,"moverColumna.h", posiblemente también tendremos errores de compilación y ejecución en diferentes lados, como por ejemplo en el archivo con extensión".h", en la línea de código "GENERATED_BODY()".









Posiblemente existan detalles técnicos más complejos detrás de todo el funcionamiento a la hora de importar librerías, sin embargo con esta información es suficiente para comprender por qué a veces tenemos errores al importar librerías en una clase o mejor dicho "UCLASS" creadas desde Unreal Engine, comprender cuando hay un bug en el editor de código y poder continuar con nuestro desarrollo en C++.

sábado, 24 de abril de 2021

¿Cómo crear clases C++ en Unreal Engine? ¿Por qué no puedo crear una clase C++ en Unreal Engine?¿Donde se guardan los archivos C++ en Unreal Engine?

 La primera vez que trate de crear una clase en C++ no podía, me situaba en la carpeta content, pero no aparecía como crearlas.

Hoy vamos a ver tres formas de crear clases C++ con Unreal Engine.

Para ahorrar tiempo este post lo hice con 4 mini videos.



Situándonos arriba de la Carpate C++.Como vemos si estamos arriba de la carpeta content no aparece la opción de la clase, hay que estar arriba de la carpeta C++ Classes



Desde file-proyect



Como un componente C++ dentro de un blueprint



Las clases se guardan en la carpeta C++ Classes



¿Cómo ver variables en el editor de unreal engine con C++? ¿Cómo llamar variables y funciones C++ desde los blueprint?

 

Una cosa fundamental cuando usamos C++ con Unreal Engine es cambiar valores desde el editor, osea acceder a variables y funciones hechas en C++.
Cuando cambiamos variables o accedemos a funciones desde el editor, podemos hacer pruebas rápidas evitando el compilado de C++ que lleva bastante tiempo. Existen macros en C++ que nos permiten conectarnos tanto al editor como a los blueprint. Hay muchos, en este post solo hablaremos de los más básicos.




Los macros los usaremos en el archivo con extesión ".H", siempre guardamos los archivos, compilamos para ver los cambios en el editor y tendremos en cuenta los modificadores de acceso public, private o protected.




Entonces para hacer que las variables sean visibles en el editor usamos un macro llamado UPROPERTY y entre paréntesis “VisibleAnywhere”.  Este macro podremos usarlo con cualquier modificador de acceso,(public,private,protected).  O sea en el caso de querer monitorear constantemente una variable de tipo INT quedaría así.



Luego de guardar el archivo + compilar al seleccionar la clase componente y poner el nombre, se ve la variable, pero no podemos modificar su valor.



Si queremos ver y modificar la variable usamos la UPROPERTY, pero esta vez entre paréntesis la palabra EditAnywhere.  Este macro podremos usarlo con cualquier modificador de acceso,(public,private,protected)


 Luego de guardar el archivo + compilar al seleccionar la clase componente y poner el nombre de la variable, podemos ver y modificar el valor de la misma. Esto es muy importante sobre todo cuando queremos cambiar valores al estar ejecutando el juego. Por ejemplo hacer pruebas con la velocidad de un enemigo.




Excelente, pero no puedo ver la variable desde los blueprint




Para ver las variables desde los blueprint es parecido, pero tenemos que usar la UPROPERTYy dentro colocar BlueprintReadOnly… Otra cosa MUY IMPORTANTE cuando hacemos referencía desde C++ a los blueprint el modificador de acceso de la variable tiene que ser public.



Luego de guardar el archivo + compilar podemos acceder a la variable desde los blueprint, teniendo el rendimiento y la compatibilidad con C++. Sin embargo solo vas a poder acceder haciendo un “get”, pero no vas a poder modificarla. Para buscarla rápidamente tengo la solapa Context Sensitive deshabilitado.


Entonces para ver y modificar el valor de la variable en la UPROPERTY usamos la palabra BlueprintReadWrite.




Luego de guardar el archivo + compilar podemos ver valores de C++ y también modificarlos desde los blueprint. Para buscarla rápidamente tengo la solapa Context Sensitive deshabilitado.



Y obviamente también es posible acceder a las funciones hechas en C++ desde un blueprint. Para esto usamos el Macro UFUNCTION y agregamos entre los paréntesis BlueprintCallable. No olvides que el modificador de acceso de la función sea public



Lo qué hace la función es enviar un mensaje por pantalla.



Entonces luego de guardar el archivo + compilar podemos llamarla desde el blueprint en la función beginPlay. Para buscarla rápidamente tengo la solapa Context Sensitive deshabilitado.



Un tema importante: En los blueprint no se olviden de hacer referencia a la clase componente en C++, ya que estás llamando a un método o variable public desde otra clase. Para buscarla rápidamente podes tener la solapa Context Sensitive deshabilitada.




Y tenemos nuestro hermoso hola mundo desde una función en C++ en un blueprint.




Como detalle final también es posible combinar dos o más parámetros en la UPROPERTY cómo por ejemplo;