Shmup Boss - Support

This is the support thread for Shmup Boss

Discord Server | Documentation

What is Shmup Boss
Shmup Boss is a scrolling shooter template, it has been set up to work horizontally and vertically with both desktop and mobile. It contains many features that you’d expect to have in a scrolling shooter and it would make building and further developing your very own shmup a lot easier than starting from scratch.

Features

  • Finite/Infinite levels

  • Pooling system

  • Background layering system

  • Behaviors and effects based on events

  • Global difficulty system

  • Main menu with settings and player select option

  • In level UI

  • Pooled bullets/missiles weapon system in addition to particle based weapons system

  • Pooled effects spawned and driven by agent events

  • Drops, pickups, upgrades

  • Multi-phased boss and enemy mines

  • Audio and animated effects library

  • All demos shown in the trailer are included in the pack

To know the exact features in detail, you can always download and have a look at the documentation (It is attached at the end of this post)

Please do not assume that a certain feature exists, there are a ton of features that can be potentially added to a template of this genre but our focus has been on creating a solid core for developers to expand upon, watch the video tutorials, read the documentation or ask any questions before making a purchase. Every shmup game has its very own unique perk or feature that distinguishes it from other games and we cannot add all the possible features but we hope this pack will give you a head start.

Shmup Boss currently uses a 2D orthographic camera and not a 3D perspective camera.

Video Tutorials
Tutorials Playlist
Using the Infinite Scrolling Background with Shmup Boss

6675019–1342312–Shmup Boss User Manual.pdf (2.71 MB)

Update
Just uploaded Version 2.01 which improves the performance by changing the global difficulty system (multiplier), and also fixes a bug in the boss system. It should be online within a day or 2.

Will this work with behavior designer ? and its addons ?

Shmup Boss is a complete standalone engine for creating scrolling shooters. It has its own complete pooling system, which means enemies, pickups, background, etc… need to be spawned using its internal components. For a better idea you can view some of the video tutorials or documentation.

I have not used Behavior Designer or PlayMaker so I cannot fully comment in what capacity you can use them.

But to give everyone an idea on what to expect; for example:
An enemy in Shmup Boss is spawned using a specific component, if you do not use that component and use some other engine’s system; The pooling system will not be able to detect where the enemy was spawned from to be able to pool it, and the level completion mechanism might not be able to function properly.

As with any system, you could probably use other engines, tools, etc… as long as you are aware of all of the details on how they work.

I personally do not recommend mixing other engines with Shmup Boss, I tried my best to write and document Shmup Boss’ scripts in a way to make them easy to understand and expand upon and to have the core components you need for your scrolling shooter. Supporting compatibility with all the different engines and tools on the asset store is something well beyond my capacity.

hey Ebal,

I am still using Shmup baby now and have a simple question on that. I really want to upgrade to Shmup boss but it is hard to roll over my current project.

I have a question on the Shot FX module. Currently attached it to a missile weapon game object and play a MissileFire audio each time it fires. It seems like the code would play the clip multiple times (without stopping the previous play) if the weapon is shooting too fast.

Are you using .Play or .PlayOneShot somewhere in the code? The issue is that it generates too many audio counts when a weapon fires too fast and eventually mess up all audio. Is there a solution to this? Please see screen shots attached.

Ideally the previous missile sound would stop as soon as the new missile sound is being played by the same weapon.

I looked into ShotFX.cs and LevelAudioManage.cs with no luck.

Thanks,
Wai Fung

Hi Wai Fung,
I am not sure if the cool down effect is not what you need, but if you have a short firing clip sound and you use a cool down value of say 0.1, you should pretty much get a good firing sound effect for any high rate missile sound effect.

Now technically the feature you are asking for is slightly different, you want the sound effect to stop playing once a new one is active instead of each effect playing until it ends or preventing new ones from sounding using the cool down. There are couple of workarounds without coding to do it, and you can do it code but they all involve some work.

In Shmup Baby, I am using the PlayOneShot (In Shmup Boss I am using a pooled sound system).
If you want to see how it works or make your own modifications, these are the scripts involved:

Line 77 in ShotSFX.cs plays the clip using the level audio manager script which holds the shmup audio clip class

        private void PlayShot (ShmupEventArgs args)
        {
            if (_inCoolDown)
                return;

            ShotSound.PlayClip(null);

            StartCoroutine(CoolingDown());

        }

Line 40 in LevelAudioManager.cs plays the clip using the instance of the level audio manager:

        public void PlayClip(ShmupEventArgs args)
        {
            LevelAudioManager.Instance.PlayShmupClip(this);
        }

And finally Line 228 in AudioManager.cs holds the PlayOneShot method

        public void PlayShmupClip(ShmupAudioCip clip)
        {
            if (SFXSource == null)
                return;

            if (clip.Clip != null)
                SFXSource.PlayOneShot(clip.Clip, clip.Volume);
        }

If you want to change it in code, you will have to make a separate method for playing weapon sound effects, that only plays one sound at a time.

If without code, you have 2 convoluted workarounds:
1-You can edit your sound effect to make it very short in any audio software like audacity. and if you want to hear the end of the sound effect, if you are using a player weapon you can use sound FX controller to add a sound effect on “weapon stop fire” event.
2-Alternatively, in an audio software you can merge the sounds to make them like a machine gunfire sound, and in conjunction with the cool down timer you will get almost the effect you are after.

But with all honesty, I am not sure if it’s worth all the effort, the cool down feature should get you very close, if you must, you can change the sound effect as explained above to something faster. In Shmup Boss I have a feature for limiting sound effects being played at the same time, but it’s applied globally and not to a single weapon.

Just a very small note: for any future Shmup Baby support can we keep the posts at the other board: https://discussions.unity.com/t/715178
Posting on Shmup Boss support thread might confuse any Shmup Boss users or potential customer. Xie Xie Wai Fung

7267045--877153--Capture3.PNG.jpg 7267045--877153--Capture3.PNG.jpg [quote=“EbalStudios, post:6, topic: 822568, username:EbalStudios”]
Hi Wai Fung,
I am not sure if the cool down effect is not what you need, but if you have a short firing clip sound and you use a cool down value of say 0.1, you should pretty much get a good firing sound effect for any high rate missile sound effect.

Now technically the feature you are asking for is slightly different, you want the sound effect to stop playing once a new one is active instead of each effect playing until it ends or preventing new ones from sounding using the cool down. There are couple of workarounds without coding to do it, and you can do it code but they all involve some work.

In Shmup Baby, I am using the PlayOneShot (In Shmup Boss I am using a pooled sound system).
If you want to see how it works or make your own modifications, these are the scripts involved:

Line 77 in ShotSFX.cs plays the clip using the level audio manager script which holds the shmup audio clip class

        private void PlayShot (ShmupEventArgs args)
        {
            if (_inCoolDown)
                return;

            ShotSound.PlayClip(null);

            StartCoroutine(CoolingDown());

        }

Line 40 in LevelAudioManager.cs plays the clip using the instance of the level audio manager:

        public void PlayClip(ShmupEventArgs args)
        {
            LevelAudioManager.Instance.PlayShmupClip(this);
        }

And finally Line 228 in AudioManager.cs holds the PlayOneShot method

        public void PlayShmupClip(ShmupAudioCip clip)
        {
            if (SFXSource == null)
                return;

            if (clip.Clip != null)
                SFXSource.PlayOneShot(clip.Clip, clip.Volume);
        }

If you want to change it in code, you will have to make a separate method for playing weapon sound effects, that only plays one sound at a time.

If without code, you have 2 convoluted workarounds:
1-You can edit your sound effect to make it very short in any audio software like audacity. and if you want to hear the end of the sound effect, if you are using a player weapon you can use sound FX controller to add a sound effect on “weapon stop fire” event.
2-Alternatively, in an audio software you can merge the sounds to make them like a machine gunfire sound, and in conjunction with the cool down timer you will get almost the effect you are after.

But with all honesty, I am not sure if it’s worth all the effort, the cool down feature should get you very close, if you must, you can change the sound effect as explained above to something faster. In Shmup Boss I have a feature for limiting sound effects being played at the same time, but it’s applied globally and not to a single weapon.

Just a very small note: for any future Shmup Baby support can we keep the posts at the other board: https://discussions.unity.com/t/715178
Posting on Shmup Boss support thread might confuse any Shmup Boss users or potential customer. Xie Xie Wai Fung
[/quote]

Thanks for the quick reply my Master. Sorry, i was not able to locate the old thread so i though you took it down. Thanks for the direction, I think i know what to do now. Line 228 in AudioManager.cs is exactly what i needed. I think i would just make 3-4 additional special SFXSources in AudioManger such that each one would play certain weapon and explosion clips exclusively, and then use SFXSources.Play() for these special sources. This should solve my issue I hope.

Also, would I still need to pay to get Shmup Boss if I own Shmup baby? I see my review on the Shmup Boss page but it say I need to pay. So Shmup Boss is sold as an upgrade to Shmup baby? or it is an entire new product? I am confused.

Shmup Boss is entirely new in regards to the inner code, very few elements remain from Shmup Baby but in a way it still has similar features, to get a better idea you can watch the tutorials or read the documentation located at the first post in this thread to know what is exactly Shmup Boss and what to expect.

I used the assets store’ paid upgrade option. If you have already purchased Shmup Baby you get a 75% discount for the new version instead of paying the full 59$ you only need to purchase the upgrade for 15$

Please note that none of your projects which were created in Shmup Baby will migrate to Shmup Boss, if you purchase Shmup Boss you will have to recreate your levels and enemies all over again. Make sure you keep backups.

The reason your review is still there because technically speaking it’s an upgrade (version 2.0) so all reviews from the older versions remain, I felt it would be unfair to make people who already had Shmup Baby to pay the full amount for Shmup Boss.

Ah I see I see. Good man!

Please make a community discord for your assets. Make one channel per asset.

I just imported and am getting a number of these errors. Unity 2020.3.11f1

Hi,
I download the Unity version you are using and imported Shmup Boss to try and get the errors you are getting but could not get any. It is possible I am not getting the error due to any number of random Unity processes or it is possible you are getting it due to using other packs which are conflicting with the helpBox attribute name. This can be tested by trying to import in a new fresh empty project.

Either way this should be quick to solve and the helpBox attribute will not affect the usage of Shmup Boss in any shape or form. The helpBox attribute is just there for few simple reminder messages and as a quick fix you can just comment out the lines using the helpBox attribute which you are getting the error in.

I renamed the helpBox attribute for you just in case it was a name conflict and I will send it now via private conversation. You only need to copy the scripts folder I will send you overriding the older files and you should be done.

If the issue still persists please do let me know, thx.

Thank you. After posting this, I went through and added @ to all of them which also fixed it. It WAS from a collision, I had imported “Animal Controller” to see if I could use it to handle animations (I have animals in my shmup). Thank you for your assistance.

Just FYI, I had originally been “messing with” shmup baby on the side past couple years. Then I was testing animal controller. Recently I decided to shift my focus on a shmup, bought shmup boss upgrade and imported it into the animal controller project.

1 Like

I have a few requests. The first two I think are big for most users.

  1. Make a single input handler class/component that all code references. This code doesn’t reference input directly, but another class for “Input” (old) based off an interface. That way, I (and others) can easily replace this interface class with our own input (for things like new input system or rewired).

  2. Have an option for randomized infinite background tiles.

  3. I would like the option to “lay flat” the game on Z axis, like a normal 3d game/2.5d game. Before I started using the package, I had been making a 2.5d shmup game. A lot of terrain tools and such kind of force this orientation. This is what I mean:

https://i.ytimg.com/vi/26tK3qjTwTg/maxresdefault.jpg

1 Like

Thanks for the feedback, will take it into consideration if making any future updates.

Hi I was wondering if you’ll expand the level select screen to offer options like creating an overworld level screen like super mario world at all?

Also will there be options to play cinematic clips in between levels with the option on when you beat one a cinematic plays and when you start up the game etc.

Also will options like a shop where you can spend money on items from killing enemies in between levels (like some later schmups) come in at some point?

Thanks for the feedback, no plans at the moment but will certainly take it into consideration whenever working on updates.

A few questions regarding existing features or if they can be easily implemented:

  1. Is there a save system? For example, save checkpoint(s) in a long level.
  2. Non-linear level / level branching? A maze level for example
  3. In app purchase / rewarded videos within level? A pickup item opens popup to watch video as for an upgrade…
  4. How to create new player and enemy ships. I didn’t see it in the documentation…

If these are not existing functions, will you be able to provide support to help implement the above? Sorry I’m still new at unity…

Hi and thank you for your interest and for checking up with us first.

No, it only saves if you completed the level, no checkpoints within the level.

No.

Maybe these videos can be more of a help, I make a player at around 3 mins and 15 seconds in the first video:
https://www.youtube.com/watch?v=Zl7J2ER713E

And an enemy in this video:
https://www.youtube.com/watch?v=Le8MdY_MipE

Support is mostly for help with existing features, to explain them better or fix any errors, there is an infinite amount of possible features to add and we cannot help with implementing them. When buying Shmup Boss, or actually any Unity pack for that matter, please only consider and count on the existing features it has.

I hope this question isn’t too much of a bother. Going through the scripts, I can’t seem to pinpoint where and how shmup boss checks the actual collision of munition with the player, only what happens afterwards. Maybe it’s slipped my eye, but I can’t seem to find it. Could you point me in the right direction?

No worries, my pleasure.
Munition hits are handled inside the “OnTriggerEnter2D” method located in Agent.cs at line 270 (I think is what you are looking for?)
If the object is a munition it will then pass it to “HitByOpposingFactionMunition” method, 2 different versions are located, one for the player, in Player.cs at line 311 and the other for the enemy, in Enemy.cs at line 213

This is for the munition weapons system, just incase, please note there is also a particle weapon system, this handles damage from inside the particle weapons collisions, located inside: “WeaponParticlePlayer.cs” line 78 and “WeaponParticleEnemy.cs” line 53

1 Like