Please create an account to participate in the Slashdot moderation system

 



Forgot your password?
typodupeerror
×
PC Games (Games)

How Indie Devs Made an 1,800-Player Action Game Mod In Their Spare Time 87

An anonymous reader writes "Just Cause 2 Multiplayer has been getting a lot of press lately, but this making-of feature points out how the mod raises serious questions about the games industry: if 1,800-player massively multiplayer action games are possible on one server, why did it take a group of modders to prove it? From the article: 'There’s more chaos to come. That 1,800 player limit isn’t maxing out the server or the software by any means. Foote says that the team, who first met online seven years ago playing the similar Multi Theft Auto GTA mod, are "yet to reach any real barrier or limitation preventing us from reaching an even higher player count than the previous public tests." When it’s ready, the team will release the software for everyone to download and run their own servers, wherever they are in the world.'"
This discussion has been archived. No new comments can be posted.

How Indie Devs Made an 1,800-Player Action Game Mod In Their Spare Time

Comments Filter:
  • by GoodNewsJimDotCom ( 2244874 ) on Saturday September 15, 2012 @08:44PM (#41349443)
    My math is old, but with P2P where you update everyone around you of your position with 640k upload, you can do about 50,000 players if your attacks are melee only. The key is not updating people far away as frequently, since they can't get in range and get a hit on you, you only have to calculate a full run between you for the time between sending out data. The biggest trick with P2P as everyone knows is dealing with hackers though... Even games like WOW, I would think you might be able to fly with a hack because their central server probably isn't calculating your collision detection.
    • by JonySuede ( 1908576 ) on Saturday September 15, 2012 @09:17PM (#41349613) Journal

      dealing with hackers though

      Here is a probably patentable or patented method of dealing with that:
      Each node shall crypt then sign its data. One key shall be unique keys per connection, it shall be use for encryption. The other key should be unique per application instances, it shall be use to sign the data. A node shall validate the authenticity of that data with a peer after every an empirically determined threshold of data on a singular connection. If there is a mismatch broadcast it to your peers, except the one use to detect the mismatch, inform central.
      On reception of the broadcast the peers shall have the following behavior:
      If the node having sent unauthentic data is know to the recipient node. It shall validate the authenticity of the data then it shall inform central. It shall also broadcast it to its peers. If the potentially malicious node is unknown, the recipient shall drop the message.
      The central should perform a local rollback of the cheater when it reaches an empirically determined threshold with regard to an empirically determined metric.

      • The crypto stuff is kinda obvious... see for instance gnunet. For the actual p2p, take a look at this http://dl.acm.org/citation.cfm?id=1170257 [acm.org]
        I know the author, he started doing this more than a decade ago.

        Yeah, it's frustrating, you (we) have some good idea, just to find out a lot of people already had it way before. Sometimes centuries ago (for math stuff).
        On the other hand, we live in a world of awesome possibilities... ;)

        • I am not frustrated at all, sorry if my message ascribe such emotion. To my defense, let me confess that I was trying to karma whore by weakly attacking a favorite of here*1 for no particular reasons whatsoever.
          1--the US patent system
      • by Baloroth ( 2370816 ) on Saturday September 15, 2012 @11:05PM (#41350021)

        If I'm understanding you correctly, I can see two possible problems (at first glance). The first is the overhead introduced by crypto: even at it's fastest, it will always add some latency to the data transmission (simply because the data has to be processed on both ends before it can be received or sent), and it requires additional processor time to manage the encryption. I'm not sure how much, but it could be a fair bit if you are transmitting several dozen times a second (which multiplayer games customarily do). This isn't a problem in BitTorrent where latency and computational overhead are not terribly important. It is a potentially very large problem in a multiplayer action game where the CPU may already be taxed and low latency is absolutely vital.

        Secondly, a large number of malicious nodes could probably poison the system, or at least a part of it. This also could also be a problem: cheaters and trolls sometimes run in packs.

      • by Anonymous Coward

        Won't work. It's all about trust. Which clients can you trust? Hackers will get multiple clients working together to cheat. Need 3 other clients to verify input? Hackers will get 4. They will also report people who aren't cheating as cheaters, and you will end up banning the good players. You can attempt to create your own fake client honeypots to weed out hackers (until they figure out how to spot them), but that will only help if they can't just go make another account for free. But if its pay to play, th

        • by EdIII ( 1114411 ) on Sunday September 16, 2012 @12:52AM (#41350303)

          I was just thinking why don't we just say fuck it and make a wonderfully complicated game where the point was hacking and cheating.

          A virtual world where the leader boards are filled with those who have the greatest skill and resources at hacking the code, abusing other players, spreading misinformation, hijacking networks, and generally being as shitty to everyone in the virtual world as possible.

          Then I realized we don't have to create this game. That's how the real world works and is why we can't have nice things.

          • That's how the real world works and is why we can't have nice things.

            Very True. But that is only if you are insisting on anonymity. If you are willing to lock down a real, permanent identity before allowing someone on your network, then punishing misbehavior becomes trivial. Sometimes is to beneficial to have a network where you know who everyone is.

      • I assume you validate not only the authenticity but also the feasibility of each command. A single cheater could run 10 nodes to blend reality in his favor or report as cheater some innocent players. Then you have to handle data persistence, taking in account that any node can have connection problem at any time. Client/server(s) model for any robust real time action game has still a bright future in the current decade. (they will put the "cloud" tag on it to be trendy tho)
      • The problem isn't something crypto can solve. It comes down to an untrusted client. When a client reports 'My player just stabbed this other player' how can the other clients be sure this is what really happened, and the player isn't really using a hacked client to achieve superhuman precision in aiming or hit people from across the level? There are some techniques that can be used to make software much trickier to alter but, as long experience with copy-protection on games has shown, if the software is run
    • by jhoegl ( 638955 )
      This isnt all it is cracked up to be.
      The only way to kill anyone is with an explosive, so they havent really added any of the CPU intensive stuff that is required for Multiplayer.
    • Comment removed based on user account deletion
    • Yeah, but 64k players should be enough for anyone.
      (well, someone had to post this :-( )

    • The problem is none of the mods are doing any transaction logging needed for catching cheaters. You can easily handles 200k players in 1 location when there are no checks against movement speeds, positional coherence, etc. This is a non-story at best.

    • by guruevi ( 827432 )

      That's easy to do too. The server can just send the data of players to a random group of clients for collision detection and probability calculations (what's the probability of a guy going from height 0 to 10 at that location). If a certain number of clients tells you the results are erroneous, mark them as hackers and kick them or ban them or move them to a cheater's server.

  • MMO Joust (Score:4, Interesting)

    by jomama717 ( 779243 ) <jomama717@gmail.com> on Saturday September 15, 2012 @08:46PM (#41349453) Journal
    This revives in me an idea a buddy of mine and I had about creating a massively multiplayer online version of joust, after playing it for several hours on xbox live one night in the early 2000's, the game is so simple it should be easy to pile on thousands of players, and would be a fucking blast...unlimited board, unlimited players, would be great. Of course, like any cool idea I wouldn't be surprised if this has already been done by someone.
    • Re:MMO Joust (Score:5, Interesting)

      by GoodNewsJimDotCom ( 2244874 ) on Saturday September 15, 2012 @08:53PM (#41349491)
      MMO Pong: Everyone gets a side of an nsided polygon where N is the number of players. There is n-1 balls in play. MMO ET: Everyone gets thrown into a pit, and you need to jump on top of other people's heads to jump out of the pit. I would think this would have to be a minigame inside an actually fun game, otherwise how would you get people to play it :P
      • Love it. The possibilities are endless. The rebirth of relevance for 80's arcade games by way of MMO-ization.
      • by tepples ( 727027 )

        MMO Pong: Everyone gets a side of an nsided polygon where N is the number of players.

        MMO Warlords would work well too.

        MMO ET: Everyone gets thrown into a pit, and you need to jump on top of other people's heads to jump out of the pit.

        That's not E.T.; that's New Super Mario Bros. Wii.

        I would think this would have to be a minigame inside an actually fun game, otherwise how would you get people to play it :P

        Make it a minigame collection, where the scores for each minigame contribute to the final score for a match. Sort of like Mario Party or WarioWare.

        • MMO ET: Everyone gets thrown into a pit, and you need to jump on top of other people's heads to jump out of the pit.

          That's not E.T.; that's New Super Mario Bros. Wii.

          That's The Dark Knight Rises, too.

      • For pong, what happens when people leave? Though that's a good idea; I might knock it up for fun and see if it works.

      • Or make it a 3D game where each player has to protect a face of a polyhedron. When players exit their face of the polyhedron is removed. Maybe even put another polyhedron inside the polyhedron and have players bounce the balls between the polyhedrons.
      • MMO ET: Everyone gets thrown into a pit, and you need to jump on top of other people's heads to jump out of the pit.

        I take it you haven't tried Transformice? I like a description I read which claimed the enemy was "the human condition." Very true.

  • by Anonymous Coward

    Game developers set their limits based on what they can reasonably show to be a supported, stable level for the majority of their expected customer base.

    Even though the code could potentially handle more, explicitly supporting it requires additional development resources, additional QA resources to validate that it works, etc., for potentially little to no gain.

    Anything over 64 players is going to bump it into the real where it's considered "massively multiplayer" by most suits as well.

    • Nah, EVE Online will let >2000 people on one node, it will slow down to a 10% real time tho :/

  • slashdotted (Score:5, Funny)

    by Anonymous Coward on Saturday September 15, 2012 @09:03PM (#41349543)

    Test Cancelled

    Published september 15, 2012, 01:29:19 pm

    An hour or so after we started the test, we were hit by a DDoS attack that ended shortly after; roughly 2 hours later we were hit by an even stronger attack, leaving us with no choice but to call off the test.

    It is a shame for the beta to end just 3 hours after it started, though we did verify that the server performance fixes most definitely worked.

    what time did this article get posted?

  • by Chris Mattern ( 191822 ) on Saturday September 15, 2012 @09:36PM (#41349699)

    Just 'Cause! (with apologies to Yahtzee)

  • Uh ... (Score:4, Interesting)

    by Kaz Kylheku ( 1484 ) on Saturday September 15, 2012 @11:57PM (#41350157) Homepage

    Early 1990s MUD games had telnet connections in the three digits. As in, handling raw character input from the players, not nicely aggregated packets from a client GUI. That was on hardware like Sun boxes that pale in processing power and memory size compared to ... oh, your Jesus mobe, and such.

    • ahhhh yes brings back memories of playing my half blind dwarf gromit, he could see a distance of 1, if I wasn't in a group I wasn't able to find the other side of a room. From memory I was connecting from a VAX terminal. At the time MUD's stunned me with how powerful and complex a multi player gaming environment could be and was amazed to see so many people in the same game.
  • Could anybody give some details on how this was done? How do you hack multiplayer into a closed source game that doesn't have multiplayer support it? Decompile the thing? Find some unused engine hooks that allow multiplayer? Something completely different?

    • by gl4ss ( 559668 )

      details would be very interesting.

      afaik iirc gta mp was memory hacks.

      what's crazy about this is that it seems it supports more players online in a single game without bad lag than what max payne 3 supports globally in 100 different games...

    • You simply replace a dll by another one that provides the same interface but a different implementation.

  • by Anonymous Coward

    I took a course in game programming the summer of 2011. There was a guest lecturer who discussed something very much like this.

    The idea was to have the playable area of the game divided into zones. Each zone would have a flexible border that could be moved around based on the quantity of the players. I think the idea was that each zone would roughly adjust to have an equal amount of players. Each zone, in turn, was responsible for the players within it. The game was specifically designed to handle FPS games

    • by Anonymous Coward

      Oddly enough, I work for a company that's been selling an implementation a lot like that for over a decade now.

      The problem has not been "how do we get 1800 players into a single play-space" for a long time now, between peer-to-peer, clustered computing, and dynamic spatial division. Zoning was a game play feature, not a technical requirement, by the time World of Warcraft shipped.

      The problem now is "How do we make a single play-space fun for 1800 people at once?"

      I haven't seen a good answer to that yet, and

      • by gl4ss ( 559668 )

        Oddly enough, I work for a company that's been selling an implementation a lot like that for over a decade now.

        The problem has not been "how do we get 1800 players into a single play-space" for a long time now, between peer-to-peer, clustered computing, and dynamic spatial division. Zoning was a game play feature, not a technical requirement, by the time World of Warcraft shipped.

        The problem now is "How do we make a single play-space fun for 1800 people at once?"

        I haven't seen a good answer to that yet, and since I'm still working my way through JC1, I doubt I'll get a chance to see this one either...

        (Posting anonymously to keep any commercial concerns abated)

        wow, two anon cowards supposedly with solutions for scaling realtime games on consumer connections to thousands of people. YET NO PRODUCT MENTIONED! screw you guys, mention some done things. wow would have been hell of a lot better with your magic tech, instead of the technical scaling limits which ultimately lead to the realms being the size they are(in terms of player amounts, which dictates the designed world size in area so that it wasn't empty or too full).

        it is very much a problem how do you make it t

  • I'll tell you why networking in video games sucks so much, is so easy to hack and scales so badly: it's simply not designed. The proper approach would be to think what should be the responsibilities of the client and what should be that of the server, then design an adequate protocol and write the server-side algorithms with scalability in mind. For example finding all players within one region is logarithmic in nature, and not sending information to clients that shouldn't have it is common sense, but don't

  • Here's a clip of an amusing fellow playing the test, for those who want to see it in action:
    http://www.youtube.com/watch?v=mIpGGvq6zH8 [youtube.com]

Your own mileage may vary.

Working...