Search Unity

Eitr - Gameplay Video - Action RPG [ Isometric Pixel Art ][New Trailer]

Discussion in 'Works In Progress - Archive' started by Aedous, Aug 7, 2014.

  1. Aedous

    Aedous

    Joined:
    Jun 20, 2009
    Posts:
    244
    Thanks! I'm actually using A* Pathfinding Project by Aron Granberg, it's also free and comes with a paid version. It was the only path finding project I could find that worked well with 2D. You should check it out if you're trying to do some pathfinding in a 2D project.
     
    PhoenixRising1 likes this.
  2. PhoenixRising1

    PhoenixRising1

    Joined:
    Sep 12, 2015
    Posts:
    488
    Thanks for the reply and keep up the good work :).
     
  3. Kona

    Kona

    Joined:
    Oct 13, 2010
    Posts:
    208
    :) It looks really awesome! I Love the artwork and the gameplay look really enjoyable, looking forward to give it a try when it's released!
     
    Aedous likes this.
  4. theANMATOR2b

    theANMATOR2b

    Joined:
    Jul 12, 2014
    Posts:
    7,790
    How are the sprite sheets handled / laid out for 'one off' character animations - like the animated levers?
    Are they included in the character sheet with the leaver included - or a separate sheet to animate the levers when triggered, or timed character and leaver animations that trigger at the same time?
    Thanks for the info and keep up the awesome work.
    Second zenGardens suggestion - pictures & gifs from time to time, even with no text we will be happy.
     
    Aedous likes this.
  5. Aedous

    Aedous

    Joined:
    Jun 20, 2009
    Posts:
    244
    Haha! Will keep up the picture content :).

    The character just has a set of animations that she can do, and for using the Lever I position the character in the exact spot you need for her to use the lever and then trigger both her animation and the lever animation at the same time. Depending on what state the lever is at will determine what animation she and the lever will play, the positioning is always at the same spot.
    Even though it would be nice if she walked up to the lever position, but I feel that it's not really necessary, because of the time you have to wait for her to get to the spot before she uses the lever, plus.. I've seen games automatically snap you in the correct position so hopefully won't get too much grief about it :).
     
    NomadKing and theANMATOR2b like this.
  6. Aedous

    Aedous

    Joined:
    Jun 20, 2009
    Posts:
    244
    Some more pictures (or picture) for you guys :).


    "All men must die" - Sigurd, slayer of Fafnir.

    We've still been working hard on adding new things to the game. Just to catch up we've now got:

    Shop System, including a Shop Inventory - The shop has it's own static inventory that will always be in the shop, but every hour or so the shop will have random items in there for you to buy. We're hoping that will make the shop a little bit more interesting.

    Salvaging - Salvage the items you found to get some materials back to trade in the shop.

    Loot Tables - Better management of are loot, so we can clearly state what type of loot should be dropping where and so on.

    Randomly Generated Skill Trees - *prototyped* and getting ready to flesh it out some more.

    Pretty much been working everyday on these things, and so glad we were able to get the randomly generated skill trees out of the way :p...well nearly out of the way.
    Next will be randomly generated maps which I'm hoping I'll be able to use the node system I built for skill trees to create map sets to help assist with procedurally generating them.
    Will post some more about all these systems once I get everything where I want it to be.
     
  7. Schneider21

    Schneider21

    Joined:
    Feb 6, 2014
    Posts:
    3,512
    This is normally where I'd say "Shut up and take my money!"

    However, I love the content you're posting. It's a rare opportunity to get to watch a game of this quality being created, and I'm confident Eitr will end up being one of Unity's shining examples of what can be done with its engine.

    Great work so far, obviously. Add another excited follower to your game's progress.
     
    ModLunar and theANMATOR2b like this.
  8. dogzerx2

    dogzerx2

    Joined:
    Dec 27, 2009
    Posts:
    3,971
    OMG it's Eitr! Should have known this game was being made in Unity!

    The character is awesome, I love the overall mood of the game.
     
  9. Aedous

    Aedous

    Joined:
    Jun 20, 2009
    Posts:
    244
    :eek:.. thanks for the kind words, glad to know we have someone who thinks highly of the project! We're trying our best to make the game all we want it to be.

    Thanks man! yes it's being made with Unity, just getting the hang of making editor tools for the game, that's probably my favourite feature about Unity.. amongst other things ;)
     
    ModLunar and dogzerx2 like this.
  10. TheShmoJoe

    TheShmoJoe

    Joined:
    Dec 30, 2015
    Posts:
    1
    Where do I find a tutorial for this art style??? I want to learn it!!
     
  11. Aedous

    Aedous

    Joined:
    Jun 20, 2009
    Posts:
    244
    Haha, it was heavily inspired by the super brothers game and it seemed to have just evolved from when we first started, including an unmeasurable amount of practice lol :p
     
  12. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,363
    Stunning art style :)

    Do you paint this directly or use 3D first and paint on top or use some automated dithering technique ?
     
    Aedous likes this.
  13. Aedous

    Aedous

    Joined:
    Jun 20, 2009
    Posts:
    244
    All by hand, if there was a quicker way to do it that would be so awesome because they do take quite some time, but our wish has not been granted by the pixel art gods :(.
    Some stuff like doors or circular objects are made in 3D first and then given a once over to make them fit in the game.
     
  14. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    Marrt and Martin_H like this.
  15. StarGamess

    StarGamess

    Joined:
    Jul 21, 2014
    Posts:
    179
    Not sure if you knew already but you are featured in a video of IGN "Games to keep on your radar in 2016".

    You are somewhere in the beginning. Always nice to see games made with unity in these videos!
     
    nasos_333, dogzerx2 and NomadKing like this.
  16. Aedous

    Aedous

    Joined:
    Jun 20, 2009
    Posts:
    244
    :eek:... that is pretty awesome! thanks for the link, I had a look at it and I think it will still require us to go do another pass on the sprite just to make it match the style we are going for (especially for the amount of detail that goes into sprites). Thanks for the link tho ;)

    Ah yes, I saw this up on twitter, was really a jaw drop moment to be featured on IGN as the game to look out for in 2016.
     
  17. PhoenixRising1

    PhoenixRising1

    Joined:
    Sep 12, 2015
    Posts:
    488
    I knew your game would be on there, otherwise would be a crime :). Grats on the achievement.
     
    Aedous likes this.
  18. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    Yes you can do as many passes as you want or add effects, but the bigger work that is making the base sprite is done for you. And you could work faster, make more animations and use more detailled sprites (less pixel block look), perhaps for the sequel :D
     
  19. Aedous

    Aedous

    Joined:
    Jun 20, 2009
    Posts:
    244
    Haha, yep perhaps for the sequel.. would truly prefer to go full 3D because of the advantages it gives you compared to working with purely 2D.
     
    theANMATOR2b likes this.
  20. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    You will be in competition with Dark Souls 3 , you will better have good ideas or unique world an gameplay.
     
  21. PhoenixRising1

    PhoenixRising1

    Joined:
    Sep 12, 2015
    Posts:
    488
    People will want to play both I think - can never have too much of those kind of games. But yeah, something has to be unique about your game (which it already is with the focus on random loot for example), and your style really sets it apart.
     
    Last edited: Jan 11, 2016
  22. OneVoxel

    OneVoxel

    Joined:
    Jan 6, 2016
    Posts:
    4
    I can't wait to play this game! :)
     
  23. Aedous

    Aedous

    Joined:
    Jun 20, 2009
    Posts:
    244
    Yep, those guys are on another level, hopefully with time we can at least reach their potential of games :).

    Thanks! yep random loot was a major thing we wanted to have in the game to make us different from other Souls Likes, it was something that I would have loved to have in the bloodborne/dark souls games. Just makes the loot hunting a bit more exciting in my opinion.

    Thank you! we're working hard on making it as good as we can so you can get your hands on it.
     
  24. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    I don't think you can beat a big studio until you have one as big ?
    I think you can still make a great difference using some unique medieval universe with unique features, if you check "CRYPTARIUM" game, it is like Dark Souls but it has unique features and it's own mood and some unique game mechanics.
     
  25. Aedous

    Aedous

    Joined:
    Jun 20, 2009
    Posts:
    244
    Nah course not, not at this stage anyway, but we're hoping we grow into their kind of studio or even Blizzard, that's way off in the future though :D.

    Anyone tried out the new Unity 5.3 (latest patch release) and found any issues that have popped up? I'm really interested in the particle scaling system and also the JSON utility it provides, hopefully it can help me create a save game system that works on PS4 :).
     
  26. aleph thiago

    aleph thiago

    Joined:
    Jan 27, 2016
    Posts:
    1
    Gorgeous game, i am too fascinated with battle maidens.
     
    Aedous likes this.
  27. Aedous

    Aedous

    Joined:
    Jun 20, 2009
    Posts:
    244
    Thanks for that, all credit goes to our Artist, you can check out most of his stuff on our Twitter.

    Just to give you guys an update, it's been a while so let's just get going...

    First off we hit 10,000 followers on Twitter, which was pretty cool! Thank you all for the support!:D


    Saving and Loading

    Finally got a custom save solution working with JSON. I'm using the new JSON tool that comes with Unity, and so far I've seen no main issues with it, and seems to work pretty fast. There needs to be some more optimization on my side but so far it does what it needs to do YAY! :)

    Leveling and Favor Distribution

    The leveling system has now been built in, including the main bulk of all the editable stats in the game. It's allowed us to get a clear idea of what leveling up feels like. It's also given us a clear direction on how stats will be distributed.


    Default Stat Window


    Manipulating your stats with favor points


    Another manipulation but this time showing the negative difference


    Gaining favor from enemies has also been implemented which works in tangent with our Alignment system. What is an Alignment? well.. it's an item that you equip, once equipped it will grant you a set of boosts to your stats, but also have a penalty that comes with it. So far, so good, these will be main our main penalty / reward system that uses favor as a catalyst. We're hoping to include some more as we go along, here's some screenshots that probably help explain it better.



    Procedural Generator

    Finally adding some extra bits to the level generator, even though I've only just added some extras today but I'm glad that the bulk of it was done quite a while ago, and now it's just beefing up the tool set. So glad that we could potentially have some procedural generated maps into the game!


    Procedural Sample 1


    Procedural Sample 2


    Procedural Sample 3
    Hoping to add more branching rooms off the paths so you don't always get that straight left to right path, but rather some offset paths that come out of rooms.

    I've also been spending a lot of time on building my own tool sets for Unity, it's now become necessary as part of my workflow to have a custom inspector or a custom window. I created a sort of "Node" editor to help assist in creating a template for particular layouts, luckily this same system was compatible with the Procedural Maps and also the Procedural Skill Trees :D. Each number represents a shape, each number can also be connected to each other to make different combinations.


    Skill Trees
    Got skill trees implemented into the game as well, which are procedural generated with every Amulet you pick up. This is probably not going to be the final way it looks, but it seems to be working quite well. All images below represent different shapes that can be produced for a skill tree. Each circular point represents a different type of stat benefit, HP Increase, Stamina Increase, Axe Damage, Defence Increase etc.




    Think that's it, there is some more stuff, but I don't think I could provide some screenshots for them, so will save them to later! ;)
     
  28. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    Amazing work is always recognized :)
    A Small demo soon ?
     
  29. theANMATOR2b

    theANMATOR2b

    Joined:
    Jul 12, 2014
    Posts:
    7,790
    Yes please! Really looking forward to this game.
     
  30. PhoenixRising1

    PhoenixRising1

    Joined:
    Sep 12, 2015
    Posts:
    488
    Great stuff. I love reading devlogs. What's the reason you're using json over a binaryformatter? Assuming you're using it for the gameplay state saves.
     
  31. TSabos

    TSabos

    Joined:
    Mar 8, 2015
    Posts:
    94
    Resurrecting your thread because I'm betting I'm not the only dev who would pay money for the map editor / sorting used to make this game. We've attempted to create iso 2d games and I don't have the mindset to get things to the screen properly. We tried Y sorting but that's only good if you have full sized sprite buildings etc.. on walls it falls apart quickly and making colliders is very tedious. Would just like a full solution on how this is all done from art to collision to draw order ;) I don't know that the upcoming 2d preview will be of any help to do something this good.
     
  32. theANMATOR2b

    theANMATOR2b

    Joined:
    Jul 12, 2014
    Posts:
    7,790
    @Aedous - NEED! an update please. This is one of the top anticipated games on my 2017 list. :)
    I checked on steam - nothing except a bunch of teenage ramblings. Website and twitter are sparse with updates.

    Looking forward to anything you can provide on release date, update.
     
    RavenOfCode likes this.
  33. Tzan

    Tzan

    Joined:
    Apr 5, 2009
    Posts:
    736
    I see someone else has been using Dropbox for images too.
    I just spent the last 3 hours updating links all over the place.
     
  34. Samuel411

    Samuel411

    Joined:
    Dec 20, 2012
    Posts:
    646
    Might want to update the download link on the site ;)
    (Relating to his game, not this one)
     
    Tzan likes this.
  35. Tzan

    Tzan

    Joined:
    Apr 5, 2009
    Posts:
    736
    Oh krap, THANKS! :)

    Its an old build that doesn't do much anyway. I need to finish up just one last thing and make a new one, that still doesn't do much :)
     
  36. Aedous

    Aedous

    Joined:
    Jun 20, 2009
    Posts:
    244
    So that's what the hell that is :mad:, guess I'll have to go back and update all the previous posts, thanks for the heads up :).

    Hey there gotta apologise for the late updates, we've just been busy working out everything for the game. We're actually working on prototyping all the bosses in the game and also the maps in the game as most of the systems we wanted to add in the game are now in the game and ready to be messed around with.
    There will be some more updates as soon as we have something pretty to show, but most things have just been prototyped and they aren't really internet friendly haha, at least not too our standards.
     
  37. Tzan

    Tzan

    Joined:
    Apr 5, 2009
    Posts:
    736
    I found this out yesterday.
    https://www.dropboxforum.com/t5/Sha...-support-of-public-folder/td-p/197906/page/53
    See post by Rich (super user).

    Instructions:
    There is no need to change where your file is located.
    Right click on a file contained in your computer's Dropbox folder.
    Click on "Copy Dropbox Link", it copies to the clipboard.
    This automatically flags that file as "shared" on the Dropbox site.
    The link has by default this extension: ?dl=0

    ?dl=0 takes you to the Dropbox preview page. It tries to display the file if possible. A .zip file will show a "Download" button.

    ?dl=1 forces a file to download (even an image file). It puts up the usual download panel.

    ?raw=1 forces the file to render in the browser. This replicates the behavior of the old Public Folder system. Except now EVERYONE can do it ( I assume, I havent checked with anyone yet ).

    So just edit the extension to be the type you need.

    In all the emails they sent they never mentioned the raw=1 method. It is in a faq file here:
    https://www.dropbox.com/help/201

    I think this is a hidden help page, I cant see how anyone could navigate here from the normal help area.

    https://www.dropbox.com/help/167
    This page shows a few things, but the link it makes is dl=0 and no mention or link to the page that talks about raw.

    I seriously think they dont want anyone to know about raw, or they have brain dead help file makers.
     
    Last edited: Mar 20, 2017
    Aedous and theANMATOR2b like this.
  38. Not_Sure

    Not_Sure

    Joined:
    Dec 13, 2011
    Posts:
    3,546
    I know I'm reaching back a bit here, but I was watching this animation and thinking that it looks a little off.

    Might I suggest having the items rotate in the air then have the light effect turn on when they hit the ground?

    It currently looks unnatural and awkward.
     
    zenGarden and Aedous like this.
  39. Aedous

    Aedous

    Joined:
    Jun 20, 2009
    Posts:
    244
    You know what you are absolutely right haha, it should be only light up when it actually hits the floor. We actually are deciding to see if we can make them a bit more obvious because some people who played it can't tell the difference between the colours, even though it's right there :D
     
  40. Not_Sure

    Not_Sure

    Joined:
    Dec 13, 2011
    Posts:
    3,546
    Hope my suggestion helped.

    If you guys are ever looking for a good play tester I'd be happy to help.
     
    Aedous likes this.
  41. Aedous

    Aedous

    Joined:
    Jun 20, 2009
    Posts:
    244
    Just a small thing I'm working on, read on if you'd like to get into the technical stuff of how I'm doing things!

    So when prototyping the enemies in the game I noticed there would probably be a point where a character can do an animation and then grant himself a buff or even grant his allies a buff or even add a debuff to a character. The old way I was working with buffs was pretty limited as every new idea for a buff has to be created via code.

    I was doing stuff like this:
    Code (CSharp):
    1. public enum StatusEffect
    2. {
    3.   LightningBuff,
    4.   FireBuff,
    5.   AttackDamageUp
    6. }
    7.  
    8. //And then somewhere else in code
    9. switch(attackStateEffect)
    10. {
    11.     case LightningBuff:
    12.     //Do Lightning Buff Stuff
    13.     break;
    14.     case FireBuff:
    15.     //Do Fire Buff Stuff
    16.     break;
    17.     case AttackDamageUp:
    18.     //Do Attack Damage Up Stuff
    19.     break;
    20. }
    First off...ewww :confused:

    There had to be a way to make it so I don't have to always write code for specific stuff to happen. So I figured might as well try something out with ScriptableObjects.. and I think we're getting somewhere ;). I've been using scriptable objects for a lot of things in the game and most of the time scriptableobjects are used as a global reference point which is absolutely fine, but in order to alter the state in game and leave the original scriptable object untouched some of them have be instantiated at run time to make them unique to that particular component.

    So how it works is by splitting everything into scriptable objects:
    1. Categories
    The sole purpose of this was to have a place where I can keep status effects organised into categories. It helps with also keeping track of what status effects are actually active, how to find them and manipulate them if need be. By using scriptable objects we can make new categories without having to dive into code. The scriptable objects are simply blank objects with nothing in them.


    2. Action

    This is where I'd be spending most of time with code, the good thing about having it this way means I'm able to create a generic action that can be applied to multiple things, so for example if I needed an action that alters the characters stats, then I just make one new Action for altering any stats, and adjust and tweak what stats / amount it takes from the inspector.
    The more Actions that are available the more things we can do.


    2. VisualEffects

    This is here to make everything look pretty, so spawn a particle effect or do some other stuff to show the player that something has just happened.


    Then compose all of it into one class which unifies everthing together to make 1 type of buff for that character. In this specific case I was using it to enable buffs / debuffs to be applied to the character so I called it AttackActionModifier which is also a scriptable object. Looking to extend later on to actually be the main source of applying a change in the character.

    ActionAttackModifier


    Now each character in the game carries a handler called BuffCalculator, with it's sole purpose of being able to take an Attack that a character is doing and carry out any AttackActionModifier that it may have.
    The buffs are stored in a dictionary, and if the buff requires a timer to be used then that timer for that particular buff is also stored in a dictionary.
    Code (CSharp):
    1.  
    2. public Dictionary<AttackActionCategory, List<string>> currentModifiers; //modifiers that are active
    3. public Dictionary<AttackActionCategory, Dictionary<string, Task>> tasks; //timers for modifiers that are active
    4.  
    The rules are, only one Action per ID can be run at a time, if there is already an existing ID for that action then it's replaced with the new Action that is coming in:
    Once a buff is needed it cycles through the currentModifiers to find an existing modifier of a category, and then proceeds to find the action that is running via a unique ID for each type of Action. If that Action already exists then it removes the Action and replaces it with the incoming new Action, and the finally runs the Action and any other things.

    Code (CSharp):
    1. void ApplyAttackActionModifier(FK_Brain reference, AttackActionModifier modifier)
    2.     {
    3.         //First we find out if we have a category that exists like that
    4.         //If we don't have a category we add a new one
    5.         if(!currentModifiers.ContainsKey(modifier.category))
    6.         {
    7.             currentModifiers.Add(modifier.category, new List<string>());
    8.         }
    9.         //Once we are in the category we find we cycle through each action event base to find it's type
    10.         List<string> lisOfIDs = currentModifiers[modifier.category];
    11.  
    12.         for (int i = 0; i < modifier.eventAction.Count; i++)
    13.         {
    14.             if(!lisOfIDs.Contains(modifier.eventAction[i].GetUniqueID()))
    15.             {
    16.                 //Doesn't contain it so add a new one
    17.                 lisOfIDs.Add(modifier.eventAction[i].GetUniqueID());
    18.             }
    19.  
    20.             switch(modifier.lifeTime)
    21.             {
    22.                 case AttackActionModifier.ModifierLifetime.Infinity:
    23.                     GameTools.Log("<b><color=blue>Applying functionality</color></b> " + modifier.eventAction[i].name, showDebugLog);
    24.                     modifier.visualAction.StartFunctionality(reference);
    25.                     modifier.eventAction[i].FireFunctionality(reference);
    26.                     break;
    27.                 case AttackActionModifier.ModifierLifetime.OverTime:
    28.                     //If it's over time then we check to see if we have any tasks of this category and modifier running
    29.  
    30.                     //Find out if our tasks exist if so we need to remove it and restart it
    31.                     Task currentTask = GrabTaskFromExistingCategoryAndType(modifier.category, modifier.eventAction[i].GetUniqueID());
    32.  
    33.                     //Exists so we need to remove it and stop it from running
    34.                     if(currentTask != null)
    35.                     {
    36.                         GameTools.Log("<b><color=red>Remove old task : </color></b> " + modifier.eventAction[i].name, showDebugLog);
    37.                         currentTask.Stop();
    38.  
    39.                         //Remove the task type from the dictionary
    40.                         tasks[modifier.category].Remove(modifier.eventAction[i].GetUniqueID());
    41.  
    42.                         modifier.eventAction[i].StopFunctionality(reference);
    43.                         modifier.visualAction.StopFunctionality(reference);
    44.                     }
    45.  
    46.                     GameTools.Log("<b><color=red>Creating new task : </color></b> " + modifier.eventAction[i].name, showDebugLog);
    47.                     //Create the category if it doesn't exist
    48.                     if (!tasks.ContainsKey(modifier.category))
    49.                     {
    50.                         tasks.Add(modifier.category, new Dictionary<string, Task>());
    51.                     }
    52.  
    53.                     //It shouldn't have the type because we have removed it
    54.                     if(!tasks[modifier.category].ContainsKey(modifier.eventAction[i].GetUniqueID()))
    55.                     {
    56.                         //We could then fire the functionality depending on if the OverTime has a tick amount, but for now
    57.                         //we just fire the functionality
    58.                         GameTools.Log("<b><color=blue>Applying functionality</color></b> " + modifier.eventAction[i].name, showDebugLog);
    59.                         modifier.eventAction[i].FireFunctionality(reference);
    60.                         modifier.visualAction.StartFunctionality(reference);
    61.                         tasks[modifier.category].Add(modifier.eventAction[i].GetUniqueID(), new Task(ModifierTaskTimers(reference, modifier, modifier.category, modifier.eventAction[i])));
    62.                     }
    63.                     break;
    64.             }
    65.         }
    66.     }
    These two buffs have been made from a specific set of scriptable objects and it all seems to work nicely!


    Current Flaws:
    • At the moment each Action and AttackActionModifier that is used is instantiated into its own unique object per character, which basically means that every character on the screen has it's own set of unique actions/attackactionmodifer that could fire. Which could lead to a memory loss over time since there is no pooling of these scriptable objects. I wonder if any one knows a way to pool scriptable objects effeciently?
    • Can't have a buff using a timer in the same category as a buff not using a timer as this would cause either one or the other to be removed and there isn't a way currently tell which is which.

    This Ability System tutorial also uses the same concept, only difference is the scriptable objects are instantiated so might not work with every scenario ( or maybe it will haha! :D )

    Hope you have gained some knowledge from this! please ask any questions and I'm curious to know how you guys do this!
     
    ModLunar, nasos_333, Utamaru and 2 others like this.
  42. Utamaru

    Utamaru

    Joined:
    Aug 29, 2013
    Posts:
    2
    Hey, @Aedous
    If I understood correctly - you pass characters into the scriptable objects and that's why you need to have different instances of buffs, right? Is it really necessary in your code to change values of the buff's scriptable objects? One of the ways I see it can be fixed is to change buff's behavior so that it only stores some values and functionality which can be used in other systems (for example execute buff's behavior in character's scripts or create some bridge script which will get as input character and buff and do stuff with them). In this case you can have just one instance of all buffs without need of additional instances.

    If this solution is not suitable for you, any simple pooling is gonna help you. The most simple solution I came up with: create static List field in each scriptable object where you will store all additional instances. Implement methods to add and remove objects from pool. When you request a buff instance, check this list. If it's empty - add instance to the pool and unpool it. When buff fulfilled it's purpose - add it's instance to the pull and reset instance's values to default ones. Hope these thoughts are helped.

    Waiting for more updates on your game, can't wait to play it.
     
    Aedous likes this.
  43. Aedous

    Aedous

    Joined:
    Jun 20, 2009
    Posts:
    244
    Yep that's exactly where I'm looking to take the system, and not having to create a new instance for every modifier. Will post up some updates once I get to rewriting that system. Thanks for the info!

    Scriptable objects pooling is still something I want to investigate into, because I find no harm in creating an instance of a scriptable object, and in some cases I prefer the work flow.
     
    RavenOfCode and dogzerx2 like this.
  44. BadFoolPrototype

    BadFoolPrototype

    Joined:
    Sep 7, 2013
    Posts:
    14
    Thank you for all these informations Aedous! Keep up the amazing work!
     
  45. DevCake_

    DevCake_

    Joined:
    Dec 8, 2015
    Posts:
    5
    Just wondering, is this a 3d project using 2d sprites, or just a full 2d project? I've been having a lot of trouble with walls, and thinner obstacles in an isometric perspective when using a full 2d project
     
  46. Aedous

    Aedous

    Joined:
    Jun 20, 2009
    Posts:
    244
    It's actually using just 2d sprites, which has it's up's and downs. The perfect fit would be to use a mixture of 2D and 3D.
    As for your thinner obstacles, not sure if we're talking about the same thing....simply because of the view you can't really make thin paths with enclosed rooms like castle / caves / dungeons etc. The bottom walls end up taking up most of the view, so you're better off using the thin paths in outside environments.

    There are ways of getting over the thin path obstacle inside dungeons, and that is to mimic the cut off effect found in games like Diablo 3:


    Notice how when he walks into the room the walls fade away, you can mimic this effect by having two types of walls, a Normal Version and a Cutoff Version, and Fade out the Normal Version when the player enters a trigger. Fade in when the player leaves the trigger. Also note that not all walls needed to be faded out, only the walls that are necessary, and the ones needed to mimic the effect of a large group of walls fading out.

    There's probably other fancier ways of doing it, but that's how we've approached it.

    Hope that answered your question, I may have gone off on a tangent :D.
     
    Last edited: Jan 24, 2018