Ech! I now begin my dark summoning ritual to arise this thread from it's grave!
(Yeah, sorry for the two month necro going on here, but I figured this would be better than starting a new topic and cluttering the forums up again.)
So, the last time I posted in this thread, I'd figured I had too much on my plate as it was, and this idea was way too vague for me to keep going.
I did however have a console with a little @ in it that would move around a predefined room. If I could just get ramps working on it then I'd have the base to a solid tile-based world here.
Anyhow, today, while playing Dwarf Fortress, I had another wave of this damned inspiration.
Several things have come to my attention here.
First of all, if I write a client program then it greatly reduces the amount of sent information required.
Secondly, I had an interesting idea for a server architecture.
Just for the moment, imagine this game is complete and running. There's a map, about the same size and style of a Fortress map in Dwarf Fortress. In this map is something like a village. All the members of this server have been playing together in this village, fortress, cave or whatever the heck the server's been doing.
But.. One person isn't content with this, and wanders to the edge of the map. Well, at the edge of the map the server has stopped generating land, so they inevitably run into that age ol' invisible wall. Except...
Here there's actually a smooth obsidian wall (or whatever really, this is just an example after all).
It's... Like a giant border.. And.. there's a gateway too!
They step out through the gate... And woosh! The map behind them unloads... And suddenly a new one loads out infront of them. Both sides of the wall completely oblivious to eachother, it's like the player just stepped through a portal to another dimension.
...Has the server just dropped or killed everyone who was playing? Not at all!
They're oblivious to what's just happened. It looks to them like one of their players has just logged out.
...And to their server, it looks the same way.
That's how the gameplay works.
Behind the scenes however...
It's not too complex. It's hardly what I'd call an efficient system, but it's quite interesting none the less.
Imagine if you would, player one logs onto his home server that his friend player two hosts. They're both playing happily, they're both logged into the same server.
So, player one then crosses that thresh-hold. At this point, the server that player two goes and contacts a master server, which looks at all the servers connected to it, finds the one that's the other side in that direction and sends the server information on it, which it relays to the disconnecting client, whom if all is a-okayed, then connects to the other server.
Player three's server, this new one that player one has just logged onto, can then double check with that master server to check player one is who he claims to be.
TL;DR version: Map edges would act as fortified gateways to other player's servers, allowing players from different servers to interact.
Okay, so you've managed to read this far. Well done!
And, by this point, you're probably wanting to ask "Why do you want to do this? It's crazy!"
Yeah, it's crazy. The great part is that actually posting this doesn't make me have to do it... But don't get me wrong. I'd love to do this.. And that's why I'm posting it.
I'd love to play this game, but it'd only work if other people want to play it too... And a few ideas and such would come in very handy.
A quick question for the programmers out there too:
How would you normally send binary information (in byte format) over the network then intentify what it is? It always confuses me when I try to send non-text information. How can I tell when something like a picture has finished sending, without having any form of EOF byte?