Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice

[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. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,872
    andreiagmu likes this.
  2. andreiagmu

    andreiagmu

    Joined:
    Feb 20, 2014
    Posts:
    174
    Got it! I sent a pull request with my CharacterPersistence_CustomScene extension. :)
     
    reuno likes this.
  3. saebashi

    saebashi

    Joined:
    Nov 5, 2013
    Posts:
    13
    Thanks for the great Asset.
    However, I followed the tutorial and installed CorgiEngine on my 2D URP project, but the frame rate drops momentarily during play in any demo scene, causing a choppy game screen.
    How can I improve it? This phenomenon occurs even in Minimal scenes. When I installed it on a non-URP 2D project, this phenomenon did not occur.
    The version of Unity is 2022.3.7f1.
    <This is machine translation.>

    In the video, it is around 00:13 and 00:24.
    Again, this does not happen with Built-In.
    https://www.dropbox.com/scl/fi/a9jj...4-09.mp4?rlkey=bv0zss71xkjokm3gvq7zqwcut&dl=0
     
  4. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,872
    @saebashi > It could be a URP bug, especially if this doesn't happen with built-in. I'd suggest looking at your profiler to see what causes these things. The engine itself doesn't do any rendering, it just handles gameplay logic, so if you see a difference between a demo scene in URP and in BiRP, the issue is on URP's side. I'm personally not aware of that particular issue, but then again, it's URP, it doesn't lack for issues.
     
  5. saebashi

    saebashi

    Joined:
    Nov 5, 2013
    Posts:
    13
    Hmmm...
    I see, from your advice, I changed the Unity version to 2021 and this one worked fine. I have no choice but to try developing with 2021 for a while.
    Thanks for your quick reply.
    <This is a machine translation>
     
  6. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,872
    @saebashi > That'd make sense, 2021 is still much more stable. I'm glad you solved your issue.
     
  7. saebashi

    saebashi

    Joined:
    Nov 5, 2013
    Posts:
    13
    I was mistaken. After all, whether it is 2021 or 2022, URP will be choppy.
    I was troubled.
    <This is a machine translation>
     
  8. saebashi

    saebashi

    Joined:
    Nov 5, 2013
    Posts:
    13
    Looking at the profiler, the spike is occurring in the EditorLoop, and this seems to be an issue that only happens in the Editor. In the URP project before incorporating CorgiEngine, this spike did not occur. As a solution to the problem, I enabled Incremental GC. This is not a fundamental solution, but for now, I will consider it resolved.
    <This is a machine translation>
     
  9. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,872
    @saebashi > What was in your project before importing CE?
    Nothing (or almost nothing) in CE runs in the editor loop, aside from a few custom inspectors, and again nothing in the engine does anything related to rendering, so whether you're using URP or BiRP or HDRP or a custom RP will have zero impact on the engine's performance, it's scripts, they're unrelated to your RP of choice entirely.
    Use deep profiling to find out what exactly it is.
     
  10. andreiagmu

    andreiagmu

    Joined:
    Feb 20, 2014
    Posts:
    174
    Hi! Is there any example of using an animation system other than Mecanim with Corgi?
    Any tips/advice about using another animation system with Corgi?

    In my case, I prefer to use Animancer as my animation system.
    Did someone already make an integration between Corgi and Animancer?

    My intention is to not use Mecanim at all, and control my animations through Animancer only.
    I see there's the "Use Default Mecanim" bool in Character.cs, which can be disabled so Corgi stops updating its default Mecanim stuff.

    What would be the next steps regarding that implementation?
    I guess I'll need to add stuff to CorgiMonoBehaviour and MMMonoBehaviour, to add some Animancer-related code (so all Corgi classes that work with animations can easily access Animancer), or is there a more recommended way to do this?
     
  11. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,872
    @andreiagmu > No, there's no such example in the engine. What I've seen most studios do is to still have the abilities output to an Animator, then read that Animator's parameter list and feed it to whatever 3rd party system. Of course that requires still using Mecanim at least as a proxy for parameters.

    If for some reason you don't want to use Mecanim at all, even for that, then you'd need to override the MMAnimatorExtensions update methods to plug in your own systems. I'm not sure what you mean to add to CorgiMonoBehaviour or MMMonoBehaviour (these are empty proxy classes), but if that works for you you can of course do things that way, there are plenty of good ways to go about this.
     
    andreiagmu likes this.
  12. andreiagmu

    andreiagmu

    Joined:
    Feb 20, 2014
    Posts:
    174
    Thanks for the advice!
    I haven't thought of overriding MMAnimatorExtensions. I think this will be a cleaner solution than some other solutions I was considering doing with those proxy classes. :)
     
    reuno likes this.
  13. EarlyDarkEntertainment

    EarlyDarkEntertainment

    Joined:
    Oct 8, 2018
    Posts:
    15
    Hello any chance of porting Corgi over to Unreal?
     
  14. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,872
  15. andreiagmu

    andreiagmu

    Joined:
    Feb 20, 2014
    Posts:
    174
    In the ability CharacterSurfaceFeedbacks.cs, DetectSurface(), I think there should be an extra null check:
    Code (CSharp):
    1. if (!_controller.State.IsGrounded || _controller.StandingOn == null)
    2. {
    3.     return;
    4. }
    I frequently have an exception at the first frame whenever I spawn the player on my level.
    The controller is grounded, but doesn't know yet if it's standing on anything (StandingOn == null).
     
    reuno likes this.
  16. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,872
    @andreiagmu > Yes, you're right. Thankfully, this has already been reported and fixed, the fix will be in the next release, coming very soon (submitted a while back to the asset store, so a matter of days now).
     
    andreiagmu likes this.
  17. bwlgeo

    bwlgeo

    Joined:
    May 10, 2022
    Posts:
    12
    Afternoon everybody, two quick questions

    Just updated from 8.3.1 to 8.6 (a big jump, I know) taking care to remove my Corgi folder first and then import the new version. I then went through using my backup as a reference to match layer/physics/collision settings to what they were previously, but I'm having a problem where now my player characters are no longer properly colliding with or triggering 2d box colliders that aren't explicitly using Corgi components. Teleporters and combat using Corgi characters still works, for example, but when using Dialogue System's On Trigger Enter and On Collision Enter systems, which worked with Corig in the 8.3.1 version, now won't trigger in 8.6. Any clues as to where the issue might lie? Can provide more info if necessary

    Also I updated to 8.6 but it doesn't seem like the KillsManager is in the new version. Am I missing something or is it not there yet?
     
  18. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,872
    @bwlgeo > 1. I don't know what your issue may be, but the engine doesn't have the "power" to interfere with your triggers and collisions. Maybe something's wrong in your physics settings? Or maybe your objects are on layers that don't collide in your layer matrix?
    2. Yes, the KillsManager is in the new version. The most likely explanation would be that you're not on 8.6. You can verify what version you're on in the readme at the root of the asset (see 1st highlighted item in the FAQ).
     
    bwlgeo likes this.
  19. bwlgeo

    bwlgeo

    Joined:
    May 10, 2022
    Posts:
    12
    Ah, got it on the KillsManager. Misread the version number at the end of the changelog I was one behind.

    The problem ended up solving itself and I'm not totally sure how. My only thought is that updating Corgi reset one of my layer settings and then in the process of updating Unity the setting got set back somehow? Still not totally sure because those were the only things that I changed in between collision working and not.

    Thanks for the help!
     
  20. reuno

    reuno

    Joined:
    Sep 22, 2014
    Posts:
    4,872
    @bwlgeo > I'm glad you got it working, thanks for letting me know!