Ambrosia Garden Archive
    • Multiplayer Logistics


      For those who don't know, I am taking up the ill-fated net-ev project. I have currently made a very early developmental 2-player helian shoot 'em up called Helian Wars. This is now being converted into Renegade Wars, which will include 4-players networked, an outfit and ship shop and chat.

      After that, well actually during that, I will developed a fully client-server based game. Where a lot of people can logon to the server and play EV but interacting with each other.

      More info can be obtained at (url="http://"http://uq.net.au/~zzlukirk/")http://uq.net.au/~zzlukirk/(/url)

      I've noticed before that alot of people have posted topics on mutiplaying. I haven't really read them as some have hundreds of posts. So obviously a few people have really thought out this concept and I wish to pick your brains on a few topics.

      First: Money.
      There's this really nifty program called 'Cheat'. It's really handy when your playing a game and your running low on lives or money. You just launch it while the game is going and search for the memory space where that info is stored and then change it.

      This would be a real problem. My solution would be to have buying done all on server. So when you go to the shipyard and buy a ship, a request is sent to the server asking if this user has enough money to buy this ship. If they do then it will buy it, if not, it won't.
      This sounds all good and happy, but there is something bugging me about it. Not so much the principle but the programming of it. I just can't put my finger on it. Any net programmers out there that have an idea as to what that might be?

      Second: Missions.
      Standard 'Deliver 5 tonnes of stuff to somewhere' missions shouldn't be a problem. Unless the server takes care of all money. I'm assuming too much info will be sent and it will slow everything down. This could be solved with:

      Third: Governments.
      I get a few groups of people to set up governments. This would entail them either running a server program of their own or just inhabiting a part of a set map. They would have to their own defence convoy or get people to defend their systems. The second probably won't work as everyone will want to leave and do their own thing while their system is not defended. If they were to build their own defence fleet, they would need resources. Their planets obviously would have resources of it's own but extra one's would need to be shipped in. That's where the missions come in. The governments post missions to the mission boards of planets that have the resources to sell and people do them. Another idea would be to have courier services. So instead of the governments posting missions to other planets the courier services get the people employed by them to do the missions.

      That's about all I can think of.

      Thanks in advance,
      Tycho

      ------------------
      Where the Hell's my roof?

    • You say you have made a two player EV style shoot em up? I'm impressed.

      ------------------
      Dan! The food's gone!

    • I'm sure you know by now that kberg has been working on a "Net EV"-type game for several months. Maybe he'll give you some advice? (If it's not related to his game, of course!)

      ------------------
      From Left Hand Phoenix of the AWL
      (url="http://"http://www.awl.cjb.net/")http://www.awl.cjb.net/(/url)
      Halo, Homeworld, Diablo II, Terminus.

    • I'll start a goverment! As son as I sort out my iSP I can be online pretty much all day everyday. If I can only choose from an existing governemtn I bag azdgari ( 😄 see I even spell it right). You could have someone as the council, controlling the Strand governemtn officials....

      ------------------
      Oh, I'm sorry. Did that break your concentration?
      I didn't mean to do that.
      Please, continue.
      I believe you were saying something about "best intentions."
      -Jules. Pulp Fiction

      (url="http://"http://www.secretchimpboard.cjb.net/")Secret Chimps Funk-O-Rific Forum(/url) Visit it now! It's much better than UBB!
      (url="http://"http://www.AmbrosiaSW.com/cgi-bin/ubb/newsdisplay.cgi?action=topics&number;=20&forum;=*EV/EVO+chronicles&DaysPrune;=25&article;=000024&startpoint;=")The Tides of War(/url)

      Oxymoron: Microsoft Works

    • I'll start a goverment! As son as I sort out my iSP I can be online pretty much all day everyday. If I can only choose from an existing governemtn I bag azdgari ( 😄 see I even spell it right). You could have someone as the council, controlling the Strand governemtn officials....

      ------------------
      Oh, I'm sorry. Did that break your concentration?
      I didn't mean to do that.
      Please, continue.
      I believe you were saying something about "best intentions."
      -Jules. Pulp Fiction

      (url="http://"http://www.secretchimpboard.cjb.net/")Secret Chimps Funk-O-Rific Forum(/url) Visit it now! It's much better than UBB!
      (url="http://"http://www.AmbrosiaSW.com/cgi-bin/ubb/newsdisplay.cgi?action=topics&number;=20&forum;=*EV/EVO+chronicles&DaysPrune;=25&article;=000024&startpoint;=")The Tides of War(/url)

      Oxymoron: Microsoft Works

    • Done. the Necromicon is the Az.

      ------------------
      Where the Hell's my roof?

    • If you're going to take on the whole net-ev thing, its gonna be hard, and a lot
      of work, but I'll post my ideas of how things should be done. If I was you, I'd
      make your four person shooter and then when you are done with that, use elements
      from that to work on the bigger project.

      Another thing you may want to consider, is the possiblity of using 3d ships, but
      still having them fly on a 2d plane, this can give you much cooler effects with
      lighting and weapons. But it would increase system requirements a bunch.
      Requiring 3d acceleration of some kind.

      Now here I go:

      For this to work, you will need a dedicated server, and server software. The
      server should be able to handle about 100 players, depending on the server, i
      wouldn't know that though. Servers also have like about 100 systems or so each,
      but many of these systems aren't always in use, because no players are in them.
      You can connect servers to add more systems and the ability for more players,
      servers shouldn't control a defined map of systems in a multi-server
      configuration, they should be able to pass systems and their players to other
      servers, but keep the systems each server controls clustered, but if half the
      players decided to go into the northern part of the map, then that server could
      pass half its systems the other servers, easing the load on the northern server,
      this should be done on the fly.

      The adminstrators of these servers would be responsible for evolving the
      universe: Because as time goes on, new technologies are found and such. Any way
      the administrators would ever few days add a few new, more powerful weapons,
      modifiy a few (like make them cheaper, and use less space), and retire old
      weapons. Same goes for ships and outfits. you might be able to find a way to
      automate this. Administrators could create a list of names, and sometimes
      retired names would come back up, but would do more damage. So when a player has
      a weapon/outfit/ship that is being upgraded, they can pay a fee and have their
      item updated as well, or they can sell it for the new cost. If an item/ship is
      retired, then the player is given money = to the value of its last sale price.
      For ships specifically, there will be a notice sent out to all players if their
      ship is going to be retired, and they will have a week or so to get a new ship,
      if they don't, then their ship is sold, and they end up on the closest planet
      with a shipyard.

      If the Administrators wanted they could create an entirely new universe as well,
      with a different plot line. Which gets us into missions and the structure of
      governments and companies. What I'd like to see, is a governments be controlled
      by the people playing the game. You could let only people who have conquered a
      planet start a government. they could merge with other governments to make one
      and all the territory is combined, in most cases, this will be like a few systems
      combined. Or govs could just be ally's. There would be two levels to the
      governments, the workers, who are trying to make money, and the rulers, who are
      people who've conquered planets, or have been voted in by all the members of the
      gov. ie, one ruler nominates another player to join, and then all the rulers in
      the gov take a vote, if more than 50% agree, then the player is now a ruler in
      that gov. Anyway, planets have a tech level, which increases as the game goes
      on, more research and stuff. Rulers can establish trade with other planets in
      their kingdom, and thats one of their revenue sources. Also when players buy
      things in a planets outfit shop/shipyard, they get the profit. Trade also has
      the positive effect of increasing tech levels. As ideas spread. Trading with
      your allied govs has a greater effect on tech level, even if they are a lower
      tech level, both govs get bonus from it. Also taxes would be generated from the
      population, make it a fixed rate so you don't have to worry about taxing them too
      much. So if you have 10 million people, you get 100 million dollars or
      something. I'm not sure how the bigger govs would make decisions yet on how to
      spend money and who to establish trade routes with. Voting here as well?
      Anyway, the gov's could spend the taxes gained from the above mentioned ways and
      use them to increase the tech levels of their shipyards, and outfit shops, they
      could spend it on defense fleets, and they can spend it on trading fleets, and
      escorts for your fleets. These just are AI ships that appear in your systems,
      and the systems around you. Your gov shouldn't be able to control systems like
      more than 5 systems away from your nearest system, so you can't have a planet on
      the other side of the galaxy while you have four planets on one side. You'd
      designate one system as your capital, and it would get bonus's for being the
      capital. Losing the system would result in a loss of production for all planets
      until a new capital is built. The other things you could build, would be a
      shipyard, trade center (you can still trade without this, but you don't get the
      bonus the trade center offers), outfit shop, and bar, (you can get money if
      people gamble, or buy a drink, probably not much though) and finally a
      hypercommunications system which allows people to send messages to other players
      across the galaxy, like ICQ, this is real cheap though, and has charges players
      like 5 credits per message they send (which also cuts down on spam messages if
      anyone's so lame), these messages are available at other communications systems,
      the more expensive message like 100 credits would show up for the player while
      they are out flying. And players can ignore other players in this, and the bar
      is like an irc chat room, but it doesn't need all the features, rulers are the
      ops. Rulers don't receive tribute from planets they've conqured, rather the
      planets are happy with who ever rules them, as long as the next closest planet
      isn't more than 5 systems away, in which case it rebels and becomes independent.
      Anyway, so the rules may get to control millions of credits in taxes, but that
      must be spent on the planets in the gov. Rules rather get a salary, based on the
      number of rulers, and the tech levels of their planets.

      Govs can also set aside a portion of their revenues to go to player escorts, and
      player cargo delivery. While this is more expensive, as you are hiring out
      instead of using the govs ships, it is sometimes more reliable if you have
      enemies that like to steal your trading. This is where govs create missions, but
      they are generated by the server.

      Players can also create some missions if they are not in a gov. They can set
      themselves up as escorts, and set a fee, they can fly around waiting for someone
      to select them, their ship registers on the system their in and the adjacent
      systems as available for escorting. Players can also do this via direct ship to
      ship chat. Escorts can either accept or reject the contract, if they accept,
      they are put on autopilot and jumped to the system the player is in. They can
      then move around freely in the system, if the person they are escorting jumps
      out, they automatically jump out with them. Now for how the pay scale works, the
      escort gets 10% of the agreed amount per minute. This keeps them around if there
      is a battle. If the player aborts the contract then the escort gets the other
      90% per minute as per the contract, if the escort aborts the contract, they only
      get the 10%. Players can also set up bounties on other players, if they don't
      like them, and other players can accept the mission, multiple people at once, if
      someone else who has not accepted the mission kills the player, then the money
      goes back to the person who made the bounty. If someone who has accepted the
      mission kills them, then they get the money. Which leads us to dying:

      When A player dies I don't think they should be able to start out in their same
      ship again, rather all ships have escape pods, and the player has to buy a new
      ship, so a lot of money helps if you die, money is kept in the bank, added each
      time you land.

      Theres also story line missions, that administrators could create, and keep
      adding new threads to. Many players could follow these missions, some could let
      everyone achieve them, and some could be open for multiple people to accept them,
      but only one person can beat the final mission. If the administrators were good,
      they would make it challenging so you'd have to use your intelligence as well as
      your skill to be the first to complete these missions.

      That's all I can think of now, I'll probably think of more later, anyway hope
      that helps someone.

      Chamrin

    • You've taken som ideas from Terminus, which I think was smart! 😉

      Keep your ideas coming. I'll post some of mine later, after dinner!

      ------------------
      From Left Hand Phoenix of the AWL
      (url="http://"http://www.awl.cjb.net/")http://www.awl.cjb.net/(/url)
      (url="http://"http://www.saturn.spaceports.com/~awl/halo/index.html")Halo(/url), (url="http://"http://www.saturn.spaceports.com/~awl/home.html/")Homeworld(/url), (url="http://"http://www.saturn.spaceports.com/~awl/d2/index.html")Diablo II(/url), (url="http://"http://www.saturn.spaceports.com/~awl/terminus/termhome.html")Terminus(/url).

    • Quote

      Originally posted by Phoenix155:
      You've taken som ideas from Terminus, which I think was smart! 😉

      Keep your ideas coming. I'll post some of mine later, after dinner!

      Actually I've had these ideas for a long time, I wrote something up like this before, but my computer died, that was like over a year ago. So I finally put down what was in my head. The ideas have been revised through many discussions in #ev, yes we do talk about ev in #ev, a few times. And I haven't played Terminus, yet... 🙂

      Chamrin

      (This message has been edited by Chamrin (edited 07-12-2000).)

    • tycho: i think we should change to c++ 😉

      sebek

    • Quote

      Originally posted by Tycho:
      **Done. the Necromicon is the Az.

      **

      Woohooo! My Ship will be called the A.S.S Bong!

      ------------------
      Oh, I'm sorry. Did that break your concentration?
      I didn't mean to do that.
      Please, continue.
      I believe you were saying something about "best intentions."
      -Jules. Pulp Fiction

      (url="http://"http://www.secretchimpboard.cjb.net/")Secret Chimps Funk-O-Rific Forum(/url) Visit it now! It's much better than UBB!
      (url="http://"http://www.AmbrosiaSW.com/cgi-bin/ubb/newsdisplay.cgi?action=topics&number;=20&forum;=*EV/EVO+chronicles&DaysPrune;=25&article;=000024&startpoint;=")The Tides of War(/url)

      Oxymoron: Microsoft Works

    • I think the government thing will be too difficult at the moment. I'll just have the server send default missions and sometimes have 'quests'.

      Sebek: I can't program in c++. While I would like to, I don't have the resources or time.

      Tycho

      ------------------
      Where the Hell's my roof?

    • Just browsing through various multiplayer ev threads, it seems like most of the ideas that I thought would be cool are covered. But I think I might have an idea to address the bandwidth issue that many critics of evmp are always eager to point out. They talk about the large amount of bandwidth it would require to send coordinates, vectors, etc. for dozens ships. I think I might have a way to cut down on the huge information load...

      Insead of sending all the specifics about where all the ships are at every moment and where they're heading... just send the keys each user is pressing and let the client computers figure out position and vectors. If Bob presses Keypad 4 to turn left, then his computer will transmit to the server what key he has pressed and the server will relay that information to each of the computers on the network and let them individually sort out what that means as far as vector, position, thrust, etc. changes. This shouldn't require much more bandwidth than IRC I think. I might be wrong... but it was just a thought 🙂

      --------------
      In the beginning the universe was created. This has made a lot of people very angry and been widely regarded as a bad move.
      - The Restant at the End of the Universe

    • Well, writing that last post got me thinking about problems that might arise from this method... and I thought of one major one.... lag. Each user will have a different level of lag which could lead to major differences in the positions of ships on each computer at any given time. One solution to this could be to set up a base lag time... On connection to the server, the server and client would set up a mutual timing system and a base lag time. The base lag time would be a reasonable level of lag that doesn't affect smoothness of play, say 300 ms (just a random number I chose). Let's say the point of connection is 0 ms, and both start counting the ms from then on. Bob presses the Thrust key at 1100 ms and it reaches the server 100 ms later... making the universal time 1200 ms. The server will send a message back to Bob saying he pressed the Thrust key at 1200 ms. and this reaches Bob's computer at 1300 ms. Since the base lag time is 300 ms, Bob's computer wouldn't compute this input until 1500 ms. The same would go for every other computer on the network. They would all compute any input from the server 300 ms after it was sent. That way every computer would be equally lagged and things should stay synchronized.

      Now what happens if Bob becomes lagged beyond 300 ms? I guess there are lots of ways that problem could be tackled. I thought that maybe an upgrade to the ship could be purchased which allows the server AI to take over Bob's ship and attempt to land him at the closest friendly planet. If Bob hasn't purchased this upgrade his ship just drifts (because maybe his ship's computer crashed?).... and is a sitting duck.

      I think this could work... for both Tycho and Kberg's evmp projects. If I need to be more clear about something, let me know and I'll try to untie the mess in my head better 🙂

    • In earlier talks I did mention that I was going to use marathon-esque networking techniques. ie. just sending keyboard inputs instead of facing vectors and acceleration stuff. But thanks for the detailed explanations.

      The lag shouldn't really cause terribly many problems. It will just be like a game of quake arena of a slow connection. And everyone knows the slowest connection gets his arse kicked. That's just the rules of the game. Equalizing pings as mentioned by you would be to much trouble on my behalf and might even lag the game more. I don't know.

      Are there any ideas of ingame chatting. Like selecting a ship in the same system and hitting 'y'? Offering missions to them for a fee?

      Tycho

      ------------------
      Where the Hell's my roof?

    • one more thing, remember to join #evh on efnet

      ------------------
      Where the Hell's my roof?

    • I think the in game chatting screen should be out of the way or transparent so you can see if a missile is on it's way to hit you. Maybe the player could decide if they wanted to drop out of the chat right after getting atteacked, or not to if the attack is below a certain strength. If you are giving players missions for money there should be two parts. One where the player rights in the description, and one where the player inputs the "bare bones" of the mission into the computer.

      I would join #EVH, but with my current setup it's easier to keep posting on these boards. Ever considered using your client(when it's ready) to host discussions?

      -Yorick

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

    • Have you given any thought to "carbonizing" it? It's a serious possibility, at this stage of development! If you want, I can send you some documentation and SDK's to help. Just email me at my address above!

      ------------------
      From Left Hand Phoenix of the AWL
      (url="http://"http://www.awl.cjb.net/")http://www.awl.cjb.net/(/url)
      (url="http://"http://www.saturn.spaceports.com/~awl/halo/index.html")Halo(/url), (url="http://"http://www.saturn.spaceports.com/~awl/home.html")Homeworld(/url), (url="http://"http://www.saturn.spaceports.com/~awl/d2/index.html")Diablo II(/url), (url="http://"http://www.saturn.spaceports.com/~awl/terminus/termhome.html")Terminus(/url).

    • Don't let this discourage you, but you guys are in for some really nasty suprises... A few things our networking guy alerted me to..

      If you're going to use TCP, expect latencies in the 5-10 second range for good connections. 50 seconds being extreme on a bad line. Such is the nature of TCP and hence why it is NOT used in real-time games. If a packet is lost, TCP will hold all consecutive packets until that lost packet can be resent. If a packet is dropped to many times, TCP will stop trying to resend that packet and will start probing waiting until the line clears up some (to avoid making the congestion worse).

      If you're going to use UDP, you'll have to roll your own packet loss algorithms. Expect to lose about 1 out of every 5 packets you send...

      You're most likely going to have to rethink your networking strategy. Pressing a key only to shoot 5 seconds later is going to be pretty harsh on gameplay. 😛 The general solution is to use UDP and write your own packet resending algorithms, TCP is just too evil.

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

    • First thing. Because it's made in Realbasic, the environment automatically makes the program carbonized. I think it's up to 92% or something.

      Second. Hey kberg. Thanks for the input. I'll have a look into udp but I don't think realbasic will let me. Oh well, looks like I'll start on those learn c in 5 days books.

      I'll do some public test soon of the client without the spritesurface and see what problems arise.

      I'll get a test version ready in a few days.

      Tycho

      ------------------
      Where the Hell's my roof?