Jump to content
UnitySpain

Eskema

Registrados
  • Content Count

    228
  • Joined

  • Last visited

  • Days Won

    16

Eskema last won the day on November 17 2018

Eskema had the most liked content!

Community Reputation

107 Excellent

About Eskema

  • Rank
    Asiduo
  • Birthday 10/01/1976

Profile Information

  • Especialidad
    Coder

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Eskema

    Delta Squad

    ya se la hecho todo el bombo y platillo que podia hacerle de salida.... xD
  2. Eskema

    Delta Squad

    Bueno, el juego ya ha salido oficialmente en Steam, mas info en el primer post. A ver si consigo enganchar muchos retro-fans :)
  3. Siempre que le "toques" a alguien su propiedad tu obligacion es contactar y ver si te deja, si no te deja pues nada, te olvidas y punto. Por mucho que lo hagas por "amor" o porque lo pienses poner gratis no cambia que esa persona dispone de los derechos y decide si te deja usarlo o no.
  4. Eskema

    Unity en MAC

    Pues lo dicho por Manu, para hacer una build mac para Steam por ejemplo NO necesitas un ordenador mac. Solo necesitas un mac para subirlo a la mac store por el tema de licencias y certificados y demas cosas.
  5. por paquete con el asset creado me refiero a descargar un asset bundle creado en unity con tus modificaciones de prefabs o lo que sea. Si lo que has cambiado es codigo no hay nada que hacer, puesto que el codigo se compila y forma parte del todo. No se puede adjuntar un script y esperar que funcione.
  6. No la hay, salvo que tu juego este programado para ello. Es decir que se actualize online y no via android, como por ejemplo juegos de Gameloft. Es decir, al abrir el juego se comprueba la version y si es distinta te bajas un paquete con el asset que has creado en unity con los datos nuevos, o prefabs o lo que sea. En caso contrario, tu sistema es correcto, haces una build y por tanto se sube un ejecutable nuevo, y se descarga entero....
  7. Eskema

    Delta Squad

    Gracias mil por los animos :) He tratado de que sea un juego divertido de jugar, mas que interesante (en cuanto a que no hay una super historia, ni narrativa ni cosas de esas). He puesto el foco en la jugabilidad y hasta la fecha todos los testers han disfrutado. Asi que espero que quien lo comprelo disfrute igual :)
  8. Eskema

    Delta Squad

    Pagina de Steam lista para la acción, ya se va acercando la fecha de salida.... :)
  9. Las marcas (todas) no quieren que nadie ensucie su imagen, por eso les explicas de que va tu proyecto. Y normalmente te dicen que ni de blas o te ignoran. Por ejemplo en el juego gran turismo de psx no habian colisiones porque muchas marcas no querian ver sus coches dañados, asi que los impactos no tenian consecuencias como tal.... Normalmente para que una marca te venda derechos necesitas mucho dinero y fama, si eres nuevo te puedes ir olvidando del tema por completo en la mayoria de casos. Eso si, no se te ocurra poner las marcas reales alegando que "les contacte y no me respondieron" o cualquier otra cosa similar, pues a la hora de denunciarte no se lo pensaran 2 veces....
  10. En principio NO, cualquier cosa esta registrada. Debes contactar con cada marca y exponer tu caso, "es un proyecto sin animo de lucro, solo quiero poner los datos bla bla bla", y te diran si acceden o no. Normalmente su respuesta es no, pero tu obligacion es probar y contactar con ellos.
  11. Hay gente para todo, a mi no me gusta que me envien un correo diciendome que el video es una mierda porque la implementacion es muy chapucera y el sistema tal o cual la implementa mejor, o emails pidiendome el codigo como si yo tuviera alguna obligacion de compartir nada.... Es frustrante.... Cada personaje tiene su clase, con lo cual cada clase es para cada personaje y no se comparten datos. Yo NO uso scriptable objects, me gusta mas hacerlo con ficheros json que se parsean muy bien y los tengo agrupados y mejor organizados que los scriptables. Ademas asi me son "multiplataforma" y me los llevo a otro engine que usa C# sin depender de un scriptable. Volviendo al tema. Tu tienes tu gameobject con su clase personajeManolo y asi con el resto de personajes, cada uno es su gameobject y su clase. Y cada uno accede a SUS datos, nadie ve los datos de nadie. Lo que se suele hacer es tener un controller/manager que gestiona esos personajes/enemigos y los tiene en una lista Un ejemplo de fichero json seria este: { "Characters": [ { "NameId": "Knight_Blue", "Name": "", "PortraitName": "portrait_1", "ClassName": "Archer", "Race": "HUMAN", "Gender": "MALE", "ChanceToDieInQuestOrTravels": 70, "Attributes": [ { "Value": 2, "MinValue": 1, "MaxValue": 20, "IncreaseStep": 1, "AttributeType": "Addition", "ClassName": "AttackAttr" }, { "Value": 3, "MinValue": 1, "MaxValue": 20, "IncreaseStep": 1, "AttributeType": "Addition", "ClassName": "ConstitutionAttr" }, { "Value": 4, "MinValue": 1, "MaxValue": 100, "IncreaseStep": 1, "AttributeType": "Addition", "ClassName": "MovementAttr" }, { "Value": 80, "MinValue": 1, "MaxValue": 100, "IncreaseStep": 1, "AttributeType": "Addition", "ClassName": "AgeAttr" }, { "Value": 10, "MinValue": 1, "MaxValue": 100, "IncreaseStep": 1, "AttributeType": "Addition", "ClassName": "DefenseAttr" }, { "Value": 20, "MinValue": 1, "MaxValue": 100, "IncreaseStep": 1, "AttributeType": "Addition", "ClassName": "MagicAttr" }, { "Value": 1, "MinValue": 1, "MaxValue": 100, "IncreaseStep": 1, "AttributeType": "Addition", "ClassName": "MoraleAttr" }, { "Value": 4, "MinValue": 1, "MaxValue": 100, "IncreaseStep": 1, "AttributeType": "Addition", "ClassName": "StealthAttr" }, { "Value": 4, "MinValue": 1, "MaxValue": 100, "IncreaseStep": 1, "AttributeType": "Addition", "ClassName": "MovementAttr" }, { "Value": 100, "MinValue": 1, "MaxValue": 100, "IncreaseStep": 1, "AttributeType": "Addition", "ClassName": "HealthAttr" } ], "Skills": [ { "Value": 2, "MinValue": 1, "MaxValue": 20, "IncreaseStep": 1, "AttributeType": "Addition", "ClassName": "PerceptionSkill" }, { "Value": 3, "MinValue": 1, "MaxValue": 20, "IncreaseStep": 1, "AttributeType": "Addition", "ClassName": "ArmorWeaponSkill" } ] } ] } Ahi dentro defino TODOS los personajes de mi juego y les pongo los stats/atributos que me da la gana. No configuro nada desde unity. Todo se hace via fichero, asi el designer o quien sea solo modifica este fichero y no me afecta al proyecto. En cualquier caso, lo dicho, cada personaje tiene su lista de atributos y la clase modifiers que guarda una lista de atributos modificados. Si te fijas hasta la salud es un atributo (HealthAttr) y cada vez que me pegan le añado un modificador de Health con daño negativo porque es la "salud" que me quitan. Una vez recibido el golpe y añadido el modificador lo que hago es recorrer la lista para saber cual es mi nivel actual de salud, por si el personaje ha muerto. Y lo mismo con cualquier otro modificador o atributo. Esto es un sistema que requiere tiempo para interiorizarlo y entenderlo, pero una vez le pillas el truco te das cuenta que no puedes vivir sin esto XD Porque tu codigo deja de depender de ifs, haces un if en tu funcion void RecibeDaño(int daño){ //creo un modificador de salud con el parametro negativo del golpe que me dan //recorro mi lista de modificadores para que me diga el total de salud que tengo //si el personaje muere pq no tiene salud me encargo de llamar desde aqui a quien corresponda } asi no hay if (salud < 0) etc, etc, etc en el sentido de que no tengo una variable llamada salud, tengo un atributo que tendra modificadores o no
  12. Me suena (no me hagas mucho caso) que el plugin de mixamo estaba deprecated o eso lei hace algun tiempo, tal vez por eso ya no funciona como debe. Pero esto es algo viejo, lei esa noticia hace tiempo, pero no le segui la pista para ver como terminaba la historia con mixamo y su plugin.....
  13. Pues como han dicho por aqui, tienes que escribir un sistema de attributos y que tus personajes lo usen. Mi sistema ya no es publico dada la cantidad de emails negativos y feedback que recibi, tome la decision de que no valia la pena tener cosas publicas. Por ejemplo mis personajes NO tienen la tipica clase: class Personaje{ int fuerza = 5; int defensa = 0; } etc,etc. En su lugar tengo una clase attributo de la que heredo cada stat y el personaje tiene una lista de esos atributos: class BaseAtributo{ float value = 0f; float minValue = 0f; float maxValue = 0f; } y Sobre esa clase heredo class Attack : BaseAtributo{ } class Defense : BaseAtributo{ } class Movement : BaseAtributo{ } Ahora mi personaje es class Personaje{ List<BaseAtributo> atributos = new List<BaseAtributos>(); } Con lo cual solo debo loopear la lista y ver que atributo tengo y cual quiero gastar. A esto solo le añades un sistema de modificadores, que no son mas que los atributos que modificas. class Modifiers{ List<BaseAtributo> modificadores = new List<BaseAtributo>(); //bla bla metodos aqui para devolver un valor basado en el tipo con reflection } Tu personaje ahora tiene: class Personaje{ List<BaseAtributo> atributos = new List<BaseAtributo>(); Modifiers modifers = new Modifiers(); } Y cualquier modificador lo pones en la lista. Luego recorres la lista de atributos del personaje y los comparas con los modificadores para ir sumando su valor actual y saber que su fuerza original era 10, y la modificada (por cualquier modificador) es ahora por ejemplo 13. Los modificadores les pones tiempo o turnos segun tu juego para que se desactiven pasado un tiempo, o permanezcan activos siempre, por ejemplo un anillo que me da +1 de ataque y estara activo hasta que me deshaga del anillo. En algun sitio de tu codigo de clase personaje o controller tipico tendras algo como float GetCurrentAttack(){ float value = 0f; foreach (BaseAtribute attr in atributos){ foreach(BaseAtribute modifier in modifiers){ if (modifier.typeof(Attack) && attr.typeof(Attack)){ value = attr.Value += modifier.Value; } } return value; } Y asi devolveras el valor que sea que tenga el atributo Attack. La clase Modifiers es la que se encarga de mantener una lista de los modificadores, con lo cual haces funciones en esa clase para devolver el valor del tipo que quieras pasado por reflection, y luego se lo sumas a tu valor y sabes que tienen sus stats. Lo mismo vale para si un estado es veneno, veneno solo quitaria vida durante X tiempo, con lo cual es un modificador del atributo Vida, y sera tipo value -= 2; Asi en este caso tu atributo vida iria bajando de valor cada vez que lo compruebes hasta que el veneno se desactive porque termine su tiempo. Todo esto es pseudo codigo, no copies y pegues tal cual..... Espero que te de una idea mas o menos de como hacerlo.
  14. ¿Habeis probado a exportar ese fbx desde blender?, por descartar como dices que sea algo de 3d max. Con las diferentes versiones del plugin exportador de fbx existentes lo mismo es que mixamo ha puesto una nueva y al importar desde una version vieja se ralla, o viceversa.
  15. Eskema

    Dudas

    Es el rollo de siempre, si lo usas para produccion seria porque vives de hacer juegos, entonces mejor no tocar ni con un palo el ECS por el momento. Si haces esto por hobby pues no esta de mas ir dandole cera. El ECS supone un cambio mental muy importante al ser puros datos. Nos olvidamos de herencias que impliquen mas de 1 nivel como maximo desde la clase base (por ejemplo clase personaje, y heredas player y enemigo desde personaje, nada mas. Y aun con eso no se deberia usar esa forma de programar)
×
×
  • Create New...