ifMUD discussion of networked IF, edited some for content. me = inky. Jarb asks, "So, who wants to talk MultiPC-IF?" Steve says, "I know I shouldn't be, but there you go." You say (to Jarb), "I think it would get messy" You say, "but it'd still be kinda interesting" thumper says (to inky), "Hot PC-on-PC action tends to get messy." Jarb asks (to inky), "what'd you think of my ideas?" You ask, "what if Jigsaw let one person be black and the other be white?" Steve says (to inky), "A civil war." You say (to Jarb), "well, I agree you can't use the standard turn-based model with multiple people" Adam asks, "Why not?" Jarb says, "you _can_, you just need more functionality" Jarb says, "1) ability to direct actions to other players" thumper asks (to adam), "Because you'd have to wait for me to get back from the bathroom to finish your turn?" Adam asks (to thumper), "So?" You say (to Adam), "because either I end up waiting each turn for you, or I take more turns than you because I've got a faster link" Jarb says, "2) ability to react when other players actions effect you" You say (to Jarb), "see, I think those are both missing the point in some sense" Adam says (to inky), "So wait" You say (to Adam), "well, maybe." You ask (to Adam), "wouldn't it be like trying to be here but you could only say one sentence before the other person had a chance to talk?" The mists of the frame relay cloud swirl around mef as he arrives.... You say (to Jarb), "we already need some sort of ability to react to other people" mef is monkeyed into the room by a gaggle of gangly spirits. mef says, "Hey." You say (to Jarb), "if there's any interactions with NPCs and stuff" thumper says, "And if I just took my turn, and you're busy thinking about something, then I can't do anything when I get my next idea. I can't even tell you about my idea." You say, "hey mef" thumper says, "Which isn't life-like." Adam says (to inky), "Um" Adam says, "I would think that this would be a split-screen thing" mef says (to thumper), "Well, maybe not *your* life. Me, I have a menagerie." You say, "I guess you could make conversation special." Adam says, "Chatter with your partner in one window" Adam says, "Play the game in another" thumper asks, "So you'd say 'I want to do something - quick, hit 'z''?" You say, "hmm" You say (to thumper), "that might not be so bad." Jarb says (to thumper), "true, but that's the layer of authoring that would be expanded....it would be up to us to make it make sense" You say (to thumper), "or have a "wait for bob to do whatever he's doing" command that would make you give up your turns until you stop waiting" mef asks, "What are we talking about? Turn-based multiplayer IF?" thumper says, "Hm. I think losing the turn-based system would be better." You say (to mef), "yeah" Jarb says (to inky), "i give that to the author....if you want, you could kick them back to some other point...make them wait...or whatever...that's the art" You say, "I think there are some advantages in keeping a turn-based model" thumper says, "Because if I'm taking time trying to do something, you should be able to go around and do stuff, and if something happens while I'm waiting, I'd see that happen while I'm typing." mef asks (to thumper), "Well, you have to have ticks or something. Aren't those effectively turns? Runs through the event loop?" Jarb says, "you still need the turns...it just works a little differently...." You say (to mef), "the difference is if I can do two commands in the time it takes you to do one" You say (to mef), "or not." thumper says (to inky), "Well, if you can type fast, that translates into being a speedier PC." thumper says, "Which may or may not be fair." You say, "as the speediest PC, I get to be the mailman." Jarb says, "i argue that what is created is neither fair nor unfair...that is the author's domain" mef says (to inky), "Ah." Jarb asks (to inky), "You;re Mr. McFealy?" mef says (to inky), "Unless there are, like, 5-second ticks or something. Time-based, but a window of opportunity to type. Or 10-second." Adam says, "Gah" You say (to Jarb), "that's kind of a scary child-molestor name for a postal worker guy. I dunno." Adam says, "I hate real time in strategy" Adam says, "Let alone in IF" You say (to mef), "yeah, we were kind of kicking that around also." Jarb exclaims (to inky), "Mailman from Mr. Rogers!" You say (to Adam), "me too." You say (to Jarb), "indeed" Adam says, "I figure if you want time to factor into things, play the game while sitting on a train track" inky laughs. thumper asks, "What if the system is: whenever either person enters a command, a turn passes?" You say, "I'm kinda liking this splitscreen idea" Jarb says (to thumper), "that's my premise....let's not divert too far from current IF structure" Adam says (to thumper), "But I'm assuming that each player would be a different PC" You say (to thumper), "that means you can't do simultaneous actions, though" Adam says, "And they should be allowed to do things simultaneously" mef says, "I actually don't really like any of the multiplayer mud-type things I've seen that focus on gaming/adventuring, precisely because of this time issue." You say, "which seems to me would be a major benefit of multiple PCs" thumper asks, "How would you manage simultaneous actions at all with any system?" Jarb exclaims (to adam), "nothing is ever simultaneous.....there must be order!" You say, "well, you could have one turn per person" You say, "er." You say, "I mean, everyone gets a move, and then a turn passes" thumper asks (to inky), "And wouldn't one person have their turn before the other?" mef says (to inky), "PC 1: >LIFT GATE WITH FRED PC 2: >LIFT GATE WITH BARNEY" You say, "maybe it wouldn't evaluate any moves until everyone's gone" mef says, "or some syntax like that. "coordinate with x" to make your next action simultaneous with x's." Adam says (to mef), "You don't even need the WITH" (From thumper) Fred and Barney get it on with the gate. Adam says (to inky), "Like Diplomacy" You say (to Adam), "oh yeah" Jarb says, "PC 1 would complete it's command and PC 2 would get "There is no need, PC 1 has done it already"" Adam says, "All the moves are handed in, and then 'what happened' is sorted out" Jarb says, "zackly" thumper says (to adam), "Which means you have to have pretty complicated code." Adam says (to thumper), "That's your problem." schep says, "Presumably if both players LIFT GATE on the same move, the library should trigger a cooperation thing." Jarb says (to thumper), "no..just more reaction handlers" You say (to thumper), "I think it would be a little messy, but not a massive difficulty." Jarb says, "more code, not necessarily more complex" Jarb says, "but probably so" You say, "it's hard to say without actually, like, coding it" Adam says, "That wasn't meant to be hostile, by the way" Jarb asks (to inky), "did you see my posts on code?" thumper says (to adam), "Don't worry; I'm only crushed for life." You say, ">PUT THUMPER IN BLENDER THEN SET IT TO CRUSH" thumper cries! Adam says, "Just that there's a line between 'we can't do that, it's impossible' and 'that's complicated -- let's do something less than optimal because it'd be easier'" Jarb says, "http://x12.dejanews.com/getdoc.xp?AN=440328234" inky looks up Jarb's post again. Jarb says, "http://x12.dejanews.com/getdoc.xp?AN=440334828" schep says, "I suppose there should be a way to communicate to other players at all times, otherwise they'll 'cheat'." thumper says, "Right, but the increase in code complexity would large to handle more than one action at once. For every action, you have to decide whether or not the actions conflict, and if they do, what kind of outcome you want." mef says (to jarb), "No, I'm thinking about two people who want to cooperate to lift a gate that's too heavy for one alone." Jarb says (to mef), "hmm" You say (to schep), "Adam suggested a splitscreen where you chat on top" thumper asks, "If two people say 'take rock' at the same time, how do you decide what happens?" You say, "yeah. hmm" Adam says, "In Diplomacy, their hands would bounce against each other, and no one would get the rock" thumper says, "Either one will be faster than the other or they'll have to fight over it." You say, "well, presumably what happens is each person sends a "move" message to the rock" Jarb says, "PC1> LIFT GATE" Adam says, "There are lots of ways this could be handled, though" Jarb says, "PC1 struggles to lift the gate." You say, "then the rock can decide what happens" Adam says, "RPG-like: whoever has the higher DEX gets it" Jarb says, "PC2> Help PC1 lift gate" schep says, "The library can have some sort of default. Like 'Can't you decide who should get it?' or 'You fight over the rock. ends up keeping it.'" thumper says (to inky), "But if you want simultaneous actions, then both messages have to be sent in parallel, which is the complicated part." You say, "it might be that it has them fight over the rock, or it checks their speed, or whatever" Jarb exclaims, "You help PC1 lift the gate and it opens!" Adam says, "Or it could be preset -- one PC is the Protagonist, and the other is the Sidekick, and the Sidekick always defers" thumper says (to adam), "Then you're not really simultaneous at all." You say (to thumper), "but it's not exactly simultaneous, necessarily. I'm thinking you wait for both players to send their actions, and then you evaluate the results of the turn" thumper says (to adam), "That's the same as having the protagonist go first and then the sidekick second." You say (to thumper), "in the *game* world the actions are simultaneous" Adam says, "Actually, schep's first solution sounds best of all" Steve has disconnected. "And Aholibamah bare Alec, and William, Daniel: these were the Baldwins..." Steve has connected. This newsgroup is filled with pro-Stalin communists. I suppose you people didn't know that your hero, Iosif Vissarionovich Dzhugazhvili, murdered more people than Hitler and is the one who started the Cold War by breaking his agreements. You people are sick. Adam says, "Because that's the kind of split-second decision that would take virtually zero time" Adam says, "So sure, ask, 'Who should get the rock?'" Adam says, "Also, that will make basketball players more likely to play" Isaac Asimov: Here's a logic puzzle thinly disguised as a story. Reader: Hurray! Spatch here now! Adam passes the rock to Spatch schep says (to Spatch), "Play with my rock." Spatch says, "I've got the rock! It's my turn to speak! It's my turn to speak!" You say, "the rock is TALKING TO ME" schep says, "No, that was the conch." Spatch bogarts the rock. liza says (to Spatch), "It'll go nicely with my talking stick, for when we go to the retreat." You say (to Jarb), "anyway, you've got this setup where you set certain objects as being playercharacters and certain ones not being" thumper says, "You still need some way of figuring out what actions have effects on each other." Jarb says, "you guys are needlessly complicated the idea with the simultaneous thing....if it's turn based, and turns are clocked by the millisecond, then there will never (almost) be a clash. if there is, i would allow the author to randomly defer one PC or determine which one on their own..." Spatch says (to liza), "Yes. the Sensitive Ponytailed New Age Guy Retreat." You say (to Jarb), "I think it would be better if all NPCs had some decision-making object, and this could be either player input or an AI routine" Adam says (to thumper), "That seems like just a matter of quantity, though" thumper asks (to adam), "Huh?" You say (to thumper), "it'll work if you throw enough code at it" Adam says (to thumper), "I mean, IF authors already have to anticipate anything the player could possibly try, how events work when NPCs are/aren't present, etc" Adam says, "This would just be more stuff to code in" thumper asks, "And if it means 10x as much code, is it worth the miniscule difference from having real-time action?" schep says, "So how does the programmer resolve such things? We would need access to the other player's current action for use in special rules." You say (to thumper), "I think simultaneous actions are an important aspect of this" thumper asks (to inky), "Why?" You say (to thumper), "although it's possible you could simulate them by allowing continuous events" schep asks, "Hmm. As in, the attempt to lift the gate lasts 7 seconds?" Jarb says, "and i think in small steps.....we're trying to make IF here....you're not in a 'hurry'" You say, "well, >START LIFTING GATE" You say, "and then the other guy types that also" schep says, "bleah." ddyte says, "Bleh. Photographed." You say, "and when he types it, it says 'look, the other guy is doing that also'" You say (to ddyte), "hey there soulless" Jarb says, "> LIFT GATE - you struggle" ddyte says, "The Taliban want my ass now." You ask (to thumper), "um. it's just a feeling, I guess. it seems like the major reason to have another player is to work together with them, no?" Jarb says, "> HELP LIFT GATE - the gate opens with your combined efforts" thumper asks (to inky), "Right, but need they do actions at the exact same instant?" thumper says, "I like Jarb's idea." ddyte says, "Neiman Marcus cookie recipe spam to echoes mailing list :-(" Jarb says (to inky), "no...could against each other, have crossing plots, or help each other" schep says, "Do we really need a HELP or COOPERATE verb? I think it should trigger that when players attempt the same or related actions." You say (to thumper), "not if you allow continuous actions, no" Jarb says (to schep), "author's choice" You say (to schep), "well, HELP BOB could be a shortcut for "do whatever bob's doing"" Adam says, "Just like Diplomacy!" Jarb says, "author's choice author's chioce author's chioce author's chioce author's chioce" (From schep) Adam says, "And did I mention Diplomacy?" (From thumper) Adam says, "Also, Diplomacy!" Jarb says, "anyway" You say, "mm" You say, "if you keep it turn-based, you could probably keep using UNDO" Jarb says, "why automate anything is my question? Just create more structure within the language to give the author the 'ability' to do all of these things and let them decide..." You say, "I don't know if that would be workable in realtime" thumper says (to inky), "Er, UNDO gets complicated." Jarb says, "UNDO would have to be cooperative" Adam says, ">HELP BOB UNDO PREVIOUS TURN" thumper says, "heh." schep laughs. You ask, "btw, are we imagining all the players have their own copy of the game world?" thumper says, "Well, if you do an action, you should be able to undo until the other person does an action." thumper says, "That should work." Jarb says (to inky), "no...client reads program from server..." Jarb says, "client is basically a glk front end to a glk receiver that talks to the serving if host" thumper says (to jarb), "I'd think you'd have each person run two - way; no reason to have a separate server." You hear the faintest whisper of a droning chant from somewhere far away. devil arrives from the east. mef says, "Plus, if you don't have one central copy, then players can hack their own copies, or stuff can get out of sync and be bloody impossible to debug, or..." thumper says, "Unless you want to have a bagillion people running." You say (to mef), "ok, if each person has their own version, that would be weird." Jarb asks, "anybody logging this?" You say, "I think for speed purposes, you may want everyone to have a copy of the game file" Adam says (to mef), "cf. Command HQ" You say, "I'm logging it" schep has pages and pages of scrollback, if that helps. ddyte asks, "I have a copy of the game file. Anyone else want one?" Adam says (to mef), "Every single two-player game of Command HQ I ever played got disconnected and ended up with both players 'winning', then discovering they'd been playing the computer for an hour" Jarb asks (to inky), "but games don't get that big...and the architecture would be....how would multiple game files work even?" You say (to Jarb), "well, I think one person runs the server that does the actual computation" You say (to Jarb), "and tells the other people's clients what messages to print" Jarb says (to inky), "okay...first person is the server....populous was like that i think" You say, "but it wouldn't have to send the whole string across the network, just a "print string #3"" Jarb says (to inky), "but that's the part that would be hard....whoever developed the engine to do this wouldn;t want to write a two-way system..." schep says, "It would seem designing this for cooperative players is less general than players with separate motives." Miseri has connected to ifMUD. Miseri is sitting quietly nearby. You must not have noticed him entering the room. You say, "um" Miseri says, "Hello" You say, "maybe" You say, "heya Mis" devil says, "Hey le Mis." You say, "you're always going to have to handle people trying to, eg, both take the rock" Jarb says, "i think this is the first IF idea i've been stoked about in a year...i love this idea..." You say, "if you assume the players are a hero and a sidekick, you can do a simpler "ok, the hero gets the rock" resolution" Miseri says (to devil), "Drink with me / To days gone by." You say, "but a "check each person's dex" or "flip a coin" isn't that much more complicated" (From Adam) Jarb says, "Now, how will the game resolve which lion eats the player?" inky laughs. Jarb says (to inky), "and the author can set rules for that in the makeup of the PC's....if one PC is athletic and the other is not, then the athlete gets the rock..." You say, "a game where some people play the lions and some other one plays the main guy could be kinda interesting" Adam says (to inky), "cf. Ogre" thumper says, "Well, if you have one person is athletic, then it's exactly like having it be non-simultaneous system, with the athletic person always going first." You ask (to Adam), "Ogre? is that that tank game?" schep asks, "Do we have a good format for the engine, before we imagine a library?" Miseri says that the PC who already has the roll should automatically get the rock. Jarb asks (to inky), "how would like to have been able to turn around and play Atrox from Karl's position?" Jarb says, "you" Adam says (to thumper), "Maybe the sidekick would go first in some instances" Adam says (to inky), "That's right" You say (to Jarb), "personally, I wouldn't like it much. but it'd be interesting anyway." Adam says (to inky), "One player is one big tank; the other is 100 small tanks" Jarb says (to inky), "it would 'spooky'" You say (to thumper), "if they both type "jump on bomb", the sidekick is the one that dies." thumper says, "Well at any rate, you've lost the simulataneous stuff, which is why you wanted this stuff anyway." Adam says (to thumper), "You can still throw separate switches at once" Jarb says (to thumper), "no..i never wanted simultaneous anything..." Adam says, "To launch the nuclear missiles" You say, "but you don't *have* to have the most athletic guy get it all the time" thumper says (to jarb), "Not you, those crazy adam and inky people." You say, "you could, eg, say both people have their hands on the rock and are wrestling for control" thumper asks (to adam), "And why wouldn't the athletic one turn the switch an instant before the non-athletic one?" Jarb says (to inky), "author's choice...."where have i heard that before"" Jarb asks, "?" You say (to Jarb), "well, sure, I agree, the author should decide based on what they want to do." Adam says (to thumper), "Because then the nuclear missiles wouldn't launch" schep says, "Or at least library's choice. And you can always write a new library." You say (to Jarb), "but, if you have a real-time system instead of a turn-based one, the author can't decide "ok, thing X happens if they both do thing Y at the same time"" Jarb says, "the thing about IF is that it _is_ static...it only seems 'real' because as authors, we've sold you as the player...." thumper asks (to adam), "So why not have it be real time, with one of them counting down, 3, 2, 1, turn key like they would in real time, each person with their finger on the enter key?" You say (to Jarb), "because real-time doesn't really have an idea of "same time"" You say (to thumper), "I'm not really clear what the advantage of real-time is" thumper says, "And something would be 'same-time' if it's within a tenth of a second." thumper says (to inky), "Makes things simple and people don't have to wait for each other." devil says, "If you make it turn-based, then both have to commit to doing something before the "turn" ends." Jarb says, "Constant SAME_TIME = 10" You say (to thumper), "I don't know if it's really that much simpler" Jarb says (to devil), "no...other PC's auto-turn" You say, "hmm" mef says (to jarb), "But you might want SAME_TIME to change in different parts of the game." devil says, "Real-time based would involve a lot of extra coding to write a conventional IF game in it." Grocible has connected to ifMUD. thumper says (to inky), "It really is. If you have it be real-time, it's no simpler than existing IF." Grocible partially materializes in the roof of the lounge. He frowns, concentrates for a minute, and then re-appears normally, albeit with a slight asbestos-induced cough. schep says, "I don't like it when a daemon running in the game advances while I think what to do. I don't think the game's time should advance between moves." Jarb says, "or they lose a turn...whatever" You say, "if the PCs are off each doing their own thing, though, I'm not sure if turn-based is as interesting" Adam says, "See, I *like* the fact that I can get up and go to the bathroom without the game progressing" You say, "er." You say, "s/interesting/relevant/" You say, "hey groc" Adam says, "In fact, I think you should all shut up every time I'm idle for more than a few seconds" Jarb says (to schep), "that's a design issue...you didn;t like the way it was designed then" (From devil) Adam idles. You say, "but it seems to me that IF is different than muds and there's more cooperation involved, even if the players are competing." You ask (to groc), "so, you get anything good from sarah's place?" devil says, "It'd just be a bitch to write, is all, and you'd have to make a different set of assumptions." schep says (to Jarb), "Realtime v. movebased is going to be the hardest to change given a protocol. Unless you want two protocols." Jarb says, "we already have to code for interaction with NPC's...this is just as if we wrote daemon commands for an NPC that we could react to" Jarb says (to schep), "I would not support real-time...that's a mud's domain..." thumper says, "And either PC would react with whatever NPC they wanted to whenever they wanted." Jarb says (to devil), "bitch=challenge" You ask (to Groc), "I thought you said she wasn't there?" Adam says, "Real time, to me, is at odds with a lot of the basic appeal of IF" Adam says, "I am a slow reader, for instance. I like to sort of mentally chew on text for a while" inky laughs. thumper says (to adam), "And if I'm a fast reader, maybe I don't want to wait for you." Adam says, "I don't want to have to race through paragraphs looking for clues and stuff" You say (to thumper), "but then maybe Adam's the wrong person for you to be playing with" thumper says, "So the two people would go at their own pace." Miseri has disconnected. Miseri goes home. Miseri has disconnected from ifMUD. thumper asks (to grocible), "'point form'?" Adam says (to thumper), "But that shouldn't have an impact in the game world!" You say, "." You say, "there, I'm done" Adam says (to thumper), "Just because I'm a slower reader than you are doesn't mean that my character is a dawdler" You ask (to Groc), "networked agt?" Jarb says (to thumper), "a well designed game wouldn't force you to wait....that's one of the new levels of coding we would be expecting from authors" devil says, "Trouble would be worrying about timing in all your actions. *And* you'd have to write a game that can be played in "real-time", i.e. no doing one action that makes you stay a night in a certain hotel, etc." liza is looking up psychology-related sites for her course. "This almost made me go blind: http://www.ini.unizh.ch/stereo_pict/stereo.html" You say (to liza), ""this made me go blind: you go look at it!"" Adam says (to liza), "Better check your hands" devil looks at it with your eyes closed. liza says, "Yeah yeah, you're all very funny." devil says, "your -> his" schep asks, "How would the game engines work? 1) Computers send each other commands and compute results individually. 2) Host machine receives commands and replies with output codes. 3) Other?" liza says (to Grocible), "Um." You say (to schep), "2) is what I like the best." devil points out the ifMUD to Grocible. thumper agrees with inky. liza says (to Grocible), "Unless you're kidding and I've been staring at stereoscopic neurons too long." Jarb says (to schep), "the client would be thin..just sending and receiving text..." schep asks (to inky), "That wouldn't be slow?" thumper says (to liza), "You mean those lines aren't nekkid.. nevermind.." schep says (to Jarb), "Basically." You say (to schep), "well, it depends what the output codes were" You say (to schep), "but if each person has a copy of the game file, maybe the host just replies with an address to jump to and start executing code at" thumper says, "The problem with be with latency, not throughput." Jarb asks, "problem is...then we get into making sure you have the latest client with the latest standard - codes...and what if the author rewrites the codes?" Adam says (to NeilK), "Heh. Interesting" devil asks (to Jarb), "What system are you using? Based on Inform in any way?" Adam says, "I was about to make a quip like, 'You mean we're all speaking in free verse?' but maybe to an extent that's true" You say (to Jarb), "there'd have to be some kind of version negotiation at the beginning to make sure you're both using the same file" Jarb says (to devil), "Inform is what I know...but it could be anything" You say (to thumper), "yeah, I don't know how to fix that. if someone's especially lagged, they may just be SOL" devil asks (to Jarb), "Are you trying to invent a language/system-independent system of multiplayer IF or are you writing a specific game?" Jarb says (to inky), "i would make the game file a server plugin....then the client calls the server and can play any plugin that is available..." thumper asks (to jarb), "Huh?" You say (to Jarb), "yeah, that works, I guess. but I'd rather have the server and client be the same program" Jarb says (to devil), "it was a simple suggestion to Kent about Hugo..then Zarf opened the can of worms by replying to me that he liked the idea too...then i just got to thinking about how it would work and wrote those two posts...i don't know" You say, "I think that's a better model for the small numbers of players we're talking about here"