Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411507 Posts in 69374 Topics- by 58429 Members - Latest Member: Alternalo

April 26, 2024, 01:54:57 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsPack [ Diablo + Pokémon ]
Pages: 1 [2] 3
Print
Author Topic: Pack [ Diablo + Pokémon ]  (Read 6312 times)
arturoblanco
Level 0
***


View Profile WWW
« Reply #20 on: August 11, 2019, 02:49:20 AM »

I keep adding sounds:





It is actually a good display of the current gameplay we have. I am starting to consider updating th first post in the page.
Logged
arturoblanco
Level 0
***


View Profile WWW
« Reply #21 on: August 31, 2019, 09:38:42 AM »

I have been working on new functionality. There is a "lair" that acts as the operational base for your pack. From the lair the player can manage his pack of creatures, craft items, and talk to NPCs (non-playable creatures hehehe), I plan to put a trailing camera going back and forth to different parts of lair as a form of inmersive menu.

I set up a placeholder cave and started working on the pack management menu. Here the player can choose his creatures, equip them, morph them into new forms if they are ready, and select which skills to learn or discard.

It features simplified information displays, for which I modified the display scripts I already had to be more flexible and only display information for which they have an available "container" and ignore otherwise. I am not very confident on this kind of approach: On one hand it prevents crashes, but on the other hand if some references are not set the script is not going to display the information and the only way to notice it is checking it directly. Maybe search for every display using names would work better.

Right now I got the pack selection ready, with buttons to swap creatures from the stored ones.



« Last Edit: August 31, 2019, 09:46:30 AM by arturoblanco » Logged
arturoblanco
Level 0
***


View Profile WWW
« Reply #22 on: September 07, 2019, 02:46:07 PM »

Well this week I am kind of frustrated because seemingly simple things took me quite an effort, but sometimes that's just the way things are.

I have been working on a transition to showcase when the creatures morph (evolve in pokemon lingo). I wanted to isolate the creature from the environment by making everything but the creature itself fade away and position it in the middle of the screen.

Since I am not very good with shaders, I had to use kind of a hack. It involves modifying a common method to fade in and out to a solid color or image.

Preparations:
1- Create one layer for whatever you want to isolate.
2- Make main camera display that layer.
3- Create two new cameras that will display only that layer.
4- Create a render texture and assign it to one of the new cameras.
5- Create a gui texture (make sure it is painted over all other UI) and display the render texture there.

On runtime:
1- Activate both the render texture gui (with a zero alpha color multiplier) and the render texture camera.
2- Lerp that alpha until it reached total opacity.
3- Deactivate the render texture and the render texture camera, activate the other camera that only renders the new layer.

Small variations can be made (instead of using a third camera at the end, just change the layer mask of your main camera, etc) but you get the idea: Use the alpha of a render texture to slowly transition from a camera with most layers to other with other flags.



Also I lost a lot of time trying to make a drawer for a dictionary (unity inspector does not support those). I finally gave up and just created a class with a list of structs (the structs were complised of the key field and the value field). Then I created all functions and operators to make it work like a dictionary.

Code:
[System.Serializable]
public class EssenceValue
{
    public Species species;
    public int amount;

    public EssenceValue( Species define_species, int define_amount = 0)
    {
        species = define_species ?? throw new System.ArgumentNullException("The species is used as an index and as such can not be null");
        amount = define_amount;
    }
}

//
// The whole class is a list wrapped as a dictionary so it appears in the inspector
//
[System.Serializable]
public class EssenceInventory
{
    [SerializeField]
    private List<EssenceValue> essences = new List<EssenceValue>();

    public int this[Species speciesIndex]
    {
        get { return essences.Find(x => x.species == speciesIndex).amount; }
        set
        {
            for (int i = 0; i < essences.Count; i++)
            {
                if (essences[i].species == speciesIndex)
                {
                    essences[i].amount = value;
                    return;
                }
            }
            throw new System.IndexOutOfRangeException( "The species used as essence key was not found on the list of essences of the inventory" );
        }
    }

    public void Clear()
    {
        essences.Clear();
    }

    public void Add ( Species species, int amount )
    {
        if ( ContainsKey(species) )
        {
            throw new System.ArgumentException("Essence type already exists in the inventory");
        }
        else
        {
            EssenceValue newEssenceValue = new EssenceValue(species, amount);
            essences.Add(newEssenceValue);
        }
    }

    public bool Remove( Species speciesToRemove )
    {
        return essences.Remove(essences.Find(x => x.species == speciesToRemove));
    }

    public bool ContainsKey( Species species )
    {
        EssenceValue foundEssence = essences.Find( x => x.species == species );

        return (foundEssence != null);
    }
}

I might turn it into a template to use with different types in the future.
Logged
arturoblanco
Level 0
***


View Profile WWW
« Reply #23 on: September 13, 2019, 02:54:39 PM »

I have been working on the morph animation and FX this week and boy is it being quite a ride.

First I wanted to make a dissolve shader by height, but I am not good enough with shaders so I think "Hey, didn't unity release one of those node shader builders a year or two ago?" So I start trying to use Shader graph, but it requires you to use the scriptable render pipeline and the lightweight or the HD package, so I install those too and when I try to assign the profile to the pipeline configuration unity crashes. So I try unstalling and installing again, then I learn that everything must be the same version, then I update unity from 2019.1 to 2019.2 and try downloading everything again and this time shader graph works and I start trying things and I add a particle effect and it goes like this:





It is the shader plus a particle effect emmiting from the geometry.
And I think "this is going well", but how do I bring the particles into the new geometry? And I remember trying this a couple of years ago and aparently it requires you to take control of the particles manually from a script.

Then there is the outline, shadergraph is designed in such a way that it doesn't seem posible to add a subshader or another pass to draw an outline like it is done in shaderlab, duplicating the geometry, moving the vertex along their normals a set distance, inverting normals and painting solid color. Then again I don't use the outline much. I could just put this effect on another gameobject. I seems better for performance when the outline is not being used but more messy in terms of game logic.

And lastly all the starndard shaders and shaders I made in shaderlab stopped working because they were not compatible with the new render pipeline, but there is a menu option to change the shaders in the materials of the project, but I tried it and it didn't work. So I told myself "No big deal, just filter the assets to get the materials and change one by one, but then the references to the textures were lost and I had to figure out how the lightweight render pipeline particle shader works to configure it properly and I still have some materials that work funny and a couple of nastly looking warnings when I load the project.

Right now I am thinking it will be easier to try to figure out how to do the same effect I got in shader graph with shaderlab and just revert the last 3 days. SVN revert and give me back those 3 days of my life, please and thank you.

So if there is a lesson for you dear reader it is "do not try to change render pipelines casualy, surely experienced people can pull it out pretty easily but it is not plug and play". It's not a very good lesson because "change render pipeline" already sounds like a big deal but maybe you are dumb like me and now you know better.
Logged
arturoblanco
Level 0
***


View Profile WWW
« Reply #24 on: October 04, 2019, 08:27:47 AM »

The unity legacy toon shader does not work with hdrp and I was using the outline effect, so I had to replicate it in shader graph. It is relatively simple, here you have a tutorial complete with mic background noises and a preface now I realize no one would want to listen.



Logged
arturoblanco
Level 0
***


View Profile WWW
« Reply #25 on: October 05, 2019, 07:28:02 AM »

During the past few weeks I have been doing the "reintegrating" part of the "morph" effect. I had to do some custom stuff to the ParticleEmitter and to create custom shader for it too.

Many times before I wanted to "integrate" particles into a mesh and had to give up, which is frustrating since the unity3d particle emitter makes irradiate paricles from a mesh very easy. And not, it doesn't play backwards.





I started feeding the psystem the positions of the particles via a C# script. This takes a bit of an effort but works, the problem is that it is very taxing on the CPU. The next step then is, of course, move that work to the GPU though the use of a shader.

Using Custom Vertex Streams, the particle system can feed certain information to the shader, then the shader lerps the position of the particles between the positions where the particle system "thinks" they are and the mesh vertex positions:

Logged
arturoblanco
Level 0
***


View Profile WWW
« Reply #26 on: November 19, 2019, 08:35:42 AM »

Over the last month I have been working on putting all the pieces of the game together.

I added a save/load system, a main menu, created scriptable objects to store the information of areas (the creature pool for that area, the average level, the type of scenery) and other stuff I honestly can not remember.

I updated the original post because the game has changed significantly since I made it last year, and most gifs have been deleted an are broken links. Current state of the game in this video:





I would like to announce that a demo would be ready for anyone to test by january 2020, but sadly the 3d assets of the creatures are going slower than I anticipated and I dont think there will be enough ready by that time.
Logged
arturoblanco
Level 0
***


View Profile WWW
« Reply #27 on: November 30, 2019, 12:01:56 PM »

This week I wanted to complete the "capture and use creatures" cycle. However, this required some configuration in the enemies to generate all the information for an "Specimen". I decided that, instead of working in configuring enemies and player creatures independently, it would be nice to make the enemies set up themselves from a "Specimen" object, like the player creatures do. So the Specimen object is created by the enemy spawner and the passed to the actual in-game GameObject, and all the components configure themselves using that specimen information.

This makes a lot of sence from a task division perspective: if you are the component in charge of the creature HP, you take the specimen information, check out the level it has, the stamina of its species, the stamina from genotype and phenotye and say "ok, this is my maximum HP" instead of the enemy spawner telling you that directly.

Since all enemies have its own specimen associated, when one is captured I just have to add that specimen to the list of stored creatures and it is done. One can return the lair and, in the creature management screen, select an slot in the active pack and put the stored Specimen there. Then, when going in the wilds again, that specimen is used to create the player creature, that the player can of course move around and command to attack.



Logged
arturoblanco
Level 0
***


View Profile WWW
« Reply #28 on: December 14, 2019, 11:33:44 AM »

Last two weeks I have been working on:

Air slash effect (and skill):


I created these 3 versions and though the best looking when inmovile is the one in the middle, I actually decided to use the one on the right because it looks smaller and not so flashy.

They have 2 two parts (the one in the middle has an extra one for the black part). All are displayed over geometry shaped like an axe head. With that the effect has a curve that does not need to be built into the shader, and a width that a plane or a "trail renderer" can not give. I wanted the front to look sharp so it has a solid white color. There are similar effects on other games where this front is itself formed by "lines" sliding though the geometry that make it look more "ethereal", I decided I wanted a more solid and small look.
The second part is a shader made with shader graph that looks like this:



Next up, some UI stuff:

Minimap: This is pretty standard and there are plenty of tutorials to get something like this. The map background is a "render texture" hooked to a camera that displays only player and terrain layers. There is no fog of war and no map rotation and I would like to create this "map" image at run time, displaying only walkable and impassable areas. Maybe getting an screenshot of the navmesh somehow. But it is good enough for now.




Mini health bars: I am reusing my health bar script for this(thank heavens I foresaw I would need to put health and mana and exp bars everywhere and made it very flexible). There is a singleton in the GUI that hooks a function to the "OnHealthChanged" event of every enemy spawned. I am not very sure if this is good architecture, the other option I considered was the health script calling to this function "manually", and it seemed worse to have explicit references to the gui on the creature behaviours. Like, I could delete this feature tomorrow and the health script wouldn't even notice. The enemy spawner would, however. Maybe I should create an "EnemySpawnedEvent" there too.

Improved mouseover info at the top: Now the mouseover info area at the top shows a little nice the health of the enemy under the mouse cursor, along with its tier, its species' name and its level.

Both features in this mini-video:




The thing I spent more time on and which does not produce flashy videos or gifs: An improved "buff/debuff" (I call those "modifiers") system. This includes conditions on the user creature, its skills and the target creatures. It allows designers (by designers I mean myself, Cheesy) to create on the unity inspector passive effects for passive skills (and for equiped items in the future). Stuff like:

-X% more damage from basic skills on enemies of tier "fine" or higher.
-Increased critical chance for 10 seconds after regaining consciousness.
-When energy goes below x%, have y% extra mental defense.

So, very powerful Hand Metal Left. I am still not very satisfied with the implementation however, seems messy and difficult to debug and maintain. I also have to add more conditions and effects.


Finally I had a meeting with our graphics artist and she said she will have more spare time on january so we are likely to have enough assets to launch that demo on late february or march Smiley
Logged
Excy
Level 2
**



View Profile
« Reply #29 on: December 18, 2019, 01:46:54 AM »

Massive pokemon fan and a diablo fan. Just wanted to say it looks cool so far, I'll try remember to check back in january for the demo. Nice work. Coffee
Logged

arturoblanco
Level 0
***


View Profile WWW
« Reply #30 on: December 18, 2019, 09:45:20 AM »

Massive pokemon fan and a diablo fan. Just wanted to say it looks cool so far, I'll try remember to check back in january for the demo. Nice work. Coffee

Thanks for your interest! You can also follow us on twitter where I post updates most frequently https://twitter.com/feitizogames
Logged
arturoblanco
Level 0
***


View Profile WWW
« Reply #31 on: December 29, 2019, 07:30:51 AM »

This week we have been collaborating with Arne Stops, who composed a couple of tracks for the game:





I still have to make some adjustments to the music manager to be able to play an intro section of an audio file only once and then loop the rest.
Logged
arturoblanco
Level 0
***


View Profile WWW
« Reply #32 on: January 11, 2020, 07:27:47 AM »

This week I have been implementing the "select initial packling" screen.





Now I am refactoring all the scripts that manage the information that carries on from game to game and working around some of their problems, so expect a bit of a heavy code update in the next days.
Logged
arturoblanco
Level 0
***


View Profile WWW
« Reply #33 on: January 29, 2020, 02:34:51 AM »

The refactoring didn't went as spected because I misunderstood some c# functionality so I mostly rolled it back.

I have been working on the desert environment since:





I am also doing the final tweaks to release the demo and the animation artist has been really active. You will probably notice some more creatures in the video above, though they are still work in progress.
Logged
arturoblanco
Level 0
***


View Profile WWW
« Reply #34 on: February 08, 2020, 11:28:37 AM »

Everything is going according to schedule and I am thinking about putting the demo out in a week or two.

I am currently working on bug solving and designing and adding new skills for the creatures. Thanks to the hard work I put in the skill system earlier, I can create new skills mostly in the inspector. There is still a lot of room for improvement in that system (I would like to refactor it so everything a skill does is an "effect", which would allow me to mix and match more freely, and also improve how the inspector is displayed and filled) but I am pretty proud of how it works now. This is what the inspector it looks like:


Lastly, have a couple of creature apreciation videos  Kiss





Logged
arturoblanco
Level 0
***


View Profile WWW
« Reply #35 on: February 23, 2020, 10:10:21 AM »

Hello everyone, we have a demo available, check it out!:

https://feitizogames.itch.io/pack

We are finally releasing a playable demo/prototype with only what we consider core features:
  • Basic combat.
  • Creatures that level up, learn new skills and morph (evolve) into new forms.
  • The hability to capture new creatures and play with them.

Features that will be added in the future:
  • Items to equip, learn new skills, train certain stats, etc.
  • A crafting system for said items.
  • Skills that level up and get added perks.

Hope you enjoy this slice of the game we are making, be sure to follow us if you do!
Logged
arturoblanco
Level 0
***


View Profile WWW
« Reply #36 on: March 01, 2020, 06:39:15 AM »

This week I have been working on polishing and adding functioality to the UI:

-Now it highlights the selected packling and skills being targeted.
-Also, packlings can be selected clicking on the portraits and skills can be used clicking in their icons.



Logged
arturoblanco
Level 0
***


View Profile WWW
« Reply #37 on: March 08, 2020, 02:28:22 AM »

This week I have been working on the item system.

I have created a "CreatureEquipmentManager" for each creature to, well, manage the equipment Shrug Equip (adding the apropiate scripts to the gameobject), unequip and that sort of thing.

Also I have added a display to the creature status screen. Next step is setting everything in the UI so the player can equip and unequip.



Logged
arturoblanco
Level 0
***


View Profile WWW
« Reply #38 on: May 10, 2020, 03:05:38 AM »

The item and crafting system is giving me a hard time and for the first time I am doubting my ability as a developer. Still, things are advancing and I can now load and save both the inventory contents and the equipped items on the creatures. Also, those  items have the appropiate effects on the creature stats.





As you can see, I have updated the looks of the Lair.

Also, the support initial creature morph line is completed with its 3 forms :D



Logged
arturoblanco
Level 0
***


View Profile WWW
« Reply #39 on: June 27, 2020, 07:09:42 AM »

Finally the core of the crafting system is ready, though I will probably refactor it in the future because I am not very satisfied with the implementation architeture-wise.

But now the player can scrap items to gather currency and craft equipable items.

I have also made a video showcasing the game's features:




Take a look and share if you like it!
Logged
Pages: 1 [2] 3
Print
Jump to:  

Theme orange-lt created by panic