Multiplayer - how?

Started by TheSilencedScream, January 03, 2015, 07:25:46 PM

Previous topic - Next topic

TheSilencedScream

First, then isn't to begin a debate on whether there SHOULD or SHOULD NOT be multiplayer, so please don't derail into that. This is a discussion about my question, not about your preference on the existence of the root of my question. :)


On-topic.
On the Kickstarter page, when asked about multiplayer in the FAQ, Tynan says, "It's possible; and if the community asks for it consistently I'll gladly put it in."


Now, my question - for Tynan and forum members' opinions:
How would this work or how would you like to see this work?
Quote from: Topper on August 31, 2015, 03:33:25 AM
is the sledgehammer compatible with the romance mod?
Only in Rimworld.

Innese

In my opinion, a fun way to implement multiplayer might be setting it up as a world is more of a server, where multiple colonies from multiple players can exist in real time on the same world while allowing them to interact to varying degrees, perhaps based on distance & tech levels.

Goo Poni

That's a fairly passive Dark Souls kind of "oh hey look, a guy..." multiplayer. Don't see how it could work. It'd just be SimCity. You would happen to interact with each other by way of being in proximity and that's.... about it, really...

Anduin1357

[Copypasta from myself]
I have an idea,
If Tynan won't do it, somewhere down the road, a modder will do it.
Trust me ;)

Peer2Peer connection, Everyone P2P the overworld, if you have to load someone elses save, P2P will get it for you.
There would be 3 modes, co-oop, Async PvP&E and Live PvP&E
Async is where if you are not online, AI will do it for you and live write your save to other ppls' comps with priority to you in case you are off-line and Live is where you and the enemy *HAS* to be online, direct packet w/ proxy and if you combat log, it goes ASync for you.
If you log within 3 secs(normal reaction time) of a guy attacking you, his raid will be called off.
Updates are spread as reads to a file and not complete rewrites of the save.
??? Profit (lots of players can attack/defend one spot)
This game has the advantage that this is the save that is updating, not the actual game, all are rendered off the save, run on the save and depends on the proliferation of saves.
Saves are pretty cheap to spread bandwidth wise, just add .zip or .rar support for Async and profit.
A 2 year game can be compressed from 200 mb+ to just 4.05 mb
The same save can be RARed down to 557 kb.
Madness, I say.
(Who knows what space savings could 7z do...)
It goes like this
Async mode: save.rwm ---> .7z (best) ---> P2P ---> Decompress if called (less than 1s each) | Otherwise just spread compressed file.
Live mode: Async until attack/defend then save.zip --> savelive.rwm ---> write to file what changed in game per second ---> raid/defense over ---> savelive.rwm becomes save.rwm ---> compress and spread.
All participants of raid/defense store each others' saves live.
add event to statistics X raided Y, X/Y won.
Edit: .7zs would be passworded by a public key that changes every day generated by random.org*bit-64 unix time number of GMT to prevent editing. The public key would be stored for a duration of 2 years as a .zip/.7z with CRC checksum.
I don't think storing ~~720 different codes would be an issue.

ZestyLemons

Probably the easiest way to implement it would be something like this:

PvP:
1) Game speed is played as the slowest selected speed for a player (if all players are on max speed then the games plays at max speed, if one player is at normal speed and the rest are at max speed then the game plays at normal speed).

2) Game speed is automatically reduced to lowest speed when combat occurs.

3) Most events are individual for colonies (e.g. raids target only one player, but an event like the AI ship would obviously affect everyone).

RimWorld is set from an RTS perspective, so stuff like latency isn't a super huge factor. I think the above 3 rules would mostly sort out MP rules -- how players handle raids/attacks/etc on each other is pretty much up to them. I think you'd need to add some sort of 'transfer ownership' or 'trade' Order to trade stuff though.
Help out with the wiki!

Steam: http://steamcommunity.com/id/Divaya/
Wiki: http://rimworldwiki.com/wiki/User:Zesty

Feel free to contact me about wiki questions or wiki admin stuff.

Anduin1357


  • Ok
  • Ok
  • Raids target the closest hostile player.
Rimworld was never meant to be an RTS, an RTS means churning out units(Rimworld does not)
The only thing remotely RTS about Rimworld is the drafting feature.
I'd rather make it have the overworld
The overworld is governed by saves.
saves can be of any game time.
unless there is a player and it is live mode, there would be only normal and max
max being defined as the fastest speed the network can handle the updating.
Async would sync only if both players are online and if one or both is not, it goes simulated AI.
Trade stuff would work just like normal trading atm except that the trade will not finalise without both parties agreeing.
And then there's the auto-trade...
I think ZestyLemon is just stating the obvious for his PvP list.
Most events does affect everyone.
In live mode, the player can very well send resources and make a base at his enemy for as long as he logs in to it every day (so as to prevent live mode locking of someone's save cuz they cant play without the other guy being live.) without which, all his colonists goes home and the place is open to attack...

ZestyLemons

Quote from: Anduin1357 on January 04, 2015, 02:25:34 AM
Trade stuff would work just like normal trading atm except that the trade will not finalise without both parties agreeing.
And then there's the auto-trade...

Nah, what's the fun in a colony-to-colony trade if you can't suddenly go guns blazing on the person you're trading with and steal all their stuff?

I'm totally aware that RimWorld is a story game, not a competitive game. I said it fits as an RTS because it's an overhead perspective, it's real-time, and you can control units strategically (in gunfights). It's more of a basebuilder/story game than an RTS, but an RTS nonetheless.
Help out with the wiki!

Steam: http://steamcommunity.com/id/Divaya/
Wiki: http://rimworldwiki.com/wiki/User:Zesty

Feel free to contact me about wiki questions or wiki admin stuff.

Anduin1357

You would be able to trade with the other colony, yes but the player will NEVER invite a squad into their base for trade just for them 2 get screwed. It is NOT an RTS.

ZestyLemons

RimWorld's about drama and story. Having actual colonists walk up and trade is a lot more interactive and flexible story-wise than a trade interface where you can't do anything but play by the rules.
Help out with the wiki!

Steam: http://steamcommunity.com/id/Divaya/
Wiki: http://rimworldwiki.com/wiki/User:Zesty

Feel free to contact me about wiki questions or wiki admin stuff.

Anduin1357

Nobody said they shouldn't walk up to you and trade. The problem there is that they can't guarantee their own safety in the midst of your huge base. Who would walk up to your front door that is the ultimate killzone just to trade? No one!
So unless there is mechanism for barter and the such, I don't see where this is going.

milon

When generating a world, the game should check with the Ludeon server. If anyone else has a colony on that world, they should be added as an AI controlled faction that I can interact with in the same way as other factions (which I hope will continue to grow).

Syvera

There are any number of ways that it could work; some more complicated than others, and some easier but potentially less stable. It would be nice to be able to make use of an entire generated world in a single multilayer campaign, where 2 or more players could team up together or fight eachother for control of the continent. For something like that, though, you would likely need a proper server setup to handle all that data, and I mean per world, not for all of them.

Now for something as simple as multiple players on a single map, that would be far easier, but that would probably be too cramped unless the multiplayer map was about 24x the normal map size, which may or may not get excessively laggy on a non-god machine.

I do like the Peer2Peer idea, i'd say that has decent potential if done right.

Something tells me Tynan has already formulated some ideas on how to implement multiplayer, considering he essentially said he'd put it in if the community asked for it. I would be curious to know his take on it, but whether or not anything will be revealed is up to him.

Goo Poni

Quote from: ZestyLemons on January 04, 2015, 07:02:28 AM
RimWorld's about drama and story. Having actual colonists walk up and trade is a lot more interactive and flexible story-wise than a trade interface where you can't do anything but play by the rules.

I hope this aspect becomes a thing in the game anyway just because I would like to trade with caravans from the other colonies and see space-borne traders land with some sort of dropship to make trades instead of sucking up designated items into the aether and dropping a pile of silver in from orbit. They're not military ships sending relief supplies to a stricken FOB.

Anduin1357

The traders beamed em up and dropped em down. ;D


Continental warfare *could* be set up with P2P but there would be a heck a lot of constant world generating that having *more* players (Like 5000++?) running bit-64 with at least 8 GB ram to handle multiple (3-4) instances and multiple screens if live.
Maybe a way to limit the maximum number of battles you can directly control so that the comp don't spam instance ram crash you ie. typical RW save + decompress w/ mods can get to 1 GB ram usage and having to sustain 5+ instances from an enemy co-ordinated blitz might overwhelm your system...


For every ASync instance, a ghost RimWorld would record the battle without loading the graphics to save on ram n stuff and then dump it when battle is over to save or every 5 mins. I would seriously suggest like 4 teams, 3 teams or 2 teams only... Unless far in the future, rigs DO get better.
Then again, the required apm for 5 instances on 5 screens would be insane...
The save structure might look like this:


AppData\LocalLow\Ludeon Studios\RimWorld\*[Gamename]*\MPSaves\Saves\*.rwm

AppData\LocalLow\Ludeon Studios\RimWorld\*[Gamename]*\MPSaves\P2PSaves.7z

AppData\LocalLow\Ludeon Studios\RimWorld\*[Gamename]*\Worlds\*.rww




All of the generated map in saves, archived in .7z as one file
The entire world would consist of generated saves mapped to every tile.
If you could fight over every bit of the map, You might be looking at 400 x 300 = 120 000 unique saves at max, 150 x 112 = 16800 unique saves at min.
Does not take into account that stock prevents ice sheet and ocean biome.
Maybe it could run this procedurally, that way, the save is generated only if a player builds on one of the map tiles. Saves cpu power and bandwidth for saturation but increases load time. I haven't tried creating 16800 saves and then compressing them though... might eat an entire GB or so when compressed. Would eat a TB uncompressed. :P


(Then again, who would explore the entire world with his/her big ol' army of colonists?)
Hmm... Where there is P2P, there is incentive to be mega node and get in-game bonus or smth...
Where there is multiplayer, there is always a chance of meatballs.
post-final preview: I just realised I have created THE concept of an MMO Simulation/Management/Strategy Game derived from a game never meant to go this far. X.X

Runtheball

I'm not at all interested in fighting other players, but I'd love to see a CO-OP setup. Simply having two colonies in close proximity to facilitate trade/migration, perhaps allowing one colony to respond to threats to it's neighbor, etc.