Ambrosia Garden Archive
    • Ideas about EVMP (ack)


      It seems there is still a lot of discussion about a multiplayer EV. I have some ideas on this that perhaps have not been addressed yet.

      Let the flames begin!

      First, why is it so "impossible" to create an EVMP? Half (or more) of the people on the board say "theres no way it would work", etc, etc. There are already MMORGP's out there (think Everquest, I guess ). I imagine (I have a good imagination) that you could have a server keep track of:

      1. Where the player is (which system)
      2. Other players/AI ships in the system and their velocity vectors.
      3. Shots fired and velocities/targets.
      4. Player conversations.
      5. Player statuses.
      6. Whatever else I am forgetting.

      This info would be input into your EVMP engine on your machine, which would render the screen etc. This engine would also keep track of your position, your weapons, targets etc. which would be sent off to the server. In this way almost all of the calculations would be done on the individual machines, leaving a low server CPU load.

      Another common lament is that "Missions would not work". I reply, in a rhetorical manner, "Why not?" Say a mission has X requirements. The server could have a list of those players who qualify, and when one of them is in a position to accept the mission (mission comp, bar etc), they can. Then they (or a group I suppose) would download the mission data, and go at it. Mission data is fairly small so it wouldn't take too long. This way you could constantly add new missions, including player-initiated ones, without having to update the universe for everyone. Missions could be deleted after they are complete, only the mission bits need to be saved. Correct me if I'm wrong, but if each player has 1 million mission bits, that is only 128K. How long would it take to do a million missions? Hmm

      If a mission alters the general universe, each player could download an update when they login. As I said before, the EV data files are quite small, so most updates would be <50k. If images are required, I'm sure JPEG would reduce the size.

      For governments: Each "government" could be a coalition of players, or a bot if no-one want to control the lives and minds of simulated billions (I doubt this will be a problem). This could fit in with the missions, ie: the "government" coalition finds out there is an alien relic somewhere in Gamma quadrant, then they could commission players that they like to find it.

      For planet overtaking: It is fairly ridiculous that a single ship or a fleet of 7 could destroy a planetary fleet, but whatever. Planetary fleets would be subsidized by the massive planetary economies, so they could be huge (think US Navy vs 6 Spanish fishing trawlers).However, if you and a coalition of players managed to overtake a planet, bully for you: you get to be that planets "government" from then on, or at least until the former government builds up a fleet of Meg-A-Deth Ultimate Pain Destructo Warships and punts your a$$es into a supernova.

      Addressing the problem of experienced players killing off newbies: Sure, if a newbie attacks you, by all means, expose him to bleak and utter darkness of outer space. But if you attack them for no reason, they will put in a complaint to the Galactic police, which will have Death Stars andwhich will kill you quite quickly. But not painlessly. And then they will take your money for "damages". Ha ha!

      Hmm, any other problems? There is the jump time/realtime discrepancy, but that could be removed my making jump times much shorter, like 5 minutes. According to the physics that I just made up, this would make sense because it uses less energy (think tachyons, and the speed of light limit)

      How about player plugins? Well, there are several options: you could submit it to the review board (the "Galactic Lords" if you will), who would review it and then, if it is worthy, add it to the universe. Or you could have the "alternate universes" mentioned in a previous discussion. Or, you could just add it to the universe yourself, with the caveat that if you try to create a cheat ship/weapon, you have to pay for R&D; costs. If its not possible within the EVO universe (determined by something that I have not yet imagined), it would take an infinite amount of money to create. That would cut down on the amount of Super Ultra Infinite Quantum Discrepancy Shields and whatnot.


      Have a problem with what I have written? I'm not listening.

      Otherwise, visit my website (url="http://"http://1ucifer.cjb.net")here(/url).

      -Machiavelli

      (This message has been edited by Machiavelli (edited 01-27-2001).)

    • My 2 cents:

      The Quake engine seems pretty good for doing something like EVMP, because it already has networking and 3d graphics, plus it has QuakeC which is great for making "plugins". There are some limitations to it though:

      - numbers are all 32 bit floats, so any float can only hold a maximum of 32 bits (24 easily).
      - there is not that much support for interfaces other than text overlays on the screen (for stuff like shipyards, spaceports, etc)
      - I think there is a max of 1 meg total (compiled size) for all QuakeC
      - although the engine has been opensourced, the Macintosh version hasn't been. You can get a good mac port of the OpenGL code, but the software renderer will probably have to wait for Westlake and ID to get their acts together. This means both that you will have to buy a copy of Quake if you can't run the OpenGL version, and that plug authors couldn't do many engine modifications unless they want to break compatibility.
      - C for plug authors is necessary. It's not that big a deal, since it's pretty straightforward, but it might kinda suck.
      - the palette is awful, but I think modified engines don't have it so OpenGL users might not have to see it. It might also be changeable, but I don't know

      There are some big bennefits, though:
      - QuakeC is open, and can control a lot
      - models and animations
      - ID numbers would be a thing of the past since QuakeC allows for named constants, functions and variables
      - Quake runs fairly fast on any powerpc, and if we ever get the source it could possibly be made to "run" on a 68040

      I am currently working on it, but I have to admit that I suck and it would be better if people like kberg or Aeon were doing this instead of me. Ohh, and I think I could make QuakeC an option for plug authors who don't want it, but my ideas might not work well enough to bother.

      ------------------
      -- Nikolaus Wegner

    • Hey Machiavelli, stop this stuff and get back to work on The Undiscovered Country! You put out the teaser, then switched the plot, and now there's nothing. Get back to work, slug!

      ------------------
      The never duplicated
      Never capitalized
      And always puce:
      forge

    • Quote

      Hey Machiavelli, stop this stuff and get back to work on The Undiscovered Country! You put out the teaser, then switched the plot, and now there's nothing. Get back to work, slug!

      Nyaah. It's so much work ! (Whine) I did do some cool grapics that you can see on my (url="http://"http://1ucifer.cjb.net")webpage(/url) (go to the Gallery). Also, if you have NS 6, tell me if it works, because I didn't test it for NS 6 (I use the "faith" method of testing).

      I'll try and work on the Undiscovered Country just for you, forge. Actually, it probably wont take me long to get out a beta (without all the graphics), as long as I work on it. At least for the first spiral arm! πŸ™‚ However, my inner demon is telling me to play games

      -Machiavelli

      ------------------

    • Damn, you actually improved since the last time we saw you! How the hell is that possible? And I don't use NS 6, it's a waste of a download, a waste of hard disk space, and a waste of RAM.

      ------------------
      The never duplicated
      Never capitalized
      And always puce:
      forge

    • NS 6 is worthless. I can't believe I wasted an hour of my life downloading it.

      EVMP is not going to work. Even if you could get a server and do the godawful programming, it would likely be too laggy for anything short of a T1. There's just too much going on. And that's if you can actually program the darned thing. Do you know how much work networking requires? It's almost always networking and network game balancing that delays games, and it's usually the cause of development cancellations.

      So far, the only viable EVMP idea came from roostersw (Who got it from someone else; I'm too lazy to find out who). The idea was a sort of EV Planetarion, and it's probably quite doable if you can get the programming experience.

      ------------------
      Those who are blinded by the light shall stumble in the darkness...
      Visit the (url="http://"http://pub40.ezboard.com/bevoverridediscussionarea")EVO Discussion Area(/url) 'cause I told you to!
      (url="http://"http://www.AmbrosiaSW.com/cgi-bin/ubb/search.cgi?action=intro &default;=")USE ME, DAMNIT!!!(/url)

    • Quote

      Originally posted by goomeister:
      **( )EVMP is not going to work. Even if you could get a server and do the godawful programming, it would likely be too laggy for anything short of a T1.( )
      **

      never say that, I'm sure in the future there will be something like that, not exactly EV but something similar. The idea of EVMP is too good to be wasted! πŸ˜›

      ------------------
      Captain Orne
      AIM:CaptnG3
      ICQ:31162561
      Yahoo!:BOrnelasPT

    • Quote

      Originally posted by goomeister:
      **So far, the only viable EVMP idea came from roostersw (Who got it from someone else; I'm too lazy to find out who). The idea was a sort of EV Planetarion, and it's probably quite doable if you can get the programming experience.
      **

      Yes, I have always thought that the only viable type of multiplayer game for the EV universe would be a long-duration turn based / play-by-email game in the same vein as the (truly awful) Planetarion. Not that I have any time to create such a beast, however.

      I actually did once write, over a weekend, a simple two-player networked sprite-based EV type game where players could fly around and shoot at each other, just to prove to myself that it wouldn't be any fun... it wasn't. It's really only strategy and simulation games that benefit from networking.

      mcb

      ------------------
      Matt Burch
      (url="http://"mailto:mburch@ambrosiasw.com")mailto:mburch@ambrosiasw.com(/url)mburch@ambrosiasw.com

    • Do you still have that game you wrote? If you do could you post it on the addons page?

      ------------------
      "Do not meddle in the affairs of Wizards, for they are subtle and quick to anger."

    • But what about Quake??? Its networking (especially QuakeWorld) is already pretty well top-notch...

    • EVMP would be possible in real-time, but it would not be a viable enterprise. Why? You'd need a top of the line G4 to power the server, one helluvalot of bandwidth, and players that cannot be disconnected (eg DSL+). I have thought about methods of implementing it, but none would quite work right. And, btw, missions WOULD work.

      Turn based ones have been done before, but have collapsed because people have had to do updates manually, which is time consuming. If someone made a script system to run it, it would be easy to keep up. Now, before you rush off, how will you contol weapons, outfits and battles?

      ------------------
      --sitharus
      (url="http://"http://www.evp.f2s.com/boards/")The Alternative EV/O Boards(/url) (url="http://"mailto:sitharus@ureach.com")mailto:sitharus@ureach.com(/url)sitharus@ureach.com

    • Quote

      Originally posted by blackhole:
      EVMP would be possible in real-time, but it would not be a viable enterprise. Why? You'd need a top of the line G4 to power the server, one helluvalot of bandwidth, and players that cannot be disconnected (eg DSL+). I have thought about methods of implementing it, but none would quite work right. And, btw, missions WOULD work.

      I think you're right about the server, but i don't know about the bandwidth. Let me explain. What needs to be transmitted? Player vector changes (direction & speed) would be fairly small if you only transmitted the keyup/keydown events for right, left, accel. I dont think anybody presses more than 10 keys/sec, so that is 10364 = 1920 bits/sec = 240 bytes/sec(if the number of players in the system is 64).

      Weapons could be transmitted as only what was fired, and the target (if it is a targeted weapon). The keyup/keydown method would work for this too, you dont need the server to track every sprite when a turret is firing, for instance. Lets say that 5 different weapons/sec are fired (That would probably be overkill). Then that is 5*8 (for 256 different weapon types) * 6 (64 players = 6 bits) *64 = 15360 bits/sec = 1920 bytes/sec.

      I think that covers the most bandwidth-intensive tasks, and the total is only 2.2K/sec. Most 56K modems can cover this load.

      For the disconnection problem, it wouldnt really be a problem unless you are in battle: the server could just say you landed on a planet or jumped out or whatever. When you're in battle, I guess you just have to take your chances; just like in Ares.

      -Machiavelli

      ------------------

    • Wait (smacks forehead). I think you meant server bandwidth. Yeah, the server would probably need a T3 or something.

      -Machiavelli

      ------------------

      (This message has been edited by Machiavelli (edited 01-28-2001).)

    • Ah, but you bandwidth formula is flawed! Yes, it would take very little bandwith for player vector changes, but you forget about other ships! Using your results, just 10 players in one system would inflate the number to 22Kbps, ruling out 28K connections. And you have to keep trak of the position of players not in your system. There's another chunk of bandwidth.

      And combat quickly gets complicated. The game must calculate your position, heading, and velocity, the position, heading, and velocity of other ships, the position, heading, and velocity of every single shot fired, and it has to calculate where shots intersect and deal damage accordingly. A dialup connection couldn't handle all that, don't even try to convince me otherwise. My statement that you'd need a T1 or better is likely true.

      ------------------
      Those who are blinded by the light shall stumble in the darkness...
      Visit the (url="http://"http://pub40.ezboard.com/bevoverridediscussionarea")EVO Discussion Area(/url) 'cause I told you to!
      (url="http://"http://www.AmbrosiaSW.com/cgi-bin/ubb/search.cgi?action=intro &default;=")USE ME, DAMNIT!!!(/url)

    • Quote

      Ah, but you bandwidth formula is flawed! Yes, it would take very little bandwith for player vector changes, but you forget about other ships! Using your results, just 10 players in one system would inflate the number to 22Kbps, ruling out 28K connections. And you have to keep track of the position of players not in your system. There's another chunk of bandwidth.

      No, my calculation are correct; I did each one for all players. That is, each player
      would only need a 2K connection. The server would of course need enough to transmit all the data to all the players closer to 128K. But that's under the peak bandwidth assumptions I used. It would probably be closer to 20K under average conditions.

      Why would you need to keep track of players in other systems? When you are playing "normal" EV, does your game keep track of the positions of ships in other systems? No

      Quote

      And combat quickly gets complicated. The game must calculate your position, heading, and velocity, the position, heading, and velocity of other ships, the position, heading, and velocity of every single shot fired, and it has to calculate where shots intersect and deal damage accordingly. A dialup connection couldn't handle all that, don't even try to convince me otherwise. My statement that you'd need a T1 or better is likely true.

      The game has to calculate all that. The information doesn't have to be transmitted through the server; only velocity changes need to be. Using the information I listed in my previous post, the game (on your machine, not on the server) can calculate and draw all the necessary things.

      As an analogy: if you want to calculate the area under a curve exactly, you can do an infinite sum, but it would take you an infinite time. A much faster solution is to use the integral to do the calculations. Now, position is just the double integral of acceleration, and acceleration generally changes much less quickly than position (every time you press an acceleration key, as opposed to 30 times a second; therefore there is a huge saving if you just transmit the accelerations, not the positions. (BTW this is how it is done in EV right now: when you press the "accelerate" key, that information goes to the EV engine, which calculates the position for each frame and then draws it. You don't have to press a key each time you move forward 1 pixel; that would be ridiculous).

      Similarly, for weapons, you dont need to transmit anything except what weapon was fired, and at what target, from which ship. The EV engine can do the rest.

      -Machiavelli

      ------------------

      (This message has been edited by Machiavelli (edited 01-28-2001).)

    • Quote

      Originally posted by Machiavelli:
      **I think you're right about the server, but i don't know about the bandwidth. Let me explain. What needs to be transmitted? Player vector changes (direction & speed) would be fairly small if you only transmitted the keyup/keydown events for right, left, accel.
      **

      That only works on an ideal network with no latency or packet loss issues.

      I suggest you all go read a good book on network game design and/or actually write a multiplayer network game, and only then try to argue what is or is not possible.

      mcb

      ------------------
      Matt Burch
      (url="http://"mailto:mburch@ambrosiasw.com")mailto:mburch@ambrosiasw.com(/url)mburch@ambrosiasw.com

    • Quote

      Originally posted by mburch:
      **I suggest you all go read a good book on network game design and/or actually write a multiplayer network game, and only then try to argue what is or is not possible.
      **

      But can't we just use Quake? Why go to the trouble of making a whole engine from scratch?

    • Quote

      Originally posted by nwegner:
      But can't we just use Quake? Why go to the trouble of making a whole engine from scratch?

      Quake's engine is BSP based, which makes it totally unsuitable for a free-form simulation type game. I'd suggest you put a few books on game design on your reading list as well.

      have a nice day,
      mcb

      ------------------
      Matt Burch
      (url="http://"mailto:mburch@ambrosiasw.com")mailto:mburch@ambrosiasw.com(/url)mburch@ambrosiasw.com

    • Quote

      Originally posted by mburch:
      **That only works on an ideal network with no latency or packet loss issues.

      I suggest you all go read a good book on network game design and/or actually write a multiplayer network game, and only then try to argue what is or is not possible.

      mcb
      **

      Well, theres a good idea. Instead of arguing about whether or not it is possible, why don't we try to do it? That would kind of settle the question, don't you think? Now, I'm sure there are some talented programmers on this board hmm we need plans plans

      I have it! I'll get an infinite number of monkeys to write it! It'll take no time at all!

      Seriously though, I'm there is a lot of interest out there on this subject. We would just need a bunch of people willing to spend some (a lot) of time, and someone experienced at running projects like this anyone?

      Matt? Willing to implement your own suggestion? No, I didn't think so. Oh well.

      -Machiavelli

      ------------------

    • Quote

      Originally posted by mburch:
      **Quake's engine is BSP based, which makes it totally unsuitable for a free-form simulation type game. I'd suggest you put a few books on game design on your reading list as well.

      have a nice day,
      mcb
      **

      BSP = Binary Space Partitioning? Or what?

      I do actually have coding experience, but no real "games" as such. Currently I am doing a graphics course, with the intent of creating a 3D modelling or some such. However I am interested in game programming it seems to me that the problems are much more varied, and therefore more interesting to solve. Matt, could you point me to any good references on game design?

      -Machiavelli

      ------------------