Conversation
Notices
-
Say, @p how difficult would you reckon it'll be for someone who has never wrote a line of Python to create a MUD in it?
-
@eolach Yeah, you have to break it into chunks. I also pretty strongly recommend doing a more conventional design before trying to tackle a peer-to-peer version.
-
@eolach It *is* difficult to make a game peer-to-peer. If anyone has state hidden from other players (e.g., poker) or if there is any randomness (e.g., dice rolls or, now that I think about it, also poker), even if the game itself has hidden state (e.g., blackjack), or if a decision has to be committed to and then played out simultaneously for multiple players (e.g., two people play a card at the same time and then flip their cards up after), it gets exponentially more difficult than just doing a MUD in the conventional sense. Consider the case where two players run into each other and fight, or where they run into a MOB and they are supposed to figure out its weaknesses by talking to the people in town.
-
Look at this and think to myself how am I even going to get through it all smh.
-
Haven't even thought about how I'll handle the networking aspect of it. I suppose I'll want to have it peer-to-peer when I eventually get around to writing that part.
-
@eolach It's eventually a global state and then some smaller per-connection state that provides a little REPL for sending interactions up to affect the global state. I don't think it would be too hard in almost any language, as long as you can reason about game logic and stop the individual connections from trampling each other too badly. With a MUD, you can probably get away with a queue: that kind of thing tends not to be too CPU-intensive (and you can fit way more into RAM than you could back in the heyday of MUDs; you can probably keep the entire thing in RAM nowadays), so even at 100k users, responses should be instantaneous.
NecroKvntPuke has a MUSH, I don't remember what it's written in. dkmush.cyou, port 6250.