Search Unity

Core GameKit! Pooling / Spawning / Combat

Discussion in 'Assets and Asset Store' started by jerotas, Jan 27, 2013.

  1. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Actually Triggered Spawners have just about all the same options as the Syncro Spawners. You only can't do elimination waves or change music (the latter of which is minor) I believe.

    You could also work around this by making your waves extra super long and then calling LevelSettings.EndWave to either end the current wave or start the next wave if you set up a "filler" empty wave and you're in that one.

    If these are not sufficient what would you specifically like added to help you? Maybe something like a method:

    SpawnWave(int levelNumber, int wavenumber)?

    There's a similar one now for WarpToLevel...
     
    Last edited: Jan 4, 2014
  2. ojuzu

    ojuzu

    Joined:
    Jun 29, 2006
    Posts:
    67
    Yeah totally, after running a few scenarios with the Triggered Spawners they definitely do everything I need from a spawning standpoint. Especially once I started creating child spawners. And I agree the music changing is minor, especially for my game where the music is more ambient.

    I had considered creating long Timed waves or creating an Elimination wave and then hiding a prefab somewhere so it will never change but that's not ideal for obvious reasons.

    Yes! A SpawnWave() method would be awesome. It could be integrated where in addition to the Timed and Elimination wave types, there would be a Manual wave type. In a Manual wave it would essentially stay on that wave forever, until you either invoked SpawnWave() or NextWave() or RestartWave(), etc. This would allow me to use all of the great sequencing and other features of the LevelSettings module without being tied to time or elimination. I'm sure you have a lot on your plate but if you have the bandwidth I'd love to see this added as I'm sure others would as well.

    Just for some context so you can understand where I'm hitting the ceiling here, I'm using this in an RTS-ish mobile game where I need to spawn more and more enemy units based on a combination of factors that can't be easily summed up into one value. Things like player expansion, tech progress, num items found, time passed (5 to 10 minutes as opposed to 2-3), etc.

    Thanks for the quick response!
     
  3. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    That all sounds cool, I'll put it down for post-3.0 additions. You're in Seattle too eh? Do you attend the Seattle Unity user group? I've started going to a couple, and it's a great place to network and learn as well. I'll send you a link if you don't know about it :)
     
  4. ojuzu

    ojuzu

    Joined:
    Jun 29, 2006
    Posts:
    67
    Yep, I am in Seattle and I haven't went to the Seattle Unity group but I'd definitely be interested if you can send me the info. Thanks man, much appreciated!
     
  5. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Sent you a PM.
     
  6. GLucasDev2

    GLucasDev2

    Joined:
    Jul 24, 2013
    Posts:
    77
    Just bought, imported, and get all these lovely errors....


    Code (csharp):
    1. Assets/DarkTonic/KillerWaves/Scripts/Utility/Killable.cs(233,41): error CS0246: The type or namespace name `Collision2D' could not be found. Are you missing a using directive or an assembly reference?
    2.  
    3. Assets/DarkTonic/KillerWaves/Scripts/Utility/Killable.cs(237,54): error CS0246: The type or namespace name `Collision2D' could not be found. Are you missing a using directive or an assembly reference?
    4.  
    5. Assets/DarkTonic/KillerWaves/Scripts/Utility/Killable.cs(247,39): error CS0246: The type or namespace name `Collider2D' could not be found. Are you missing a using directive or an assembly reference?
    6.  
    7. Assets/DarkTonic/KillerWaves/Scripts/Utility/Killable.cs(251,52): error CS0246: The type or namespace name `Collider2D' could not be found. Are you missing a using directive or an assembly reference?
    8.  
    9. Assets/DarkTonic/KillerWaves/Scripts/Despawners/TriggeredDespawner.cs(113,41): error CS0246: The type or namespace name `Collision2D' could not be found. Are you missing a using directive or an assembly reference?
    10.  
    11. Assets/DarkTonic/KillerWaves/Scripts/Despawners/TriggeredDespawner.cs(130,39): error CS0246: The type or namespace name `Collider2D' could not be found. Are you missing a using directive or an assembly reference?
    12.  
    13. Assets/DarkTonic/KillerWaves/Scripts/Despawners/TriggeredDespawner.cs(147,38): error CS0246: The type or namespace name `Collider2D' could not be found. Are you missing a using directive or an assembly reference?
    14.  
    15. Assets/DarkTonic/KillerWaves/Scripts/Spawners/TriggeredSpawner.cs(608,41): error CS0246: The type or namespace name `Collision2D' could not be found. Are you missing a using directive or an assembly reference?
    16.  
    17. Assets/DarkTonic/KillerWaves/Scripts/Spawners/TriggeredSpawner.cs(639,39): error CS0246: The type or namespace name `Collider2D' could not be found. Are you missing a using directive or an assembly reference?
    18.  
    19. Assets/DarkTonic/KillerWaves/Scripts/Spawners/TriggeredSpawner.cs(670,38): error CS0246: The type or namespace name `Collider2D' could not be found. Are you missing a using directive or an assembly reference?
    20.  
    21. Assets/DarkTonic/KillerWaves/Scripts/Utility/KillableChildCollision.cs(49,41): error CS0246: The type or namespace name `Collision2D' could not be found. Are you missing a using directive or an assembly reference?
    22.  
    23. Assets/DarkTonic/KillerWaves/Scripts/Utility/KillableChildCollision.cs(57,39): error CS0246: The type or namespace name `Collider2D' could not be found. Are you missing a using directive or an assembly reference?
     
  7. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,697
    Can you upgrade to Unity 4.3? Collider2D was introduced in 4.3. Or you could wrap the lines in #if's to only compile if UNITY_4_3 is defined. I believe Dark Tonic has updated the upcoming v3.0 to include these compiler conditions so it will run in 4.0 - 4.2.
     
  8. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Tony is correct. You can either upgrade to Unity 4.3, wait for the Killer Waves 3.0 update (will be probably 2 weeks at this point) - longer than I thought, or PM me and I'll send you 2.7.8 with those import statements fixed.
     
  9. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Killer Waves hotfix version 2.7.8.1 has been submitted to the Asset Store. It fixes compilations errors in Unity 4.1 4.2
     
  10. im

    im

    Joined:
    Jan 17, 2013
    Posts:
    1,408
    hi happy holidays!

    w latest kw using latest unity im getting as soon as i import into clean package

    Model 'KillerWaveSpawnWidget' contains animation clip 'Default Take' which has length of 0 frames (start=-1, end=-1). It will result in empty animation.

    thanks in advance!
     
  11. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    That's been there since Unity 4 came out. It's just a warning and causes no harm - there is no animation in that model actually. I'll try to take care of it but I'm not great with animations.
     
    Last edited: Jan 8, 2014
  12. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Killer Waves hotfix is live!
     
  13. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    I also found an Inspector bug with LevelSettings that spams the console window in certain cases. I've fixed it but would prefer to wait for the 3.0 release to go live with it. Email me if you need it.
     
  14. bigdaddio

    bigdaddio

    Joined:
    May 18, 2009
    Posts:
    220
    I added an offset setting to the wave settings, like the incremental and the randomization settings. In my game I didn't want to set up like 25+ spawners that spawn a single wave so I made the offset (X,Y,Z) so that I can have one spawner with 25 waves. Each wave starting in a different location. I'd suggest you look into making that a regular addition.

    To go more in depth on why, each of my enemies has an animation that gives it a path and any rotations etc that I want. I spawn the enemy waves where I want and the animation plays, they swoop and dive across the screen etc. Anyway it makes it a bit more reasonable in my eyes. I'd be glad to share my changes, but I am certain you can figure out how I did it.
     
    Last edited: Jan 7, 2014
  15. dark_tonic

    dark_tonic

    Joined:
    Mar 23, 2011
    Posts:
    138
    That sounds pretty cool! I'll add that. Basically it's just a Vector3 that it adds to the spawner location before picking spawn locations right? The spawner doesn't actually move.
     
  16. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Something my users ask often is, what do you use to make the enemies swoop and dive? Is there an easy way to script that or use Playmaker etc? I'm sure a lot of users here are interested in the answer.
     
  17. im

    im

    Joined:
    Jan 17, 2013
    Posts:
    1,408
    i wasnt sure. if its harmless warning then i'll ignore it. so no need to do anything. just letting you know then. take care!
     
  18. bigdaddio

    bigdaddio

    Joined:
    May 18, 2009
    Posts:
    220
    You use the Animation tool. Plot your paths starting at 0.0.0. Then you need to create a prefab with the "enemy" as a child. you spawn the prefabs and the animation plays, they move around the screen. That easy.
     
  19. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Actually, that's one of the suggestions I gave our users. Just wondering if there were other cool methods. Thanks!
     
  20. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Killer Waves price has been raised back up to $30. It will be going up at least another $15 when V3.0 comes out due to the pooling and Playmaker-style variable usage. Still a good time to get in!
     
  21. dev_2051

    dev_2051

    Joined:
    Jul 25, 2013
    Posts:
    92
    Hi Brian,

    I am trying to set up an enemy wave using 2 spawners.On the second spawner enabled repeat wave to spawn few more enemies.But every time the killer wave seems to ignore the repeat waves setting and move on to the next wave.I am attaching setting image,kindly have a look at the settings and let me know if i am setting it correctly or not?
    $Screen_Shot.png

    Using latest version from asset store.

    Thanks
     
    Last edited: Jan 8, 2014
  22. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    If level 1 wave 1 is a timed wave (looks like it is), your spawner wave will only repeat for the number of seconds you've set level 1 wave 1 for. How many seconds is that? Is it switching to the next wave earlier or did you misunderstand?
     
  23. dev_2051

    dev_2051

    Joined:
    Jul 25, 2013
    Posts:
    92
    I misunderstood time increase variable thinking it will increase the level 1 wave 1 limit.Now understood it will only increase the time to spawn all variable.

    Thanks brian
     
  24. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    ah ok. With a lot of flexibility, sometimes comes a little bit of confusion. That's why I'm here :)
     
  25. dev_2051

    dev_2051

    Joined:
    Jul 25, 2013
    Posts:
    92
    While doing level design today, i felt the need for a trigger event to start next level wave,sometimes time alone is not sufficient.

    e.g:If i wish to spawn next wave enemies while there are still N number of enemies left from last wave(controlled by world variables).

    Is there any function call available that can force next wave to start?Or i was thinking to implement something like "Skip Wave Type" to trigger next wave based on world-variables.Please suggest in which files i can look to achieve this type of functionality?

    Thanks
     
  26. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    At any time, you can call the following to go to the next wave:

    Code (csharp):
    1. LevelSettings.EndWave();
    I'm not at my desk, so it might be EndCurrentWave? Anyway, that's how you do it. There's also a Playmaker Custom Action to call this method.
     
  27. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    The current $30 price is a slammin' deal, since the update next week will include full pooling (like Pool Manager) among other things. If you're hesitant, go read our reviews! There's nothing under 5 stars there.
     
  28. dreamlarp

    dreamlarp

    Joined:
    Apr 22, 2011
    Posts:
    854
    Worth every penny err or euro or clams or what ever you pay with. This is an app that has way more uses than just whats on its face. Without even much mods it works as a dynamic spawning system for any game. With pooling its a must get for any developer.
     
  29. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Thank you dreamlarp. I have a feeling that a lot of people can't grasp exactly what the plugin does or why they would need it. It's not easily pigeonholed and there are no competing plugins to this. It's something of a Swiss army knife for developing games. Even more so when 3.0 comes out (next week).
     
  30. dreamlarp

    dreamlarp

    Joined:
    Apr 22, 2011
    Posts:
    854
    True. We will not even be using any of your combat features, just the conditional spawning. But with app a full game could be made. We have been making quests using this and Dialog system. Now with pooling we can use it to set levels to the players level. The rest is none of anyone's business till we release a teaser. LOL

    Maybe more video's showing some of these uses will help.
     
  31. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Yeah I'll be making a new video just after 3.0 comes out (just a couple days after). In my opinion the Killable class (combat) is the best feature in this product. But now pooling will give it some competition.
     
  32. dreamlarp

    dreamlarp

    Joined:
    Apr 22, 2011
    Posts:
    854
    Killable is a great add but for specific types of games. This excludes anything with inventory, advancement ect.. But used with some of the other kits its killer... hahah you see what I did there? :D
     
  33. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    lol nice. Not exactly though. You can use it for things like coins or weapons that you pick up to modify World Variables as well (zero attack points). It's not limited to just combat usage, if that wasn't clear.
     
  34. dreamlarp

    dreamlarp

    Joined:
    Apr 22, 2011
    Posts:
    854
    True, my bad. I think in terms of RPG and FPS's too much.
     
  35. sonicviz

    sonicviz

    Joined:
    May 19, 2009
    Posts:
    1,051
    Hi,
    Quick question (I bought this a while back but have not used it yet)

    Can this create random spawn points on a terrain?

    ty!
     
  36. Chibwemwn

    Chibwemwn

    Joined:
    Feb 6, 2013
    Posts:
    129
    So I've been loving my time with Killer Waves, and I keep telling my friends how it's pretty much saved my development experience! I wanna get more out of it, though (especially when pooling is finally in!!!). I'm no programmer, and so I'm using Playmaker as well, (which has really saved me as well!), and I'm wondering what listeners do. I've read the documentation a few times, and I know how to add them to objects, but I don't know how to use them, really. How are listeners used, and what makes them so useful?
     
  37. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Not without some coding on your part. You could randomly relocate spawners using some raycasts to make sure they aren't under the terrain.
     
  38. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    The World Variable Listener should normally be used to display the value of World Variables. The rest are only used to write code to perform actions when certain events occur. So if you're not programming, you probably won't use them. The World Variable one though, you don't need to modify. You can use the default one, or install the NGUI one. You could use a listener to display a message at the end of each wave. If you look at the names of the events in each, that's a specific point where code could "do something".
     
  39. Chibwemwn

    Chibwemwn

    Joined:
    Feb 6, 2013
    Posts:
    129
    Okay, so is there a way to use them with PlayMaker, or would I have to write code?
     
  40. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    It's not an "or". To use Playmaker with a Listener, you could write about two lines of code in the Listener to fire an event in your Playmaker FSM if it's in the same game object. If that's useful to you, let me know and I'll share the two lines of code.
     
  41. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Now I just had an idea. I could make Playmaker versions of the listeners where you can specify the event name in the Inspector and it handles the two lines of code for you. It won't be able to do anything with the parameters passed, but it should be useful still. This would be a post V3.0 feature.
     
  42. Chibwemwn

    Chibwemwn

    Joined:
    Feb 6, 2013
    Posts:
    129
    That sounds great! Would you mind showing me the two lines of code, in the meantime?
     
  43. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    When I get home this evening, no problem.
     
  44. Chibwemwn

    Chibwemwn

    Joined:
    Feb 6, 2013
    Posts:
    129
    Cool! Thank you!
     
  45. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    To call an event in the FSM, use code like this and put it in one of the methods in a Listener. This is C#.

    Code (csharp):
    1. var fsm = this.gameObject.GetComponent<PlayMakerFSM>();
    2. fsm.SendEvent("Your event name in the FSM");
     
  46. GrooGadgets

    GrooGadgets

    Joined:
    Apr 2, 2009
    Posts:
    71
    Hey Brian,

    I've only just started using Killer Waves on my game, it's totally awesome mate. Thanks so much!

    Just curious how far off version 3.0 will be?

    Cheers,

    Simon
     
  47. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    Thank you Simon. V3.0 is done coding-wise, we're just getting the new packaging stuff together. We're aiming to submit this week. We aren't sure if we have "instant approval" on all our packages or just Master Audio. I guess we'll see when we submit!

    Also a reminder that the name of the plugin will be changing. I believe it will be "Core GameKit + Pooling". So there will be a new thread when it launches, but of course I'll post in this thread to point to the new thread.

    -Brian

    P.S. Even though the name of the package will change, existing Killer Waves users still will get free updates for life :)
     
    Last edited: Jan 16, 2014
  48. dark_tonic

    dark_tonic

    Joined:
    Mar 23, 2011
    Posts:
    138
    Core GameKit for Unity coming soon

    Killer Waves has undergone many massive upgrades and has become an indispensable tool at the heart of Unity projects for hundreds of developers.

    What started out as a relatively simple wave spawning system has become a Swiss army knife of tools for every kind of project. The name Killer Waves no longer truly represents what the tool can do, so it is being reborn as Core GameKit.

    Core GameKit will not be a new SKU, but instead all previous Killer Waves users will be grandfathered over to the new system for free. The price will go up as there are some extremely valuable new features going in, so there's no reason to wait for the rollout. Pick up Killer Waves today and Core GameKit will be yours free!

    https://www.assetstore.unity3d.com/#/content/6640
     
  49. dreamlarp

    dreamlarp

    Joined:
    Apr 22, 2011
    Posts:
    854
    A new set of video tutorials would be great please.

    Tutorials for these would be awesome.
    :: Global waves - each can trigger any number of spawners. Speed up level design massively!

    :: Triggered Spawners - these spawn when certain events occur, like a trigger, becoming visible, etc. Can contain nested child spawners!
     
  50. jerotas

    jerotas

    Joined:
    Sep 4, 2011
    Posts:
    5,572
    These core features have not changed, except that you can now use variables for any field in those Inspectors if you like, a la Playmaker. So watching videos 1-4 of Killer Waves is still the best way to learn these. We do show child spawners in video 4. I will make a new video of how to use variables and Pool Boss (the pooling new feature).