Jump to content
Koumei & the Five Fates: Share Bug Reports and Feedback Here! ×

Mmod - Massive Multiplayer Online Defense - New Gameplay Idea


MarkField13
 Share

Recommended Posts

In this game you actually do. Since it doesn't use dedicated servers. Just peer-to-peer.

 

Though it would be nice if there were a possibility for dedicated servers.

You're mixing up the client application and the server application.

 

I'm talking about running a server.  Not just opening up my client application and hosting games.  

 

 

EDIT:  Let me clarify a bit more....What I mean is, if this game allowed players to host servers and the server software was available, I'd do it in a heartbeat if I could.

Edited by Bakercompany86
Link to comment
Share on other sites

You're mixing up the client application and the server application.

 

I'm talking about running a server.  Not just opening up my client application and hosting games.  

 

 

EDIT:  Let me clarify a bit more....What I mean is, if this game allowed players to host servers and the server software was available, I'd do it in a heartbeat if I could.

I actually did know what you meant. I was replying to that. Currently the game completely misses a dedicated server option that's why it is needed to be there in person to host. This is why I'd love the option to host a dedicated server on our PCs.

Link to comment
Share on other sites

So, this idea is actually based on a bug/glitch, but it made the map INCREDIBLY fun! This video proves that the servers can handle the load (for the most part), and that people enjoy playing like this. 

 

1) The games are actually hosted on player's machines.

2) There have been games that can handle dozens of players for a very long time. Even consoles can handle that.

3) Yes, they should add content which requires multiple squads.

4) They need to give us option to have powerful computers/servers be the hosts of games to get rid of most performance problems.

Link to comment
Share on other sites

1) The games are actually hosted on player's machines.

2) There have been games that can handle dozens of players for a very long time. Even consoles can handle that.

3) Yes, they should add content which requires multiple squads.

4) They need to give us option to have powerful computers/servers be the hosts of games to get rid of most performance problems.

"2) There have been games that can handle dozens of players for a very long time. Even consoles can handle that."
 
Those games are not running tons of AI at the same time.
Edited by R3leaZ
Link to comment
Share on other sites

 

"2) There have been games that can handle dozens of players for a very long time. Even consoles can handle that."
 
Those games are not running tons of AI at the same time.

 

 

Let's face it, Warframe doesn't have a lot of AI going on. ;D

 

4.5 years ago in Left 4 Dead, a few folks in my group of friends were able to host 8 man listen servers just fine for us to play Versus. That's a decent amount of AI, even if it's mostly a horde mentality controlled by a single AI director. The biggest technical hurdle is replicating all the actors on everyone's machines, and hordes consisted of 30+ zombies on screen at once,  yet it was doable. That was almost 5 years ago. I'm not saying it's something any idiot can string together, but DE could probably code something for 8 players.

 

The point of dedicated servers being needed is valid, though. While not necessary as some folks have great connections, it would be a lot smoother for everyone if DE threw some dedicated servers up for a mode that allowed more players.

Link to comment
Share on other sites

 

It's called a peer-to-peer system and it's been used in many games including Dark Souls and Modern Warfare 2.

 

As for the numerous workarounds you propose: are they really worth it?

If the playerbase wants it, it would be. Going through the trouble of adding new frames, creating new abilities, generating graphics, etc... is it worth it? Any new game feature/improvement has to be put into perspective of cost vs benefit. If the benefit of adding this feature outweighs the cost, then yes. If not, then no.

 

 

Host disconnected. Host migration in progress... "I ain't gonna wait that long!" Host migration in progress. . 9 players dropped. Pod has been killed. Fail at wave 4. You would need a dedicated server for that.

The video proves that a dedicated server isn't required, just someone with a good connection/system. I'm not sure to what extent the host role plays in calculations, other than its obvious internet connection. Theoretically, if you had a laptop that just barely ran the game on the lowest of settings, but a rockin internet connection, you could host these kind of games, where each individual client does its own processing and the host merely lets them communicate between each other. The code would need to be cleaned up/refined to support this many players in order to not bug out like we saw throughout the levels, but its within the realm of possibilities.

 

 

Tenno only work in groups of 4, plus they're on the verge of extinction, so they prefer to operate in small groups. 

I can see this as an excuse to not include this feature (not commenting on your support or non-support of this feature), by using the storyline to say "That would be cool, but it wouldn't fit within the storyline," similar to what I read about one of the sniper rifles in the game, where the mechanics of how it worked didn't fit in with any of the races, so they removed it and replaced it with something that fit the storyline a little better. I think this could be an issue that is worked around by limiting the amount of players involved (instead of 20-30 player raids, have only 12-15 players). And this may be further incorporated by having it be a random event in a specific world thats sort of like a "Calling all Tenno! Calling all Tenno! We MUST stop these guys! Lend help to your brothers and sisters!" This way, its like a calling out for a Tenno gathering that might not otherwise take place.

 

 

 

We are most likely on a peer-to-peer system because of how expensive server space is, especially to accommodate the amount of players warframe has.

I completely understand and agree with why its on the system, I just wasn't aware of it. I know quite a few games are doing that, or by having other users host "permanent" servers (think valve games). Its much cheaper, and can sometimes offer customization that you can't get with hosting the servers themselves.

 

 

 

I would really love to hear from you who would host this. I mean. Srly. Who would host such a game.
And well, screw all those who dont have awesome 1st world ethernet.

I'd host this, hands down. Well, if it weren't for the 0.9 Mbps upload my ISP is ripping me of with, I would. I'm in the process of switching providers and should be able to easily (and for the same price), be able to get 10 Mbps up, which'll significantly improve my internet's performance. It might be possible with only 0.9, but it certainly wouldn't be ideal. I'm sure there are several others that are in the same boat, as well as others that already have the required internet speeds that would be willing and just haven't seen this thread.

Link to comment
Share on other sites

 

"2) There have been games that can handle dozens of players for a very long time. Even consoles can handle that."
 
Those games are not running tons of AI at the same time.

 

Believe it or not, AI is actually not that computationally intensive, and additional shortcuts can be taken into consideration when programming levels. For instance, while all the mobs on a level may "spawn" when the map starts, they aren't doing anything until you're in the room next door. There'd be no point in having the guys at the boss room patroling around in circles the moment you load the map. So, developers (should) set them in static positions (even if randomly generated) and keep them static until you are within a certain distance of them or of their room. Once within distance, they should begin their update cycles and be told what to do. But what to do when there are 20-30 mobs in your room and you're all in combat (or such as when the mobs spawn on the defense levels)? Well, AI can be incredibly simple to do if done effectively.

 

If(playerInRange)then

attackPlayer()

else if(directPathToPlayer)then

moveTowardsPlayer()

else

moveTowardsPlayerVacinityNode()

 

It may get complicated a bit more when "attackPlayer()" includes a range check and then checks nearby terrain for where the player's LOS is broken, then it will attack & move towards cover in the same update tick. But based on what I've seen in this game, the AI seems simple but effective. It looks like proper target evaluation is taken into consideration, cover can be taken and used, and movements towards/away from the AI enemies seems appropriate (charge towards enemy when with group, or run away when being shot at). There are a lot of other shortcuts that programmers take into account when doing all this as well that can really speed things up. In the past, I built a program for class that used 1 AI for a group of 200 objects to control each of them individually, which included a "group behavior" module (move with the group), an "individual module" (behave like unique individuals), a "target evaluation module" ("attacking" enemies), and a "target evasion module" (avoiding enemies). I was able to run 200+ of these objects without any sort of visual/computational lag. I would imagine DE took great care when designing their AI to be efficient as necessary.

 

 

 

 

The point of dedicated servers being needed is valid, though. While not necessary as some folks have great connections, it would be a lot smoother for everyone if DE threw some dedicated servers up for a mode that allowed more players.

This, or the option to let other players host dedicated servers. That way I could setup a server for my use while I'm on, but then when I go to bed or work, I can leave it on to help other players out. I run most of my machines 24/7 anyway, why not help out if they aren't doing much else? That would be a great option, and could lead to the ability to host larger groups within the maps.
Edited by MarkField13
Link to comment
Share on other sites

 

Believe it or not, AI is actually not that computationally intensive, and additional shortcuts can be taken into consideration when programming levels. For instance, while all the mobs on a level may "spawn" when the map starts, they aren't doing anything until you're in the room next door. There'd be no point in having the guys at the boss room patroling around in circles the moment you load the map. So, developers (should) set them in static positions (even if randomly generated) and keep them static until you are within a certain distance of them or of their room. Once within distance, they should begin their update cycles and be told what to do. But what to do when there are 20-30 mobs in your room and you're all in combat (or such as when the mobs spawn on the defense levels)? Well, AI can be incredibly simple to do if done effectively.

 

If(playerInRange)then

attackPlayer()

else if(directPathToPlayer)then

moveTowardsPlayer()

else

moveTowardsPlayerVacinityNode()

 

It may get complicated a bit more when "attackPlayer()" includes a range check and then checks nearby terrain for where the player's LOS is broken, then it will attack & move towards cover in the same update tick. But based on what I've seen in this game, the AI seems simple but effective. It looks like proper target evaluation is taken into consideration, cover can be taken and used, and movements towards/away from the AI enemies seems appropriate (charge towards enemy when with group, or run away when being shot at). There are a lot of other shortcuts that programmers take into account when doing all this as well that can really speed things up. In the past, I built a program for class that used 1 AI for a group of 200 objects to control each of them individually, which included a "group behavior" module (move with the group), an "individual module" (behave like unique individuals), a "target evaluation module" ("attacking" enemies), and a "target evasion module" (avoiding enemies). I was able to run 200+ of these objects without any sort of visual/computational lag. I would imagine DE took great care when designing their AI to be efficient as necessary.

 

 

 

 

This, or the option to let other players host dedicated servers. That way I could setup a server for my use while I'm on, but then when I go to bed or work, I can leave it on to help other players out. I run most of my machines 24/7 anyway, why not help out if they aren't doing much else? That would be a great option, and could lead to the ability to host larger groups within the maps.

 

But sadly the AI in this game doesn't work like that. All AI that is spawned instantly starts to update itself. Pathfinding gets stuck, AI keeps recalculating new paths that also conflict at times. You can see it in this game. If you tried Mobile Defense with a 4 player party back when the spawn cap was a lot higher (With all the performance issues back then) you'd see that lots of AI got stuck and tried to change their pathfinding towards the objective continuously. Back then even a high-end PC was brought down on their knees. Having that tied with syncing everything to the clients and you got lots of framerate problems.

 

Sure my gaming PC was brought to around 25-40 fps but I don't call that playable. The clients had no problem at all because I have good connection and 25-40 fps is still enough for the AI to update properly. But the host (me) itself had so many problems playing the game properly that I often had to let the clients do all the killing since I am used to playing with 75+ fps and I am totally not used to tons of input lag.

Edited by R3leaZ
Link to comment
Share on other sites

There could be more than one mission type, or dynamic mission types that involve 3 full squads of players.  They could start from different locations on different parts of the map with different objectives.  If those are all successful the 3 squads would eventually join up for a "defend position for XX minutes" while they wait on extraction.  Or something like that.

 

 

There are a lot of possibilities for this.

Link to comment
Share on other sites

But sadly the AI in this game doesn't work like that. All AI that is spawned instantly starts to update itself. Pathfinding gets stuck, AI keeps recalculating new paths that also conflict at times. You can see it in this game. If you tried Mobile Defense with a 4 player party back when the spawn cap was a lot higher (With all the performance issues back then) you'd see that lots of AI got stuck and tried to change their pathfinding towards the objective continuously. Back then even a high-end PC was brought down on their knees. Having that tied with syncing everything to the clients and you got lots of framerate problems.

 

Sure my gaming PC was brought to around 25-40 fps but I don't call that playable. The clients had no problem at all because I have good connection and 25-40 fps is still enough for the AI to update properly. But the host (me) itself had so many problems playing the game properly that I often had to let the clients do all the killing since I am used to playing with 75+ fps and I am totally not used to tons of input lag.

But the AI isn't spawned (I wouldn't think) until you're in the room over, which makes it similar to my idea of "spawn them but dont update them", they just dont even bother with spawning them. By not spawning them, you can actually create a more dynamic gameplay, by being able to scale the enemies if the players are doing well or poorly, and by controlling the number of enemies that spawn. Lots of weak enemies wouldn't make any sense, but if they control both, they can spawn slightly harder enemies and fewer of them to compensate. That would help reduce performance issues and still create challenging gameplay for the players. I haven't noticed too many issues other than some physics glitches (a mob gets stuck on a railing or weird stuff with the rag doll physics), but I also don't know how the gameplay was way back when. It could have been that it boggled everything down, which is why they reduced the number of total spawns. However, from the way you make it sound, the AI definitely needs to be reworked. As one of the most computationally intensive parts, it needs constant tweaking to make sure it stays efficient and smooth. Another idea to consider would be to test other player's connections, and anyone that is able to host at least a little bit can be "given work" where the computational workload is shared. The host would say "Hey, you got yourself a decent connection, please track these 10 mobs and their AI stuff and let me know where they're at and what they're doing." Then, every tick, the client would spit back a report, and the host would spread it (or you could just have the client spread it to reduce latency). The host just has to say "hey, this client is tracking these guys, so listen to him for mobs X, Y and Z." There are quite a few solutions to the issue (not commenting on how easy or practical some of them might be), but nevertheless, they exist and should be weighed pros/cons.

 

 

 

There could be more than one mission type, or dynamic mission types that involve 3 full squads of players.  They could start from different locations on different parts of the map with different objectives.  If those are all successful the 3 squads would eventually join up for a "defend position for XX minutes" while they wait on extraction.  Or something like that.

 

 

There are a lot of possibilities for this.

I LOVE that idea! You could have a squad defend a certain point of endless waves that only stops when the 2nd squadron manages to lock a certain door or destroy an objective. The 3rd squad can join the first as "reinforcements", and then those 2 have to toggle their own objectives for the 2nd squad to be able to move on from what they were doing. At the end, everyone reunites up and pushes to the extraction point. To help differentiate the teams, you could use blue, green & red player outlines to help tell them apart. Also, you could do what a lot of other games do and always make the player's squad blue, and some other team a different color. That way, whenever you get in game, you know YOUR team is ALWAYS blue, and the others are whatever. For a comparison, take a look at America's Army, in which you are always America taking out some terrorist group. The "terrorists" you're attacking in the game see themselves as the Army defending against attacking terrorists. Its a really cool concept and could be applied in this instance to prevent the player from becoming confused: "Uh... guys, what team am I on again?" You're always blue, so just follow the waypoints & the blue guys like normal, and you're good to go! This would also be pretty sick for an entire clan to participate in, because the more people you add, the more tactical and teamwork is required. We could see some clans to amazing things with the right dedication & effort.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...