Giest118's Guide to Making Good Bullet Hell Bosses

A place for people with an interest in developing new shmups.
User avatar
Giest118
Posts: 1042
Joined: Wed May 02, 2012 1:50 am

Giest118's Guide to Making Good Bullet Hell Bosses

Post by Giest118 »

HOW TO MAKE GOOD BULLET HELL BOSSES


A few people have asked me how I go about making my bullet patterns, or how I did certain things. Some people have noted that they love my Cave style of shmups. Some of my games have even been called fun. This obviously makes me an authority on all matters having to do with making things good.

First, a foreword. I have broken every single guideline in this guide before, owing to inexperience and being dumb. But, having several bullet hell shmups under my belt, I figured I would share my acquired wisdom on this subject with the Development forum, and hopefully some aspiring new developers will see it and take what I have to say into account. Also, I will point out that I'm not exactly an encyclopedia of shmup knowledge, so the only examples I'll use will be from games that I've played.

I will further add that this is NOT A PROGRAMMING GUIDE. I'm not here to teach you bullet generation algorithms; this guide is all about design.

There is one cardinal rule with boss fights, and any shmup should follow it whether or not it is a bullet hell. That rule is:



FORCE THE PLAYER TO STAY ALERT.

A voice in your head might be telling you this means "make it harder lol." Find that voice and punch him in the face, because he's an idiot. Even easy bosses can keep you on your toes.

So how, then, do you do this? Basically you want to avoid this rule's natural opposite, which would be if the player ever feels like he's simply spinning his wheels, constantly doing the same thing over and over. Therefore, the easiest way to do this would be to simply have the boss switch up its attacks frequently. Cave games do this a lot; the first boss in DoDonPachi has several attacks that it switches between, using one attack for no more than five to ten seconds. As the fight gets closer and closer to ending, the boss gets more aggressive, occasionally tossing in a wave of faster bullets amidst its regular attacks. This boss keeps you on your toes, even if you do find it easy, because you're doing something different every few seconds; it doesn't simply feel like filler between stage 1 and 2.

The method of changing attacks frequently has another benefit: it gives boss fights a much better sense of pace, as though things are moving along more quickly, even if the boss's lifebar isn't moving any faster. This is an important consideration depending on how fast-paced your game's stages are; you would want the boss fights to be paced about evenly with the stages themselves.

Touhou games, and any games modeled after Touhou, use a very different method of keeping the player on their toes. Given their "one phase, one attack" way of doing things, they instead have to rely on making the attacks themselves more interesting. In general this involves close-quarter bullet dodging, wherein the player is always in danger regardless of how they set themselves up to deal with the attack. Because of the slow bullet speed in Touhou games, they're also better forgiven for employing random bullet trajectories that avoid making it so an attack can be completely memorized. Thus, it's fair to say that a player has to rely a bit more on reflex dodging than on memorization. RANDOMNESS WILL BE DISCUSSED MORE LATER.

Cave games will often combine the two approaches. The stage 4 boss in DoDonPachi DaiOuJou uses many attacks that are sustained for quite a while, but because of how those attacks form, you're still called upon to dodge skillfully, and even then, the attacks never stick around long enough to become monotonous.



SO HOW THE HELL DO I MAKE BULLET PATTERNS GOOD?

Make your boss's first bullet pattern. Then make its second bullet pattern. Is the second bullet pattern clearly and obviously different from the first? Good. Make the third bullet pattern. Is it clearly and obviously different from the first and second? etc etc etc

This will essentially get you to try out new things, to think outside the box as it were. If you put yourself in this mindset when making a boss's bullet patterns, you're going to make some cool ones whether or not you actually know what mental or creative process you went through to do it.

Note that when I say "clearly and obviously different," I do not mean "the color of the bullets is different" or "the bullet speed is a bit higher." I mean the two attacks need to FEEL different as well. The player should have to approach it differently, and they should have to make different decisions in the middle of it to figure out how to avoid it.

Note that the more attacks you give a boss while following this rule, the more likely it is that you'll come up with a truly unique one, of the likes nobody's really seen before.



SO HOW LONG IS A BOSS FIGHT ALLOWED TO BE ANYWAY??

Depends on where in the game this boss fight takes place. A stage 1 boss shouldn't exceed 40 to 50 seconds, if it even gets that long. After that, a minute and a half is probably a good place to call it. If you're talking about the final boss or true last boss, there is a lot of wiggle room. I find the most fun final bosses/TLBs don't exceed two and a half minutes though.

You could probably get away with making a boss fight as long as you can keep its attacks interesting, but in following this train of thought you might fall into a trap of making the boss itself outstay its welcome. You also need to consider the length of the boss fight in the context of the entire game. A lot of players seem to find that 25 minutes is a good length for a shmup, so be sure to consider that when figuring out how much of that time you want to be spent fighting bosses.

Regarding timeouts... I personally think a good length of time for a timeout is twice as long as it would take to kill the boss if you were just constantly shooting it, but obviously this depends on the game and what other mechanics there are. If there is absolutely no benefit to keeping a boss alive, you probably don't even need timeouts at all, unless you intend to have replays, in which case timeouts are a necessity to keep the replay filesize from being theoretically infinite. Furthermore, timeouts should definitely exist if there is a way to milk the boss somehow. On that note...



WHAT ELSE CAN I DO TO MAKE A BOSS AWESOME?

Make bosses worth a damn to play for score.

That voice in your head from earlier is probably telling you to add in milking opportunities. Punch him again, that voice is an unspeakable frothing dipshit. Punch him again. Keep punching him until he starts to resemble a being that isn't excrutiatingly retarded.

A lot of games make bosses worth playing for score by making their bullets turn into point items during a phase transition or the boss's explosion, thus encouraging the player to wait until the screen has as many bullets on it as possible before ending a phase. Some games add onto this by only having this happen if you're doing a specific thing (the Kakusei mechanic in Espgaluda, for example).

Some games go a more basic route; as you shoot the boss, you get points. Or even more simple, the boss gives you a bunch of points when it dies. This is okay, but it doesn't really add any emphasis on style or technique.

One of the easiest, but also most fun, ways to add scoring potential to a boss is to add destructable parts to it. Maybe the destructable parts turn bullets into point items, maybe the parts drop point items of their own, or maybe they're just worth a lot to destroy. In any case, this adds another dimension to scoring off of bosses.

To up the stakes a bit, you can have your performance in a stage somehow affect the score you can get from a boss. Ketsui does this by having your boss multiplier accumulate throughout the entire level, and during the boss fight you can finally cash it in. DDP DFK does this by letting your chain carry over from the stage itself. Mushihimesama Futari does this in all of its modes by way of its stage counter/multiplier.

I decried milking tactics earlier, but it's also worth considering that some players actually find milking fun sometimes. You can add milking tactics if you want to, provided the first cardinal rule is obeyed. If you need a reminder of the first cardinal rule of shmup boss design, scroll back up to the top.



HOW DO I KNOW IF MY BOSS IS TOO HARD/EASY/WHATEVER

Well, there's the obvious way...

Image

Difficulty is one of those things that's extremely difficult to judge, but I have a handy little tip that'll help you to figure it out, and it's probably not one you've ever thought of or even heard about, but for bullet hell shmups in particular it'll go a long way to helping you figure out how hard your bosses are to an almost mathematical degree.

ADD GAMEPLAY TIMERS TO YOUR GAME.

A "gameplay timer" simply records how much total time you have spent in your game across all sessions of it. By this time you're probably wondering what the fuck this has to do with anything. Let me furnish you with a scenario.

You're well into developing your game, and quite frequently, you test each stage just to make sure the flow is consistent between stages, the game still feels all right, and all that stuff. At some point you're going to start thinking that your game is too easy, or "that part was kinda hard, but not as hard as I intended." Before you change ANYTHING AT ALL, look at the gameplay timer.

IF YOUR GAME IS CHALLENGING TO YOU AND YOU HAVE FORTY HOURS ON THE GAMEPLAY TIMER, IT IS NOT TOO EASY.

I will repeat that.

IF YOUR GAME IS CHALLENGING TO YOU AND YOU HAVE FORTY HOURS ON THE GAMEPLAY TIMER, IT IS NOT TOO EASY.

Consider that any given player who picks up your game will need to spend at least that long in practice just getting to your skill level. This time COULD be halved if you're dealing with, say, one of the Touhou Is Harder guys, but in general, players will need to spend quite a bit of time in practice mode figuring out things that you already know because you made the game and have spent hours upon hours testing it. You may not realize it, but a test run is also a practice run!

For bosses specifically, you can add either gameplay timers specific to them (showing how much time you have spent fighting that one boss) or just an "attempt counter" that shows how many times you've fought it in total. If you've put 100 attempts into every boss, then you should be able to head into every boss battle in order and notice that the first boss or two are piss-easy, and from there get progressively more challenging. THIS IS THE SITUATION YOU WANT.



WELL JEEZ, WHAT OTHER SUGGESTIONS DO YOU HAVE FOR ME BROSKY?

Here's a handy one, and it's not specific to bosses; you can apply it to basically anything that's intended to be played competetively.



THE RANDOM NUMBER GENERATOR IS AN ASSHOLE WHO HATES PLAYERS AND DEVELOPERS.

Since my first draft of this section, a few people have spoken up declaring that I was wrong and a kitten-molester for saying that randomness sucks. Actually they didn't say that, it was more like they respectfully disagreed with my position on the matter.

The RNG is a tool. It can be used to good effect. It's also extremely easy to screw up. This is because it is an asshole who will screw your game up if you let it. I will first give a few examples of how randomness can be used poorly, and then I'll proceed to give guidelines on how to use it to a more positive effect.

A reasonably well-known example of randomness going wrong is in Touhou 6: EoSD, the Sakuya and Remilia fights specifically. Remilia in particular has an attack that's intended to have pretty consistent density most of the time, but in the event that God feels like fucking with you, it can toss a wall at you. You cannot plan for this wall to be there. You cannot do anything about it once it's there. You just have to hope it doesn't appear. THIS IS A TERRIBLE THING IN ANY COMPETETIVE GAME BECAUSE IT LEAVES SCORING PARTIALLY UP TO COMPLETELY RANDOM, UNFEELING CHANCE.

I will illustrate another problem with the RNG with a scenario. Let's say (for whatever reason) you make a boss with four attacks, and it can choose between these four attacks randomly. Once it finishes with its attack, it once again chooses from the four randomly. Seems like an okay setup, right? Four attacks is a decently varied array of abilities, and the unpredictability will keep players on their toes.

Wanna know what will necessarily end up happening?

At least one player will report that the boss used its hardest attack over and over and over. Another player will find that the boss was too easy because it only used its two easiest attacks. You as the developer will test this boss and find that you can't get it to use its attacks equally no matter what the fuck you do.

This is the nature of randomness. You think you can get it to work how you want it to, but the truth is that it is a completely unfeeling entity that does not give a fuck about you.

Is there a time when random chance is acceptable? Yes, and that time is "when you're careful". If you're going to use randomness to decide bullet trajectories, try to find a way to keep the bullet density consistent, and above all, try to make sure that a bullet pattern has the same general "shape" each time you see it. An easy example of this is in a circle of bullets radiating out from a point; if each wave has an angle of ten degrees between each of its bullets, then every wave will have consistent density, and you can simply randomize its trajectory by ten degrees. This keeps the attack from being memorizeable (forcing players to dodge on reflex, which can be more fun), but it also ensures that the attack has the same difficulty every time you see it. Even this simple example has drawbacks though. If you use more than one of these radiating circle-waves of bullets in a given attack, randomness could make the waves overlap awkwardly sometimes.

General guidelines when using randomness:
* Keep attack densities consistent
* Do not have it play a part in the scoring mechanics at all
* Don't decide attack orders based on randomness

If you're a new developer, I'm pretty sure you're better off not using randomness at all, in favor of crafting your patterns manually. This will force you to better understand what makes bullets patterns do the things they do, and you will by proxy learn how randomness can fuck everything up.

But Giest, I hear you saying, won't static bullet patterns make the game predictable and boring?
That depends. How clever are you feeling?

In Trigonometry Wars 3 Redux, I did not use the random function for any bullet patterns at all. But if you play that game and pay attention, you may notice that some bullet patterns toss the bullets on different trajectories each time you play. This is because I varied the patterns a bit based on the player's position. The patterns are not aimed, they just change based on weird things like the sine of the player's x and y positions. Unless a player can perfectly replicate their movement at all times, the patterns will be different each time they play, but I am also in complete control of how the patterns can form. I know what the ranges and potential values of the bullet trajectories, so in the event that I do accidentally make a pattern stupid or randomly wall-y, I know exactly what number I can change to fix it.

The sine function can be a wonderful alternative to randomness, because it can generate the look of something being random without actually using randomness. To demonstrate what I'm talking about, take a look at this fucking pattern right here:
Image
Each wave of this attack shoots nine bullets, evenly spaced by 40 degrees from each other. Every two frames, a new wave is spat out. The bullets move along a trajectory decided by this function:

Code: Select all

1800*sin(Theta)
Where Theta is a floating point number that increments by 0.016 every time a new wave of bullets is spat out (every two frames).

Now, look at that screenshot. A discerning eye could see how the sine function is playing a part in it, but during gameplay, the bullets are moving too fast for a player to take that fact in, and all they will know is that they need to read and dodge the attack. It's too much of a smattering of bullets to really memorize a pattern in it, even though it will do the same general thing every time you see it. Also, because the sine function will basically always spit out an irrational number, each 'wave' of the sine function(when it's used in this way) will spit out a different set of values. In other words, even after the pattern loops, the second round of it will spit the bullets on a different set of trajectories.

Also I varied the initial value of Theta based on the player's position when the attack starts, naturally.

A note: How the function above works (and even IF it works) is dependent on your development environment. I use Game Maker, which means I have the luxury of an environment where that kind of thing just works without any extra consideration from me.

I could go into further discussion about the pros and cons of randomness in shmups, but that's beyond the scope of this guide, which is just about bosses.



HOW DO I DEAL WITH SAFESPOTS?

First of all, safespots can be fucking rad sometimes. I would almost suggest intentionally putting two or three of these in your game. As long as they're hard to find and to trigger, they can actually work beautifully.

Most of the time though, you want to prevent them. An easy way to do this is to throw in an aimed component into your boss's attack. This will ensure that there can never be a safespot.

An even better consideration is to use real numbers (as opposed to ints) for bullet directions. If an pattern's directional coverage is that it can potentially throw bullets in 1500 directions, that's a hell of a lot less likely to have a safespot in it than a pattern that can only throw bullets in 360 directions.



WHAT DO YOU THINK OF SMALL BOSSES?

Definition: A "small boss" is horizontally small, and therefore player position matters considerably more as far as actually hitting the thing. The main thing worth considering with this kind of boss is how much health it has. A small boss with equal health to a large boss will likely take longer to kill due to being much harder to hit, but that's not a guaranteed thing. The thing to be mindful of when making one of these bosses is how small it is, and how much it moves around; a boss that moves around a lot while filling the screen with dense bullet patterns will be nigh impossible to do consistent damage to, so be sure to test it thoroughly and see how much health the boss should have for how long you want the fight to last.



WHAT ELSE DO YOU WANNA TELL US?

Hell, I dunno. Post questions, and I'll update this guide with clarifications.
Last edited by Giest118 on Sat Mar 09, 2013 7:32 pm, edited 6 times in total.
User avatar
Rex Cavalier
Posts: 159
Joined: Tue Jul 19, 2011 10:18 pm
Contact:

Re: Giest118's Guide to Making Good Bullet Hell Bosses

Post by Rex Cavalier »

Well done! ;)
Though personally i consider some well made Final/near final music sync'd bosses to be exception of the 'boss length' rule.
User avatar
Giest118
Posts: 1042
Joined: Wed May 02, 2012 1:50 am

Re: Giest118's Guide to Making Good Bullet Hell Bosses

Post by Giest118 »

Indeed; that's why I said there's a lot of wiggle room for final bosses. My recommendation is almost certainly a good baseline though.
User avatar
Rex Cavalier
Posts: 159
Joined: Tue Jul 19, 2011 10:18 pm
Contact:

Re: Giest118's Guide to Making Good Bullet Hell Bosses

Post by Rex Cavalier »

Also you probably should mention something about boss timeouts and what amount of time would be good to set them to.
User avatar
railslave
Posts: 505
Joined: Fri Oct 26, 2012 8:38 pm
Location: Abertillery , South Wales

Re: Giest118's Guide to Making Good Bullet Hell Bosses

Post by railslave »

Giest118 wrote:
Hell, I dunno. Post questions, and I'll update this guide with clarifications.

Maybe some universal logic on how to make certain patterns for beginners.
"Like make invisible sprite, give it a vertical sine wave,rotate it so much, spray so much" (as far as i ever got :shock: )

dunno, just something that works across all develpment styles, engines.

It would realy get some people on their feet, and thinkin outside the box <<<

Kind of heartbreaking seeing the variety of stuff you have going on :)
"When I get my hands on some money
I'll kiss it's green skin
And I'll ask it's dirty face
"Where the hell have you been?" - Michael Gira (Swans)
User avatar
nasty_wolverine
Posts: 1371
Joined: Sun Oct 09, 2011 11:44 pm

Re: Giest118's Guide to Making Good Bullet Hell Bosses

Post by nasty_wolverine »

havent read it completely though, but this is the kind of guide i was looking for...
awesome job giest...
Elysian Door - Naraka (my WIP PC STG) in development hell for the moment
User avatar
n0rtygames
Posts: 1001
Joined: Thu Mar 15, 2012 11:46 pm
Contact:

Re: Giest118's Guide to Making Good Bullet Hell Bosses

Post by n0rtygames »

Actually, having a ridiculous TLB is far from stupid.

What is stupid, is not giving the player a significant reward for REACHING the fucker.

As most have obnoxious requirements, the player should not be shafted for all their hard work. Add a multiplier. Make their pre-TLB score cash in, no miss bonus and all.

Do that and you can make your TLB as dumb as you like.

As for games being too hard ~ this is an "issue" with most of caves 1.0 releases. People said to me: bullets are too fast. Play DOJ. Harsh truth: vanilla DOJ is absolutely balls hard. Black Label is a different thing entirely.

While I agree with most of this post, getting good useful feedback is hard for some devs. There are people who SAY they want it balls hard - but don't actually want that at all.

As a network admin, it's common practise to restrict users then grant more rights as you go on. As a game developer - making something hard and then reducing the difficulty is genuinely easier than trying to add more difficulty later.

I'll use chronoblast as an example before talking about Trig. My stage 1 boss fires rings. I yawn through these rings and can dodge perfectly. Emuser does a little dance in the corner, but still dodges. Emphatic bombs on reaction. More casual players panic and lose their shit completely.

Your first boss in revengeoning has the same effect. With those collapsing circles. They are brutal on the first few goes... then you spot what's going on and it's manageable. All cave games are like this. All shmups are like this. There's a tendency for people to expect skills from one game to carry them through another with the same amount of success. It doesn't work that way..

Go play vanilla DOJ. Count the misses in st1/2. Watch the superplays that bomb before st2 boss. That bastard is ruthless if you've got your rank up.

Don't do what Call of Duty has done to Quake. Remember when it was hardcore. Before bullet cancelling, autobombs and so on.

I must disagree with your comments about difficulty. As for milking - MMP, pink sweets, Futari ultra stage 2 boss. Cave titles. Cycling patterns for more points is common in cave games. Put in a timer. Not for any of the reasons you mentioned - but because you are developing a game that's supposed to be like an arcade game. Infinite play is bad. Just so happens my timer has a (literally) exponential issue - but the sentiment is there. Would this have been discovered without emuser being the psychotic arcade enthusiast that he is? Probably not. High level players embrace these things. They hark back to an era where games on cartridges didn't get dlc, they didn't get patches and if there was an exploit or glitch - you used it to its fullest.

Anyway, timers exist for defensive coding purposes. A sensible game dev recognises that having a player milk bosses is fun for that player. Your goal is not to stop the player. So a vocal minority say milking is bad.. they're still playing your game - the milker is enjoying getting the extra 1000000 points for 2 minutes. Someone is playing your game and having fun. What's the issue? Ygw games are fun.

Basically - make your .0 release hard as fuck. Let the "touhou is harder" guys push it to its limits and tell you exactly what needs tweaking. Most developers are average at best, you see. A few 1ccs, yeah. But very few have honestly hit second loops, or triggered tlbs...

As I said in my 'new developers' thread - which applies here too. DON'T WRITE ABOVE YOUR SKILL LEVEL WITHOUT GOOD RELIABLE PLAYTESTING FROM PEOPLE WHO ARE BETTER THAN YOU. Be prepared to listen, scale back and more importantly - when to say no.
facebook: Facebook
User avatar
gru
Posts: 14
Joined: Wed Mar 06, 2013 3:03 pm

Re: Giest118's Guide to Making Good Bullet Hell Bosses

Post by gru »

Excellent article. I was wondering what you guys think about bosses full-width against bosses that you have to actually aim for? In other words, what are good guidelines to making a small boss, and what about making huge ones?
User avatar
nasty_wolverine
Posts: 1371
Joined: Sun Oct 09, 2011 11:44 pm

Re: Giest118's Guide to Making Good Bullet Hell Bosses

Post by nasty_wolverine »

@giest: read through the entire guide, fucking genious
@norty: good points on tlb and difficulty, hit the mark

I have a question, how do you guys get on with boss movement???
coz honestly all i have done so far is just get the boss to stay level vertically and follow player horizontally :cry:
Elysian Door - Naraka (my WIP PC STG) in development hell for the moment
relminator
Posts: 55
Joined: Sat Jun 05, 2010 1:48 pm

Re: Giest118's Guide to Making Good Bullet Hell Bosses

Post by relminator »

@giest: Awesome article! BTW, from what game is that screenie full of bullets?
nasty_wolverine wrote: I have a question, how do you guys get on with boss movement???
coz honestly all i have done so far is just get the boss to stay level vertically and follow player horizontally :cry:
I usually implement it as a state machine and state transitions are done via a counter. As for movement, you can't go wrong with catmull-rom splines.
User avatar
Temia Eszteri
Posts: 43
Joined: Mon Dec 24, 2012 10:45 pm
Location: Rainy Seattle
Contact:

Re: Giest118's Guide to Making Good Bullet Hell Bosses

Post by Temia Eszteri »

A note as a developer, regarding your random bullet section:

Due to true randomness's easy potential to fuck with developing replay functionality, I would in fact warn against using randomness AT ALL. If you absolutely MUST have random bullets or random ANYTHING that isn't purely cosmetic, you must have total control over its state. I'm talking limiting yourself to specific pseudorandom number generators, set to a specific seed, reset along with all other variables when a new play session is initialised.
Cagar
Posts: 2234
Joined: Fri Nov 25, 2011 5:30 pm

Re: Giest118's Guide to Making Good Bullet Hell Bosses

Post by Cagar »

Awesome stuff. I've always admired your boss-design, your bosses make my eyes hurt and my blood boil, which is GREAT. :wink:
User avatar
n0rtygames
Posts: 1001
Joined: Thu Mar 15, 2012 11:46 pm
Contact:

Re: Giest118's Guide to Making Good Bullet Hell Bosses

Post by n0rtygames »

Temia Eszteri wrote:A note as a developer, regarding your random bullet section:

Due to true randomness's easy potential to fuck with developing replay functionality, I would in fact warn against using randomness AT ALL. If you absolutely MUST have random bullets or random ANYTHING that isn't purely cosmetic, you must have total control over its state. I'm talking limiting yourself to specific pseudorandom number generators, set to a specific seed, reset along with all other variables when a new play session is initialised.
Even this is tricky, due to different hardware producing different results.

I think a better way to approach a degree of deterministic randomness would probably be to code a "dice" that is constantly rolling in the background, which is simply a counter that increments once per frame while game is not in a paused state and then wraps around. Use arrays. It's a bit of work - but guaranteed to result in a more accurate simulation if you're targetting different hardware.
facebook: Facebook
User avatar
Temia Eszteri
Posts: 43
Joined: Mon Dec 24, 2012 10:45 pm
Location: Rainy Seattle
Contact:

Re: Giest118's Guide to Making Good Bullet Hell Bosses

Post by Temia Eszteri »

n0rtygames wrote:
Temia Eszteri wrote:A note as a developer, regarding your random bullet section:

Due to true randomness's easy potential to fuck with developing replay functionality, I would in fact warn against using randomness AT ALL. If you absolutely MUST have random bullets or random ANYTHING that isn't purely cosmetic, you must have total control over its state. I'm talking limiting yourself to specific pseudorandom number generators, set to a specific seed, reset along with all other variables when a new play session is initialised.
Even this is tricky, due to different hardware producing different results.

I think a better way to approach a degree of deterministic randomness would probably be to code a "dice" that is constantly rolling in the background, which is simply a counter that increments once per frame while game is not in a paused state and then wraps around. Use arrays. It's a bit of work - but guaranteed to result in a more accurate simulation if you're targetting different hardware.
Not at all. Pseudo-random number generators aren't actually random at all (or at least shouldn't be, unless you're using a wrapper that relies on hardware randomisation where available and falls back to the PRNG, which you don't want either) - they're algorithmic, based on a seed (either manually defined or automatically set to something like the system time). In this case you'd be not only setting the seed to a specific value but also controlling its state, so it'd have the same "random" numbers in each playthrough.
User avatar
Giest118
Posts: 1042
Joined: Wed May 02, 2012 1:50 am

Re: Giest118's Guide to Making Good Bullet Hell Bosses

Post by Giest118 »

n0rtygames wrote:Actually, having a ridiculous TLB is far from stupid.

What is stupid, is not giving the player a significant reward for REACHING the fucker.

As most have obnoxious requirements, the player should not be shafted for all their hard work. Add a multiplier. Make their pre-TLB score cash in, no miss bonus and all.

Do that and you can make your TLB as dumb as you like.
Watch this video right here all the way through and then tell me that there is no limit to how dumb a TLB should be allowed to be.

As for much of the rest of your post, I would give you a distinction. Cave has a lot of good ideas, but not all of their ideas are good. It should be obvious that I love Cave, but with some of their games I have a bit of a love-hate relationship that feels more like hatefucking than lovemaking. MushiFutari Maniac, for example. I've never been able to get over just how fucking finicky and unlearnable its mechanics are, and yet I played it until I beat it. I can define exactly why I did this; I felt obligated to do it as a challenge. It had nothing to do with thinking it was well-designed or fun. But when I beat it, I felt like a fucking badass.

Now, you can justify frustrating design by saying "it'll be worth it when you finally overcome it." But you know what game I like better than MushiFutari Maniac? BLUE WISH RESURRECTION. That is a game that is well-designed and challenging, but it has none of the finicky shit that's present in some Cave games, and I still got a huge rush of satisfaction when I finally beat it. The lesson? You can make your game challenging and rewarding without the need for frustrating, finicky design.

As for milking, I did mention that you CAN add it to your game as long as you follow the first cardinal rule of boss design, which is to keep the player alert. I am personally of the belief, though, that scoring will always be more fun if milking isn't a big part of it. I saw that recent replay of Battle Garegga where the player milks a completely un-threatening popcorn enemy for four god damn minutes, and dear god did that lower my opinion of that game.
relminator wrote:Awesome article! BTW, from what game is that screenie full of bullets?
DoDonpachi Daifukkatsu Black Label, the Zatsuza fight.
User avatar
nasty_wolverine
Posts: 1371
Joined: Sun Oct 09, 2011 11:44 pm

Re: Giest118's Guide to Making Good Bullet Hell Bosses

Post by nasty_wolverine »

Giest118 wrote:
Watch this video right here all the way through and then tell me that there is no limit to how dumb a TLB should be allowed to be.
Giest118 wrote: I am the creator
and I invented danmaku
Your life ends here
There is another GOD...
Elysian Door - Naraka (my WIP PC STG) in development hell for the moment
Erppo
Posts: 1146
Joined: Sun Jan 09, 2011 8:33 pm
Location: Finland

Re: Giest118's Guide to Making Good Bullet Hell Bosses

Post by Erppo »

n0rtygames wrote:As for games being too hard ~ this is an "issue" with most of caves 1.0 releases.
There have been two cases of revision. Futari was made easier and DFK harder with a 1.5.

There are numerous Black Labels but these are in no way replacements for the original games. For those a general idea seems to be making the game somewhat easier but compensating by adding scoring depth so it's questionable if you can say that the result is an "easier" game. There are exceptions to this though (like DFKBL which is both easier and has less depth than the original).


As for the other things said, I could challenge the arguments about randomness but I know someone who probably wants to do it more than me so I'll just wait for him to do it. :lol:
Image
User avatar
DrInfy
Posts: 117
Joined: Mon Jan 02, 2012 12:36 pm
Location: Finland

Re: Giest118's Guide to Making Good Bullet Hell Bosses

Post by DrInfy »

I would like to point out that there are better ways to use randomness for bullet pattern selection than just go for
pattern = rand(0,4); <- this is obviously a bad way.

For example you could have two patterns and the first one is random and the other pattern will shoot out after the first one. Or one could have the 5 patterns randomly ordered and played in that order so that every pattern gets out, but the player won't know in which order this will happen.

And yeah, random generators aren't random and are in fact used for real simulations because they give results that can be replicated given the same seed.
Saviors, a modern vertical shoot 'em up.
User avatar
RNGmaster
Posts: 2388
Joined: Mon Aug 02, 2010 9:08 pm
Location: Seattle, WA

Re: Giest118's Guide to Making Good Bullet Hell Bosses

Post by RNGmaster »

Make your entire game static and, no matter how well designed it is, it will bore people to death. There's got to be some level of randomness.
User avatar
Giest118
Posts: 1042
Joined: Wed May 02, 2012 1:50 am

Re: Giest118's Guide to Making Good Bullet Hell Bosses

Post by Giest118 »

RNGmaster wrote:Make your entire game static and, no matter how well designed it is, it will bore people to death. There's got to be some level of randomness.
Both of those statements are provably false, but, like, you're entitled to your opinion, man.


But seriously, I did note that there are acceptable times to use randomness; the point was that it shouldn't result in a radically different experience every time you play. Success or failure should not depend on the game rolling some dice.
User avatar
Rex Cavalier
Posts: 159
Joined: Tue Jul 19, 2011 10:18 pm
Contact:

Re: Giest118's Guide to Making Good Bullet Hell Bosses

Post by Rex Cavalier »

Giest118 wrote:
n0rtygames wrote: Actually, having a ridiculous TLB is far from stupid.

What is stupid, is not giving the player a significant reward for REACHING the fucker.

As most have obnoxious requirements, the player should not be shafted for all their hard work. Add a multiplier. Make their pre-TLB score cash in, no miss bonus and all.

Do that and you can make your TLB as dumb as you like.

Watch this video right here all the way through and then tell me that there is no limit to how dumb a TLB should be allowed to be.
Exterminator 16 parts label says hi. :lol:
Either way i agree with Giest118, TLB is supposed to be additional extra hard challenge for experienced players, not unstoppable wall of death and decay that might be impossible even to TAS.
User avatar
Giest118
Posts: 1042
Joined: Wed May 02, 2012 1:50 am

Re: Giest118's Guide to Making Good Bullet Hell Bosses

Post by Giest118 »

Added a small section on "small bosses" and added a couple of sentences to the section on randomness.
User avatar
n0rtygames
Posts: 1001
Joined: Thu Mar 15, 2012 11:46 pm
Contact:

Re: Giest118's Guide to Making Good Bullet Hell Bosses

Post by n0rtygames »

Bumping this, having actually just found it an incredibly useful resource going back and playing the unpatched version of my game.

Holy shitballs, I made that bastard hard. I mean - really hard. To the point where taking a few days away to work on the patch made me forget shitloads about how to actually play. Very frustrating.

You should add a section about player frustration. For instance, let's say you make your stage 5 boss JUST ABOUT completable without bombing.. but you assume that most people will clear it by using about 2 bombs. Does your scoring system punish for bomb use? What if they get hit? What's the penalty? How many misses are you factoring in for the average player?

All these are things I should have been more aware of for my initial release - but due to lack of play testing - became blind to. I think this really makes up an important factor of a boss fight. Pacing really comes in to this:

Form1:
-- pattern 1 : Easy
-- pattern 2 : A little naughty
-- pattern 3: SUFFER

Form 2:
-- SUFFER, SUFFER, THEN SUFFER AGAIN

Most players are gonna basically hit a wall on pattern 3, or form 2 in that scenario and it's going to piss them off as they'll get this feeling of being able to actually take down the boss and then BAM - out comes the killer pattern that they just can't deal with. Because they're being trained in to lazyness (relatively speaking) by the previous patterns, they have no prompt that shit is about to get serious. Mixing in a few fast paced bullet whips and so on amongst your easier patterns might help the player to keep up the pace and never really allow them a chance to snooze. I know this is your cardinal rule, in a manner of speaking - but I think pacing within boss forms is an entire section worth elaborating on.
facebook: Facebook
User avatar
K.B.
Posts: 12
Joined: Sun Jan 16, 2011 4:00 pm

Re: Giest118's Guide to Making Good Bullet Hell Bosses

Post by K.B. »

Giest118 wrote:
RNGmaster wrote:Make your entire game static and, no matter how well designed it is, it will bore people to death. There's got to be some level of randomness.
Both of those statements are provably false
I am a person. I must be delusional.

Either that or TSS, PoFV, PoDD, and the like aren't shmups. In case they aren't (I like to call them puzzle-rtses), the specific instances of randomness in EoSD that you derided are my among my favorite parts of the game. And they're never walls. They're simply highly wall-ish at times, which is, admittedly, hell for scoring, but you have bigger issues if you're playing EoSD for score. To be plain: that game has its share of problems, but randomness is an attraction, not a fault. Except with Bury in Lake, but of course even good things can be poorly implemented.

The lack of a large degree of randomness in most shmups is a big reason why I rarely play them these days. But hey, I'm stubborn. This is my recreation, and I don't want to spend that time learning. I've done it for dozens of games, never enjoying it, just doing it enough to get a clear (to make up for what I lack in skill), and I've had enough. I just want to read and dodge because that is what gets me high. Go on, game, be an asshole, don't give a fuck about me; I'll still kick your ass.

Your thoughts on randomness may be shared by a great number of people, probably even the vast majority, but it's presumptuous to think that you can unequivocally apply them to everyone.
User avatar
Giest118
Posts: 1042
Joined: Wed May 02, 2012 1:50 am

Re: Giest118's Guide to Making Good Bullet Hell Bosses

Post by Giest118 »

K.B. wrote:I am a person. I must be delusional.
RNGmaster wrote:Make your entire game static and, no matter how well designed it is, it will bore people to death.
See, what I take from these statements is that fun is proportional to randomness, and nothing else. If fun was proportional to other things, than surely good design could make up for a lack of randomness? If it doesn't, that means Cave has been wasting their fucking time all these years, and should have just made all of their bullet patterns completely random smatterings of bullets with neither rhyme nor reason. Scoring should be random too; just roll random(1,30000000000) to see what score you get. Awesome!
K.B. wrote:the specific instances of randomness in EoSD that you derided are my among my favorite parts of the game. And they're never walls. They're simply highly wall-ish at times, which is, admittedly, hell for scoring, but you have bigger issues if you're playing EoSD for score. To be plain: that game has its share of problems, but randomness is an attraction, not a fault. Except with Bury in Lake, but of course even good things can be poorly implemented.
I take it you've never touched Lunatic Remilia? They're walls. Your hitbox mathematically cannot fit through them, and they comprise a horizontal two thirds of the screen. Oh man, such legitimate challenge you guys, I really feel badass for beating that attack that decided NOT to wall me this time.
K.B. wrote:The lack of a large degree of randomness in most shmups is a big reason why I rarely play them these days. But hey, I'm stubborn. This is my recreation, and I don't want to spend that time learning. I've done it for dozens of games, never enjoying it, just doing it enough to get a clear (to make up for what I lack in skill), and I've had enough. I just want to read and dodge because that is what gets me high. Go on, game, be an asshole, don't give a fuck about me; I'll still kick your ass.

Your thoughts on randomness may be shared by a great number of people, probably even the vast majority, but it's presumptuous to think that you can unequivocally apply them to everyone.
See, your tastes are fine and dandy, but they're rather antithetical to the competitive aspect of shmups. That's cool and all, that's how you roll, but my understanding was that it should always be feasible to play a shmup for score, and always have your score be based on skill and familiarity with the game rather than rolling really well on a bunch of invisible dice.
User avatar
Naut
Posts: 292
Joined: Wed May 12, 2010 3:39 am

Re: Giest118's Guide to Making Good Bullet Hell Bosses

Post by Naut »

Giest118 wrote:
K.B. wrote:I am a person. I must be delusional.
RNGmaster wrote:Make your entire game static and, no matter how well designed it is, it will bore people to death.
See, what I take from these statements is that fun is proportional to randomness, and nothing else.
Then you have taken them very, very wrong. There exists a nice, happy medium between what you're trying to say and what you think these fine individuals are saying.
Giest118 wrote: But seriously, I did note that there are acceptable times to use randomness; the point was that it shouldn't result in a radically different experience every time you play. Success or failure should not depend on the game rolling some dice.
I think your wording is a little bit iffy...
Giest118 wrote: THE RANDOM NUMBER GENERATOR IS AN ASSHOLE WHO HATES PLAYERS AND DEVELOPERS.

It makes me feel like a total assclown to think that I ever used randomness in any of my games. And yet I did it not once, not twice, not five times, but IN SEVEN SHITSUCKING GAMES. Trig Wars 3 Redux is the only one where I didn't use the random function even once! And you know what? THE GAME FEELS BETTER PLANNED AND REFINED AS A RESULT.
Yeah, you go on to say "there are some scenarios where RNG is acceptable," but after reading this, lol...? How do you call people assclowns for using random numbers then go on to say it's actually okay if you use them well? Of course it's okay if you use them well. Almost everything is okay if you use it well. Why would you even say these things. Your example in EoSD is supposedly a case where they are not being used well (I'd argue the randomness is what makes the game playable given it's slew of other problems)... But even still, pretty much every other Touhou game is an example of a shmup with an abundance of random numbers used well. EoSD is more of an example of somebody with not much experience in development using things he doesn't fully understand which results in inconsistent difficulty, which he obviously gets better at in his later games. The inconsistent gameplay and difficulty is the real "problem," and RNG is an obvious way to create this, but not the only way. You can still make a completely static game inconsistently difficult. And even with all that said, EoSD is still a very competitive game, and the scores are not being beaten by "random luck," but actual route improvements and better strategies.

I'm in agreement with a good bit of what you say in general, but the RNG hate was irking. Particularly since it's so... Contradictory.

--
n0rtygames wrote:There's a tendency for people to expect skills from one game to carry them through another with the same amount of success. It doesn't work that way..
You and I disagree on a very fundamental level. Of all the various skills needed for most shmups: reflexes, reading, pattern recognition, precision and memorization... Only one of them is non-transferable.
n0rtygames wrote:A sensible game dev recognises that having a player milk bosses is fun for that player. Your goal is not to stop the player. So a vocal minority say milking is bad.. they're still playing your game - the milker is enjoying getting the extra 1000000 points for 2 minutes. Someone is playing your game and having fun. What's the issue? Ygw games are fun.
Getting a high score is fun. Milking is an unfortunately necessary practice in many otherwise very fun games to get a high score. People don't play Battle Garegga for the milking.

"Guess what, on stage 5, there's this enemy that if you time it right, you can milk for two and a half minutes doing the exact same 4 second pattern over and over again!!!!"

"Oh fuck YES!!!"

No.
Image
User avatar
Giest118
Posts: 1042
Joined: Wed May 02, 2012 1:50 am

Re: Giest118's Guide to Making Good Bullet Hell Bosses

Post by Giest118 »

See, Naut is a badass motherfucker who actually elaborates on things. Although I don't know how he confused me calling myself an assclown with calling other people assclowns. That seems like a really difficult misconception to make. You need to try REALLY hard to make that mistake.



Being serious now: you have a point, I should rework that part of the guide. If nothing else, that first paragraph needs a lot of rephrasing. I think I'll do that right now.
User avatar
K.B.
Posts: 12
Joined: Sun Jan 16, 2011 4:00 pm

Re: Giest118's Guide to Making Good Bullet Hell Bosses

Post by K.B. »

Giest118 wrote:See, what I take from these statements is that fun is proportional to randomness, and nothing else.
You're taking them incorrectly, and obviously so. Your paragraph is a strawman.
I take it you've never touched Lunatic Remilia?
Only her nether regions.
They're walls.
Nope. You can always macro the worst of them, and there are always ways to squeeze through them. You could argue that either method can, at times, become inhumanly difficult (especially with the density of the waves and with everything else on the screen [and the terrible bubble hitboxes]), but that'd still be a stretch.
See, your tastes are fine and dandy, but they're rather antithetical to the competitive aspect of shmups.
Perhaps? My competition in shmups is mostly in the pvp area. I largely dislike scoring, as you might have guessed.
That's cool and all, that's how you roll, but my understanding was that it should always be feasible to play a shmup for score, and always have your score be based on skill and familiarity with the game rather than rolling really well on a bunch of invisible dice.
This ignores both the degree of randomness and its implementation, and it assumes that scoring must come first. At worst, there's a tradeoff between scoring and randomness, and having a little randomness will have a slight, negative impact on scoring (and, yes, having a lot could have a highly negative impact). But even if we (incorrectly) assume that you can't have randomness without a hit to scoring, that could still be by design: the price to pay for requiring adaptability is a little frustration. Take it too far and you end up with a system like PoFV's, where getting a top score will require restarts when certain things don't go your way. But even with that extreme case, competition is still feasible, at least to a few people.

All that is assuming that scoring is necessary for a shmup to be a shmup when, in fact, scoring is simply a highly desirable, additional dimension. But this is tangential and unnecessary for my prior points to stand.
Giest118 wrote:See, Naut is a badass motherfucker who actually elaborates on things.
Wow.

Just wow.
User avatar
Giest118
Posts: 1042
Joined: Wed May 02, 2012 1:50 am

Re: Giest118's Guide to Making Good Bullet Hell Bosses

Post by Giest118 »

All right, I apologize. Sometimes I get ahead of myself when I write, and I say stupid crap. I just reworked parts of the section on randomness; I hope my phrasing is more clear now.







... Remilia does use walls though.
Post Reply