Search Unity

Super 3match kit - with: AI, visual editor and modular gameplay editor

Discussion in 'Assets and Asset Store' started by LuxUnity, Aug 15, 2014.

  1. susineko

    susineko

    Joined:
    Sep 24, 2013
    Posts:
    18
    hello LuxUnity

    Thank you for your quick reply.

    I tried falling_speed and the problem when falling is gone.

    I see. When the processing is slow, the falling speed will be faster, so
    It's a good reason to set a limit.
    ----------------------------------------------------------------------------------------
    Also, when limiting the speed when moving diagonally,
    Where should I set it?

    http://160.16.227.253/movie/FrameRate_Diagonal.mp4

    thank you.
     
  2. LuxUnity

    LuxUnity

    Joined:
    Sep 29, 2010
    Posts:
    717
    falling_speed also affects the diagonal falling speed. I used transform.Transalte with normalized values to be sure that the diagonal speed is not faster than the vertical one, but at 5 frames per second, it seems to have issues with that...

    falling_speed = 4 will works also with diagonal


    Also by checking that I find that the diagonal falling was not working under blocks, so I'm updating a new version with a fix right now...
     
  3. susineko

    susineko

    Joined:
    Sep 24, 2013
    Posts:
    18
    hello LuxUnity

    >falling_speed also affects the diagonal falling speed.
    >I used transform.Transalte with normalized values to be sure that the diagonal
    >speed is not faster than the vertical one, but at 5 frames per second,
    >it seems to have issues with that...
    >
    >falling_speed = 4 will works also with diagonal

    I see. understood. Thank you.
    ---------------------------------------------------------
    >Also by checking that I find that the diagonal falling was not working under blocks,
    >so I'm updating a new version with a fix right now...

    Sorry for the inconvenience, but thank you in advance.
     
  4. susineko

    susineko

    Joined:
    Sep 24, 2013
    Posts:
    18
    hello LuxUnity

    The best solution to the problem is
    I think that it is good to limit at the maximum speed that can move in one frame.

    0.5f = maximum speed that can be moved in 1 frame
    SpeedLimit.jpg
     
    LuxUnity likes this.
  5. susineko

    susineko

    Joined:
    Sep 24, 2013
    Posts:
    18
  6. LuxUnity

    LuxUnity

    Joined:
    Sep 29, 2010
    Posts:
    717
  7. susineko

    susineko

    Joined:
    Sep 24, 2013
    Posts:
    18
    hello LuxUnity

    >Thanks for your report, I'll check it out as soon as possible.
    thank you for your reply.
    I'm in trouble, so please help me.
    ------------------------------------------------------------
    It's an easy way to get into trouble.

    1. disadle (allow diagonal falling)
    2. BoardManager.cs Awake()
    QualitySettings.vSyncCount = 0;
    Application.targetFrameRate = 30;
    Add above two
    3. Video instructions...Destroy tiles vs timer stage,
    blue gem Swipe right.

    http://160.16.227.253/movie/Space_2.mp4

    Space.jpg
     
  8. LuxUnity

    LuxUnity

    Joined:
    Sep 29, 2010
    Posts:
    717
    Ok, I find a solution for this bug, update on the way...
     
  9. susineko

    susineko

    Joined:
    Sep 24, 2013
    Posts:
    18
    >Ok, I find a solution for this bug, update on the way...
    Whoa, that's great. It was good.
    Thank you.
     
  10. susineko

    susineko

    Joined:
    Sep 24, 2013
    Posts:
    18
    hello LuxUnity

    If you want to update,
    I thought it would be better to add
    if (Input.GetMouseButtonUp(0)) MouseUp();
    as well.
    Video problem solved.

    A quick left mouse click on a gem will
    try Gem_drag will always appear and the mouse click will not respond thereafter.

    http://160.16.227.253/movie/MouseButton.mp4

    Unfortunately, once this problem occurs,
    You will never be able to operate gems again.
    -------------------------------------------------------------------------------
    It can occur even at 60 fps if you try hard enough.
    At low frame rates, this can easily occur.
    Ver.2.2.2 , Ver.2.2.3 Both occur.
    -------------------------------------------------------------------------------
    Cause.
    Mouse Down --> Up OK
    Mouse Up --> Down ERROR
    quick left mouse click
    The order is reversed.

    if (Input.GetMouseButtonUp(0)) MouseUp();
    Adding this solves the problem.

    MouseButton.jpg
     
    LuxUnity likes this.
  11. susineko

    susineko

    Joined:
    Sep 24, 2013
    Posts:
    18
    hello LuxUnity
    Thank you for version 2.2.4.
    The issue has been resolved.
    ================================

    However, I found another problem.
    I can't use "Empty" in the map editor
    Using it will result in an error.

    http://160.16.227.253/movie/Empty.mp4
    ---------------------------------------------------------
    If you can use "Empty", the map variations will be greatly expanded.
    is it possible to use?
    I get the error in any version.
    (2.2.2 , 2.2.3 , 2.2.4)
     
  12. LuxUnity

    LuxUnity

    Joined:
    Sep 29, 2010
    Posts:
    717
    I'm currently sick, as soon I recover I'll fix that...
     
  13. susineko

    susineko

    Joined:
    Sep 24, 2013
    Posts:
    18
    hello LuxUnity

    Thank you for your reply.
    Also, I am happy to be able to fix it.

    I hope that you’re recovering and getting better now.
     
  14. LuxUnity

    LuxUnity

    Joined:
    Sep 29, 2010
    Posts:
    717
    Thanks, I submit the fix today
     
  15. zachholt

    zachholt

    Joined:
    Aug 31, 2014
    Posts:
    10
    Hello!

    I am interested in using this asset but have a quick question. Is there an option to just have endless mode? My game involves a Match 3 system that can be entered whenever with no winning or losing and the certain tile matches increase different values. Templates on the store are designed to have a winning or losing scenario which I do not really need.

    Thanks for the help!
     
  16. LuxUnity

    LuxUnity

    Joined:
    Sep 29, 2010
    Posts:
    717
    Yes, you can set the win condition as "play until lose" and game over condition as "relax mode" = no game over
     
    zachholt likes this.
  17. zachholt

    zachholt

    Joined:
    Aug 31, 2014
    Posts:
    10
    Got the asset and working great so far.

    Another question, what would the best way to load all the tiles into a single GameObject instead of straight into the scene? I want the Match 3 to be in World Space and be under a GameObject I have in my scene. Before I dig through the code I just wanted to ask if you know where the best place would be to do this.

    Thanks!
     
  18. LuxUnity

    LuxUnity

    Joined:
    Sep 29, 2010
    Posts:
    717
    You can open BoardManager and set the parent right after each "Instantiate" in that code.
    But, because the background is independent of the board, you can just don't touch the board and move the camera instead, with the result to give the illusion that is the board to move.



    See? It seems that the board is in World Space, but I just change the camera rotation and position (and set it as prospective instead of orthographic).
     
    zachholt likes this.
  19. susineko

    susineko

    Joined:
    Sep 24, 2013
    Posts:
    18
    hello LuxUnity
    Thank you for version 2.2.5.
    The issue has been resolved.
    it feels so good.
    ================================
    However, I found another problem.
    Tap the falling gem to It will stop falling.

    http://160.16.227.253/movie/TapStopFalling.mp4

    You can also check with demo_3match/index.html
    You can also check with version 2.2.3.
    --------------------------------
    I also tried creating a solution code,
    Are there better solutions?
    AvoidanceTestCode.jpg
     
  20. LuxUnity

    LuxUnity

    Joined:
    Sep 29, 2010
    Posts:
    717
    Hi, that is not a bug, it is the correct behavior.

    You can interact with the gems by tap>hold>swipe, but also by tap>release>tap another gem.

    So when you tap on a gem, that gem will wait until you end the move that you initiate with that tap on it.

    In your video, you select a gem, then tap on a gem that is not close to it, the game register the second tap as an invalid move and releases the first gem.
     
  21. susineko

    susineko

    Joined:
    Sep 24, 2013
    Posts:
    18
    >Hi, that is not a bug, it is the correct behavior.
    >You can interact with the gems by tap>hold>swipe, but also by tap>release>tap another gem.

    hello LuxUnity

    Oh, so it was the correct behavior.
    I did not know that it was a specification.
    I am very sorry.
     
  22. cartoonistunknown

    cartoonistunknown

    Joined:
    Feb 5, 2021
    Posts:
    2
    <Bug report>
    When a new ruleset Template is created and I set the win condition to Enemy_hp_is_zero or lose condition to Player_hp_is_zero, IndexOutofRangeException triggers.

    The former one produces this error log:

    IndexOutOfRangeException: Index was outside the bounds of the array.
    RulesetTemplateEditor.ArmorBattle_CharacterInfo (Character thisCharacter) (at Assets/3match/Editor/RulesetTemplateEditor/RulesetTemplateEditor_ArmorBattle.cs:31)
    RulesetTemplateEditor.PlayerHpIsZero () (at Assets/3match/Editor/RulesetTemplateEditor/LoseConditions/RulesetTemplateEditor_PlayerHPisZero.cs:26)
    RulesetTemplateEditor.MainRules () (at Assets/3match/Editor/RulesetTemplateEditor/RulesetTemplateEditor_MainRules.cs:139)
    RulesetTemplateEditor.OnInspectorGUI () (at Assets/3match/Editor/RulesetTemplateEditor/RulesetTemplateEditor.cs:16)
    UnityEditor.UIElements.InspectorElement+<>c__DisplayClass72_0.<CreateInspectorElementUsingIMGUI>b__0 () (at <13e852a0caac41f981d50cc29ae40ac7>:0)
    UnityEngine.GUIUtility:processEvent(Int32, IntPtr, Boolean&)​

    and the latter one this:

    ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
    Parameter name: index
    System.Collections.Generic.List`1[T].get_Item (System.Int32 index) (at <46a5f68c38604d68a85231bbf55f6b8f>:0)
    RulesetTemplateEditor.EnemyHpIsZero () (at Assets/3match/Editor/RulesetTemplateEditor/WinConditions/RulesetTemplateEditor_EnemyHPisZero.cs:27)
    RulesetTemplateEditor.MainRules () (at Assets/3match/Editor/RulesetTemplateEditor/RulesetTemplateEditor_MainRules.cs:118)
    RulesetTemplateEditor.OnInspectorGUI () (at Assets/3match/Editor/RulesetTemplateEditor/RulesetTemplateEditor.cs:16)
    UnityEditor.UIElements.InspectorElement+<>c__DisplayClass72_0.<CreateInspectorElementUsingIMGUI>b__0 () (at <13e852a0caac41f981d50cc29ae40ac7>:0)
    UnityEngine.GUIUtility:processEvent(Int32, IntPtr, Boolean&)​

    Seems like Bonus Rules => give bonus => After_big_explosion in the new ruleset template give a similar error:

    IndexOutOfRangeException: Index was outside the bounds of the array.
    RulesetTemplateEditor.GiveBonus_AfterBigExplosion () (at Assets/3match/Editor/RulesetTemplateEditor/Bonus/RulesetTemplateEditor_Bonus_AfterBigExplosion.cs:32)
    RulesetTemplateEditor.BonusRules () (at Assets/3match/Editor/RulesetTemplateEditor/Bonus/RulesetTemplateEditor_Bonus.cs:33)
    RulesetTemplateEditor.OnInspectorGUI () (at Assets/3match/Editor/RulesetTemplateEditor/RulesetTemplateEditor.cs:18)
    UnityEditor.UIElements.InspectorElement+<>c__DisplayClass72_0.<CreateInspectorElementUsingIMGUI>b__0 () (at <13e852a0caac41f981d50cc29ae40ac7>:0)
    UnityEngine.GUIUtility:processEvent(Int32, IntPtr, Boolean&)​



    <Suggestions>

    ⓐ new matching mechanism and a new special bomb
    Most 3-match games nowadays have introduced a new matching mechanism, which requires 4 gems to be swapped in a form of a 2x2 box like this:
    ■■
    ■■
    This produces a special bomb (typically something similar to an airplane) that will snipe stage target when triggered. For example, if the player is required to collect tokens, it will destroy a tile right below one of the tokens on board to help clear it out.
    Wanted to and tried to code them myself, but my programming ability is pretty much limited.

    ⓑ bomb combinations
    Many 3 match games use bomb combinations when swapping two bombs.
    For examples:
    - a "horizontal bomb" combined with a "big explosion bomb" clears 3 horizontal and 3 vertical blocks.
    - a "rainbow bomb" combined with a "horizontal bomb" changes the rarest colored gem blocks on the board to horizontal bombs.
    - an "airplane bomb" combined with another "airplane bomb" triggers 3 successive times.
    This mechanism makes 3 match games more engaging and exciting. It would be good to have them.

    ⓒ etc
    I also believe that some variables in the Board_C script(Number of tokens emitted and Ice grow-related ones) are more fit to be in the ruleset template. Just food for thought.

    This is a very solid tool. I want to praise you for the good and only 3 matching games making tools in the asset store.

    P.S. Do you plan to update or rewrite the code in the near future? I am planning to learn through your code. If you do, I can wait.
     
  23. LuxUnity

    LuxUnity

    Joined:
    Sep 29, 2010
    Posts:
    717
    Thanks for your feedback. Your errors don't appear to me, but even so, those errors mean that the inspector UI fails to update just after your changes, right after the error it will update again and fix it. So everything will work fine in any case. I'll see how to implement your suggestions.
     
  24. LuxUnity

    LuxUnity

    Joined:
    Sep 29, 2010
    Posts:
    717
    Version 2.3 is submitted to the Asset Store right now with this new requested feature:

    2x2.png
     
    cartoonistunknown likes this.
  25. cartoonistunknown

    cartoonistunknown

    Joined:
    Feb 5, 2021
    Posts:
    2
    2x2 explosion works well, and the errors are gone(dunno why). The customizing feature is insane as well. Thanks for your hard work and friendly fast support. :)

    I promise I will give you a good review, as soon as the asset store allows me; it says I should download the asset first to write a review(which is downright weird because I already did).
     
    Last edited: Aug 11, 2023
    LuxUnity likes this.