Search Unity

[RELEASED] TopDown Engine by More Mountains [new v3.0 : damage types, damage resistance, and more!]

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

  1. Ambicioso

    Ambicioso

    Joined:
    Oct 16, 2017
    Posts:
    3
    Can I talk to you on discord?
     
  2. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
    @Ambicioso > Please use the support email, thanks!
     
  3. ScourgeGames

    ScourgeGames

    Joined:
    Aug 22, 2017
    Posts:
    239
    Ah, that makes sense.
     
    reuno likes this.
  4. Necka_

    Necka_

    Joined:
    Jan 22, 2018
    Posts:
    488
    I don't know if it's the "bug" you're speaking about, but every time I import TDE in an empty project, I do have to open manually the TDE welcome page to have a compilation done otherwise all the "IF Cinemachine" and "IF PostProcessing V2" aren't working.
    It's totally not a big deal but I guess you'd wish to have that completely setup and working once imported
     
  5. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
    @Necka_ > That's already a bit of a bug.
    The ideal scenario (and one that works for most people) is you create a new project, touch nothing, and after a while you get the Welcome screen and everything's been installed.
    Slightly more annoying is what you describe.
    And then worst case scenario you get write permission issues on the manifest, in which case the Welcome script can't do anything, and you have to manually replace the files.

    So none of these are catastrophic, and if you follow the guidelines (https://topdown-engine-docs.moremou...nstalling-the-package--the-camera-doesnt-move) you won't have any issue fixing it, but it's annoying and a native solution would be much better :)
     
    Necka_ likes this.
  6. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
    Somebody asked me via email how to setup multiplayer. It's not officially supported (or demonstrated) yet (it's very high on my todo list though), so I don't want to add that to the documentation yet, but in case anyone is wondering, here's how it's done :

    Here's what you need to do (I'll use the Koala scene as an example, but it's the same logic everywhere of course) :
    - open the Koala2D demo scene
    - create an empty game object
    - add an InputManager to it, change the PlayerID to Player2
    - drag a Koala prefab in the scene somewhere
    - select it, change its Character's PlayerID to Player2
    - press play, you can now move the Player2 using the keyboard's arrow (or a second gamepad)

    Note that the demo bindings for players 2, 3 and 4 have already been created, but the layout isn't final. You can change bindings just like you would in any Unity project, via the Project Settings > Input panel.
     
    ScourgeGames and Muppo like this.
  7. ScourgeGames

    ScourgeGames

    Joined:
    Aug 22, 2017
    Posts:
    239
    This is pretty darn cool. Thanks for the info.
     
  8. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
    @ScourgeGames > You're welcome!
    There's a high change the next version will include a proper demo, with multiple characters and some sort of goal :)
     
  9. ScourgeGames

    ScourgeGames

    Joined:
    Aug 22, 2017
    Posts:
    239
    Very nice. I just purchased Spine pro last night (sheesh, that ain't cheap) and I'm gearing up to create my own characters. Super fun stuff. I'm also going to pick up the racing engine you made. I love your work and I'm having a blast creating stuff with it.


    PS, I just sent you an email from your web site regarding a Corgi thing.
     
  10. ScourgeGames

    ScourgeGames

    Joined:
    Aug 22, 2017
    Posts:
    239
    I should also mention I have a Corgi. His name is Rudy. He keeps my feet warm in the winter. :)


     
    Stevepunk and Havok_ZA like this.
  11. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
    ScourgeGames likes this.
  12. docktornicki

    docktornicki

    Joined:
    Oct 11, 2018
    Posts:
    3
    @reuno Am I allowed to make my own game with it and sell it on steam? How much do I have tochange until it becomes my game?
     
  13. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
    @docktornicki > You absolutely can, that's the whole point of the engine :)
    As for how much you have to change, that's up to you. I'd recommend not using the placeholder visuals, at least. It's generally frowned upon to just use them without adding your own touch, but legally you can do whatever you want.
     
    ScourgeGames likes this.
  14. Necka_

    Necka_

    Joined:
    Jan 22, 2018
    Posts:
    488
    Hmm I know you don't do custom code, I'm quite an amateur with coding and I'm just hitting a wall... can't build up the logic required..

    Here goes: I'm trying to setup a mode on Weapon to use AnimationEvents to avoid using a timer for melee attacks.

    I got a bridge script that set a bool on the weapon component when my animation is over.

    The thing is, the Weapon script has lots of use cases and I tried a lot of combination without success.

    The goal is: Attack start - Player movements are locked and attack isn't possible until animation is over - Animation event is sent -> bool is set to false -> player can move and can attack again

    I would not ask if I wouldn't have tried lots of things...

    I actually created a new state "WeaponAnimationInProgress" and a method that goes there when animation is in progress (bool is true) but it just ignores it and when it doesn't, it get stuck on that state...

    Don't want to post your code here, just asking for a few clear hints so my brain can say again "aaaah, of course it's that easy"

    Pretty please? :)
     
  15. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
    @Necka_ > That's not something I'd consider easy to do, nor something I can explain in a few lines, it'd require some heavy refactoring. I don't think it'd require another state, states are already fine, but it'd require new public methods that would update the state machine from the animation. It's doable for sure, and I can add that to the todo list if you want :)
     
  16. george_bacanu

    george_bacanu

    Joined:
    Oct 24, 2017
    Posts:
    16
    @reuno Hi, I don't know if you have requests for such a feature but I would like to include a feature just like in Shock Troopers 2th Squad where you can use vehicles such as tanks. This feature can be extended not only to tanks, perhaps even planes or boats. I hope you take this request into consideration. Thank you!
     

    Attached Files:

    Last edited: Feb 13, 2019
  17. Necka_

    Necka_

    Joined:
    Jan 22, 2018
    Posts:
    488
    Well, I'd appreciate that feature. It's really needed from my point of view when dealing with melee combat animation as a timer isn't accurate enough or easy to calculate over many combat skills (if you change animation speed then you need to go back on that weapon and update the time).
    Animation events are easy to set and to catch to tell the engine: this has started or this has stopped

    I'll continue to make some tests to see if I can pull it out.. because I'm currently implementing the melee combat and that's blocking me out.

    I mean I really thought it would be simpler as the animation event send a bool that is true or false when the animation is playing. Thought I could just simply make the engine knows that when the animation bool is false: go on unfreeze the character and allow for another attack. Like it is working for the "Delay Between Use". But nope.. can't make it work :(
     
  18. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
    @Necka_ > Sure, but animation events are hard to debug, that's why they don't see much use in production (at least at the studios I've worked with), and why I don't encourage that much. But I'll add that to the todo list, no problem at all :)
    @GeorgeBacanu > I have plans to add character switch at runtime, so that should work for vehicles as well.
     
    Boom_Shaka and Necka_ like this.
  19. Necka_

    Necka_

    Joined:
    Jan 22, 2018
    Posts:
    488
    reuno likes this.
  20. Boom_Shaka

    Boom_Shaka

    Joined:
    Aug 31, 2017
    Posts:
    141
    @Necka - don't have an answer for you, but it's an interesting question (I find I learn more by looking at other peoples' questions).

    With that in mind, I would try extending the base weapon class and updating the weapon states and their transitions. For example, look how PreventAllMovementWhileInUse "locks" the character:
    Code (CSharp):
    1. _characterMovement.SetMovement(Vector2.zero);
    2. _characterMovement.MovementForbidden = true;
    You might be able to accomplish your goal by adding those commands to the appropriate weapon state. Another possibility is to change the state transitions so that the weapon goes to your custom state after WeaponStop (right now it goes to WeaponIdle).

    Finally, here's a thread for checking animations without events. Not exactly sure where the check should be (update?) but you can try setting your weapon state transitions based on this as well. EDIT: or maybe just add those movement commands if the animation in question is still playing?
     
    Last edited: Feb 13, 2019
    reuno likes this.
  21. Havok_ZA

    Havok_ZA

    Joined:
    Jul 27, 2016
    Posts:
    69
    Excellent update!

    Looking forward to the click to Move feature sometime :)
     
  22. Necka_

    Necka_

    Joined:
    Jan 22, 2018
    Posts:
    488

    Hey thanks for the reply

    I found out about where the movement lock and so on happens, it was just not working with a new state... I ended up cheating and adding my animation event checks with the DelayBetweenUses check... it's working great actually but I'm looking forward for an official implementation as Reuno will obviously have something very neat and sweet for this

    Regarding animation events: The thing is, yes I know how to check when an animation is over. But that isn't what I was looking for for multiple reasons:

    Animations can last for let say 3 sec but the last 0.65sec are maybe irrelevant for the pace of my game, the attack happened and I want the player to be able to either launch another attack or just move away asap. The animation blending will do the rest. I'm using precise animation event on each attacks, and place the "EndAnimation" event at a timestamp depending on how the actual animation plays out.

    The second reason is for combo chain. I have some combo animation split into multiple animation files. Let say Attack 1, 2 and 3 are actually one big combo that feel smooth when played together. But each animation also can end normally with a back to IDLE. The goal of the event here is to give a timeframe for the player to launch the next combo. That time frame is usually between when the first attack hits and shortly before it goes back to "IDLE" if the player didn't attack during that frame, it goes back to Attack 1. Makes it a bit challenging too

    The last reason is that sometime I'll fine tune the animation speed. Maybe attack 1 is at speed 1 and Attack 2 needs to move at Speed 1.15. If I use a timer, I have to change that. If I already set my animation event: no need to tune that again

    So that's why I'm attached to animation events for my last projects, it's also how I learned to use it so that's also a reason ^^
     
    reuno and Boom_Shaka like this.
  23. eboxrocks

    eboxrocks

    Joined:
    Nov 22, 2017
    Posts:
    9
    @reuno , just wanted to stop by and say thanks. I am launching open beta of my game this Saturday (its not a small demo either, 30 missions built already with a good amount of variation and your framework has worked for all of the use cases). There is no possible way I'd be at that point in 3 months working on it part time with a separate full time job without this tool that you released. So thank you very, very much!
     
    ScourgeGames and Boom_Shaka like this.
  24. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
    @eboxrocks > That's awesome, congratulations! Don't hesitate to send me a link to your open beta, I'd love to give it a try!
     
  25. ScourgeGames

    ScourgeGames

    Joined:
    Aug 22, 2017
    Posts:
    239

    Looking forward to seeing it! Let us know over here in the forum so we can try it out too.
     
    reuno likes this.
  26. IsntCo

    IsntCo

    Joined:
    Apr 12, 2014
    Posts:
    146
    Any plans to release a video of version 1.2?
     
  27. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
    @Appminis > Yes, absolutely. I plan to provide full video tutorial coverage of the engine over the next few weeks (months, tops). I had postponed that until I was sure the engine was robust and stable enough that no major refactoring was needed, and I'm pretty happy with the feedback so far, so it's coming soon, definitely.
     
    rrahim, Necka_ and IsntCo like this.
  28. Hitch42

    Hitch42

    Joined:
    May 12, 2015
    Posts:
    98
    This looks great, and you have certainly earned a great reputation as a top-notch asset developer. I was wondering if future versions might have features that would benefit squad-based games – like Syndicate, Commandos, or X-COM – where you can equip a team of players and issue turn-based commands or while paused.
     
  29. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
    @Hitch42 > I don't have plans for turn based stuff (for now). You could use the asset for that, seems doable, but for now I'm focused on real time top down action, and still have a lot planned for that :)
     
    Hitch42 likes this.
  30. Hitch42

    Hitch42

    Joined:
    May 12, 2015
    Posts:
    98
    Thanks for the quick response. I knew those features were a bit far removed from how this is advertised, but I figured I'd ask and show interest. The friendly AI might do some of what I'm looking for.
     
    reuno likes this.
  31. mike000mike

    mike000mike

    Joined:
    Oct 25, 2017
    Posts:
    8
    Hi, how to add Character Depth like this? Thanks!
    timg2.jpg
     
  32. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
    @mike000mike > That's built-in, that's how the Koala2D demo works already :)
     
  33. LCTho85

    LCTho85

    Joined:
    Feb 22, 2019
    Posts:
    1
    Hi! I'm very interested in purchasing this TopDown Engine asset. But before I do may I ask if the asset is able to create games like the ones in this YouTube video?

     
  34. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
    @LCTho85 > You won't find any examples of pure shoot em up like that in the asset, but sure, it could be used as a basis to create such games as well.
     
  35. Alienmadness

    Alienmadness

    Joined:
    Sep 6, 2012
    Posts:
    109
    Using the 3d movement and options. (not 2d).
    Few questions.
    1. the dash ability seems to only 'dash' in the forward direction. when facing another direction (for example facing left or right), the dash still wants to go in a forward direction. is there something i need to do to make this work correctly?

    2. When i pick up a weapon and use it from inventory, its not under the hands of the player character. Even though i set the Left Hand Handle and Right hand handle, it doesn't save in the prefab. i also cant open 2 prefabs at the same time, so i cant drag the prefab hands into those slots from another prefab. Suggestions?
    i see in the demo that the leftHand and RightHand are under the weapon prefab. how does that work?

    Capture.PNG
    ** notice how its bold. this is after apply changes to the prefab.
    When pressing play, the weapon ends up under the player, but not under the hands of the player and therefore doesn't move correctly with the player movements.

    3. is there no camera controller? or am im missing it? for now im just using a 'follow target' script. but not much options on that.

    Thanks
     
  36. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
    @Alienmadness > 1. The dash is indeed forward by default (it goes in the facing direction). You can set more options (secondary direction, mouse position) in the inspector. If that's not working, please use the support email and provide more details on how to reproduce your issue in a fresh install of the asset, thanks.
    2. I'd suggest reading the IK part of the weapons documentation, it explains that in details. These two slots in your screenshots are for handles, not hands, as their name suggests :)
    3. There is a camera controller, it's Unity's Cinemachine. It's packed with options (and set by default in all demo scenes) :)
     
    Last edited: Mar 7, 2019
  37. Alienmadness

    Alienmadness

    Joined:
    Sep 6, 2012
    Posts:
    109
    ok, thanks.
    will play around more with the dash attribute. it does seem to work in the demo scene, so i must have done something to make it all funky.
    the weapon thing is still an issue. seems like i have all the requirements needed (per the docs). shot you an email on your website, to see if we can resolve.

    Got the camera setup now.

    Thanks again for your help.
     
  38. george_bacanu

    george_bacanu

    Joined:
    Oct 24, 2017
    Posts:
    16
    Hello Reuno, thank you for replying to the last topic, I look forward to the character switch at runtime:). Are you planning to add a random level generator or a random prefab placer? Thank you.
     
    Last edited: Mar 7, 2019
  39. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
    @GeorgeBacanu > A random generator is on the list indeed (and one thing I look forward to tackling). What exactly would you expect from a random prefab placer? There seem to already be a lot of scatter systems out there, and I'm not sure how specific that'd be to a top down system.
     
  40. Boom_Shaka

    Boom_Shaka

    Joined:
    Aug 31, 2017
    Posts:
    141
    Dungeon Master has a pretty good model for pre-fab placement as it allows for static/background items (with NavMesh support) as well as interactives. In addition to those two features, placed prefabs would need to:
    • persist across maps/levels - ie if I pick up a weapon prefab I should keep it when I leave the level
    • allow for "themed" placement (i.e. a group/set of related prefabs for specific areas)
    • "one-off" or "required" prefabs like keys can't be placed behind locked doors/areas (seems obvious but I've played too many games where the key never spawns or is hidden)
    • weight/limit controls to increase variety

    That said, I'd also vote for character switch at runtime as a higher priority than either a random level generator or pre-fab placer.
     
    george_bacanu and reuno like this.
  41. lobsterhat

    lobsterhat

    Joined:
    Jan 26, 2014
    Posts:
    14
    This might not be a Top-Down specific question, but I'm having the darnedest time getting moving objects to stop at an exact position consistently. I'm guessing there's some momentum I'm not taking into account. Is there a way to temporally disable this? My move to target method is below (IsAtTargetPoint checks if the current object's transform is within a threshold):

    Code (CSharp):
    1.  
    2. private void MoveToTarget(Vector3 target, PlayDirection? facing = null)
    3. {
    4. if (IsAtTargetPoint(target))
    5. {
    6. if (name == "Home 1")
    7. {
    8. Debug.Log(string.Format("At Target: {0}, {1} / {2}", transform.position.x, transform.position.y, Vector3.Distance(target, this.transform.position)));
    9. }
    10.  
    11.                 transform.position = target;
    12.              
    13.                 IsReady = true;
    14.                 _characterMovement.MovementForbidden = true;
    15.  
    16.                 if (facing != null)
    17.                 {
    18.                     this.transform.localScale = (facing == PlayDirection.LeftToRight) ? new Vector3(-1, 1, 1) : new Vector3(1, 1, 1);
    19.                 }
    20.             }
    21.             else
    22.             {
    23.                 Vector3 direction = (target - transform.position).normalized;
    24.                 _characterMovement.SetMovement(direction);
    25.  
    26.                 if (name == "Home 1")
    27.                 {
    28.                     Debug.Log(string.Format("{0}, {1} / {2}", transform.position.x, transform.position.y, Vector3.Distance(target, this.transform.position)));
    29.                 }
    30.             }
    31.         }
     
  42. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
    @lobsterhat > Indeed, not a very specific question, or maybe I'm missing your point.
    I'm guessing the problem lies with your IsTargetAtPoint method, but it's hard to tell without seeing it. When you trigger that code could also have an impact. Hard to tell without knowing what happens exactly and with only a portion of debug code :) Please use the support email if you really think the issue comes from the engine, and provide more info, I'll be happy to have a look.
     
  43. CoolMambo

    CoolMambo

    Joined:
    May 21, 2013
    Posts:
    19
    hi just did a fresh install from latest update on unity 2018.3.0f2. Installed post processing and pixel perfect. Then restart and compiled scripts. Loft3d scene

    upload_2019-3-10_12-41-26.png

    also and issue with "scenecamera" dealing with post processing object which i cant seem to find on Loft3d
     
  44. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
    @CoolMambo > I'd recommend using the latest Unity version (2018.3.10). And I'm guessing something went wrong during the install, hard to tell what without any info. Please try following the steps described in the documentation, they'll work 100% of the time. If the problem persists, please use the support email, thanks.
     
  45. CoolMambo

    CoolMambo

    Joined:
    May 21, 2013
    Posts:
    19
    you have a link for 2018.3.10 ? dont see that version via unityhub, only 2018.3.8f1 as latest
     
  46. CoolMambo

    CoolMambo

    Joined:
    May 21, 2013
    Posts:
    19
    same thing on fresh unity install 2018.3.8f1 and after clearing roaming cache of assets and redownloading reinstalling. fresh project with only topdown engine installed. followed instruction and installed post processing, then pixel perfect, then restarted. then played loft3d scene.

    upload_2019-3-10_13-36-40.png


    Scene works but all those errors are causing freezing and fps drops.


    Also i've noticed if you go into welcome to more mountains setup it tries to recompile scripts again and after that I seem to get even more errors.

    EDIT* actually i lied, project was still the same old version. stinking unity hub. gonna try again now that i managed to actually use the drop down box...
     
    Last edited: Mar 10, 2019
  47. CoolMambo

    CoolMambo

    Joined:
    May 21, 2013
    Posts:
    19
    that was it, worked perfectly. Thanks for the great support and awesome assets Reuno! PS I would pay for photon multiplayer add-on (wink wink)
     
  48. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,929
    @CoolMambo > I meant 2018.3.8f1, not .10, sorry! Too many updates :)
    I'm glad it's working now, thanks for letting me know. And Photon is on my todo list. Quite low for now, but who knows :)
     
  49. george_bacanu

    george_bacanu

    Joined:
    Oct 24, 2017
    Posts:
    16
    @reuno>Thanks for the quick response. When I say random prefab placer I refer to a system that can randomly place different things like vegetation, objects, boxes, props, weapons, loot, enemies, weather effects or even daytime or night-time on the map without changing the topology of the map. The system runs every time the player enters the map so he will have a relatively new experience each time without having to learn the map or the tracks again. It's probably a hard option but I hope you consider such a tool in the Top Down Engine. I believe that if this feature is already integrated into the system, the degree of optimization and customization would be much faster and more accurate than a separate integrated system. In other words, I look forward to testing the random generator and character switch at runtime when added to the engine. I still discover and test the options in the Top Down Engine and it's fantastic. I own the Corgi Engine, the Infinite Runner and the Highroad Engine but this is my favorite because it is suitable for the game I work on and it helps me enormously. Thank you for your work! PS. I would love to have a Photon multiplayer integrated system. :D
     
    reuno likes this.
  50. MudPuppet

    MudPuppet

    Joined:
    Aug 10, 2012
    Posts:
    162
    Hey Reuno, I haven't had a chance to look at the latest version yet but one thing that I have not spotted (or feel that could be missing) is a means to spawn enemy agents within a given area (rectangle/plane). I keep thinking that I have seen something in the MMTools but it was probably pooling stuff. Do you have anything existing for that type of scenario? Sorry if this is a bit vague but I am in the middle of upgrading Unity3d/Highroad so can't open other projects yet to refer to them.