Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 04/23/2012 in all areas

  1. 12 points
    Muchos lo sabréis y otros no, pero hay una lista de recursos bastante tocha hecha en zeef.com de recursos para el desarrollador de videojuegos. Espero que os sea de utilidad! https://game-development.zeef.com/daniel.cuadrado.gonzalez Notion. Espacio todo en uno para productividad (Tablero Kanban, wiki, notas rápidas...): https://www.notion.so/ Adobe Color. Elección de colores: complementariedad, análogos...: https://color.adobe.com/es/create/color-wheel GifCam. Programita para crear Gifs: http://blog.bahraniapps.com/gifcam/
  2. 7 points
    Mi primer vídeo juego en Unity 3D Personal. También hecho con MakeHuman y blender. Mi blog
  3. 7 points
    En la anterior entrada hablé sobre trigonometría, repasando las razones trigonométricas y viendo el teorema de pitágoras. Si no lo recuerdas o has llegado nuevo aquí, míralo antes de continuar (enlace debajo). Trigonometría Vectores Matrices Funciones Introducción Si estás familiarizado con motores de videojuegos como Unity, conocerás el concepto de vector ya que se usa habitualmente. Pero ¿qué es realmente un Vector? Un vector básicamente es una flecha que apunta en una dirección y que tiene una longitud concreta: Esto sería un ejemplo de un vector y cualquier flecha apuntando en cualquier dirección sería otro ejemplo. Pero ¿cómo representamos esto? Para poder hacerlo tenemos que llevarnos nuestro vector a un sistema de coordenadas (x e y) y establecer el origen del vector en el centro del sistema. Por si no recuerdas que era un sistema de coordenadas, es una forma de visualizar un punto en el espacio. En este caso el espacio es 2D por lo que se representa con dos líneas, una horizontal (representado por el valor X) y otra vertical (representado por el valor Y) que se cruzan en un punto, llamado centro: Así quedaría nuestro vector anterior dentro de un espacio de coordenadas. Esto, por ejemplo, podría representar el movimiento de una nave en su proceso de despegue. Comienza en la posición (0,0) y sigue en la dirección del vector hasta llegar a su objetivo. Teniendo en cuenta que X es el valor horizontal e Y el valor vertical, el vector sería (2,1) Pero ¿qué podemos hacer con esto? Como has visto puedes representar movimientos con ellos, por ejemplo. Pero para ver de forma práctica su uso vamos a usar Unity3D. Cualquier versión te servirá para este propósito puesto que solo vamos a tocar código básico. En mi caso usaré la versión 2020.1. Si usas otro motor la teoría sigue siendo válida pero tendrás que buscar la forma de adaptarlo por tu cuenta. Unity internamente usa vectores para colocar un objeto dentro de la escena (realmente esto es incorrecto ya que usa una matriz, pero no nos adelantemos). Si vas al componente Transform (crea un gameobject nuevo si no tienes ninguno) te encontrarás con este Vector3 (un estructura propia de Unity) que contiene 3 valores: Estos son la posición en X,Y,Z. Pero ¿pero qué son estos valores? Pues al igual que la gráfica anterior nos indican que desde el centro del mundo hasta la posición de este objeto el vector es (0,0,0). Vamos a ver qué podemos hacer con esto. Para ello creamos un objeto de nombre Player y otro de nombre Target. Los colocamos en diferente posición y le asignamos diferentes iconos para poder diferenciarlos: Recuerda que puedes cambiar el icono en la siguiente pestaña: Una vez hecho esto vamos a crear un nuevo script de nombre Player y lo vamos a añadir al objecto Player. En este script vamos a añadir una variable Transform pública de nombre target y vamos arrastrar nuestro Target a través del inspector. Con esto tendremos acceso al vector de posición del Target desde nuestro Player. Ya tenemos acceso a los dos vectores de posición, el del personaje y el del objetivo. Sabiendo esto ¿cómo hacemos que el personaje se mueva hacia el objetivo usando vectores? Pues aquí llega la parte interesante ya que si restas el vector de posición del objetivo con el vector de posición del personaje, el resultado es el vector necesario para llevar el player al objetivo. Veámoslo gráficamente creando la siguiente función: Si pulsamos play al añadir este código, veremos cómo el personaje se mueve hasta la posición del objetivo. Vale parece que se mueve, pero quiero más. ¿Que tal si medimos la distancia que hay entre uno y otro antes de moverlo? Para esto vamos a recordar la trigonometría que aprendimos en la parte anterior. Magnitud La magnitud de un vector es la distancia que hay entre dos puntos. En nuestro caso sería la posición del personaje y nuestro objetivo. Para calcularla solo tenemos que aplicar la fórmula de la distancia. Esta fórmula es simplemente el teorema de pitágoras disfrazado, y lo vamos a ver en la siguiente imagen: Como puedes ver, nosotros lo que queremos calcular es la distancia (h) por lo que podemos convertirlo en un triángulo añadiendo X e Y. Ahora solo tenemos que usar pitágoras para despejar h. ¿Lo recuerdas? Vamos a resolverlo en código. Para ello vamos a crear una clase estática nueva llamada BasicMath donde vamos a ir añadiendo nuestras funciones matemáticas a partir de ahora. Seguiremos usando Mathf (Unity) o Math (System) para realizar las operaciones básicas que se salen del objetivo de este tutorial. Mencionar que todos los cálculos e igualdades que haremos aquí serán basados en 2 dimensiones. Una vez se han entendido correctamente los cálculos, solo hay añadir la componente z. Esta sería nuestra implementación del teorema de pitágoras. Para ver la distancia simplemente podemos añadir un log en nuestra función MoveToTarget: Si estás familiarizado con Unity ya sabrás que por defecto nos soluciona todos los problemas de vectores con su estructura Vector. Podemos acceder directamente a la magnitud de un vector desde dentro del mismo de la siguiente forma: Como puedes ver, ambos resultados son iguales, aunque nuestra implementación es menos óptima que la que usa internamente Unity. Por lo que esta clase BasicMath y todo lo que contenga es únicamente para uso educativo. La magnitud tiene un pequeño problema y es que hacer una raiz cuadrada es algo costoso a nivel computacional. Por eso habitualmente se usa el valor antes de pasar por la raiz cuadrada. Seguirás teniendo un valor que representa la distancia pero será más eficiente. Podemos crear esta implementación de la siguiente forma y equivale al SqrMagnitud de la clase Vector: Esto es genial, tenemos al personaje moviéndose al target y conocemos su distancia hasta él. Pero no queremos que el player avance directamente hacia el objetivo, sino que lo haga poco a poco a la velocidad que nosotros queramos. Para esto vamos a necesitar normalizar nuestro vector. Normalización Normalizar un vector es cambiar su longitud a 1, manteniendo su dirección. En nuestro caso de ejemplo, el vector “dir” que tenemos. Al cambiar su longitud a 1 podemos controlar la velocidad de movimiento mediante un valor multiplicador. ¿Cómo calculamos el vector normalizado (no confundir con el Vector normal)? Dividiendo el vector por su magnitud: Podemos implementar rápidamente esto en nuestra clase BasicMath: Podemos ver que equivale al valor normalized de la clase Vector: Una vez tenemos el valor normalizado, podemos multiplicarlo por un valor y hacer que el personaje se mueva en función del tiempo: Vamos a tener que pasar nuestra normalización a Vector3 ya que estamos trabajando en dos dimensiones y la posición añade la Z (aunque como este caso sea 0). Si modificamos el valor speed podremos hacer que el personaje cambie su velocidad al moverse a través del vector. Antes de continuar me gustaría darte otra forma de mover un vector de un punto a otro. Pero en lugar de basado en la velocidad, basado en un valor comprendido entre 0 y 1. Cuando el personaje está en su posición inicial, el valor es 0 y cuando llega a su objetivo es 1. Esto es llamado interpolación (Lerp). Interpolación Para interpolar un vector simplemente vamos a sumarle al vector inicial, el vector de dirección al objetivo por un valor t (comprendido en 0 y 1). Veámoslo en código: La primera línea limita la t entre 0 y 1. La segunda simplemente suma al vector de origen, el vector dirección multiplicado por t. Si la t es cero devolverá el valor “a” y si es 1 devolverá el valor “b”. Con el siguiente código podremos probar esta funcionalidad nueva: Tenemos que crear un valor t (el atributo Range nos ayudará a limitarlo entre 0 y 1) y un Vector3 que guarde la posición inicial. Esto es necesario porque si le pasamos la posición actual al Lerp los resultados se irán actualizando al ir moviéndose y el resultado no será el que buscamos. Comentamos la anterior MoveToTarget y añadimos la nueva en la función Update. De esta forma si pulsamos Play tendremos un valor t en el inspector que si vamos moviendo entre 0 y 1 hará que nuestro player se desplace más o menos cerca del target. Hay otros tipos de interpolación que veremos en el apartado de Funciones en próximas partes de este tutorial. Una vez tenemos esto, vamos a pasar con una de las operaciones con vectores más importante. Producto Escalar El producto escalar (dot) es una operación entre dos vectores que nos devuelve un valor. Este valor nos da información muy útil sobre estos dos vectores: Si este valor es cero: el ángulo entre los dos vectores es 90 grados por lo que son totalmente perpendiculares. Si este valor es negativo: el ángulo es mayor a 90 grados. Cuanto menor sea este valor, mayor será el ángulo. Si este valor es positivo: el ángulo es menor que 90 grados. Cuanto mayor sea este valor menor será el ángulo. Aquí puedes experimentar visualmente con estos conceptos: https://www.fisicalab.com/apartado/producto-escalar La fórmula del producto escalar, siendo “a” y “b” dos vectores, es la siguiente: dot = ax * bx + ay * by Ya conocido el concepto vamos a practicar con él. Primero lo añadimos la función a nuestro BasicMath. Ahora añadimos la función Dot de testeo con lo siguiente: Esto calculará el producto escalar entre el vector del personaje y el vector de dirección. Como ves hemos utilizado el transform.up en lugar de la posición. Este valor indica la dirección del vector hacia arriba teniendo como referencia el tranform. Ya conocerás estos vectores si estás habituado a trabajar con Unity. Podemos verlos mejor aquí: Si usamos estos vectores a la hora de calcular el producto escalar, los resultados serán en función a la dirección y no en función de la posición. El vector de posición no nos indica hacia donde está apuntando, sino su posición con respecto al centro del mundo. Una posición por ejemplo de (3,4,0) no nos es útil para calcular el producto escalar, sin embargo el vector.up (0,1,0) sí, ya que es una dirección en este caso hacia arriba. También hemos normalizado los dos vectores antes del dot para que sea más fácil trabajar con el resultado. Activamos esta función en Update, comentando lo demás (puedes dejar el MoveToTarget si quieres). Si damos Play podemos ir moviendo el target y ver como va cambiando el producto escalar. Pero ¿de qué sirve conocer este valor?. Pues anteriormente vimos que este valor nos da información muy relacionada con los ángulos. De hecho podemos calcular el ángulo entre dos vectores conociendo los productos escalares. Ángulo Para calcular el ángulo tenemos la siguiente fórmula,siendo “a” y “b” vectores: θ = arcocoseno (dot(a, b)) Vamos a añadir esto a nuestro BasicMath. Este resultado estará en radianes por lo que crearemos dos funciones, una en radianes y otra que convierta el resultado a grados. Hemos normalizado ambos vectores antes de hacer el Dot. De esta forma lo hará desde dentro y podremos pasarle el vector sin normalizar. El valor Rad2Deg es el factor de conversión de radianes a grados que es 180 . Esto es un valor constante: No es necesario que añadas tanta precisión, puedes coger los decimales que quieras para este fin. Creamos ahora nuestra función Angle en el Player (puedes sustituir la función Dot ya que no la volveremos a usar). Volvemos a usar el Vector.up y añadimos la función al Update para verla. Para visualizar mejor el ángulo, voy a añadir en el OnDrawGizmos el siguiente código. Esto crea dos líneas que simular el comportamiento de los vectores. Si damos al play podremos ver dos líneas que forman un triangulo, el angulo entre las dos es el que nos está mostrando por consola: Con este valor de ángulos podrías, por ejemplo, rotar al personaje para que siempre mire al target con la función transform.Rotate. Con esto llegamos al final de esta entrada sobre vectores. Ha sido algo básico pero que sirve como punto de partida si quieres profundizar por ti mismo. Como he comentado estos cálculos son teniendo en cuenta solo 2 dimensiones. Te animo a que realices los cálculos añadiendo a las fórmulas una dimensión más. Podéis encontrar el código del proyecto aquí Recuerdo que no soy matemático y que los cálculos que aquí he realizado pueden contener errores o no ser del todo precisos. Cualquier duda o anotación siéntete libre de contactar conmigo. Nos vemos en la siguiente entrada.
  4. 7 points
    ABRAMELIN GAMES Injection π23 Survival-horror clásico Inspirado en una pequeña localidad de Málaga. Jugabilidad orientada a resolver puzzles, exploración y supervivencia. 4 modos de cámara: 1ª persona, 3ª persona (camara libre y autocam) y camaras fijas (survival-horror clásico). Juego no recomendado para menores de 18. Plataforma: PlayStation 4, Windows (x64) Desarrollado por: J.A.M. (Abramelin Games) Colaboraciones: Abramelin logo, bocetos y cover art por Danilo 'Do Burundanga' Supervisión de código, sistema Autotarget 3ª persona, Autocam y sistema IK por Francisco Javier Tejada. Guía de optimización: LightBug Luces volumétricas open source por Michal Skalsky Actores de voces: Bernardo Casado (grabaciones cintas, doctor1) Jonathan Casquete (ex-militar, policia1) Virginia Montero (niño walkman) Miguel Flames (sacerdote2, policia2) Javi Ruiz (personaje principal) Luis Alberto Martin (doctor2, magnate) Pablo Ibañez (sacerdote1) Ruth pascual (doctora) Diego Orellana (enterrador, enfermero, guardaespaldas) Carlos Cremades (dueño del club) Francisca Rey (mujeres del club, ermitaña) Jose M. Sancho (profesor) http://abramelingames.blogspot.com/ www.abramelingames.com https://twitter.com/AbramelinGames
  5. 6 points
    Hola. estoy terminando uno de mis proyectos. se trata de un juego de naves, un matamarcianos (shoot'em up)... con toques de rouge lite. Falta terminar los modos de juego extras (modo arena, modo survival, y modo bossRush). El modo historia esta acabado, con 25 escenarios y 10 escenas especiales.... no es necesario pasar por todas para llegar al final, puedes elegir multiples caminos. (no es lineal). De momento tiene mas de 30 enemigos diferentes (contando los bosses). 16 skills diferentes (armas secundarias) y multiples mejoras para la nave. Banda sonora original con mas de 40 temas. A ver que os parece... vuestros comentarios seran bien recibidos. trailer gameplay: special scenes trailer: boss trailer:
  6. 6 points
    Hola soy James Roman, tengo ya varios años trabajando con Unity, y actualmente trabajo en una compañía como desarrollador de experiencias en Realidad Virtual. Y tengo ya bastante tiempo trabajando en VRLAB. Puedes verlo desde aqui. ¿Que es VRLAB? Es básicamente una colección de componentes para interacciones en VR usando Oculus, me he enfocado bastante en las armas ya que creo que es una de las cosas mas divertidas de probar en la Realidad Virtual, he incluido diferentes tipos de armas, escopetas, armas automáticas, revolver, arco y flecha, espadas. También diferentes tipos de recarga para estas armas, puedes cambiar manualmente el cargador a cada arma cuando este se agote, recargar usando diferentes tipos de gestos como en dead and buried, puedes recargar el revolver haciendo un giro rápido con la mano. - Armas - Como ya he mencionado he trabajado bastante el tema de las armas con un completo sistema de armas, varias armas ya incluidas (Escopetas, revolver, Automáticas), puedes tomar las armas existentes como base para crear las tuyas, o crear nuevas armas desde 0. - Completo Sistema de Interacción - También posee un completo sistema de interacción, muy extensible, puedes tomar objetos, interactuar con objetos, mover palancas, botones etc, crear animaciones de interacción diferentes para cada objeto, y diferentes comportamientos incluso para cada mano. - Arco y Flecha - Posee un arco realista con el cual puedes lanzar flechas, puedes tomar una flecha de tu espalda o simplemente tomar una que ya hayas lanzado, estas se pegan a los demás objetos de una manera bastante realista. - Diferentes Modos de Recarga - Posee diferentes formas para poder recargar las armas, puedes cambiar el cargador una vez que este se haya acabado, o simplemente realizar gestos con la mano como en dead and buried para recargar tus armas o simplemente tener munición infinita. - Sistema de Combate Cuerpo - En VRLAB puedes tomar un par de espadas y luchar contra los enemigos, los cuales responderán correctamente a las físicas, ademas de eso puedes golpear a los enemigos con tus armas, como con el arco o una escopeta si no tienes munición. - Botones y Palancas - Botones y palancas que responden correctamente a las físicas, desde las distancia puedes activar una palanca con un disparo o simplemente lanzando un objeto. - AI - Aunque el fuerte de este asset no esta en la AI, he añadido unos ejemplos bastantes interesantes y extensibles para trabajar con estos mismos. - Character Controller y Teleport - Tienes diferentes formas de moverte en VRLAB, la mas común quizás moviéndote alrededor con el joystick o usando un sistema de teleport muy parecido al de roborecall. Todo esto en prefabs bien organizados listos para tomar y soltar en la escena, con montones de posibilidades de modificación mediante el inspector, de igual manera me he esforzado para crear un código legible y placentero a la vista, así que si quieres simplemente entrar y mirar como esta hecho todo, y aplicar tus propias modificaciones mediante código, no debería ser muy difícil para alguien que tenga ya su experiencia con Unity. - Futuras Actualizaciones - - Añadir nuevas armas, entre ellas un lanzacohetes. - Sistema de inventario, para que puedas cargar varios objetos a la vez. - También cabe destacar que me gusta roborecall, y quizás añada algunas de sus funciones, entre ellas la posibilidad de tomar balas en el aire y devolverlas a los enemigos. - Luego simplemente escucharlos a ustedes y seguir mejorando. Dejo nuevamente el link al assetstore aqui, si lo pruebas no dudes en dejar un review para seguir mejorando, y si quieres contactar conmigo directamente puedes escribirme a james@unity3dninja.com finalmente los dejo con algunos vídeos cortos mostrando distintas funcionalidades.
  7. 6 points
    Lamentum Se cuenta que un conde vive en una mansión oscura. De él se dice que puede conceder cualquier deseo y que es tal su poder que incluso la muerte no se atreve a cruzar sus dominios. Pero todo tiene un precio... ¿Te atreverías a pagarlo? Sobre el juego: Lamentum es un juego survival-horror en estilo pixel art que tiene lugar en Nueva Inglaterra a mediados del siglo XIX. Tomarás el papel de Victor, un joven aristócrata que busca desesperadamente la cura para una rara enfermedad. El juego se basa en la exploración y resolución de enigmas, pero sin olvidar la acción y el combate. Acerca de nosotros: Somos un pequeño equipo de dos personas con base en Madrid y Sevilla. Aunque tenemos experiencia en el sector de los videojuegos, este es nuestro primer proyecto en equipo. También contamos con la colaboración de Black Light Sound, encargado de la música y los efectos sonoros. Soundcloud: https://soundcloud.com/blacklightsnd Gracias por pasaros y agradeceríamos vuestros comentarios. Podéis seguirnos en: Twitter: https://twitter.com/ObscureTales Facebook: https://www.facebook.com/ObscureTalesGames
  8. 6 points
    Hola de nuevo a tod@s. Después de algún tiempo sin postear nada por aquí, y tras la satisfactoria experiencia con mi anterior proyecto SpinBlock Puzzle del que ya os hable en otro hilo, os traigo lo último en lo que estoy trabajando. Un juego de estrategia táctica multijugador por turnos, con ambientación medieval fantástica. Donde la acción se reparte entre la construcción y evolución del poblado o ciudad, mediante la obtención de recursos. Y el combate contra otros jugadores en diferentes mapas disponibles, empleando las tropas y máquinas de asedio creadas con antelación o reclutando otras nuevas. Y levantando defensas para impedir el avance del contrincante. Aquel que consiga cruzar las defensas del oponente obtendrá el estandarte del adversario y ganará la partida. Pero para ello tendrá que desarrollar su estrategia en función de los recursos disponibles, la distribución del mapa, la raza de los personajes, las actualizaciones conseguidas y las habilidades desarrolladas. Próximamente os ampliaré detalles. Por ahora os dejo con algunas capturas para abrir boca. Espero que os gusten y quedo a la espera de vuestras críticas y sugerencias. Saludos. Despliegue de defensas de nivel básico Despliege de defensas de nivel intermedio Detalle de una trampa de estacas y un ariete Encendiendo la barbacoa!!!!
  9. 6 points
    EDITO: La pagina de steam ya esta activa, Delta Squad en Steam con su correspondiente trailer y demas 🙂 Ya puedes comprarlo!! Hola!!!, Llego el momento de presentar el proyecto en el que llevo varios meses currando. Se llama Delta Squad, y al igual que mi anterior trabajo FullBlast esta pensado para old gamers y gente que gusta de arcades clasicos con gameplay clasico 100%. Aqui no hay ayudas a los jugadores, ni "complicado" lore, al mas puro estilo john carmack, donde decia aquello de que la historia en un juego tal y cual... xDDelta Squad es un arcade donde tenemos que liberar a la humanidad de un maligno virus y para ello iremos cumpliendo misiones en cada nivel hasta conseguir nuestro objetivo. Se puede jugar hasta 4 personas local coop, y trae un modo para activar el "friendly fire" que es siempre tan agradecido en estos juegos (porque matar a tus compañeros siempre se agradece xD) Aqui os dejo la primera captura del proyecto 🙂 Delta Squad es un juego muy particular y que solo gustara a un porcentaje MUY pequeño de la gente. El juego va enfocado a la gente que busca un juego retro como los arcades de los 90', si no te encuentras en ese target, entonces el juego NO tiene nada que ofrecerte y no te recomiendo comprarlo porque te aburrira mucho. Si por el contrario te gusta comprar juegos asi "raros" como me pasa a mi, entonces seguramente este Delta pueda estar entre tus retro-favoritos. Para gustos colores... Edit: Aqui tenemos el primer video en movimiento del juego 🙂 Gameplay video
  10. 6 points
    Buenas Os presento el proyecto que estoy llevando a cabo yo solo desde hace 1 año. Vendí mi antiguo negocio hace unos meses y estoy trabajando en esto a tiempo completo desde entonces. Mi idea es ponerlo a votación en Greenlight en una o dos semanas como máximo. El argumento es bastante sencillo: eres el capitán de una nave militar. Los mundos exteriores han declarado la guerra a la Federación Galáctica y todas las naves militares, incluida la tuya, reciben la orden de dirigirse a la capital y defenderla del inminente ataque. El juego en sí, es muy parecido al planteamiento de FTL. Hay un mapa estelar generado aleatoriamente con diferentes puntos a los que podemos saltar, cada vez que saltamos a un nuevo punto aparecerá un evento en el que podremos tomar decisiones. Dependiendo de la suerte y nuestras elecciones podremos ganar o perder créditos, moral, tripulantes, ganar nuevos sistemas o armas para la nave o hacer que el evento termine en una batalla. Algunos eventos son sencillos y tienen solo dos finales posibles o incluso solo uno (por ejemplo, los eventos que siempre finalizán en una batalla), pero otros serán bastante más complejos, el más variado hasta ahora tiene 9 finales distintos y 35 strings de texto. El sistema de batalla no se parece en nada al de FTL y es más parecido a Starpoint Gemini o al de Battlevoid Harbinger (pero en 3D). Las naves tienen puntos en los que se pueden acoplar sistemas y armas, las armas disparan y apuntan automáticamente y nosotros controlamos el movimiento de la nave, el control de energía y las habilidades que ofrecen algunos sistemas y armas y que tienen un tiempo de recarga una vez se utilizan (por ejemplo: camuflaje óptico, reparación, sabotaje de sistemas enemigos, lanzamiento de misil nuclear etc.). He grabado un gameplay de 15 minutos para que podáis ver un poco el juego. Ahora mismo el juego está en pre-alpha, tiene la mayoría de sistemas acabados, aunque algunas cosas pueden variar pero principalmente le falta contenido (eventos, naves, armas y sistemas), que es a lo que me dedicaré a partir de ahora. En el estado actual se puede jugar el primer nivel de los 5 que tendrá una partida completa. Pongo también algunas capturas más: Decidme como lo veis y que os parece!
  11. 5 points
    He escrito una pequeña guía/hoja de ruta para alguien que quiere empezar en el desarrollo de videojuegos, o seguir mejorando en los primeros niveles. La idea es que sirva de referencia para orientarnos un poco ya que cuando empezamos puede ser difícil saber por dónde empezar y cómo seguir avanzando. Aquí os dejo la versión en texto con más detalles: https://thepowerups-learning.com/como-empezar-en-el-desarrollo-de-videojuegos/ Y aquí abajo la versión en vídeo: ¡Espero que os sirva! ¡Un abrazo! Dani.
  12. 5 points
    Cuando decidí dedicarme a crear videojuegos una de mis preocupaciones principales era mi escaso conocimiento matemático. Internet estaba lleno de mensajes asegurando que no es necesario saber matemáticas para crear videojuegos y aunque, pueda ser cierto en determinados casos, creo que aprender las nociones básicas te van a ayudar a saber lo que estás haciendo y sobre todo a construir mejores juegos. Como veréis no es necesario un conocimiento matemático avanzado para entender gran parte de los cálculos habituales. En esta serie de publicaciones voy a hablaros de algunos conceptos matemáticos básicos que se usan constantemente en videojuegos: Trigonometría Vectores Matrices Funciones Trigonometría La trigonometría, como su nombre indica (tri-tres; gono-ángulo; metría: medida), es la ciencia destinada al estudio de las medidas de los ángulos. Si por ejemplo quieres girar un personaje en tu juego necesitarás un ángulo de giro. Para poder medir un ángulo (o cualquier cosa en general) necesitamos una unidad de medida, vamos a ver las dos principales en el caso de los ángulos: Grado Cuando vas a comerte una pizza lo primero que haces (después de cocinarla claro) es partirla en diferentes trozos. Imagina que la cortamos en 8 trozos, siempre en 8 trozos porque nos encanta el tamaño de cada trozo. Si quisieras medir el ángulo de cada trozo podrías crear tu propia unidad de medida basada en tu especial devoción por los 8 trozos. Llamémosle pizzo a esta medida. Entonces si tu cortas tu pizza en 8 trozos, cada trozo tendría un ángulo de 1 pizzo. Podríamos pedir que se estableciera como medida oficial el pizzo pero me temo que ya tenemos una medida general que puedes usar en su lugar: el grado. Si en lugar de 8 trozos partimos la pizza en 4 trozos iguales y establecemos que cada trozo vale 90 grados, tendríamos la definición de grado. La definición es la siguiente: cada una de las partes que resultan en dividir en noventa partes un ángulo recto. Aquí podemos recordar los tipos de ángulos rápidamente. Radián Una vez hemos recordado la unidad familiar que es el grado, vamos a ver el radián que es el que usaremos de forma habitual. Pero antes de entrar en el radián, debemos conocer el número Pi. ¿Qué es Pi? El número Pi es uno de los más importante en las matemáticas. Su definición es la siguiente: Pi es la relación entre la longitud de una circunferencia y su diámetro. Pero ¿qué significa esto? Pues básicamente quiere decir que sí dibujamos una circunferencia de diámetro 1 y medimos su longitud, obtenemos Pi. Con esta imagen lo entenderás mucho mejor. Si pintamos el borde de una rueda de diámetro 1 y giramos mientras pintamos el suelo midiendo la longitud de la mancha de pintura, tenemos Pi, que es un valor constante (e infinito): 3.14159… De forma habitual se trabaja con radio = 1 en lugar de diámetro = 1. Por lo que la longitud de la circunferencia es este caso sería el doble de Pi (2 π). Como apunte este número es conocido como Tau y su valor es 6.28318… Pero, ¿qué relación tiene esto con un radián? Si seguimos con el ejemplo de la pizza anterior, imagina que te ha venido la inspiración y has cortado la pizza de tal forma que la longitud del arco de cada trozo que has partido mide exactamente 1. Vamos a verlo gráficamente: La pizza tiene radio = 1 y cortamos (no tendrías que cortarla realmente porque es minúscula pero bueno) un trozo cuya longitud de arco es exactamente 1 (arco azul en la imagen). Pues bien, el ángulo que se forma, nombrado “a” en la imagen, mediría exactamente 1 radián. ¿Que pasa si seguimos cortando trozos con longitud de arco 1? Pues tenemos que el ángulo que se forma con media circunferencia (“a” en la imagen) es π radianes. Y el de la la circunferencia completa sería 2π (Tau) radianes. Nota: los dibujos son solo explicativos, las distancias dibujadas no usan medidas reales. Seno, Coseno y Tangente Una vez conocemos el concepto de radián vamos a experimentar un poco con las circunferencias. ¿Qué pasaría si formamos un cuadrado cortando el eje x e y de la siguiente forma? ¿Como calculamos el valor de “x” y de “y”? ¿Que son x e y? Pues aunque resulte sorprendente esos valores son el seno y el coseno del ángulo “a”: La definición nos dice que el coseno de "a" es la abscisa de su punto asociado y el seno de a es la ordenada de dicho punto. Creo que es mucho más entendible con la imagen anterior. A medida que el ángulo cambia, sus valores en x e y modifican su valor. Aquí podemos verlo mejor: La tangente como ves es la recta que toca en un solo punto la circunferencia en función del ángulo. Teorema de Pitágoras En este punto vamos a hablar de otro término muy importante en matemáticas y que usaremos en los siguientes publicaciones, el Teorema de Pitágoras. Este teorema dice que dado un triángulo rectángulo, podemos relacionar su hipotenusa(h) con sus lados (x e y) de la siguiente forma: Despejando tendríamos: ¿Pero qué uso tiene esto? Pues en el siguiente episodio hablaremos de su uso con Vectores. Imagina que tienes un personaje en un escenario y quieres saber a cuánta distancia está un determinado enemigo. Deberás plantearlo con el teorema de pitágoras, donde la “h” es la distancia entre tu personaje y el enemigo. Tendrías que calcular la “x” e “y” para posteriormente poder despejar “h”. Pero vamos a verlo con un ejercicio simplificado: Imagina que tenemos el siguiente triángulo. Para calcular h haríamos lo siguiente: ¿Y si quiero conocer el ángulo? Para conocer el ángulo necesitamos profundizar nuestro conocimiento en las razones trigonométricas. Vamos a verlo siguiendo el mismo ejemplo: Para calcular θ vamos a necesitar calcular primero el seno del ángulo. Pero ¿cómo hacemos esto sin conocer el propio ángulo? Anteriormente vimos que: Esto es así siempre y cuando el radio (la hipotenusa) fuera 1. Pero ¿qué pasa si como en este caso la hipotenusa es 7.81? Solo tendremos que dividir la variable entre la hipotenusa de la siguiente forma: Vale ya sabemos calcular el seno sin tener el ángulo: Una vez tenemos el seno necesitamos conocer el concepto de función trigonométrica inversa. No os asustéis porque el concepto es muy simple. Necesitamos algo que multiplicado por el seno (que ya lo conocemos) nos de el ángulo. Veremos más a fondo este término cuando veamos las matrices. En este caso las función trigonométricas inversas las conocemos y son las siguientes: Nota: en español también se les llama cosecante (arco seno), secante (arco coseno) y cotangente (arcotangente) Ya conocemos cómo obtener el ángulo: Ya tenemos el valor en radianes del ángulo. Si necesitamos pasar de radianes a grados, podemos usar las siguientes fórmulas: Aquí podemos ver gráficamente las razones trigonométricas que hemos visto aquí: Espero que os sea de ayuda y perdonad si he cometido algún error o he explicado algo de forma muy torpe. No soy ni mucho menos un experto matemático, mi intención es que todos podáis acercaros y verlas un poco más fácil. Cualquier duda estaré encantado de ayudar. En la próxima parte veremos Vectores y pondremos en práctica todo lo aprendido aquí pero dentro de Unity. Hasta la próxima.
  13. 5 points
    Finalmente, liberamos la herramienta! pueden acceder a ella totalmente gratis! http://www.modelatorsystem.com
  14. 5 points
    Buenas, si alguien lo recuerda, este juego lo empece hace mucho, lo deje abandonado y no pude resucitarlo al tratarse de versiones tan antiguas de Unity. Actualmente estoy haciendo un reboot, de momento y a modo de demo técnica, os muestro este pequeño video de ejemplo:
  15. 4 points
    Ostia! Vine a actualizar el hilo del asset, y me di cuenta que nunca lo había creado 😅 ... bueno aquí va... Links: Asset store Demo (Desktop) Demo (webGL) Features Documentación (en ingles) Breve descripción: Character Controller Pro es un controlador de personaje (o character controller) de tipo dinámico que funciona con físicas 2D/3D, y tiene forma de cápsula. El paquete se separa en 3 partes: Core: El character controller con todo lo necesario para que exista y funcione por si solo [Lógica no implementada] Implementation: incluye un sistema construido encima del controlador que ayuda a 1) administrar inputs (sin importar su origen, viejo sistema de Unity, nuevo sistema, Rewired, etc) para luego convertirlas en acciones, y 2) proveer de una maquina de estados (FSM). [Lógica no implementada] Demo: Dentro del paquete se incluyen escenas de demostración, estados (implementaciones de lógica de gameplay), acciones predefinidas (movement, jump, crouch, etc), y más. [Lógica implementada]
  16. 4 points
    Hola a todos, les presento mi más reciente proyecto Bubbles and Puzzles, espero que sea de su agrado y puedan apoyarme con su feedback, les estaré muy agradecido. Se trata de un juego tipo fruit cut, pero en vez de cortar las frutas, tienes que cortar las burbujas y rescatar las frutas de su interior para completar el nivel y así poder avanzar. El rescate tiene que ser en el orden indicado ya que de lo contrario iras perdiendo vida hasta el punto del Game Over. La meta es llegar lo más lejos posible y conseguir la mejor puntuación para posicionarte en el Tablero de Ranking, tienes la oportunidad de compartir tu dispositivo con hasta 5 jugadores para así hacerlo más competitivo. Sin más les dejo estas imágenes del juego. Disponible en la Play Store.
  17. 4 points
    Buenas! soy Augusto de Chime Ayer comencé un canal dedicado a Unity y C# y largue con una serie de introducción a la programación en Unity. En el primer episodio simplemente vemos como instalar UnityHub y Visual Studio para dejar todo listo para el siguiente episodio: En el segundo creamos nuestro primer Hola Mundo en Unity, y vemos el concepto de variables con varios ejemplos. Ademas hice otro video suplementario que cubre varios temas básicos como para tener una buena base en Unity antes de empezar la serie Espero que les guste el contenido, voy a estar subiendo los siguientes capitulos a lo largo del mes!
  18. 4 points
    Hola, he creado un pequeño curso de introducción a los MLAgents. En total son nueve vídeos, donde se crean dos proyectos y un minijuego. El primer proyecto es muy sencillo, para no perder tiempo en nada que no sea el funcionamiento / configuración de MLAgents. Como seguir estas cosas por las listas de reproducción de youtube se me hacen complicadas me he liado la manta a la cabeza y he creado una pequeña WEB donde se puede seguir el curso, como si de una academia online se tratara, y acceder a los scripts y ficheros necesarios. La URL del curso es: https://cursos.uadla.com/curso/introduccion-al-machine-learning-con-ml-agents-para-unity/ Si alguien lo sigue por aquí, por favor, que me comente si el sistema funciona correctamente y es como de de usar. Os dejo también el vídeo de presentación: Espero que os guste, la verdad es que es un tema que me ha gustado de siempre, espero tener tiempo para ir haciendo cursos para tratarlo en más detalle y con entornos más complejos. También hay que tener en cuenta que ahora los MLAgents empiezan a estar mas o menos maduros, y sí que veo que empiezan a ser una forma de entrenar NPC's que podemos usar en nuestros juegos.
  19. 4 points
    hola he visto este video en un post de Vandal y no he podido resistirme a compartirlo era de una jam que se ha celebrado entre el 10 y el 12 de julio... ...o de unos locos que se han escapado de un psiquiatrico... no me ha quedado muy claro...
  20. 4 points
    Desarrollo en Unity 2019.3. Una primera aproximación a un FPS sin prácticamente optimización más allá de los lightmaps del entorno. Es posible utilizar diferentes FX dependiendo del material de contacto. He utilizado algunos assets de pago y otros gratuitos en los apartados de diseño solamente. El código y la integración es mío desde cero. El canal de youtube para seguir las actualizaciones es: https://www.youtube.com/user/LosSopranoNet/videos
  21. 4 points
    ¡Buenas! Mi experimento de carreras en TuCiudadTM. La idea es poder generar una escena aproximada de cualquier parte del mundo. La gracia es poder correr por tu ciudad o hacer misiones que te envían a sitios conocidos. Apóyanos siguiéndonos en Twitter: https://twitter.com/yourcityracing (venga que es 1 click!)
  22. 4 points
    Es un pequeño juego 2D creado para la JAM de UnitySpain. Tienes que guiar al personaje por el bosque hasta que llegue a casa. El juego es tranquilo, se trata de ir encontrando los diferentes caminos y esquivar los peligros que se encuentra como los lobos o las lanzas. Creo que le dedique mas o menos unas 16 horas, y estoy contento con el resultado, tanto que me quedo con el proyecto para irlo evolucionando poco a poco, ya ire compartiendo los cambios y los "improvements". Cualquier idea, o crítica, que querais aportar sera muy bienvenida. Por ahora esta disponible en itch.io: https://uadla.itch.io/way-home
  23. 4 points
    Buenas gente¡¡ Abrí hace ya tiempo un post sobre este proyecto pero no me deja continuarlo, imagino porque es antiguo asi que he abierto otro. Hace ya tiempo empece un juego de terror en primera persona, lo empece como primera toma de contacto de Unity y para ir aprendiendo, entre el trabajo y otras cosas me ha llevado mas de un año terminarlo entre otras cosas porque lo he realizado todo yo (diseño, programación, sonido etc.... Todavía le quedan algunas cosillas pero ya poco más quiero hacerle porque tengo ganas de pasar a otro proyecto. El juego comienza en una casa abandonada en la que has estado de fiesta, despiertas solo y empiezan a pasar cosas extrañas y tienes que conseguir salir resolviendo algunos puzzles. A lo largo de esta semana subiré la BETA para que lo probéis y me digáis que os parece. He aprendido un montón de cosas y la verdad que me ha gustado mucho realizarlo y estoy bastante orgulloso para ser el primer juego que hago. Lo más complicado ha sido ser objetivo, al realizar yo los puzzles y saber donde estan los sustos se ve el juego desde una manera poco "divertida". Me has servido de mucha ayuda que mis amigos y novia me hayan hecho de testers porque su visión es totalmente distinta a la mia. Os dejo algunos pantallazos y a ver si esta semana subo la BETA y os la paso que seguro que me podéis dar vuestros consejos. saludos a todos ENLACE PARA DESCARGAR BETA: https://zellegames.itch.io/bloodshot-eyes Aquí os dejo parte de lo que pasa si descubris el huevo de pascua.... Aquí algunos cambios de texturas en la escena final, no he puesto más por no hacer spoiler... El nuevo diseño de la UI, más sencillo para mi gusto queda mejor Imagen de la cocina con la luz en modo linear, la verdad que ha ganado bastante He añadido efectos en la escena del baño para potenciarla
  24. 4 points
    Mira que fue una chorrada que se me ocurrio y es lo que mas exito tiene y mas gracia le hace a la gente. Gracias Pere por tus animos, quizas cuando crezca un poco el bicho pueda dedicarle algo de tiempo hacwr videojuegos, pero ahora lo veo complicado. Mas que por el niño por el trabajo, en el anterior si no habia incidencias el fin de semana podia llevarme el portatil y dedicarle tiempo a los videojuegos. Espero que a lo termines y verlo por aqui para probarlo. Os dejo otro gameplay muy gracioso de um chino, esta to loco!! Saludos!!
  25. 4 points
    Primero un cuento corto: Me he decidido por al fin subir algunos assets al asset store (de los tantos que tenía, actualmente 3, Kinematic2D, GrabIt y LaserMachine) , pense "bueno esto es fácil, me registro, doy subir al asset store y probablemente dos días después me llegue un mail diciendome gracias por su tiempo Sr. Lightbug" bueno, no fué del todo así, pero después de medio mes de malabares, curso autodidacta intensivo de html+css (duración 1 día) y algunas luchas con Unity Connect acá estoy . ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ASSET STORE ----> Kinematic 2D DEMO ---> DemoWebGL DESCRIPCIÓN Kinematic2D es un controlador de personaje 2D Totalmente Kinematico (no basado en físicas) que te permite realizar el movimiento de tu personaje 2D mientras se encarga de manejar las colisiones correctamente. Basicamente ofrece las funcionalidades del Character Controller (Componente) que viene por defecto con Unity (y más), pero con tres grandes diferencias: Está preparado para movimiento bidimensional (de aquí el 2D) La forma del cuerpo del personaje es una caja (en vez de una capsula, esto es genial para platformers) Funciona con colliders 2D y 3D (Ej: colliders de sprites y 3D mesh) El principal objetivo de este asset es darte la posibilidad de que tú construyas encima un controllador de movimiento del personaje (Ej maquina de estados, habilidades, etc), sin preocuparte por la parte aburrida de las colisiones, así te puedes enfocar en el diseño y mecánicas de tus personajes ... lo divertido! .. para más info --> ir al link del AssetStore -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- PD: Después de haber creado (creo que por primera vez) un hilo en el foro oficial de Unity debo decir, que UnitySpain está años luz adelantado, en todo aspecto, volver aquí es como dejar de usar el intel pentium 2 para subirte a i7 realmente, (y ni hablemos del código) ... felicitaciones @pioj
  26. 4 points
    Creo que todos los niños de mi época han visto la película Twister al menos una vez. Claro que no era perfecta pero dió a conocer por el mundo a los cazadores de tormentas. A mi me encantó... Me llamo Manuel, vivo en Madrid y desde ese momento me empecé a interesar por los tornados. Hace unos tres años, iba por Castilla La Mancha con el coche en pleno verano y vi unos cuantos remolinos de polvo (dust devil en inglés) debido a la tierra caliente y pensé.... "con lo que molan los tornados, qué raro que no haya ningún videojuego sobre ellos". Acababa de publicar mi primer juego en Steam (City Z) y decidí empezar a probar tornados en Unity 3D para ver si había algún potencial. Tan sólo encontré una demo visual que me gustó y empecé a modificarla añadiendo física y mejores efectos. En ese momento me pareció bastante impresionante y decidí crear el primer videojuego (que yo sepa) sobre cazadores de tormentas. Desde entonces, el juego ha evolucionado muchísimo cómo habéis podido ver en el vídeo y creo que ya ha llegado a la calidad suficiente para poder ser lanzado en acceso anticipado en Steam. Queda mucho por mejorar o añadir pero el núcleo del juego ya parece bastante divertido. Características del juego: Modos de juego - Misiones en solitario para aprender las bases del juego - Multijugador online 1 vs 1, 2 vs 2 or 4 vs 4 para jugar contra otros cazadores de tormentas - Tipos de juego variados: Fotografía, Brote de tornados, Controla el tornado... etc. Entorno - Física realista de los tornados con fuertes vientos y destrucción de objetos cercanos - Mapa grande y detallado inspirado en los paisajes de la Tornado Alley - Condiciones climáticas cambiantes y distintas horas del día Gameplay - Algoritmo complejo para evaluar la calidad de las fotos: distancia, focus, escombros visibles... etc. - Distintos coches equipados con radares meteorológicos para medir la actividad de las tormentas - Pods de monitorización para medir la velocidad del viento y su dirección en el suelo Otros - Galería de imagen para gestionar tus fotos y compartirlas en Steam - Emisoras de radio FM modificables para que escuches tu radio favorita en el coche - Posibilidades de ver vacas volando Poco más, éste es el enlace del juego en Steam: Ficha del juego en Steam El lanzamiento en acceso anticipado está previsto para principios de junio y ando retocando cosillas y arreglando errores. Pues nada, aquí me despido, muchas gracias por vuestro interés y no dudéis en comentar dudas o sugerencias. Os dejo con una captura de pantalla que he tomado ayer para que veáis los últimos avances en cuanto a representación de las superceldas:
  27. 4 points
    Saludos a todos. El período de mantenimiento de verano 2018 ha concluido, por lo que a continuación procedo a indicar los cambios realizados: Dominio Renovado el registro del dominio http://www.unityspain.com por un período de 6 meses. Servidor Servidor VPS dedicado de la Comunidad, formateado y migrado a Ubuntu 18.04 Server 64bit. Añadido motor de cache Varnish (versión más reciente), para acelerar y mejora el rendimiento de la web. Añadido motor de cache Memcache, para acelerar el rendimiento de la web y los foros. Actualización a la versión más reciente del Servidor HTTP Apache2. Actualización a la versión más reciente de PHP para la web y foros. Actualización a la versión más reciente de MYSQL para la web, foros, y las bases de datos. Web y Foros Software de los foros actualizado a la versión más reciente (POR FIN!!!) Eliminado el idioma Español en las secciones, y puesto el Inglés por defecto, a la espera de parche... Tema (Skin) de la web sustituido, al que viene por defecto. Más claro, ordenado y legible. Activado el uso de Memcache en los foros. Activada la API RESTful en la web, para proporcionar servicios externos de consulta. Ahora el icono del voto positivo (flecha verde) pasa a ser el del corazón con fondo azul. Hace lo mismo, da puntos. Desactivados ciertos módulos de la web (comercio, descargas,entre otros...) que provocan errores. En espera de parche... Añadida nueva página Roadmap, en la barra superior de navegación. Muestra el planning previsto de mejoras para UnitySpain. Añadido nuevo módulo para crear evaluaciones o preguntas de tipo Quiz/Trivial. Desactivado por defecto, para testeo... Barra superior de Navegación actualizada, con los nuevos contenidos y herramientas. Desactivado el soporte de Login con otros métodos (Twitter, Facebook, etc), dejando un único sistema de Usuario y Contraseña. Configuradas más herramientas y secciones que hasta ahora estaban inactivas. Conexión con Redes Sociales, Analíticas,etc... Añadido nuevo RSS con las novedades de Proyectos y Scripting. Disponible en la esquina inferior derecha de la página, abajo de todo. Actualizados algunos bloques del SidePanel (sección lateral derecha de la web), para adecuarla a la web. Normas de la Comunidad y Términos de Registro para nuevos usuarios, actualizados. Redes Sociales Se han creado 2 bots en el servidor de Discord, para automatizar labores de Mantenimiento y Consultas. Soporte en construcción... Se ha actualizado y activado de nuevo el bot del grupo de Telegram, para mostrar las novedades en Proyectos. Mantenimiento Se agrupan, a partir de ahora, todos los usuarios inactivos(última visita) por más de 6 meses en un nuevo colectivo llamado Fósiles. Todos aquellos Fósiles con 2 o menos contenidos (por tanto, visitantes fugaces) han sido eliminados, junto con su contenido. Los contenidos(Topics, posts,etc) de los Fósiles con 3 o más mensajes, son movidos a la sección Post Antiguos y preservados. Se han limpiado 1089 usuarios, y la Comunidad pasa a contar actualmente con 1341 miembros activos. Otros Estudio, testeo y pruebas de estabilidad. Más adelante realizaré un pequeño Hilo, comentando las novedades que trae consigo esta versión de la Web. Gracias a todos por la paciencia, y .. Hale! A disfrutar!!! Pioj
  28. 3 points
    Todo eso me suena a que no estás haciendo 2 cosas: Seteando la prioridad de las transiciones, Selecciona un estado y fijate que en el inspector te figuran en order, de arriba (más prioridad) a abajo (menos). Configurando la fuente de interrupción de cada estado (https://docs.unity3d.com/Manual/class-Transition.html#TransitionInterruption), ya que se puede dar que una transición esté pasando, pero un estado (el actual o el siguente) tenga una transición valida al mismo tiempo. Respecto a 2, esto dice la doc: Value Function None Don’t add any more transitions. Current State Queue the transitions from the current state. Next State Queue the transitions from the next state. Current State then Next State Queue the transitions from the current state, then queue the ones from the next state. Next State then Current State Queue the transitions from the next state, then queue the ones from the current state. Ejemplo de un personaje que está en el estado "caida" y pasa a "suelo" al caer (isGrounded = true). En plena transición le das a la tecla de salto, es decir, deberías pasar de "suelo" a "salto". Volviendo al isGrounded = true, un trigger se llama, ahora está en plena transicion a "suelo". Vamos a suponer que todavía no estás en "suelo" (que es el proximo estado, el "next"), entonces sigues en "caida" (el actual o "current"), por lo que si presionas la tecla de salto no pasa nada (a nivel animación, probablemente el objeto físico salte, eso no nos importa de momento). La cosa que la animación no cambia, todo termina en "suelo" eventualmente. Si configuras que la fuente de interrupción sea "Next", lo que va a pasar es lo siguiente: Hay una transición que require accionarse ya mismo ("suelo -> salto" dió válida) Dicha transición pertenece al estado siguiente "suelo" (next). Recordar que los estados contienen a las transiciones si tienen su cola (no su punta). En este caso suelo contiene "suelo -> salto", salto tendrá "salto -> caida", caida tendra "caida -> suelo" , y así... El estado actual (caida) tiene como fuente de interrupción el estado Next ("suelo", quien contiene la transición a salto y encima es válida) El sistema suma dos más dos y termina interrumpiendo la transición actual de inmediato, en base a la "interruption source" de arriba. Todo esto no hubiera terminado bien si tuvieras current como fuente de interrupción. Si no estás seguro metele "Current state then next state". Documentación. Como dijiste, esas son las dos más usadas, Play reproduce de una, Crossfade te da una transición de donde estés hacia el estado target. Pasa que eso es muy confuso, que pasa si estás saltando (que se yo, 100 metros en el aire) y a los 3 segundos (llegaste al pico) no presionas nada? tenés que andar leyendo el estado actual, y en base a eso determinar si das Play/Crossfade a X animación... terminas creandote la misma herramienta dentro del código. Creeme que yo vengo puteando con Mecanim desde hace años, y todos los problemas (excepto los más estúpidos y fáciles de solucionar) tienen su vuelta. Te recomiendo lo de las prioridades y las fuentes de interrupciones.
  29. 3 points
    tienes que buscar un poco antes de preguntar, probar si puedes hacerlo mínimo 2 días y sino preguntas, tu pregunta esta en el manual lee un poco. URL: https://docs.unity3d.com/ScriptReference/Rigidbody-isKinematic.html Controla si la física afecta al cuerpo rígido. Si isKinematic está activado, las fuerzas, colisiones o articulaciones ya no afectarán al cuerpo rígido. El cuerpo rígido estará bajo control total de animación o control de script cambiando transform.position. Los cuerpos cinemáticos también afectan el movimiento de otros cuerpos rígidos a través de colisiones o articulaciones. Eg. puede conectar un cuerpo rígido cinemático a un cuerpo rígido normal con una articulación y el cuerpo rígido se restringirá con el movimiento del cuerpo cinemático. Los rigidbodies cinemáticos también son particularmente útiles para hacer personajes que normalmente son impulsados por una animación, pero en ciertos eventos se pueden convertir rápidamente en un ragdoll estableciendo isKinematic a false. using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { public Rigidbody rb; void Start() { rb = GetComponent<Rigidbody>(); } // Let the rigidbody take control and detect collisions. void EnableRagdoll() { rb.isKinematic = false; rb.detectCollisions = true; } // Let animation control the rigidbody and ignore collisions. void DisableRagdoll() { rb.isKinematic = true; rb.detectCollisions = false; } } este es un ejemplo básico solo para la colisión y estado muerto del enemigo, si quieres chocar al enemigo y que las físicas interactúe con el enemigo muerto tienes que hacer un Ragdoll del enemigo para desactivar la animación del enemigo y que cuando tenga 0 de vida se caiga y lo puedas mover cuando colisionas con el. public void Ejemplo(float amount) { if (health < 5) //este valor depende de cuanto daño le haces al enemigo., lo que dice es si vida es menor a 5 pasa a estado de muerte. { muerte(); } } void muerte() { Destroy(GetComponent<NavMeshAgent>()); // aca se desactiva la inteligencia Artificial. anim.enabled = false; //aca desactiva la animacion quedando solo el Ragdoll. } sino sabes que es un Ragdoll acá te dejo un link :"" https://www.youtube.com/watch?v=DInV-jHm9rk&t=1s¨
  30. 3 points
    necesito ayuda! no se si esto funcionara foreach (User _user in UnitySpainUserList) { _user.addMessage("felices fiestas"); }
  31. 3 points
    Hola amigos Hoy les vengo a hablar de un pequeño proyecto realizado en unity y de la experiencia que he tenido en el camino, se trata de un juego clásico en el que el objetivo principal es ordenar los números del menor al mayor, me he tardado unos 6 meses en terminarlo ya que solo le invertía una o dos horas al día, y en ocasiones hacía pausas y tardaba más de una semana en retomarlo, cosa que es frustrante al querer volver a agarrar el hilo de lo que llevabas, pero bueno, al fin lo he terminado y publicado en la play store. Este es el enlace para quien quiera testearlo y darme su feedback, de verdad se lo agradeceria mucho. Chaos of Numbers Una de las cosas en las que más me he tardado, es el diseño, soy pésimo en ello, y aunque no estoy convencido 100% con el producto final, tenía que lanzarlo pues para ser un pequeño proyecto ya llevaba mucho tiempo. Estas son un par de impresiones de pantalla del juego, espero y tengan la posibilidad de probarlo. Nota: El juego soporta los idiomas español e inglés
  32. 3 points
    Este código lo hicimos en otro post. Pásale una List de elementos y te los posicionará de manera aleatoria: public void shuffle<T>(IList<T> list) { System.Random random = new System.Random(); int n = list.Count; for (int i = list.Count - 1; i > 1; i--) { int rnd = random.Next(i + 1); T value = list[rnd]; list[rnd] = list[i]; list[i] = value; } }
  33. 3 points
    hola a todos. acabo de subir un nuevo trailer a Youtube
  34. 3 points
    Acabo de subir el siguiente capitulo: Lógica y ciclos. En este video vemos la sentencia if, junto con else. Ademas vemos el ciclo for y el ciclo while. Y por ultimo vemos las sentencias continue y break para ciclos Edit: No quería spamear mucho el post así que agrego el siguiente episodio aqui. En este cuarto capitulo vemos varias cosas: Función Update, Físicas de Unity, Input del jugador, la función GetComponent, framerate-independence y como detectar colisiones entre objetos.
  35. 3 points
    Buenas a todos, Quería presentados mi proyecto Steel Wars Royale en el cual llevo trabajando desde mediados del 2017. Es un proyecto muy ambicioso sobretodo por su complejidad técnica, ya que es un juego 100% online con batállas 1vs1 síncronas y sistema de almacenamiento de datos (BackEnd). Desde el principio, a pesar de tener recursos bastante limitados, he buscado calidad triple A y que al ver el juego de la sensación de que hay un buen estudio de desarrollo detrás. Esto me ha hecho ir mucho más lento de lo que me gustaría. Os dejo un mini trailer casero que yo mismo he hecho: En breves (en 2-3 días si todo va bien) voy a probar el juego con público real por primera vez, en una Alpha Cerrada para la plataforma Android desde Google Play. Me gustaría alcanzar un volumen de unos 50 jugadores, de los cuales ya tengo unos 20-30. Si alguien con Android se anima a ser Tester, es más que bienvenido! Los interesados podéis entrar en www.steelwarsroyale.com y dejar vuestro correo electrónico. Es una lista de correos gestionada con MailChimp. No se va a usar para hacer SPAM ni con otros fines comerciales, se va a usar únicamente para dar información del juego y avisar de sus testeos y lanzamiento. En cualquier momento os podéis quitar de la lista de correo pulsando abajo de cualquier e-mail "cancelar suscripción". Muchos de vosotros no seréis el target de audiencia para este tipo de juegos F2P de móvil, pero vuestras opiniones y feedback serían de gran ayuda. ¡Gracias de antemano a todos los interesados! Información más técnica para developers: Para el desarrollo del juego he usado el motor Unity3D. Para el sistema de BackEnd he usado el BaaS Gamesparks. He orientado el juego a ser 100% Data driven, es decir, en el arranque del juego se conecta al backend y adquiere todos los metadatos al vuelo (unidades, stats, recompensas, tiempos etc.). Esto me permite modificar gran parte del juego sin necesidad de subir una Build nueva a las stores. Si quiero modificar los stats de una unidad, o si quiero modificar el % de drop de undiades legendarias etc. lo hago todo desde el back-end. El poder hacer estas modificaciones al vuelo se estila mucho en juegos de móvil F2P (para un buen sistema de Live-Ops). Para el multijugador síncrono, he usado una tecnología que a día de hoy es privada. Es un motor determinista de Photon llamado Photon Quanqum. Conseguir esta tecnología (por el momento, sin coste alguno) ha sido complicado. Para ello me he tenido que reunir un par de veces con Christof Wegmann, fundador y CTO de Exit Games (Photon). Quantum es bastante peculiar por que requiere escribir la lógica de juego (movimiento, colisiones etc.) en unas librerías a parte con su propio motor (basado en ECS) que luego se insertan en Unity mediante DLL's. Es decir, Unity en este caso es un render-dummy, la lógica de juego/batalla está escrita en el motor Photon Quantum. Si tenéis dudas o preguntas, me las dejáis por aquí escritas
  36. 3 points
    Y aquí estamos con más novedades. El "esperado" ciclo día/noche y cambio atmosférico dinámico:
  37. 3 points
    Buenas tardes a tod@s, Quería plantearos una nueva forma de organizar y mostrar contenidos de la web proporcionándole mayores interacciones y facilidad de visualización de contenidos. Actualmente el sistema foro, desde mi punto de vista, ha quedado limitado y no se adapta a las "nuevas exigencias" y hábitos de los nuevos usuarios que están llegando y que llegarán en el futuro. Los foros tienen una forma de distribución de contenidos basado en subcontenidos en el que el usuario debe ir navegando a través de diferentes topics/contenidos hasta llegar al apartado que le interese y donde se le indica que existe nuevo contenido a través del simple cambio de icono. Como todos sabréis estos últimos años han ido cayendo en desuso y es una realidad de que la mayoría de sistemas de foro integrados en páginas web se parecen más a lo que vemos en redes sociales que al estilo clásico que de hecho todavía se sigue utilizando en UnitySpain (aunque bastantes novedades como sistema de notificaciones). No nos engañemos, antes de que los foros se pusieran de moda como una forma de comunicación existían las listas de correos, las cuales hoy en día son una ventana al pasado y de lo que creo que los foros, tal y como los conocemos, les espera el mismo destino. Los nuevos usuarios, y los que vendrán los próximos años, están habituados a utilizar otros sistemas de comunicación muchos más versátiles, cargados y destacando contenidos multimedia por delante del simple texto y mostrando de forma ordenada "el contenido más nuevo" en detrimento de lo más antiguo para facilitar de un vistazo lo último publicado, comentado, etc. Es mejor mostrar un vídeo o una imagen de lo que acaban de publicar que el simple texto "este es mi proyecto rts", porque atrae mayor interés, o no, según el caso de lo mostrado. No es solamente una nueva forma de mostrar contenidos, sino que abre un nuevo abanico de posibilidades de interacciones entre los usuarios. Ciertamente el foro actualmente tiene algunas funcionalidades que podríamos calificar de sociales, pero la forma de distribución de contenidos no se asemeja a lo que está demostrado que funciona, que incentiva a la comunicación entre usuarios y que mantienen una conexión constante a la web. Podría detallar cada una de las nuevas funcionalidades o estilos de contenidos a los que hago referencia, pero creo que todos conocemos y reconocemos la utilidad de redes sociales como Twitter o Facebook. Cada usuario tendría su propio espacio (estilo muro o blog), podría subir archivos e imágenes y disponer de su propio portafolios y unirse y crear grupos, los cuales podrían sustituir a lo que actualmente conocemos como cada foro. La página principal mostraría directamente los últimos contenidos publicados, comentarios y actividades, no teniendo el usuario que navegar entre subcontenidos para encontrar lo último publicado (siendo algo más llamativo que el recent topics). No digo que este sistema de comunicación y muestra de contenidos sea mejor, sino que es diferente y se adapta a lo que hoy es el resto de la WWW. Por todo ello, creo que podríamos plantearnos cambiar el foro por un sistema como el que os comento utilizando software como Buddypess, elgg u otro que cumpla la misma función. A continuación os dejo algunas imágenes y enlaces para que podáis ver algunos ejemplos de lo que os he relatado. Espero vuestros comentarios sobre esta idea y el debate que aquí se abra. Esto no quiere decir que sea un debate para cambiar lo existente sí o no, sino de abrir esta posibilidad y comentar los pros y los contras del posible cambio. https://olympus.crumina.net/members/dan_cortese/friends/ https://buddy.ghostpool.com/ http://themekitten.com/demo/atlass2/activity/ https://seventhqueen.com/themes/kleo/members/kleoadmin/groups/
  38. 3 points
    Lo primero es aclarar que con este post no pretendo ni faltar, ni empezar ningún tema de discusión, ni causar ningún tipo de enfrentamientos, pero este tipo de cosas me gusta poder expresarme claro, sin ningún tipo de tapujos.Como digo en algunos de mis post...vayamos por parte como dijo el tito jacky. Como bien comenta francoe1 esta conclusión no quiere decir que no compartimos opiniones. peor referente a este post hay algunas cosas desde mi punto de vista que no comparto. 1-Desuso Referente a este punto te puedo asegurar que estas totalmente equivocado, ya que las mayores comunidades y las mas seguras que existen tanto publicas como privadas en el world son el 70% foros, que suelen estar modificados y actualizados por los propios usuarios, incluso yo diría muchos mas antiguos que este sistema de foros, otra cosa es que le buscador de del señor GOOGLE te cape el mas del 75% de todo el internet, para que solo te centres en la moda que suele usar la gente. Vamos... hablando claro y sin faltar al respeto de nadie....es para hacer borregos. Un poquito de humor nunca viene mal. XD -El motivo principal de usar cosas simplificadas es muy fácil.(Menos módulos menos problemas y mas fluidez) simplemente hay que saber usar la herramienta y saber que función tiene, y no pase como esta pasando ahora que tengo amigos con carreras terminadas de informática y no saben que es un disco de 5 y 1/4.(y eso desde mi punto de vista es muy triste) -Por lo que en general contra menos módulos y menos chorradicas tenga mucho mejor, siempre y cuando cumpla la función para la que se usa. 2-Forma de comunicación. -En este tema también te equivocas, pero no lo voy a ampliar porque la verdad no viene al caso para el hilo del post. 3-Lista de correo -Referente a la comunicación de listas de correo no es que estén en desuso para mandar o recibir información, si no todo lo contrario, la única diferencia es que para chorradicas y tonterías ya tenemos el wasap, dejando los correos en una posición mucho mas seria y personal a la hora de comunicarse con alguien. 3-"Simple texto" Aquí reafirmo lo comentado anteriormente con la frase de Joseph Goebbles ministro de propaganda de la Alemania nazi " Una Mentira repetida mil veces...se transformara en verdad" 1 Imagen = 1000 palabras. 1 vídeo = 1000 imágenes. Por lo que la deducción es........... -Con esto no implica que se usen imágenes o vídeos para mostrar o explicar las cosas, pero eso no quita que sea mejor que el texto, simplemente es una herramienta mas que bien usada puede ayudar mucho a la hora de realizar ayudas o comunicaciones, pero solo eso....ayudas en conjunto al texto. 4-Mejor mostrar un vídeo??? Creo que es este caso esta claro, por norma general cuando alguien pide ayuda en algún tema, que es lo que mas se suele usar este tipo de foros desde mi punto de vista, necesitas ayuda a ser posible para ayer, por lo que ponerse a montar un vídeo para una ayuda, sinceramente es una estupidez y una perdida de tiempo ya que casi todo esta en joutube (No se pierde nada por mirar en jotube antes de preguntar por aquí algún problema). Dejando el foro para ayudas o información mas técnicas, le da una profesionalidad que dejaría de tener si nos ponemos a poner corazoncitos y chorradas cada 3 por 4. 4-Demostrando que funciona? Referente a que las redes sociales que comentas como facebook y twitter recordar que las redes sociales "No son foros" las redes sociales son para una cosa y los foros son para otra totalmente distintas. 5-Portafolios propios. -Aquí mas que aclarar una cosa, ya que yo también creía que esa opción podría ser buena en las comunidades hace tiempo, destacar que los portafolios personales en este tipo de comunidades no suelen ser prácticos y dan mareos de cabeza. Para eso ya hay paginas que se dedican a ese tipo de cosas como puede ser arstation, pinterest etc... No es por el echo de subir las cosas en un foro, es simplemente que esa pagina se dedica a eso, por lo que pagara su cuota a los motores de búsqueda para salir en la sección de imágenes de Google, Firefox, etc.. y si lo que te interesa es tener algun tipo de difusión publica, tendrás muchas mas opciones si usas las plataformas que ya hay. Opinión personal referente al foro. -Bueno y ya por ultimo, yo la verdad es que el foro lo veo bien tal y como esta,ya que para mi la función principal la cumple, que se vayan añadiendo alguna que otra cosa que vean los administradores que pueden ser útiles, lo veo bien mientras no pierda la esencia del foro, pero un cambio radical lo veo una cagada, como dicen... si algo funciona, mejor no lo toques, y si no que se lo digan a la de Cazafantasmas 3 xDDD. Bueno pues con esto me despido, espero no haber sido muy pesado y reitero que este post no esta montado para faltar el respeto a nadie y si alguien lo ve así, mis disculpas no era mi intención, pero quería dejar mi opinión clara, se ve que tanto tiempo en casa encerrao me da que pensar . Un saludo a todos 😄
  39. 3 points
    La última actualización que ya puse vía Telegram. Así se ve la evolución:
  40. 3 points
    He estado experimentando con los túneles y puentes. En realidad tendré que reescribir varias partes para poder mejorar esto, pero me ha servido para ver la problemática..
  41. 3 points
    Buenas tardes, os presento mi ultimo videojuego online creado con Unity3d. Se trata de un juego de carreras de coches de Scalextric, el juego puede parecer bastante sencillo pero tiene algunos detalles que lo hacen un poco más complejo. En el juego puedes elegir 10 coches y 10 compuestos diferentes de neumaticos, cada uno con sus características , ventajas y desventajas. Esto hace que haya más variedad en el juego y no sea tan lineal. Por otra parte el juego funciona online con un servidor capaz de albergar partidas de hasta 32 jugadores. Trata de hacer los mejores tiempos con tu coche y ten cuidado de no salirte de la carretera ya que perderás el tiempo de la vuelta actual, el juego cuenta con una clasificación mundial TOP 20, se actualiza instantaneamente segun van participando los jugadores. Los controles del juego son: Flecha arriba del teclado: Acelerar o decelerar Barra espaciadora: Cambio de carril TAB: Ver clasificación mundial Sin más preambulos os dejo unas imagenes y el link de descarga, intentaré tener abierto estos días el servidor 24 horas, por si quereis pasaros a probar. Nueva versión: Descarga Android: https://play.google.com/store/apps/details?id=com.Raulandia.KLetrixMotorsport Descarga PC: https://www.dropbox.com/s/epc8yzv41oczfq1/ScalextricPros2k19.rar?dl=0
  42. 3 points
    Esta API tiene una lista extensa de métodos para extender la funcionalidad de las clases de .NET Framework, WinForms, System.Console y Unity3D. Además, contiene implementaciones propias y de terceros. Lista de contenidos interesantes por espacios de nombres uzLib.Lite.Core Contiene una implementación de Singleton. Contiene un wrapper de consola para leer líneas o teclas al mismo tiempo. (clase ConsoleOutput, método: ReadLineOrKey) Dentro del namespace "Input" podemos encontrar alguna clase que contiene una implementación (clase SmartPsswrd) para leer contraseñas por pantalla sin mostrarlas (como se esperaría de un entorno Linux). uzLib.Lite.Extensions Contiene algunas extensiones para arrays y colecciones (añadir elementos a un array, comprobar si un Dictionary/List/HashSet/IEnumerable es nulo o está vacío (IsNullOrEmpty), exntesiones ForEach para ejecutar Action callbacks (incluídas con índice ("int index")) (más metodos en la API de pago), borrar en el índice, DisctintBy…) Contiene algunos métodos de extensiones de "Dictionary": FindIndex (busca el índice por predicado) GetIndex (obtiene el índice de un item existente, si no, devuelve -1) AddOrSet (añade un valor si la clave no existe, si existe entonces actualiza el valor) AddOrAppend (lo mismo que antes, pero para las clases List<T> y T[] como TValue) AddAndGet (si la clave no existe añadela con el valor specificado, después devuélvelo) Get (lo mismo que antes, pero fuerza los tipos genéricos con constraints del tipo: where TValue : class, new(), para que siempre sean clases lo que se pase como tipo genérico) SafeGet (intenta obtener el valor si la clave existe, si no devuelve el valor por defecto (default(TValue))) Contiene algunas extensiones para la clase Bitmap: obtiene un IEnumerable de Colores ("Color") de una clase Bitmap o lo guarda (Save) en una ruta (o en un Stream (TODO)). Contiene una extensión para el tipo primitivo byte: el método RoundOff (para obtener un "byte" redondeado)… Contiene algunas extensiones para la clase Color: obtener el umbral entre dos colores, comparar un color1 para obtener un color similar a partir de un IEnumerable de colores (2), convolución de posterización, obtener porcentaje de similaridad, redondear colores… Contiene un método de extensión para compilar archivos *.sln… Contiene extensiones de compresión: zip/unzip archivos a partir de su ruta (path), Streams u objetos (sync/async)… Contiene una extensión CodeDOM para añadir literales "static" a nuevas clases generadas a través de la clase CodeTypeDeclaration. Contiene una extensión DateTime para obtener su timestamp de UNIX (usa la clase DateTime no la clase DateTimeOffset). Contiene una extensión para la clase Exception para comprobar si un el índice del objeto de tipo array/List/Dictionary está fuera del límite. Contiene extensiones para Git para obtener algunos datos usando la librería LibGit2Sharp. Contiene exntesiones para HTML para limpiar y buscar ocurrencias en códigos fuentes HTML. Contiene extensiones IO para verificar rutas válidas, obtener nombres de archivos a partir de URLs, obtener y verificar patrones de rutas relativas, verificar si la ruta es un directorio, obtener directorios de nivel superior, subir el árbol de rutas (N veces), obtener directorios temporales, verificar si los directorios están vacíos o son nulos, eliminar el contenido de una carpeta… Contiene exntesiones para Internet (System.Net) para descargar archivos y hacer (GET) peticiones… Contiene una extensión para la clase Object para comprobar si un objeto es convertible (cast)… Contiene una extensión para la clase Process para lanzar procesos asíncronamente… Contiene extensiones para el namespace Reflection para invocar métodos estáticos/no-estáticos, verificar si existe un método en la "Assembly" especificada, ejecutar un método comprobando las excepciones… Contiene extensiones de serialización para serializar/deserializar archivos/Streams/objetos/arrays de bytes y para comprobar cadenas de JSON/XML válidas, etc… Contiene extensiones para la clase String para verificar si la cadena es nula o está vacía (no se necesitaría usar más: ...string.IsNullOrEmpty("example")...), formatear cadenas (la misma lógica), para cambiar el primer carácter de una cadena a mayúscula… Contiene una extensión para URIs para comprobar si la URL pasada por cadena es válida. Contiene una exntesión para Visual Studio para obtener el proyecto de Inicio desde un archivo de solución… uzLib.Lite.Plugins.SymLinker Contiene una implementación para crear enlaces simbólicos en Windows/Linux/Mac OSx… uzLib.Lite.Shells Contiene una implementación obsoleta llamada GitShell (una auto-implementación de la funcionalidad de Git antes de que descubriera LibGit2Sharp…) uzLib.Lite.Unity.Extensions Contiene extensiones para animaciones (clase "Animation"). Contiene extensiones para la clase Color: color naranja (Orange) (TODO: implementar más colores), para comprobar si los colores son similares, la distancia entre colores, obtener colores al azar, las mismas extensiones que la clase uzLib.Lite.Extensions.ColorHelper (pero adaptadas a Unity3D)… Contiene extensiones de geometría para obtener posiciones al azar (Vector3), obtener la media de Vector3s, obtener límites encapsulados (esto es un promedio de los límites de todos los renderizadores (Renderers) de un GameObject), obtener el tamaño ortográfico que se establece en una cámara para que este objeto se ajuste perfectamente a su vista, obtener la compensación de un modelo (obtener el máximo y los centros mínimos del Renderer de un GameObject), comparar los tipos Vector3/Vector2 para comprobar si son mayores o iguales, menores o iguales, menores/mayores que otro Vector3/Vector2, obtener objetos Vector3/Vector2 invertidos, obtener el rayo desde el centro de una cámara… Contiene extensiones matemáticas obtener el máximo absoluto de una matriz (array) de floats (params), obtener el múltiplo de un float, verificar si un float está entre un rango (operación exclusiva/inclusiva), establecer la componente “Y” de un vector, obtener la distancia entre dos Vector3/Vector2… Contiene extensiones para objetos (GameObject/Transforms) para establecer capas, etiquetas de forma recursiva, eliminar componentes de forma recursiva, buscar Transforms padres por su nombre, obtener el componente (Component) más arriba en la jerarquía, obtener los componentes por nombre, obtener o agregar componentes en un GameObject (o lanzar excepciones/LogErrors), crear hijos fácilmente, destrucción segura (verifique si el proyecto está ejecutandose bajo el Editor (Application.isEditor) de Unity ejecutando DesroyImmediate), obtener la ruta de GameObject (volcado de la jerarquía de los hijos de este), envíar un mensaje a los objetos (SendMessage) del tipo seleccionado… Contiene extensiones para la clase Rect para conseguir que la implementación de los PropertyDrawers sea más sencilla, para verificar si el rect está dentro de otro rect, agregar el relleno a un rect, hacerles "Clamp"… Contiene extensuiones para la clase Texture(2D) para escribir un texto en una textura, obtener su ancho/alto como un objeto de tipo Vector2, crear texturas a partir de colores (UnityEngine.Color)… Contiene extensiones para la interfaz (UI) donde están puestos algunos GUIStyles personalizados, obtener Rects centrados, dibujar Rects, dibujar ProgressBars, "Label"s centrados, dibujar Marquees… uzLib.Lite.Unity.Utils Contiene una clase llamada "GLDebug" para visualizar Gizmos dentro de la vista de juego (Game view). Screenshots https://imgur.com/a/dqWBKwN Instalación ¿Necesitas ayuda? Solo clona este repositorio en tu proyecto de Unity o en tu solución. Para la documentación, mira la Documentation API. Problemas ¿Tienes problemas? Reportalos en la sección de problemas. ¡Gracias por el feedback! Contribuir Haz un fork de este repositorio, realiza los cambios oportunos y luego crea una pull request (PR). Si encuentra errores o tiene ideas nuevas que no desea implementar, presente un informe de error. Enlaces de relevancia: Sitio del equipo Canal de YouTube Soporte (abre tus tickets aquí) Enlace a la Asset Store Enlace al repositorio Documentación del asset ¡Espero que disfrutéis el asset! ¡Un saludo! ~~ United Teamwork Association ~~
  43. 3 points
    Buenas, como ya se ha hablado por las redes de UnitySpain se re-abre este hilo para que podáis ir subiendo los WIPs, y tener todo de una forma un poco más organizada. ;D Para los despistados. Desde hace unos días ha habido bastantes usuarios interesados en introducirse en el mundo del modelado 3D, para ello se ha planteado un ejercicio; modelar un ajedrez.. Actualmente hemos entrado en la dinámica de que enseñan pieza a pieza y dentro de lo que cabe, se trata de darle las correcciones pertinentes. Y como digo ahí arriba , a favor de tener una forma más organizada donde llevar el tema, sin estar colapsando las redes, a partir de ahora se utilizará este post. -- Si cualquier usuario quisiese sumarse a la causa y no sepa ni por donde empezar, que no se preocupe y que avise por aquí, y tratamos de darle un poco de orientación básica para empezar con el ejercicio ;D Algunas de las correcciones u observaciones del post anterior: Un aspecto importante que os está costando distinguir es diferenciar tener dos objetos "combinados" o "unidos". Vamos a intentar diferenciarlo y ver dos ejemplos: Combinar: Permite gestionar dos mallas como un objeto unitario. A pesar de ello, los objetos conservan cierta independencia, permitiendo por ejemplo aislar uno de el otro mediante una selección de todas las caras de uno de los objetos combinados. Unir: Es la "fusión" de dos objetos. No solo se gestiona como un objeto unitario, si no que lo es. Los dos objetos sestán "soldados". En la imagen podéis ver la diferencia. Estando el objeto de la izquieda unido, y el derecho combinado. Combinar geometría, no es una práctica errónea, pero justamente este ejercicio está enfocado a aprender a solucionar geometría sencilla, evitando que fragmentéis en partes piezas que pueden ser solventadas como una pieza única :D Tanto así, existen una serie de "normas" que debe cumplir una malla para estar hecha correctamente. Esto no significa que no se puedan hacer excepciones, pero no viene al caso. Así que sobre todo para este ejercicio (en casi en toda malla, vamos) buscamos las siguientes características. Malla homogénea. Solo polígonos de cuatro vértices (ni más ni menos). No tener vértices sin soldar . Intentar evitar estrellas (vértices donde se unen más de 4 aristas) _____________________ Por otro lado parece que estáis teniendo ciertas dudas a la hora de la presentación, es importante que tengáis dos cosas presentes. Si utilizáis fondo aseguráos de que es un color diferente a vuestras piezas, si no es practicamente imposible nada. A la hora de presentarlo es imporante que adjuntéis ina imagen "shaded " y otra con el "wireframe" Si me dejo algo en el tintero ya haré un edit, dicho esto ... A modelar !!
  44. 3 points
    Hola a todos, Soy nuevo en el foro, pero me gustaría mostrarles un proyecto personal en el que vengo trabajando hace 2 meses y estoy en los últimos retoques, no es un juego con fines de lucro, simplemente es para mi porfolio. Me gustaría saber su opinión El juego se llama Battle Machines: Logo Es una mezcla entre Twisted Metal y Mario kart, un juego únicamente multijugador local hasta para 4 jugadores. Por ahora solo tiene 2 modos de juego, batalla (todos contra todos o por equipos), y captura a la bandera. - Existen diferentes "Motores" que definen las características del auto, entre estas características esta el "Special" que es un arma única de cada motor, el "Special" se recarga con el tiempo, como una ulti del LOL o una herica de HOTS. Mi idea en un principio era hacer varios autos pero como el proyecto lo estoy haciendo solo yo, y modelarlos me llevaría mucho tiempo, decidí que lo que cambia es el "Motor" y no el auto. En el juego, debes recoger cajas para obtener un arma al azar, puedes juntar hasta un máximo de 3 más el Special, en total 4 armas, ademas puedes disparar una metralleta que tiene balas infinitas. Ademas existen esferas de energía, si juntas 10 tus próximas armas serán mas poderosas. Las "armas" son: Misil perseguidor Misil normal (un misil que viaja recto pero mas rápido) Bomba rebotadora (va rápidamente por el piso pero al chocar contra una pared rebota) Mina Turbo Campo de fuerza Tengo una versión para descargar, esta lejos de lo que me gustaría que fuera, pero así va por ahora: Link de descarga: https://icedcris.itch.io/battle-machines Acá les dejo algunas capturas de pantalla: https://ibb.co/L8cNgsj https://ibb.co/GP1xQ2p https://ibb.co/j4jm3vC https://ibb.co/VvGcnyL https://ibb.co/qdMxBG9 https://ibb.co/8rHXcJ3 https://ibb.co/7k0xZHw https://ibb.co/XtPfm2K https://ibb.co/BPYXDXM Cuéntenme que les parece.
  45. 3 points
    Hola muy buenas gente les quería mostrar mi primer juego de unity para android no es nada del otro mundo pero para mi fue un gran avance y me costo mucho durante el desarrollo fue todo una experiencia nueva para mi aprendí un montón de cosas sobre la marcha y la verdad que me gusto el resulta obviamente aun no esta terminado eso solo es un 50% de lo que me gustaría el juego pero ya vi que es jugable, espero que le guste y me den un apoyo positivo dándome opiniones de que mejorar si es mala idea un juego así. Si queréis descargarlo : https://play.google.com/store/apps/details?id=com.TG.VideoTube Gracias por leer =D
  46. 3 points
    Este asset ya lo había subido hace un tiempo en "Recursos", pero bueno, aca dejo la versión "asset store" así queda para las futuras generaciones DESCRIPCIÓN Grab It te permite manipular "rigidbodies" agarrandolos, puedes moverlos, rotarlos, acercarlos/alejarlos o arrojarlos. Esta mecánica de juego se hizo popular en el genero de horror, especialmente impulsada por Frictional Games en juegos como los de la serie Penumbra y Amnesia: The Dark Descent, el objetivo principal de este asset es emular este comportamiento. La mecánica es simple de ejecutar, simplemente mira directamente al objeto (idealmente con una cámara, pero funciona con cualquier objeto que tenga una dirección de forward) y presiona/mantiene el botón izquierdo de mouse, si el objetivo es un Rigidbody será afectado (previamente filtrado por el layermask). Suelta el botón del mouse y podrás soltarlo. Actualmente hay dos tipos de rigidbodies soportados, RB "normales"(por ejemplo una piedra, un ladrillo) y hingeJoints (por ej puertas). ESPECIFICACIONES - Agarra cualquier Rigidbody. - Mueve al Rigidbody mientras lo sostines. - Rota al Rigidbody mientras lo sostines. - Acerca/Aleja al Rigidbody mientras lo sostines.. - Controla hingeJoints de manera apropiada. VIDEOS DEMO WebGL Descargalo gratis del asset store ---> GrabIt
  47. 3 points
    Ups , cuando subí los otros dos assets me olvidé de este ... DESCRIPCIÓN Laser Machine es un componente que permite la creación de un arreglo de "lasers" en forma radial, donde cada uno de estos puede colisionar con colliders 2D y 3D. El componente hace uso del método Linecast para detectar colisiones, combinado con un LineRenderer para lograr el efecto visual. CARACTERÍSTICAS - Configura la forma del arreglo de lasers (solo forma radial en v1.0). - Funciona en entornos 2D y 3D. - Setea hasta un máximo de 50 lasers por objeto (se puede liberar a más con solo modificar el Range). - Configura animaciones para los lasers (rotación e intermitencia). - Asigna datos externos (via un scriptable object) para poder proporcionar recursos básicos y propiedades únicas tales como diferentes materiales, velocidad, forma, rango angular, ancho del rayo, etc. - Sobreescribe los datos externos para poder lograr mayor unicidad. IMÁGENES Quiero que observe este ultimo gif ... dejese embelesar con sus vueltas ...y sus vueltas ... ahora estás en mi poder! ---> ve al asset store y descárgalo !!! LINK
  48. 3 points
    Aqui os dejamos el nuevo trailer ,ya nos queda menos.
  49. 3 points
    Hace mucho que no actualizo el hilo. Os explico un poco las novedades del proyecto. Lo más importante es que he firmado un contrato de publicación con Poysky Productions (productor de Regions of Ruin o Pixel Piracy entre otros). Esto asegura la finalización del proyecto y me da cierta estabilidad. Estos últimos días se ha cambiado totalmente el sistema de loot. Ahora después de las batallas se pueden buscar recompensas en las naves enemigas. Al acercarnos se cambia la vista de las naves y tenemos que buscar puntos de luz en su interior que indican la posición de las recompensas. Las recompensas pasan a ser cajas botín que podemos abrir o guardar en las estaciones para utilizarlas en próximas runs. Las cajas dan premios aleatorios de diferente valor según su nivel. No hace falta decir, que las cajas solo se consiguen de enemigos o misiones, no se pueden comprar ni hay micro transacciones de ningún tipo! En este gif podéis el sistema de recogida El nuevo control y cámara. El control de la nave pasa a ser total (el jugador puede controlar el roll). La mira de apuntado pasa a ser libre y a moverse con el cursor del ratón, la cámara se fija detrás de la nave y rota ligeramente según la posición del cursor. Con estos cambios se consigue mucha más inmersión en el pilotaje sin perder angulo de disparo: Ahora se indica el daño en la interfaz de manera visual (esto sería cuando la nave está a punto de estallar): Nuevo panel animado para el inventario creado por @Shovah. Podéis ver las animaciones y sonido del panel en este tweet: A parte, estoy creando nuevo contenido: Dos nuevos tipos de estación: Nuevas habilidades: Pulso electromagnético, incapacita a los enemigos cercanos. Lanzador de minas (pueden dañar al propio jugador) Misil nuclear
  50. 3 points
    Una parte que suelo optimizar bastante es la física (edit/Project Settings/ Physics) y la detección de colisiones basándose en las "Layers". Se nota muchísimo en el rendimiento currarse esta parte en algunos juegos y que no se esté comprobando continuamente si hay colisiones entre objetos que no tienen ningún tipo de interacción entre ellos. Sólo tienes que hacerte un esquemita para ver cuales interactúan entre sí, te los organizas por layers, y desactivas toda la detección de colisiones entre lo demás. Ya para saber que tienen que hacer los objetos cuando colisionan entre si o activan un determinado trigger usas los tags para hacer una cosa u otra según cuál tenga en vez de basarse en su layer. Aunque si un juego no se ha hecho teniendo esto en cuenta desde el principio puede ser algo tedioso adaptarlo cuando ya lo tienes avanzado. Este es un ejemplo adaptado a la lógica del juego con el que estoy ahora: . Todavía no lo he probado, pero si tienes un mapa muy grande es bueno que los objetos que estén en la otra punta del mapa y que no tienes a la vista estén desactivados. Edit: Pro Draw Call Optimizer al 50%
×
×
  • Create New...