Search Unity

  1. Calling all beginners! Join the FPS Beginners Mods Challenge until December 13.
    Dismiss Notice
  2. It's Cyber Week at the Asset Store!
    Dismiss Notice

[RELEASED] TopDown Engine by More Mountains [new v1.5 : grid movement and new demo]

Discussion in 'Assets and Asset Store' started by reuno, Oct 9, 2018.

  1. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,155
    @Necka_ > I absolutely did consider that.
    I did do a version that uses the Animator, it works, but comes with some issues that can't be fixed due to the nature of the Animator.
    My plan is to wait for Unity to document properly the new graph API and use that to provide a new interface to the system. Can't wait to do that :)
     
    Necka_ likes this.
  2. Necka_

    Necka_

    Joined:
    Jan 22, 2018
    Posts:
    396
    Ok so I was going to say, hey let me work for you to do suggestions, but every time you just already had the idea :( depressing

    But awesome to hear that you're going to consider it in the future then :)

    Just a question, I'm aware of ShaderGraph and VFX Graph both which requires to use one of the two custom render pipelines - are you just speaking about using the graph API which itself can work with Built-in pipeline or will it become a mandatory thing to use either LW/HD RP? (hopefully not considering the state of those)
     
    reuno likes this.
  3. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,155
    @Necka_ > Oh no it won't become mandatory to use a RP. The engine doesn't really concern itself with rendering, it's up to you to pick the one you want. I was referring to the graph API that lets you draw said graphs and could be used to do that AI thing.
     
    Necka_ likes this.
  4. Shiack

    Shiack

    Joined:
    Oct 24, 2017
    Posts:
    10
    Hi, I was wondering how to make the cursor not dissapear when the death splash appears I' can't find where does it make it go away in the pause screen It's there but on the death splash the cursor just goes away
     
  5. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,155
    @Shiack > I'm not aware of any issue with the death screen and cursor in the latest version of the engine. Just tested it on the demo build and it works fine. If you think you've found a bug, please use the support form to report it, but I'll need more context (exact repro steps, version, etc).
     
  6. Shiack

    Shiack

    Joined:
    Oct 24, 2017
    Posts:
    10
    Ok thanks I'll send it out
     
    reuno likes this.
  7. men8

    men8

    Joined:
    May 12, 2014
    Posts:
    1
    @reuno First of all I must say, your asset is solid 100/10 :D Great asset with well made documentation. I have only one question about weapons in 2d version. How I can change distance between WeaponAttachment and holding weapon? I've tried positioning weapon prefab on player prefab and can't find any other solution.
     
  8. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,155
    @men8 > I'm not sure I understand your question. The WeaponAttachment is a Transform, you can put it wherever you want inside your Character. And then there are offsets you can set on the CharacterHandleWeapon. If that doesn't answer your question, please use the support form and provide more details, thanks.
     
  9. Corentin

    Corentin

    Joined:
    Dec 1, 2013
    Posts:
    12
    Hi !
    I'm sure I overlooked something easy, but I just can't create an AIDecision that detects when the character has finished shooting. I tried a few different ways, but none is robust enough...
    What do you think is the best way to do that ?
     
  10. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,155
    @Corentin > The best way to do it would be to look at the weapon's state. If it was shooting and isn't anymore, then your character stopped shooting :)
    Alternatively you could have it listen to events, the weapon's state machine sends some when changing state.
     
  11. M0ti

    M0ti

    Joined:
    May 4, 2019
    Posts:
    10
    Hey there, I wanted to ask. Did anyone try to switch from the basic rendering pipeline to the LWRP? I hoped that I could make some shaders with the shader graph, but the MMshaders were unable to compile. Because of that, I see only blue when I run the game. If I turn off the KoalaUICamera, I can see the scene, so the uncompiled shaders are probably connected to it. But it also holds the input so I can't just disable it and live without it :D
     
  12. Corentin

    Corentin

    Joined:
    Dec 1, 2013
    Posts:
    12
    @reuno > thank you very much, I'll give it a try !

    @M0ti > I'm using LWRP, and TDE doesn't interfer in any way. Maybe try switching materials rather than disabling the UICamera ?
     
    reuno likes this.
  13. Corentin

    Corentin

    Joined:
    Dec 1, 2013
    Posts:
    12
    @reuno > Checking the Weapon state was indeed the best solution. I added an animation test to make sure the animation was ending too and it works pretty well now !
     
    reuno likes this.
  14. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,155
    @M0ti > LWRP doesn't let you stack cameras, it's one of its limitations right now, you'll have to implement that differently.
     
  15. blueFire

    blueFire

    Joined:
    Nov 27, 2010
    Posts:
    60
    1. Does this product support quests and if not is it planned for the future?

    2. Is there a roadmap for this product?

    Jason
     
  16. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,155
    @blueFire > You can see a full list of features on the asset's page. If it's not listed, it's not in the asset. It's been requested a handful of times though. And as explained in the FAQ, there's no public roadmap.
     
  17. Darrkbeast

    Darrkbeast

    Joined:
    Mar 26, 2013
    Posts:
    89
    Hi, I have a question about the Inventory System. From what I read so far it should be doable. I know you can create multiple inventories, I saw that in the demo, however can you transfer between two.

    Example, I have my main inventory and want to move all the items to a chest.

    I know pretty much anything can be done, I'm just new to coding and wonder how complicated a task like that would be. Thanks.
     
  18. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,155
    @Darrkbeast > There are methods to remove from an inventory. There are methods to add to an inventory. And there are examples of transfer between both (equipping a weapon transfers it from one to the other). I'd suggest looking at this, as indeed it can be done :)
     
  19. Darrkbeast

    Darrkbeast

    Joined:
    Mar 26, 2013
    Posts:
    89
    Awesome, thanks I was looking at some of it last night and was pretty confident, thanks for the reassurance. Great asset by the way, your code is well commented makes learning it easy.

    Thanks again.
     
    reuno likes this.
  20. waterkulerbrush

    waterkulerbrush

    Joined:
    Oct 30, 2016
    Posts:
    8
    So I'm messing around with the dash ability and the timing of the melee attacks. I noticed that when I dash, immediately after, if i press the shoot button (in my case the secondary weapon does my melee attacks), i get a slight pause before my character can walk again. Since im holding a direction while im dashing, if i dont hit the shoot button, i just dash then go straight into walking. But if i do the same but hit the shoot button immediately after (as my player is standing up, right at the end of the dash/takes some timing to get it to occur), he appears to go into the idle state for a short period then i begin walking even thought i never release a direction so he should just go into the attack then walk.
    I can see that the melee weapon damage box triggers as well so its receiving the input, just not playing the attack animation. So for that short tick, he stands idle, the box turns red, then i can go back to walking.

    Any ideas here? I've reproduced this in my project as well as a fresh import of the engine using the minimalsword3d scene.
     
  21. Necka_

    Necka_

    Joined:
    Jan 22, 2018
    Posts:
    396
    Probably your animator states, you have to tune how things need to flow to fit your needs. Also depending on the transition maybe you'll want to remove "has exit time" so the dash animation can be cut short to go to the next state immediately.
     
  22. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,155
    @waterkulerbrush > As @Necka_ said, you probably just need to tweak your animator's transitions. There's nothing in the engine that "takes time" to go from one state to the other, it's a state machine, and it's instantaneous (unless explicitely instructed otherwise). Look at the actual state on the Character or Weapon, you'll see it's instant. Then look at your animator, and find out what animation is preventing your transition from running.
     
  23. waterkulerbrush

    waterkulerbrush

    Joined:
    Oct 30, 2016
    Posts:
    8
    @reuno @Necka_ Yeah, it was the Animator causing the delay, so the attack would trigger but the animation wouldn't play. Thank you both.
     
    reuno likes this.
  24. Cereal_Killa

    Cereal_Killa

    Joined:
    Oct 20, 2013
    Posts:
    205
    How can I stop picked items and destructables from respawning when the player re-enters the scene? (perhaps from another room)
     
  25. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,155
    @Cereal_Killa > By saving their state on exit and then loading and disabling them on entry.
     
  26. Necka_

    Necka_

    Joined:
    Jan 22, 2018
    Posts:
    396
    Hi Reuno,
    I've checked if this was suggested before: Grenades (or this kind of throwables) - you added it to the suggestion list, I'd like to add my vote to it and ask if you still consider it? that would be very useful
     
    IlyaKo likes this.
  27. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,155
    @Necka_ > It's still very much on my todo list, I'll add your vote to it :)
     
  28. Shiack

    Shiack

    Joined:
    Oct 24, 2017
    Posts:
    10
    is there something implemented to make customizable input at runtime, say like in options so the player can tweak controls to their liking? I don't want to make a script if there's one already there , thanks in advance.
     
  29. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,155
    @Shiack > No, there isn't right now.
    But the engine just targets Unity's native system so you can implement anything in between these two layers quite easily.
     
    Shiack likes this.
  30. Shiack

    Shiack

    Joined:
    Oct 24, 2017
    Posts:
    10
    ll right thank you
     
  31. george_bacanu

    george_bacanu

    Joined:
    Oct 24, 2017
    Posts:
    8
    Hi Reuno, Do you plan to add character progression or skill/tech-tree?
     
  32. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,155
    @IndieGBA > It's never been requested before, and I'm not sure I'd add that. It's not really a common denominator of topdown games, and it's usually quite game specific, hard to generalize. Plus there's nothing preventing you to implement it on the engine side already : you can allow/forbid abilities, modify their stats at runtime, etc.
     
    IlyaKo and george_bacanu like this.
  33. Darrkbeast

    Darrkbeast

    Joined:
    Mar 26, 2013
    Posts:
    89
    Question about the UI controls. So when using a controller (Xbox Controller), on the Corgi top down demo scene (the 2d one with ninjas), if I pause the game the pause menu pops up as expected. On my controller I can move between the three buttons no issue, however if I press right the I lose the ability to activate those buttons with the controller. However I can hear the sounds you get from moving on the inventory screen. I know the Inventory is on Group Canvas with alpha 0 so its always there, so I think maybe its jumping to there.

    However this could some how be something related to my install etc so I really just want to see if this is just something I need to solve for my self, I know systems like Inventory and UI is more or less examples so might just be that way.
     
  34. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,155
    @Darrkbeast > You can define navigation path like you would in any Unity project, on a per button basis.
    If you keep having issues with it, please use the support form and provide more info, thanks!
     
  35. Darrkbeast

    Darrkbeast

    Joined:
    Mar 26, 2013
    Posts:
    89
    Thanks, I can submit a support ticket, I was kind of looking to see if its just part of the asset not a bug before I bugged you. I'll work on it more tonight and if I can't get it working I'll submit that ticket. Thanks.
     
    reuno likes this.
  36. waterkulerbrush

    waterkulerbrush

    Joined:
    Oct 30, 2016
    Posts:
    8
    In 1.5, am I able to move my player character to another scene with all of it's collected weapons and attributes? Or is this not a part of the engine? Just wondering if im missing something.
     
  37. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,155
    @waterkulerbrush > Collected weapons would likely stick with your inventory if you make it persistent.
    And there's a SaveLoadManager that lets you save and load whatever you want, so you could save abilities that way.
     
  38. waterkulerbrush

    waterkulerbrush

    Joined:
    Oct 30, 2016
    Posts:
    8
    Nice. I've started looking at the PixelRogue Demo and see that there is some saving and loading happening there. I'll keep digging using, that as an example and learn a bit more about how Saving and Loading works, in general.
    Thanks.
     
  39. waterkulerbrush

    waterkulerbrush

    Joined:
    Oct 30, 2016
    Posts:
    8
    Any tips on using the SaveLoadManager would be much appreciated. Not finding a lot of info in the Doc.

    Pretty much just trying to use the Go to Entry Level Trigger, to get to the next level, and instead of the Level Manager positioning my initialCharacter, it should use my current character and position that on the point of entry checkpoint.
    My inventory is persistent now, just trying to keep that weapon GameObject on my player and any secondary weapons he may have collected in the previous scene.
    Watched a ton of Save/Load tutorials all showing how to maintain data over PlayerPrefs or Save Files for int and float date, not much about GameObjects besides DontDestroyOnLoad, which has all kinds of issues with the LoadScreen running in between the level change.
     
  40. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,155
    @waterkulerbrush > All its methods are heavily commented, and it's a pretty straightforward class.
    Basically you call the Save method to save stuff, and the Load method to load stuff.
    You'll find multiple examples of these two methods in use throughout the engine, that's how sound settings, progress and achievements are saved and loaded, for example. Just look for references.
    If you have more questions about this please use the support form, thanks.
     
  41. waterkulerbrush

    waterkulerbrush

    Joined:
    Oct 30, 2016
    Posts:
    8
    <---New Guy. Thanks for pointing out those examples. I'll keep hammering away.
     
  42. M0ti

    M0ti

    Joined:
    May 4, 2019
    Posts:
    10
    Hey everyone. First I would like to thank @reuno for making this amazing asset. Thanks to it the production of my game (Th Epocha Tower if anyone is interested) is making visible progress each day.
    I thought about what I could do as a support for the community here and thought of sharing some of the upgrades and tweaks I've made in the engine so far.

    Shader Flicker - I wanted for the enemies to flicker as a white silhouette but that seems to be the only thing the normal flicker can't do. It works the same but instead of color, you sign a shader into it.

    My second enemy (goblin) is attacking strictly in four directions. But I could not make him work properly with just simple AIActionMoveTowardsTarget2D. In the usual scenario, the goblin will always approach me diagonally, always stoping way off from the optimal position for an attack.
    That's why I added to the AIBrain an intended position. It's a simple Vector3 in which could various actions store a position in space.

    So what I have now is:
    AIActionSetAttackPosition - which finds out the closest position suitable for attack.
    AIActionMoveTowardsIntentPosition2D - to move towards this position

    (What I would like to add next is also "intention" on its own. A variable thanks to which the enemy could first decide what he wants to do and then go through multiple AI states to execute it with this intention in mind.)

    Chargeable weapon - so far the biggest change in the code I did. I've changed the parent Weapon.cs, so that both melee and range weapon could have this attribute.
    What it does is that on pressing the button it checks if the weapon is chargeable or not. If it is, instead of TurnWeaponOn it calls TurnWeaponChargingOn and on the release of the button, it checks if the button was held long enough to go for TurnWeaponOn or instead reset everything.

    (Even though it works it's still far from perfect. I've still not created animation parameters for the charging. I would also like to make the charge interruptable. And maybe even add the option to release the charge prematurely to still shoot, but weaker. For example, a bow which can set this way how far the arrow will travel.)

    Well, I hope that it inspired someone to make additions to the engine as well. I'm interested to read about them.
     
  43. Necka_

    Necka_

    Joined:
    Jan 22, 2018
    Posts:
    396
    Hey there, Chargeable weapon is something I might do in my project, doesn't sound too complicated but if you are interested to share, you can send those extensions to Reuno and he will put them in the TopDown Engine extension GitHub
     
  44. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,155
    @M0ti > Thanks for sharing these! As @Necka_ said, there's a dedicated extensions repository where I can put these if you send them to me. As a side note, shader flicker (and much more) can already be done via the ShaderController class, and chargeable weapons can be done via the native Weapon system (that's what the delay before is for, and it works like what you describe).
     
  45. M0ti

    M0ti

    Joined:
    May 4, 2019
    Posts:
    10
    @reuno > I can't find the ShaderController anywhere, is it something added in 1.5? (I'm still on 1.4)
    Also, do you have a recommended way to update the engine in an already existing project? I'm a bit afraid to do so, but yesterday I've read how much was added in the big update and I would like to use some of these additions :D
    @Necka_ as Reuno said it seems stat these tweaks are not essentials, as they could be done by the existing features. But I plan to keep sharing and maybe we will find something that could be generally helpful, which would be great. :)
     
  46. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,155
    @M0ti > The ShaderController class is for sure in 1.5, but I don't remember (and haven't checked) when it got added. I thought it was in 1.4 but I could be mistaken, it's "relatively recent" :)
    As for the best way to update, it's to completely remove the TopDown Engine folder, and import the new version. Depending on what version you're coming from, and on the changes that happened in the meantime on the engine side, and on the changes you did yourself (and how), this can require some refactoring on your side.
    Whatever you do, please, please backup before you do it :)
     
  47. Necka_

    Necka_

    Joined:
    Jan 22, 2018
    Posts:
    396
    Hello @reuno

    I finally moved forward and pushed my modification in v1.5 of the engine (I was on 1.3...) so I'm catching up and I like what I'm playing with

    I've seen this line in the changelog:
    Adds the WeaponModel class, that ensures a model separated from the weapon itself aims at the same target at all times

    Can you briefly explain how this work, I think that is something I'm interested in regarding how my weapons are setup but I'd just like a quick "how-to" if you don't mind
     
  48. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,155
    @Necka_ > Basically it lets you have a model already in the hand of the character, but the setup can get a bit tricky, and it's gonna be much easier to see it than to explain it :) I've planned to add an actual example of it in the next version.
     
  49. Necka_

    Necka_

    Joined:
    Jan 22, 2018
    Posts:
    396
    Ok got it, I think it does the opposite of what I wanted (but I kind of written something to do it)
    I'm not using the Engine in the conventional way :S basically I instantiate my weapon models from an inventory system (not using the one that comes with the Engine) parented to the hand bone. As I'm using Final IK (with Aim IK) I needed that the Weapon component stop rotating the weapon, I just wanted it to be a child of the weapon model's canon and shoot from there. I found it a bit difficult to handle

    By the way, I don't know if this forum can also be used for some "Show Casing" but I've made a quick video showing some of my gameplay progress using Top Down Engine for all the character controller and weapon handling (+ of course the signature Feedback system)

    If you prefer not, I will remove the video of course! not doing any promotion (there is not much to promote anyway :D)

    edit: mouse cursor wasn't captured, strangely
     
  50. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    3,155
    @Necka_ > I think you'll find the example I'm working on useful for what you're after, it'll introduce a new class that works more or less like that.
    And you can absolutely post your stuff here :)
     
    Necka_ likes this.