Ambrosia Garden Archive
    • Concept: "Shared Universe"


      In emailing someone last night, I vocalized the following for the first time and decided I should see what the community thinks:

      The quick and dirty: a means of making a "shared" EV universe in which up to 256 real world players are represented as Pers resources in an updating, temporally offset way.

      Background: back in late 2001 I wrote a little utility for Override pilots named PersMaker (see (url="http://"http://www.AmbrosiaSW.com/webboard/Forum9/HTML/002041.html")http://www.AmbrosiaS...TML/002041.html(/url) ). The gist of it was that it would take one or more pilots, read info from the pilot files and generate Pers resources that would put similar ships into a plugin. The coup was that, if a pilot had dominated a spob, a novel govt would be generated for that pilot.

      As I posted news about the utility to the board, I started thinking about the asynchronous nature of this BBS: two people can be "on" the board at the same time, having a conversation, but that interaction was temporally offset due to the nature of the board.

      It hit me that, with very little trouble, PersMaker could be modified to access an online server where pilot information was stored. It could then use that information to make a plugin. Thus, the idea of a asynchronous shared universe was born.

      Basic details:
      *There would be an application (call it PM) that the user would launch. It would decrypt the user's pilot file and access information on the pilots available $, weapons, last spob, dominated spobs, rating, and what mission bits were set. This info would then be uploaded in an encrypted form to a server. The server would take this data and also return similar data for up to 256 other pilots that had been uploaded. PM would take that data and make a plugin named "PM plugin" which would make all those pilots appear as Pers in the game.
      *In addition, the basic game data would be modified. Because different people would be doing different 1-off missions, not all of them would be available. For example, if pilot #4 had destroyed the Dreadnaught in EVO, no other pilot would be able to access that mission.

      Detailed details:
      *As a test-bed, I see the original EV universe as being the best. Because it was the first, it has the fewest number of missions that would need to be modified.
      *Mission bits would be divided into two groupings: bits 1-5000 would be the standard bits we think of, indicating if a player had completed (or failed) a mission. Bits 5001-10000 would be reserved for data from other pilots. In this way, PM would be able to note whether a mission was completed by the local player, or by a player saved on the server.
      *One-off missions and mission threads would have to be structured in such a way the the test bits would have to look at the 1-5000 and the 5001-10000 bit sections to see if a player was elgible for a certain mission.
      *The PM application would not only read from a pilot, but would write to the pilot file, setting the reserved bits as necessary.
      *PM would also act as a simple cheat tester. It would scan the plugin folder of the local player looking of any "non-sanctioned" plugins. This would help level the playing field.
      *PM would also constantly watch the pilot file. Anytime a save occured, PM would update the server with the new data. It would not, however, make a new plugin (for reasons discussed in Problems)

      Problems:
      *The EVNgine reads the pilot only at the start of the game, but writes to it each time one lands. This, coupled with the fact that the engine only loads plugins at startup means that, if the user plays for long periods of time, their actions will deviate more and more from the rest of the server. Imagine posting 10,000 words to a thread on a BBS. Everyone else will be posting only 50 or so words, so your comments are very behind the present converstion by the time they appear.
      *Cheating. It would be relatively easy for a player to cheat with their pilot. Even easier to do so using plugins.
      *Possibly very frustrating. While it would be realistic to have missions only offered once (Go and kill the alien cruiser), others would feel left out if the missed such a mission. I have never played in the online role playing games, but as I understand it, they have continually resetting quests. This may be something to implement, though it kind of diminshes the feeling of actually sharing the universe with other players (even though you can't interact with them directly).
      *Crafting missions for such a modified setup would be quite challenging.

      Which is why I post this now. I can make the PM application relatively easily. I could probably come up with a simple 3-4 system proof of concept example as well. It would be so much nicer to modify the missions of EVC as the proof of concept, though. So, you mission experts, would something like this be feasable, or even desirable?

      <seant cringes and hits the Submit topic, bringing his pet project to the light of day>

      ------------------
      Mac<-->PC pilot file Conversions: (url="http://"http://phair.csh.rit.edu/~seant/EV/PilotConvert/")http://phair.csh.rit...V/PilotConvert/(/url)
      "Create enigmas, not explanations." -Robert Smithson

    • Seant is almost unreal, in the way he is (almost) the only man alive knowing the secrets of the pilot file data structure.

      Very funny idea, though, but I think it needs tweaking and scaling down to be realistic in both terms of implementation and popularity.

      ------------------
      (url="http://"http://ulrik.no-ip.org")ulrik.no-ip.org(/url)
      I hope that a future EV Nova will hold the gövt-switch set expression, working like Wxxxyyy: hereby treat and let behave what belongs to gövt xxx as if it belonged to gövt yyy. This is the small tool we lack to build a believable scenario without unrelaistic amounts of resources and work.

    • Considering that, as far as I can tell, përs files are only read at pilot creation, it could be tricky.

      ------------------
      Starfleet Adventures: A Star Trek TC for EVN (url="http://"http://www.ev-nova.net/forums/viewtopic.php?t=145") Discussion Board (/url)
      Starfleet Adventures (url="http://"http://www.ev-nova.net/forums/viewtopic.php?t=71")Progress Log(/url)
      denki's Starfleet Adventures (url="http://"http://www.geocities.com/starfleet_adventures/")FAQ page(/url)
      It is better to feed the goat than it is today.

    • Indeed, you would need to re-write a pilot file when PM is launched. This could solve some of your cheating issues - having the player's file stored on the server, beyond the reach of plugins.

      A few things to note, mission bits are from 0 - 9999, not 1 - 10000. Also, storing files on a server will lessen the deviation error, if you have PM constantly running in the background, it can constantly update and reload the current pilot file. A timer could also force the player to restart Nova every hour or so (I am not sure if it is possible in X, but it should be in Windows...). This would be annoying, but would allow it to update the environment.

      This is an excellent idea, seant.

      ------------------
      Eat blazing electric death!

    • Quote

      Originally posted by UncleTwitchy:
      **Considering that, as far as I can tell, përs files are only read at pilot creation, it could be tricky.
      **

      That is a trivial problem. It's not the pers files that are read at pilot creation: it's that the pilot file, when made, sets unused pers bits to 0. that's why, if you add another pers and us a perviously made pilot, that pers never shows up.

      If, however, you edit the pilot file and set that pers bit to 1, it appears as it should.

      This hypothetical application would be writing to the local pilot file anyway, so activating a pers would be easy.

      -STH

      ------------------
      Mac<-->PC pilot file Conversions: (url="http://"http://phair.csh.rit.edu/~seant/EV/PilotConvert/")http://phair.csh.rit...V/PilotConvert/(/url)
      "Create enigmas, not explanations." -Robert Smithson

    • You da' man, Seant. Go for it- I think you're about the only person who could do it anyway.

      ------------------
      ~Charlie
      Sephil Saga Homepage: (url="http://"http://www.cwssoftware.com")www.cwssoftware.com(/url)

    • Nice. Definitely go for it. If nothing else, it would be a neat experiment.

      ------------------
      Moderator- (url="http://"http://www.AmbrosiaSW.com/cgi-bin/ubb/forumdisplay.cgi?action=topics&number;=9&SUBMIT;=Go&mrxak;=cool")EV Developer's Corner(/url) | (url="http://"http://www.ambrosiasw.com/cgi-bin/ubb/forumdisplay.cgi?action=topics&number;=69SUBMIT=Go&mrxak;=cool")Uplink Web Board(/url) | (url="http://"http://forums.evula.com/viewforum.php?f=18")mrxak's Assorted Webspace Forum(/url) | (url="http://"http://forums.evula.com/viewforum.php?f=48")Starcraft Forum(/url) | | (url="http://"http://directory.perfectparadox.com/profile.php?id=00008")My Profile(/url) | (url="http://"http://www.AmbrosiaSW.com/cgi-bin/ubb/postdisplay.cgi?forum=Forum10&topic;=007599-2&whichpost;=mrxak11-06-200203:22PM")mrxak(/url)
      (url="http://"http://www.evula.org/mrxak/")mrxak's Assorted Webspace(/url) | (url="http://"http://www.evula.org/mrxak/Haikus/haikuarchive.html")The Haiku Archive(/url) | (url="http://"http://www.evula.org/mrxak/EV/N/mbspt/mbspt.html")mrxak's Big Secret Plug-in/Tutorial(/url) | (url="http://"http://www.evula.org/mrxak/EV/N/amtc/amtc.html")A mrxak TC(/url) | (url="http://"http://www.ambrosiasw.com/cgi-bin/vftp/dl-redirect.pl/TheChallenge102.sea.bin?path=evn/plugins&file;=TheChallenge102.sea.bin")The Challenge v1.0.2(/url)
      (url="http://"http://www.AmbrosiaSW.com/cgi-bin/ubb/search.cgi?action=intro")Search First(/url) | (url="http://"http://www.macgamer.net/games/uplink/")Uplink Guide(/url) | (url="http://"http://www.evula.com/survival_guide/")EV/O/N Guide(/url) | (url="http://"http://www.ambrosiasw.com/cgi-bin/ubb/forumdisplay.cgi?action=topics&number;=31&SUBMIT;=Go")Plug-in Guide(/url) | (url="http://"http://www.AmbrosiaSW.com/webboard/Forum9/HTML/003091.html")Plug-in Testers(/url) | (url="http://"http://www.AmbrosiaSW.com/webboard/Forum9/HTML/003196.html")Developers(/url) | (url="http://"http://www.AmbrosiaSW.com/games/evn/addons.html")Nova Addons(/url) | (url="http://"http://www.resexcellence.com/support_files/resedit.shtml")ResEdit(/url) | (url="http://"http://w00tware.ev-nova.net/")NovaTools(/url)
      "When you burn your bridges, just make sure they aren't in front of you." -mrxak

    • Great idea, if it can be done. I'd definitely love to play such a thing.

      Some suggestions
      *I think it would be cool if you could make certain players your enemy, so they wouldn't be able to land on your dominated spöbs
      *Planets could give you less tribute for the more players you keep out of them, due to less trade
      *Planets should revolt and revert to their default govt every X days (30 perhaps?), that way no one could conquer the entire galaxy and keep all the other players out (at least for long)
      *Shared tech might be cool. Like if someone did the 'complete Paaren Station' missions, than everyone who's entered the UE could buy Voinian tech from Paaren Station
      *On that note, you'd have to modify missions that let you "join" a gövt so they'd make sense when done by more than one player (it would totally suck to not be able to join your favorite government(s), so please do something like that)
      *Quarterly/annual/whatever resets? (i.e. forcing everyone to start over) Playing with all the big missions done could get boring after awhile.

      And some questions
      *What if two players finish a mission simultaneously? Or worse, they finish opposing missions simultaneously (for example, the Voinian and UE missions in EVO)?
      *How would it handle stuff from plug-ins I don't have? (for instance, player x has weapon y from plug-in z, but I don't have plug-in z, so what would weapon x be on përs y?) Or would you be requiring all "sanctioned" plug-ins? If that's the case, then how do we get a plug-in sanctioned? And what if some players want it to be, but others don't?
      *What about graphical plug-ins? Would I be able to use a plug-in like Cold Fusion?
      *What if you want to start a new pilot?

      Also, if PM is watching the pilot file constantly than - in theory - wouldn't it be possible to read which planet you're at, launch an IRC client, connect to irc.ambrosia.net (or whatever) and join a channel specified for the planet? (#planetlevo, for example?)

      Might not be possible, but I thought I'd throw it up there any ways.

      I look forward to playing in this asynchronous universe. Good luck.

      ------------------
      “So they've finally toppled the mad, deadly, world-wide, gangster, communist, frankenstein computer god.”
      (url="http://"http://www.ev-nova.net")Everything you’ll ever need to know about Nova(/url) | (url="http://"http://www.evula.com")EVula’s Lair(/url) | (url="http://"http://www.evula.org")evula.org(/url) | (url="http://"http://www.evula.net")evula.net(/url)
      (url="http://"http://www.ariossoftware.com/")Arios SoftWare(/url) | (url="http://"http://www.ariossoftware.com/products/evone/")EVONE(/url) | (url="http://"http://w00tware.ev-nova.net")w00tWare/Nova Tools(/url) | (url="http://"http://www.AmbrosiaSW.com/cgi-bin/ubb/forumdisplay.cgi?action=topics&number;=9&SUBMIT;=Go&urgaylol;=yes")EV Developers Corner(/url) | (url="http://"http://mywebpages.comcast.net/genea16/Rift.html")Rift(/url)
      (url="http://"http://customs.hyberia.com/")Mac Customs Lair(/url) | (url="http://"http://www.diabloii.net")DiabloII.net(/url) | (url="http://"http://www.mythvillage.org")Myth Village(/url) | (url="http://"http://www.playmyth.net")PlayMyth(/url) | (url="http://"http://www.mythdev.com")MythDev(/url) | (url="http://"http://myth.bungie.org")myth.bungie.org(/url)

      (This message has been edited by MadFax7 (edited 09-22-2003).)

    • Well, responces have been positive, so I'll give it a shot. I'll make the 4-5 syst version as a proof of concept. If that seems to work out, maybe I'll consider revamping EVC for it.

      Hopefully I'll have news in a few weeks (grad school e and life ats programming time)

      -STH

      ------------------
      Mac<-->PC pilot file Conversions: (url="http://"http://phair.csh.rit.edu/~seant/EV/PilotConvert/")http://phair.csh.rit...V/PilotConvert/(/url)
      "Create enigmas, not explanations." -Robert Smithson

    • Seant, this sounds like a really good idea. I'd love to see it.
      It sounds like this is going to involve a means of editing pilot files to enable pers resources that are set to inactive. I for one would find it very helpful in general plugin making if this "pers enabler" was released on its own as a standalone program - Otherwise, one really cant use pers resources in anything except a TC.

      Best of luck on this shared EV universe idea.
      -Az

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

    • You might need to expand the storylines in order to accommodate your plan. If you do, I'm here, ready to help :D.

      Ironic, isn't it...dare I say it? Multiplayer EVC in a limited but effective sense? Isn't this what the newbs all whine about on the EVN board?

      About tampering...what about a checksum bit? The server could instruct the program to write into the plugins a mission with some random bit(s) every time updated, and the mission connected to the bit(s) could be set to fail if certain 'cheat' actions were conducted. Then, the server could check those bits everytime the pilot info was uploaded...would this even be practical at all? (I really don't know everything about doing that kind of thing)

      ------------------
      (url="http://"http://www.geocities.com/ue_rd")Fatal Alliance- an upcoming quasi-TC for EVN.(/url)
      Secret Project: In intermediate planning stages. (No links available)

      (This message has been edited by UE_Research & Development (edited 09-22-2003).)

      (This message has been edited by UE_Research & Development (edited 09-22-2003).)

    • Sounds like a great idea to me. It would be fun and an interesting look at Multiplayer EV.

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

    • One thing I've been thinking about has me a little stumped: how does a player identify itself in the online database? I'd be nice if each pilot had a unique id #, but how should that id be stored on the local computer? In theory, one person could have multiple pilots uploaded to the server, so there'd have to be a unique ID directly associated with each pilot.

      There are some sections of the pilot files that appear to be unused, but I don't know if the engine writes data to those sections or not. If it doesn't, I suppose I could write a unique ID to the file that way.

      Another option would be to make Npil #130 and write unique id to that.

      What are people's thoughts? Any solutions?

      ------------------
      Mac<-->PC pilot file Conversions: (url="http://"http://phair.csh.rit.edu/~seant/EV/PilotConvert/")http://phair.csh.rit...V/PilotConvert/(/url)
      "Create enigmas, not explanations." -Robert Smithson

    • That is a pretty dang awesome idea, seant.

      If you can pull off the required tech, I'll develop new content for the shared universe.

      As an aside, TradeWars 2002 was my favorite BBS game.

      Peace,
      Luck

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

    • Quote

      Originally posted by seant:
      **One thing I've been thinking about has me a little stumped: how does a player identify itself in the online database? I'd be nice if each pilot had a unique id #, but how should that id be stored on the local computer? In theory, one person could have multiple pilots uploaded to the server, so there'd have to be a unique ID directly associated with each pilot.

      There are some sections of the pilot files that appear to be unused, but I don't know if the engine writes data to those sections or not. If it doesn't, I suppose I could write a unique ID to the file that way.

      Another option would be to make Npil #130 and write unique id to that.

      What are people's thoughts? Any solutions?

      **

      Well, first I'd have a registration system with your chosen EV Dungeon server so that you have a username and password. Then your chosen pilot is just named your username, and you have the dungeon set up on a trust system with an adminstrator who can kick off people who are cheating. There would be cheating, so thats the only way you could deal with it anyway.

      As to out of sink players, you could set up the utility to crash EV every 25 minutes and refuse to accept the updated pilot information more then 30 minutes after the last time you loaded the universe.
      Basically you'drun a program that'd contact the server, download information and then create current universe and then you'd play for 25 minutes and then you run another program that submits your pilot to the server so that everyone after then has the updated you in their universe.
      Or you could have hourly updates or every other hour (even hours maybe) instead of crashing, and just have players NEED to submit their pilot before the refresh hour comes. and then after the refresh hour they can download the new universe update.
      If someone didn't submit their pilot before a refresh passed if they tried to submit after that the server would refuse, send them back their old pilot and they'd have to redo whatever they did last and sibmit it before the time limit.

      ------------------
      (url="http://"http://www.freewebs.com/hardslab/cheat2.hqx")Cheat 2(/url)
      Cheat in almost any mac game. Even Nova... Even UPLINK.

    • Quote

      Originally posted by Luck:
      If you can pull off the required tech, I'll develop new content for the shared universe.

      Rocking. If I can get the application and server working, I'll contact you.

      Quote

      Originally posted by Luck:
      **
      As an aside, TradeWars 2002 was my favorite BBS game.**

      Yeah. A friend recently installed some door games on his server and we player TW2K for a while. God, you must be fairly old school to have been into BBSes.

      -STH

      ------------------
      Mac<-->PC pilot file Conversions: (url="http://"http://phair.csh.rit.edu/~seant/EV/PilotConvert/")http://phair.csh.rit...V/PilotConvert/(/url)
      "Create enigmas, not explanations." -Robert Smithson

    • As I said above, it would probably be best to have PM contact the server, and download the user's pilot into the Pilots folder of Nova. It should also remove all plugins from the data files, and either checksum or otherwise examine the current datafiles for changes, similar to how Nova checks for unregistered users modifying datafiles. This should stop nearly all plugin cheating, as the pilots are stored on the server, not on the user's computer. The only problem would be applications such as in Rick_Hardslab's sig, which modify actual RAM values in the computer.

      Because Nova saves the pilot after every landing, you can re-upload the pilot automatically every 30 minutes, or whatever. As for keeping track of pilots, a MySQL db with users and passwords would work nicely. Just keep track of the users and their pilots that way.

      Another cool thing would be if at updates, PM will check the pilot file for killed pers's, and if the pilot killed a pers, deduct an amount of money from the killed person's pilot as a kind of penalty, with a "You were fragged by" message sent to the victim when PM is next launched... This would be tough to do well, but it would allow more (however limited) interaction between players...

      ------------------
      Eat blazing electric death!

    • Quote

      Originally posted by SpacePirate:
      Because Nova saves the pilot after every landing, you can re-upload the pilot automatically every 30 minutes, or whatever.

      (I'm talking to seant here, even though I quoted SpacePirate.)

      Is the intent here to create an always-on backend that can constantly check and update with a server? Or is it more of a play-by-email sort of thing? (For instance, is the goal to create something like a slimmed-down 2D Jumpgate, or a larger, more attractive, TW2K with graphics?)

      For sure, either one would be cool... and there's no reason the second could not become the first with time and work. It appears that there is some confusion about what you are actually proposing.

      Quote

      God, you must be fairly old school to have been into BBSes.

      Apple II! Apple II! Rah rah rah! :+D

      Luck

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

    • Quote

      Originally posted by seant:
      God, you must be fairly old school to have been into BBSes.

      Quote

      Originally posted by Luck:
      **Apple II! Apple II! Rah rah rah! :+D

      Luck**

      Ah, the good ol' days.
      Graphics on the internet?! You mean ASCII art right?

      ------------------
      ((Ż'ˇ.¸(Ż'ˇ.¸Ť•-KAME-•ť¸.ˇ'´Ż)¸.ˇ'´Ż))
      I used to jog but the ice kept falling out of my glass.
      (url="http://"http://www.0three0.net/l-1551/")L 1551(/url) - The official site of RONIN and The Way and the ten thousand things