Search Unity

[RELEASED] Corgi Engine - Complete 2D/2.5D Platformer [new v8.0 : advanced damage system]

Discussion in 'Assets and Asset Store' started by reuno, Dec 18, 2014.

  1. ZygoUgo

    ZygoUgo

    Joined:
    Jul 11, 2017
    Posts:
    63
    Oh wow, thank you! That would be awesome!
     
    reuno likes this.
  2. flipwon

    flipwon

    Joined:
    Dec 29, 2016
    Posts:
    179
    Any particular reason a gamepad would be stuck going left?
     
  3. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @flipwon > None that would be related to the engine, which just reads input using Unity's native APIs.
    Could be a hardware issue, could be a dead zone issue, could be a driver issue, or something else maybe.
     
  4. luiks

    luiks

    Joined:
    Aug 23, 2017
    Posts:
    15
    @reuno , I first thank @bingbing642 . However, his method is kind of a lot of work (i will do, for now, I also want to use URP and didn't find other solutions), so @reuno there is any way you are planning to integrate URP with corgi engine. Or there is already a way to improve this compatibility
     
  5. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @luiks > The engine already works out of the box with URP. It doesn't do any rendering, it's two completely separate systems.

    What doesn't work out of the box in URP are the demos. They have to be in one RP. Most people (rightly) still use SRP, so that's the one they come with. Unfortunately right now URP is in a sorry state, and if changing a culling mask is a lot of work, chances are you'll run in much harder issues to solve down the line. It's packed with bugs, missing features, specs keep changing, updates keep breaking things. It's not production ready. On top of that, the asset store doesn't make it easy (if not impossible) to provide demos in more than one RP. If and when URP improves, I'll be happy to provide demos in it as well. That's not the case right now.
     
  6. luiks

    luiks

    Joined:
    Aug 23, 2017
    Posts:
    15
    Super, you are absolutely right! works fine in a new scene (of course, you create it).
     
  7. luiks

    luiks

    Joined:
    Aug 23, 2017
    Posts:
    15
    @reuno I've been struggling for almost two weeks to have pixel-perfect using cinemachine. I thought it was just my configuration, but today I created a new project and build your retrovania demo (I just download your project on a new project, 2D project). Then, you will see in the short videos what I meant, there is an annoying jittering when I try the build on 1920x1080 resolution. And there is a horizontal line "wave" when the camera moves on 1366x768 resolution. I also try on a 1360x768 monitor, the problems are not so annoying but are there (btw, I have these 3 laptops resolution coincidently). Do you have any solution for this problem?



     
  8. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @luiks > No, I've never seen that before. Doesn't vsync solve this? You may want to ask that question to Unity directly, they're responsible for PixelPerfect and Cinemachine.
     
  9. luiks

    luiks

    Joined:
    Aug 23, 2017
    Posts:
    15
    Thanks for the reply, yeap actually changing vsync actually kind of fix the jittering problem for 1920x1080 and 1360x768 (thank you!). However that horizontal pixel line "wave" is persistent even with the Vsync count to Every V Blank. Just in case you try to test it by yourself, this only happens on the building game, in-game mode (insider unity), everything is perfect! I already ask Unity, no answer, however, I was about to buy 2D camera Pro Asset. However (again) I don't know if this asset will work with you awesome system of changing room in the last videos you post (since it works with cinemachine :(. I will try again with unity technologies now that I made the videos on youtube, thanks!
     
  10. ZygoUgo

    ZygoUgo

    Joined:
    Jul 11, 2017
    Posts:
    63
    Have you got Incremental Garbage Collection on? This creates the odd tear I've noticed, no matter whether you have Vsync on or not
     
    reuno likes this.
  11. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @luiks > I don't know that asset you mention, so I highly doubt it'll work out of the box. But you could certainly adapt the code for it to work.
     
    luiks likes this.
  12. luiks

    luiks

    Joined:
    Aug 23, 2017
    Posts:
    15
    @ZygoUgo Thanks for your comment. What is "Garbage Collection" I will google it, but I really don't know what is or where to find it.
     
  13. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
  14. flipwon

    flipwon

    Joined:
    Dec 29, 2016
    Posts:
    179
    By default is there a way to "release" from ledge hanging or ladder climbing?
     
  15. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @flipwon > Aside from jumping, no, there isn't.
     
  16. liquidsht

    liquidsht

    Joined:
    Jun 4, 2020
    Posts:
    49
    I am trying to use the MMProgressbar as health bar. I copied the UIcamera from one of the demos but could not get it to link up with the characters health, ie. when the player gets hit, the MMProgressbar health bar doesnt move. I made sure Player ID is Player1 in the character, input manager and progressbar component. Is there something else needed? Thanks.
     
  17. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @liquidsht > You'll need to bind your health bar to the GUI Manager, like in the examples.
     
  18. flipwon

    flipwon

    Joined:
    Dec 29, 2016
    Posts:
    179
    I'm having trouble figuring out how you got your feedbacks to flip with your character in the demo scenes, any quick insights you could give me? :p
     
  19. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @flipwon > If you mean particle systems, that's just settings in inspector, usually solved in the renderer tab. Other feedbacks (and MMFeedbacks) don't really flip, so hopefully that's what you meant :)
     
  20. flipwon

    flipwon

    Joined:
    Dec 29, 2016
    Posts:
    179
    That's strange, as I even copied the particle system right off of your demo character. Hrm.
     
  21. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @flipwon > Feel free to use the support form and be a bit more specific about what character you're referring to, what particle system, and what you're doing on your side, I'll be happy to help if I can.
     
  22. flipwon

    flipwon

    Joined:
    Dec 29, 2016
    Posts:
    179
    I actually just figured it out. You are rotating the model on direction change and I was flipping it with scale.
     
  23. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @flipwon > Ah I should have mentioned that! Yes, rotating instead of flipping provides the same visual result (most of the time) but simplifies things a lot when it comes to particles :)
     
  24. flipwon

    flipwon

    Joined:
    Dec 29, 2016
    Posts:
    179
    Is there a quick way to change the input threshold for flipping your character's direction, for joysticks etc?
     
  25. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @flipwon > You can set that via Unity's InputManager settings. Again, please use the support form if you have more support questions, thanks!
     
  26. flipwon

    flipwon

    Joined:
    Dec 29, 2016
    Posts:
    179
    Unfortunately, the input manager sensitivity doesn't seem to affect the threshold of the turning. On a playstation controller, the release of the joystick is stiff enough to turn the character the opposite direction, I'm assuming pressing the joystick ever so slightly.

    I'll try to figure it out and post here if I do. I figured simple (and possibly common) questions should be asked here, in case others run into similar issues.
     
  27. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @flipwon > The dead zone setting in InputManager should help alleviate that issue. There are quite a lot of settings there, and it can be confusing, but that's the right place to fix that. But yeah, please use the support form for support questions, that's what it's for. I get a ton of requests, it just makes tracking and delivering fixes more manageable that way, thanks.
     
  28. NamraGame

    NamraGame

    Joined:
    Feb 17, 2019
    Posts:
    31
    Hi!
    first, congrats, this tool looks dope, really complete, I'm already loving it.
    • I was looking into the tutorials and demo scene, seems like there is no Start Menu (with options etc) implemented right? Do you suggest we developp one from scratch?
    • Also, when you walk on slopes platform, and you fall from it, passed the edge, it makes the character falling super fast. I tried multiplying the raycasts but it's still there. Any ideas?

    thanks!!!
     
  29. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @NamraGame > There is a start menu demo scene. It's called StartScreen. As for the platform issue, if you think it's a bug, please use the support form to report it, and provide steps to reproduce it. I'm not sure I see what you mean, as only gravity applies when falling.
     
  30. liquidsht

    liquidsht

    Joined:
    Jun 4, 2020
    Posts:
    49
    Hi I have bit of an issue when I pause, it also pauses the Unity editor. This only happens in my project but not in the demo. I copied the UICamera GameObject from one of the demos. Has anyone run into this problem as well? Thanks.
     
  31. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @liquidsht > To my knowledge the only way to "pause" the Unity editor is a debug break, and there aren't any in the engine. Maybe you made a change?
     
  32. liquidsht

    liquidsht

    Joined:
    Jun 4, 2020
    Posts:
    49


    These are the errors I am getting when I hit escape

    NullReferenceException: Object reference not set to an instance of an object
    MoreMountains.CorgiEngine.CharacterPause.PauseCharacter () (at Assets/CorgiEngine/Common/Scripts/Agents/CharacterAbilities/CharacterPause.cs:48)
    MoreMountains.CorgiEngine.LevelManager.ToggleCharacterPause () (at Assets/CorgiEngine/Common/Scripts/Managers/LevelManager.cs:605)
    MoreMountains.CorgiEngine.GameManager.Pause (MoreMountains.CorgiEngine.PauseMethods pauseMethod) (at Assets/CorgiEngine/Common/Scripts/Managers/GameManager.cs:318)
    MoreMountains.CorgiEngine.GameManager.OnMMEvent (MoreMountains.CorgiEngine.CorgiEngineEvent engineEvent) (at Assets/CorgiEngine/Common/Scripts/Managers/GameManager.cs:476)
    MoreMountains.Tools.MMEventManager.TriggerEvent[MMEvent] (MMEvent newEvent) (at Assets/CorgiEngine/ThirdParty/MoreMountains/MMTools/Tools/Events/MMEventManager.cs:162)
    MoreMountains.CorgiEngine.CorgiEngineEvent.Trigger (MoreMountains.CorgiEngine.CorgiEngineEventTypes eventType) (at Assets/CorgiEngine/Common/Scripts/Managers/GameManager.cs:60)
    MoreMountains.CorgiEngine.GameManager.OnMMEvent (MoreMountains.CorgiEngine.CorgiEngineEvent engineEvent) (at Assets/CorgiEngine/Common/Scripts/Managers/GameManager.cs:471)
    MoreMountains.Tools.MMEventManager.TriggerEvent[MMEvent] (MMEvent newEvent) (at Assets/CorgiEngine/ThirdParty/MoreMountains/MMTools/Tools/Events/MMEventManager.cs:162)
    MoreMountains.CorgiEngine.CorgiEngineEvent.Trigger (MoreMountains.CorgiEngine.CorgiEngineEventTypes eventType) (at Assets/CorgiEngine/Common/Scripts/Managers/GameManager.cs:60)
    MoreMountains.CorgiEngine.CharacterPause.TriggerPause () (at Assets/CorgiEngine/Common/Scripts/Agents/CharacterAbilities/CharacterPause.cs:40)
    MoreMountains.CorgiEngine.CharacterPause.HandleInput () (at Assets/CorgiEngine/Common/Scripts/Agents/CharacterAbilities/CharacterPause.cs:24)
    MoreMountains.CorgiEngine.CharacterAbility.InternalHandleInput () (at Assets/CorgiEngine/Common/Scripts/Agents/CharacterAbilities/CharacterAbility.cs:131)
    MoreMountains.CorgiEngine.CharacterAbility.EarlyProcessAbility () (at Assets/CorgiEngine/Common/Scripts/Agents/CharacterAbilities/CharacterAbility.cs:156)
    MoreMountains.CorgiEngine.Character.EarlyProcessAbilities () (at Assets/CorgiEngine/Common/Scripts/Agents/Core/Character.cs:356)
    MoreMountains.CorgiEngine.Character.EveryFrame () (at Assets/CorgiEngine/Common/Scripts/Agents/Core/Character.cs:320)
    MoreMountains.CorgiEngine.Character.Update () (at Assets/CorgiEngine/Common/Scripts/Agents/Core/Character.cs:309)


    I havent made any changes to the scripts, so not sure what is causing this
     
  33. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @liquidsht > That error would indicate that there's a (major) error with your character. Without knowing what you did exactly though, it's quite hard to guess what the problem may be. If the issue persists, please use the support form and provide more info (engine version, Unity version, what you did exactly, etc).
     
  34. morganwk

    morganwk

    Joined:
    Oct 13, 2015
    Posts:
    5
    Corgi Engine is something I'm considering buying, but there's one key feature I'm not sure if it supports -

    Now that raycast-based pushable blocks are included... are those blocks also able to interact with each other?

    Having tried to make a raycast based platformer from scratch, this is the issue that I finally gave up on solving, because I ran into difficulties with inter-block interactions (because if I included pushable blocks in their own collision masks, they would always be colliding with themselves, let alone each other).

    If I can set up Corgi engine so that I can have pushable, movable blocks, that the player can stand on, AND you can stack them up on top of each other (bonus points for if that stack can be moved by moving platforms), then I'm 100% sold and I'll straight up just buy the whole thing today.

    If not, or if that is something that you're currently considering adding to the engine but haven't yet, are there any ways around the issue? Like physics-based blocks that have some limited interaction with the corgi controller objects, for example?

    Either way, I appreciate your efforts in making Corgi Engine and continuing to update and support it day in and day out. It must be a lot of work.

    -----------

    Edit: Is there any possibility of being able to use the new Unity 2019 input system alongside Corgi Engine or is the old input manager too big to switch over without messing up the whole engine?
    I can live with the old input system, especially if the input manager class helps make it easier to deal with, but having that option would be a plus.
     
  35. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @morganwk > Right now you can't stack and push pushable blocks, unless you're using physics pushables, which is also possible. As for the "new" input system, there'll be an example of that in the next release.
     
    morganwk likes this.
  36. morganwk

    morganwk

    Joined:
    Oct 13, 2015
    Posts:
    5
    Hm... in that case, how well do physics objects react to being moved around by Corgi-based moving platforms? Is there any desynchronizing, bouncing, or clipping that can't be fixed with some workaround?
    And if that doesn't work, how well do Corgi characters react to being moved around by physics-based platforms?

    Failing that, are pushable blocks being stackable part of your plans for Corgi Engine at some point in the future?

    I'm trying to make a puzzle platformer with unrealistic physics, so box stacking and pushing, even in unorthodox situations like on top of moving platforms, is highly important - just as important as tight, raycast-based movement.
     
  37. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @morganwk > Physics would react like they would in any Unity project. Everything's fixable if you implement it, but if you plan on having a lot of physics interactions (stack, push), I'd recommend going with a physics based solution. Right now stackable pushable blocks are not part of the immediate plans. I can add that to the todo list if you'd like, but that's never been requested before, so it'd be low priority.
     
    morganwk likes this.
  38. morganwk

    morganwk

    Joined:
    Oct 13, 2015
    Posts:
    5
    I appreciate your quick replies and eagerness to help out. I recognize that interactions between pushable blocks is both a very difficult problem to solve with raycasting, and a problem that very few other people are likely to have. It would probably make sense to plan on implementing it eventually, but I wouldn't expect somebody to prioritize it over anything more commonly requested or important. I appreciate your input either way.

    I'll probably have to experiment with a number of potential solutions, but I'll figure it out eventually.
     
  39. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @morganwk > I don't think it'd be very difficult to solve with what's already there, you'd just have to add that feature, and decide on what use cases you want to support, but it's quite doable, I'd say the hardest part is already done. But I don't like saying something is easy or hard, it really depends on one's skills! As I said, I can add it to the todo list if you'd like :)
     
  40. piccolodmq

    piccolodmq

    Joined:
    Jan 7, 2020
    Posts:
    34
    Hi Reuno, just one quick question regarding pickable objects. I setup a character to be able to have this ability, he can do everything ok, (picks the box over his head and everything, but if the player dies while he is holding this pickable object, the player respawns with the object in a random position, still attached to the player (in my case to his right). I am doing something wrong?
     
  41. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @piccolodmq > That sounds like a bug. Don't hesitate to use the support form and provide a bit more info on how and where I can repro it, and I'll be happy to fix it.
     
  42. Alexflame108

    Alexflame108

    Joined:
    Sep 24, 2019
    Posts:
    23
    Actually, @reuno, we have the same problem with slopes and quick falling and it looks like this:

    https://yadi.sk/i/nz3et67hjm-xcA

    Especially take a look at 15-20 sec.

    On 15 sec it's too quick falling, whereas i do EXACTLY THE SAME on 19 sec and it's all fine.
     
  43. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @Alexflame108 > Then likewise, please use the support form, and provide repro steps to your issue, in any of the demos, no changes made. Some context (Unity version, asset version) will also help.
     
  44. Cambesa

    Cambesa

    Joined:
    Jun 6, 2011
    Posts:
    119
    Hello Reuno,

    Is there a way to make the player grab a ladder automatically? We don't want the user to be required to press up to get on the ladder. I was looking for a checkbox on the ladder but there's none. There's none on the CharacterLadder either. Would it be difficult to implement this or can I do this myself? I've read through the code but can't really find a place or function I can use to attach the user to a ladder. I was thinking of a way like: OnTriggerEnter -> Attach player to ladder.

    Kind regards
     
  45. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @Cambesa > Right now there isn't, but I can absolutely add that to the next release, it's a good suggestion (surprised it never came up so far). Note that it should already be doable, the ladder ability exposes a LadderColliding bool, and a StartClimbing method you can call to start climbing the ladder.
     
    Cambesa likes this.
  46. TiredFox

    TiredFox

    Joined:
    Feb 24, 2020
    Posts:
    3
    With the Character Dash Ability is there a way to set it so the character can only dash a limited number of times before it lands (very much like Celeste)? I've been scratching my head over how to do it. I've tried creating a counter but it seems very difficult to get it to work with the coroutine :(
     
  47. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @TiredFox > Right now there's no built-in limit, but you could of course add one. You can look at how other abilities do it for reference. It basically comes down to checking if you still have dashes left before letting the user dash once more. That could be done in StartDash, for example, no need to touch any coroutine for that.
     
    TiredFox likes this.
  48. TiredFox

    TiredFox

    Joined:
    Feb 24, 2020
    Posts:
    3
    Thanks Reuno awesome stuff and I put it in the StartDash function as you suggested. I got it but now just struggling to reset the variable back to 0 when player is grounded. I suspect I need to add an if character grounded then reset dash counter. Thanks for your help!
     
    reuno likes this.
  49. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,923
    @TiredFox > You can do something like :
    Code (CSharp):
    1. if (_controller.State.JustGotGrounded)
    2. {
    3.     // reset your counter here
    4. }
     
    TiredFox likes this.
  50. TiredFox

    TiredFox

    Joined:
    Feb 24, 2020
    Posts:
    3
    Spot on, you saved a lot of head scratching for me there. I put it under ProcessAbility. Reuno, you're a top guy thanks!
     
    reuno likes this.