Music and Multiplayer Shmup Technicalities

Posted by Castypher on July 18, 2011, 9:20 p.m.

Oh, approaching 40k hits. I know I'm behind. But in my defense, I don't blog much. At least not anymore.

First of all, a track I did a while ago, but didn't finish. I'll get to it someday. Joined Soundcloud just to post it, because I'd rather not force people to download something they'd listen to no more than once.

http://soundcloud.com/kralys/salenas-theme

Huh…sounds different outside FL Studio. Oh well. Just a couple instruments are a little bit quiet.

Let's talk about something fun, like game design! Or better yet, shmups! Or even better, multiplayer bullet hell!

Been hard at work on the game I mentioned recently. For those who didn't see or just outright forgot, it's a multiplayer bullet hell game, based around fighting other players instead of NPCs.

Here's a recap. Let's just take one game mode for now: Boss Fight.

It's either 7v1 or 15v1, trying to decide what the player cap will be. Everyone tries to kill the boss, who can potentially one-shot anyone. The boss uses bullet hell attacks, while the others use steady bulletfire to whittle away at his health. The boss can select and move bullets, aim, and use specials to help him, but a lot of the gameplay depends on what spells the boss chooses and how he combines them.

Get it? Good. But there are a few issues I'd like to go over, and for those of you who are proficient in multiplayer gaming, here are some scenarios:

I'm going for minimal latency (of course), but each method has a downside. Here we go.

Clientside Spell Handling

The server sends the message that a spell has been created, and the clients handle everything from there.

Pros: Virtually NO latency whatsofuckingever, extremely simple to use

Cons: Players with low framerates will fall far behind others, since GM can't skip frames

Because of that little bit (damn people with old computers and running virus scans), I'd have to update. Here's the next.

Multi-second Server Updating

The server sends messages updating all bullet positions, speeds, and directions once every second or more.

Pros: No overall latency, faster clients will handle everything well, slower clients don't fall far behind

Cons: Since all bullets have to be updated, there would be lag spikes, slower clients can have bullets appear over their heads

Individual Updating

All individual bullets update themselves every second or so.

Pros: The middle ground–few spikes and a spread out latency that doesn't require all bullets to be checked at once

Cons: Since all bullets are updated separately, it can look very sloppy, and is generally hard to implement

Spell Updating Only

Server updates the position in the current spell, including health, timer, and stage. It does not update bullets.

Pros: Minimal latency, all clients see spells begin, change, and finish at roughly the same time, regardless of framerate

Cons: Poorly performing clients will not receive bullet updates, which means that their barrages will still be vastly different from other clients. This can often make it too easy or too hard. However, they will still see spells happen at the same time, so they dodge what they get on their screen and nobody gives a damn about how many bullets he's phasing through.

Other methods are appreciated, but now that you see the problems I'm facing, hopefully you can forgive me for taking my time on this. I want it to work well, and that's not all that easy when you're trying to compensate for people with terrible computers and/or connections.

TL;DR

For those who don't know multiplayer very well, here's some other good stuff.

There are (as of right now) twelve spell categories to choose from, and each has eight or so spells–6+ normal, 1 final, 1 survival.

- Normal spells are the boss's main weapon, and every one has a breaking point. All enemy players must try to damage him enough to break it. Once broken, he will take a high amount of damage. If it expires, he will take no damage. Certain measures (including cowardly players who hide and let their "carries" do the job) can increase his health if the spell isn't broken, lower its cooldown, and extend its breaking point while it's going.

- Survival spells make the caster invulnerable and last a long time, and enemies have to wait out the spell instead of trying to break it. However, when it expires, the boss takes damage as if it was broken.

- Final spells can only be used when the boss is low in health or he has used all his other spells. They last a very long time, must be waited out, and gradually get harder. Players cannot ignore damaging the boss, as even though he cannot die prematurely, the spell's duration will INCREASE while he is not taking enough fire. When it expires, the boss will automatically lose the match. A last resort spell with hopes of taking out the last of the enemies' life pool.

As for the categories, I won't name them all. But each has a different gameplay perk and comes with two specials. Players can mix and match spells from any category, and pick any two specials to personalize his fight.

Custom spells are figured out and will be available for testing in not too long. The only issue I'm working with is the fairness factor, where people could essentially throw everything–including the kitchen sink, leaving opponents with no time to defend themselves. Suggestions are VERY welcome here.

Questions about the game itself? Those are relevant too. Way to go, (moderately) long blog!

Comments

panzercretin 13 years, 1 month ago

On Salena's Theme:

1. Go to 1:30

2. Listen for about 20 seconds or so.

3. Go Here

4. Listen starting at about 1:20.

Familiar? lawl

Castypher 13 years, 1 month ago

That wasn't the song I had in mind. <_<

And that's okay, I wasn't attached to it anyway. Time to do a rework.

Alert Games 13 years, 1 month ago

Ohi. Still working on this? I like how much it sounds like it had over a month ago. :D

I'm getting closer on releasing my stupid first test of the api. Which is taking longer due to the problems casued by server requests using special characters. But i'll let everyone know tomorrow when i fnish it lol.

Castypher 13 years, 1 month ago

Yeah, still working on it of course. But at the moment I'm taking a short break from it (to work on a different bullet hell), mostly because I'm not feeling creative enough to come up with bullet patterns right now.

They'd either be arranged by characters (for the Touhou players, think Utsuho's style, Meiling's style, Suwako's style, etc) or categories (Magic, Phantom, Nature, etc). I like characters, but categories are more straightforward.