Ambrosia Garden Archive
    • To reduce the amount of data traffic, I'd use a pseudo-random number generator where all computers in the game make use of a single timing pulse and shared seed value.

      This means that if my computer picks a random number ninety-seven frames later (for example), yours would pick the same number. Thus, you don't need to get this information over the net, but simply from your own machine. In an ordered game universe of this kind, and NPC ship represented on 'X' different computers would move in the same way, and fire at the same time in each case. You don't need to communicate the sprite positions to all participants. The only factors which are unpredictable are the actions of the players... so these are the only things that require bandwidth.

      The 'wobble' of a missile affected by ECM would be the same on all clients. The vector of each asteroid would be the same on all clients... and so on.

      I feel that this is a professional programming proposition, though. Ordinary folks like you and I just can't devote enough time to such a project. It would stand a better chance of being finished and released - at a higher quality - by an organisation that is commercially motivated.

      ------------------
      (url="http://"http://www.geocities.com/evodude2001/home.html")Old & Unimproved: Cerberus Station!(/url)

    • Quote

      Originally posted by VoinianAmbassador:
      **To reduce the amount of data traffic, I'd use a pseudo-random number generator where all computers in the game make use of a single timing pulse and shared seed value.

      This means that if my computer picks a random number ninety-seven frames later (for example), yours would pick the same number. Thus, you don't need to get this information over the net, but simply from your own machine. In an ordered game universe of this kind, and NPC ship represented on 'X' different computers would move in the same way, and fire at the same time in each case. You don't need to communicate the sprite positions to all participants. The only factors which are unpredictable are the actions of the players... so these are the only things that require bandwidth.

      The 'wobble' of a missile affected by ECM would be the same on all clients. The vector of each asteroid would be the same on all clients... and so on.
      **

      :eek: That's a frighteningly clever idea (and easy to implement using Java's Random class), and it would work perfectly for asteroids and random wobbles of missiles. It would probably work for NPCs as well, though I'm not so sure about this, as their reaction could just be a part of the game's AI ... A very w00table concept, VA. 🙂

      ------------------
      Visit my EVO web site at (url="http://"http://www.evoverride.com")http://www.evoverride.com(/url)!
      "What is written without effort is in general read without pleasure." -- Samuel Johnson

    • Thanks for all your responses. I agree with many of you on the obstacles that I'll face in proramming this and I also agree that I should start out small. My first objective is to imporve the code that I've already written and package it so that it is not directly integrated into the EV game. After that I'll post the code and after a bit of testing, try to put a demo up on the web for 3-4 hours (my internet connection has a maximum download rate 3.5 GB). Yet maybe by that time I could convince some of my friends to lend over their computers for that period. This seems like a lot of work, and yes it is a lot of work and it's not going to be finished for a while. But who cares, what other programming project can I do before I get into advanced computer classes?

      I've got to go write an essay right now, till next time. Hopefully it'll be better written than this post.

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

    • Quote

      Originally posted by kierke19:
      **
      Thanks for all your responses. I agree with many of you on the obstacles that I'll face in proramming this and I also agree that I should start out small. My first objective is to imporve the code that I've already written and package it so that it is not directly integrated into the EV game.**

      I'd like to offer you use of my G3/350, broadband modem and (modest) C/C++/ObjC programming skills. I've been programming for about 14 years, on the Mac for about 8 years and in C for about 5 years. My Cocoa experiance amounts to one year. All of this is part-time as I've been at school or university the entire time.
      (see (url="http://"http://sourceforge.net/people/viewprofile.php?user_id=132879")http://sourceforge.n...?user_id=132879(/url) for more info)

      I don't know any java, sprockets or networking.

      When you have something working and worth looking at by the rest of us, I'm prepared to have a go at doing a Cocoa port. It would probably be too hard to do a C or C++ port due to the non-object orientated nature of those languages. (And no, for those who are wondering, C++ is not object orientated, but as that (url="http://"http://www.research.att.com/~bs/homepage.html")Bjarne Stroustrup(/url) himself was going to call it, it is simply C With Classes)

      With regards to parallel processsing, you can start by making each system a seperate thread and let the OS divvie it up onto seperate processors as needs be.

      Also, as my input into bandwidth reduction, instead of transmitting x and y positions every frame, simply transmit direction vectors as and when they change. Not only will this decrease bandwidth usage, but if the player lags, the server will keep their old velocity and the user will receive that position when they un-lag (for want of a better word)

      ------------------
      Nicholas Shanks
      Author of (url="http://"http://nickshanks.com/hexedit/")HexEdit(/url) and (url="http://"http://nickshanks.com/resknife/")ResKnife(/url):
      Available at (url="http://"http://nickshanks.com/")nickshanks.com(/url)

    • This is me singing in...

      I have been a fan of EV for like 5 years and have always wanted to play an online version. I think that it would be totally kewl.

      I don't have any programming experience as I have just started learning it in the past month or so. However I would love to contribute to such a marvelous project. While I am not a programmer, what I am is a person who has played 95% of all online games that have been made. I had no life for quite some time. I do understand the concepts behind alot of the theory behind online/multiplayer games and would love to help out.

      Suggestions:

      1. As a way to reduce the evil lag-beast you could make it that when players hyper between systems that they enter a hyper-dimension. It would be like a null-space, as in that nothing would be going on server-side, they would just see hyperspace for like lets say 15 seconds per jump. This would alow the server to handle incoming traffic to a system more easily as it would know ahead of time that a new ship is entering the system. This would also allow for an easy transfer of servers as it could check to see if a server is online as a player hypers into it, and the sending server would have plenty of time to compensate if a server is down, either by making the ship wait an extra 10 seconds for example or by routing it back to the original server. This would also make it so that lets say at any given time 10-30% of the players in the game are in hyperspace, all clientside, thus alowing the server more breathing room.

      2. You could have planets have something similar in that they would have a automated landing/lift off sequence. This would do the same thing as above, kinda.

      3. You may also want to make part of the combat system automated, like you lock on then you fire your weapons. This would slightly diminish the amout of random fire. But this only works for guided/turreted weapons and the like. So you could have it that if a missle targets a ship and that ship is within range that it auto hits unless in the next couple frames the targeted ship does some evasive... like firing flares or hitting the afterburner...

      Well thats all I could think of of the top of my head, as I am in dire need of sleep. I would love to collaberate on this project in anyway possible.
      You can find me on aim at LaVec.

      Well thats my two cents for now, but I will have more when I sleep.

      -SIN-cerly LK

      ------------------
      Its is true that Neverwhere is a troubled land...
      Yet I have no qualms in ruling it with an iron hand...
      Back through your portal I say for this land is mine...
      - Me

    • EVNova is going to be coming out some time(most likely les than a year) from now so who will play online in these old games when they see the better features and gameplay of EVNova?

      ------------------
      He is no fool who gives what he can't keep, to gain what he can't lose.

    • Quote

      Originally posted by Skyfox:
      **EVNova is going to be coming out some time(most likely les than a year) from now so who will play online in these old games when they see the better features and gameplay of EVNova?

      **

      EV Nova will, like EV and Override, be single-player-only. So if the only Escape Velocity Multiplayer game was an EV or Override port, then they would play that - Nova Multiplayer would be nice, but that wont be happening for a long while (if ever) - we may as well start with what we have, in this case EV Override.

      ------------------
      Mazca

    • Quote

      Originally posted by VoinianAmbassador:
      **To reduce the amount of data traffic, I'd use a pseudo-random number generator where all computers in the game make use of a single timing pulse and shared seed value.

      This means that if my computer picks a random number ninety-seven frames later (for example), yours would pick the same number. Thus, you don't need to get this information over the net, but simply from your own machine. In an ordered game universe of this kind, and NPC ship represented on 'X' different computers would move in the same way, and fire at the same time in each case.
      **

      Could you explain this concept a bit more? I don't follow.

      ------------------
      -STH

    • What he means is this: If you have two computers running the same game with the same AI ships/asteroids they will do exactly the same things on each system if (and only if) the random-numbers used to generate their behaviour keep coming up the same on each system.

      A psudo (sp?) random number is kind of random, but it requires a "seed" number. The idea is this: If you give it a certain seed, then it will generate a certain sequence of random numbers. If you give both computers the same seed then the same numbers will be generated on each system, and so the behaviour of the AI/asteriods will be the same.

      So, if you could broadcast the seed to each client when it enters a system, then you wouldn't have to keep updating the positions of everything - you basically would be running the exact same game twice, once on the client and once on the server. The only thing you would need to send between them would be the non-random-generated stuff like the player and what he's doing.

      ------------------
      "Give a man a fire and you keep him warm for a night, but set him on fire and you keep him warm for the rest of his life" - Sergent Colon

      <>

    • Thanks Scaryfish. You saved me a job!

      ------------------
      (url="http://"http://www.geocities.com/evodude2001/home.html")Old & Unimproved: Cerberus Station!(/url)

    • Quote

      Originally posted by scaryfish:
      **
      A psudo (sp?) random number is kind of random, but it requires a "seed" number. The idea is this: If you give it a certain seed, then it will generate a certain sequence of random numbers. If you give both computers the same seed then the same numbers will be generated on each system, and so the behaviour of the AI/asteriods will be the same.
      **

      I grok. Thanks.

      ------------------
      "Christ, what if the terrorists' base of operations turns out to be Detroit? Would we declare war on the state of Michigan? I suppose we'd have to." -U.S. Sen. John McCain, misquoted in (url="http://"http://www.theonion.com")"The Onion"(/url)

    • hey kierke even if no one else likes the idea ill back you up ( although i have no idea how to even use java) i think online ev ,ev;o ,ev;n is a good idea

      ------------------
      ::this is patriot7
      reqesting permision to
      dock, over ::

    • Oro! Conspirators! You've left me out of the fun!

      Since I won't be of much help on topics already being discussed, I'll pose a new question: How will governments/factions be handled?

      Elaboration:

      • Will players be able to start new govts?

      • Will they be able to set up the ranking system and/or "home planet" for a given govt (through whatever interface)? (On a side note, will planet domination be involved in such a process?)

      • Can professional ship developer characters (players, of course, but not neccesarily in the same sense as other players) be paid to create ship designs for a govt, and then add that design to the game? (This would be extra-cool, and could be pulled off with mandatory software updates.)

      Thanks in advance.

      ------------------
      "My name is Ozy. Not 'NTi'....... OZY."

    • Despite the fact that the features NTiOzy describes are clearly desirable, I would advise against their inclusion in any project 'To do' list. There are more than enough problems for a developer, just to achieve arena-type combat between two identical ships... Never mind a game with NPC's, multiple systems, weapon and ship choices and more than two players. As I have said before, I don't think this project is achievable. It's much more complex than writing any plugin, and few enough of the plugs we are told are 'under development' ever appear.

      If the developer adds 'campaign' features, the chance of the project failing goes up to something like 99%, I fear.

      A 'PBEM' game in which factions vie for control of star systems is entirely possible... several already exist. A real-time multiplayer combat game is somewhat feasible, and some already exist (such as 'Burning Metal' at (url="http://"http://www.eyeone.no")www.eyeone.no(/url) . Put the two together and you have a mammoth project that really can't be undertaken unless you're prepared to pay a team of developers enough to make it their primary job.

      (Hmm, NTiOzy sounds like the chemical formula for a secret Voinian biological weapon.)

      ------------------
      (url="http://"http://www.geocities.com/evodude2001/home.html")Old & Unimproved: Cerberus Station!(/url)

    • It should be noted that to port something, you take the original code and modify it to work on some other platform. Trying to "port" something from one platform to another without access to the original code isn't porting at all - it's copying. In other words, forget it.
      mcb

      ------------------
      "If it's not on fire, it's a software problem."

      (This message has been edited by mburch (edited 10-01-2001).)

    • Quote

      Originally posted by patriot7:
      **hey kierke even if no one else likes the idea ill back you up ( although i have no idea how to even use java) i think online ev ,ev;o ,ev;n is a good idea

      **

      While on the surface, many would agree, there are a lot of issues with this:

      • Timed missions - where does the time come from? A jump in EV/O takes a certain amount of days. Players wouldn't want to wait those days out, would they?

      • Lag - with so many people using an online game at the same time (and in the same universe, I might add), it would cause horrific problems with lagging. Think about firefights - they would be jerky, and rather difficult to do.

      • Fairness - it wouldn't really be fair for new players. The good, old players would come out and kick butt. Also, if someone could cheat, it would be horrible.

      ------------------
      We make no destinction between terrorists and those who harbor them. - President George W. Bush, 9/11/01
      (url="http://"http://www.escapevelocity.f2s.com")EV Upcoming Plug-Ins Directory(/url) | (url="http://"http://www.nohate.f2s.com")Don't Hate Me(/url) | (url="http://"http://yoshi.zzux.com/spaceport/")The Spaceport Bar(/url)

      (This message has been edited by Starkiller (edited 10-01-2001).)

    • Quote

      Originally posted by mburch:
      **In other words, forget it.
      mcb

      **

      God spoke...

      Damn! 🙂

      (This message has been edited by Opalius (edited 10-01-2001).)

    • Quote

      Originally posted by Opalius:
      **God spoke...
      **

      ...though, verily, He could have been more clear.

      Is it no porting - no source code for would-be EVMP makers, so stop asking for it?

      Or is it no "porting" - don't even try to copy His game, lest ye feel divine wrath?

      ------------------
      world keeps turning

    • Quote

      Originally posted by mburch:
      **It should be noted that to port something, you take the original code and modify it to work on some other platform. Trying to "port" something from one platform to another without access to the original code isn't porting at all - it's copying. In other words, forget it.
      mcb
      **

      Kierke, I strongly urge you to stop development as soon as you can ... I would be interested in taking a gander at the source, though, but it goes without saying that you won't be able to release it. 'Tis a pity, but Matt indeed does have a point, and now that I think about it, I would feel the same way in his position.

      ------------------
      Visit my EVO web site at (url="http://"http://www.evoverride.com")http://www.evoverride.com(/url)!
      "What is written without effort is in general read without pleasure." -- Samuel Johnson

    • We have to ask, what is it about Override that makes it Override?

      Wherein does Ambrosia's intellectual property reside?

      If the developer of a space combat game which would appeal to EV:O players is not making use of any Ambrosia code (which would be of very limited use in making a Java version anyway), only a few things remain:

      The graphics. These aren't yours to make use of elsewhere (though some of the people who produce graphics for plugins might donate equivalent material.)

      The names. Things like 'United Earth' might be considered to be the intellectual property of Ambrosia, unless you can find earlier references to it. Names such as 'Igadzra' and 'Igazra' should be avoided, because they are likely to be part of Ambrosia's copyright, also characters such as 'Disco Bison'.

      Watch out for look and feel. Put the sidebar elsewhere, or make it a floating panel, or do away with it... change the options available when you hail a planet, buy upgrades, etc.

      It is most unlikely that this would ever come to a court of law, because one of the first rules of business is: Never sue anybody who doesn't have any money.

      Beyond the unique aspects I have identified, I believe that you're pretty much free and clear to do what you like. Ambrosia don't have a fair claim to top-view space combat. The first electronic computer game, 'Computer Space' for the PDP-1 in 1961 featured a top view space battle. If you're too young to remember that (I certainly am, though I've played it) what about the arcade game 'Asteroids' from the seventies? Space-based trading and missions date back to Bell and Braben's 'Elite' for the BBC micro in about 1984... EV:O demonstrates that these concepts can be copied quite safety, without getting a court summons.

      ------------------
      (url="http://"http://www.geocities.com/evodude2001/home.html")Old & Unimproved: Cerberus Station!(/url)