Here's a Multiplayer Game Idea

Posted by Castypher on June 23, 2011, 11:34 a.m.

Just a thought. I haven't started the game yet but I've put some thought into it and so far it sounds pretty cool to me, to the point where I'd even start it today.

Intro

I like bullet hell elements where precision and dodging are key, and I wanted to figure out a way to incorporate multiplayer and do it well. You've got your typical bullet hell shooter where it's player versus enemies and bosses. And while co-op is popular as ever, versus modes are rare. The only exception I've seen besides a straight up dogfight is Phantasmagoria of Flower View, which had a dual-screen setup where players could indirectly fight each other by killing enemies and sending bullets to the other player's screen. When their special meter was high enough, they could unleash a devastating attack on the other player.

But I didn't like that system. I wanted to fight directly, so this is what I came up with:

Two of my own games have had my focus right now: Prism Soul (bullet hell shooter) and Terminys (topdown RPG). Both are highly oriented to singleplayer gameplay. But together, there could be a much more dynamic system.

Concept

Using a topdown view, players move around the screen shooting bullets by aiming with the mouse. This is called streaming, and does minimal damage, but is fairly reliable. They can use "special attacks" in the form of Seals, which are devastating bullet hell attacks that the enemy team must survive. Only one Seal can be active at any given moment, but if the enemy team uses a Seal, it will end prematurely. However, if the enemy team decides to fight the Seal, they can break it to end it early and fill up their gauge that allows them to use a Seal.

Players might have a damage meter. Streaming deals some damage, but any bullets from a Seal will kill a player instantly (or at least deal high damage). To combat Seals, players can also shield themselves for a brief moment.

So far, it's designed to use 2-4 players in teamplay. However, some modes might work well with 8 or as many as 16. Here are potential ideas:

Game Modes

- Arena: Players can stream or use Seals in the same way as described above

- Boss Fight: All players cooperate against a lone player, who is the "boss." The boss gets access to Seals but not to streaming. However, he does get large AoE attacks to use while he's waiting for a Seal to activate. All other players can only stream to try and kill the boss. More players means the boss has higher health. One hit kills all other players.

- Slavemaster: Both teams have a master and the rest of the players are composed of slaves. The slaves try to kill the opposing master by streaming, and the master uses Seals to ward off the enemy slaves. Slaves can kill each other, but can also block each others' line of fire in order to protect their masters.

- Prism Thief: Essentially Capture the Flag. One or two players from each team act as defenders, and the rest attack. With the power of the Prism Soul in their possession, defenders can use Seals to ward off attackers, who use streaming to kill the defenders. If the defenders are killed, a Prism Soul is dropped, which the attackers must return to their own base in order to score.

That's all I have for this brainstorming session, but I want to know if people think this is generally a good idea that might make for an interesting game, or if they could point out any potential flaws. If people think it sounds decent, I'll get started on it. If not, I'll keep the idea until I learn game design in C++/C# a little better and make it in a system that does multiplayer better than GM.

Hell, if it'd do better, we could use 64Digits members as playable characters, and each would have their own firing patterns and Seals.

Comments

Castypher 13 years, 3 months ago

Got a way to ping the server and show all users' latency? Because although it's a basic feature, I'm having some trouble with it. And if you have an easy way to do it, I'll just skip it and move on. Besides, my server will use a completely different method anyway.

I used to have it so the client pinged the server, so it just sent one little packet, the server receives it, and sends a return packet. The client would count the time between the packet sending and reception. But then it would need to send that data and the server would need to relay it to everyone else. That's four packets sent.

The other method is to have the server ping each of the clients. It uses the same method, sending a packet to the client and starting a timer, and when it receives it again, it records the time and relays it to all clients. That's three packets sent, but for some reason it doesn't work well, probably because of how the player data is being stored in arrays.

Like I said, if you have a method for it, I'll just skip this obstacle and get right to the game itself.