CitiesSkylinesMultiplayer / CSM

Source code for the Cities: Skylines Multiplayer mod (CSM)

Home Page:https://citiesskylinesmultiplayer.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Can I make a official server software with this mod for C:S?

Atten007 opened this issue · comments

Hello folks,

I'm playing Cities: Skylines on my MacBook and I have a very large city there with 60k inhabitants. Now I want to play with some of my friends even if I'm offline. Because of this, I want to create an official server software for Cities: Skylines, but idk whether I'm allowed to do this or not. I want to name the Software "SkylineDedi" or "SkylineDedi: Vanilla". DLCs should be supported in the software. Am I allowed to do this? And if yes, can someone help me with programming such a software?

Greetings,
Atten007 :)

Hi Atten007,

of course you are allowed to do this, this project has quite an open license. I would be really happy though if you would publish your source code openly or even contribute it to our project, so we can provide this feature to all players under the "CSM" name.

The idea of a dedicated server for Cities is already quite old in this project, see issue #67

There are two major options for building a dedicated server in my opinion:

  1. Headless Cities: Skylines server
    This would be just the same as running the game on your computer with a few modifications:

    • No UI
    • Automatic loading of specified map and starting the CSM server
    • Maybe some quality of life features like auto-pausing when no one is playing
      This has the restriction that you need to own a separate copy of the game to be able to start it on the server (using Steam or some other platform)
      There was one guy who already attempted to implement this, although it didn't work properly as far as I remember.
  2. The other option would be to build some kind of relay server. This server could for example do the following:

  • Store the current map as long as no one is playing
  • When the first player joins, download the map to them. This player now acts as the actual "server".
  • When another player joins, they are forwarded to the "actual server" player.
  • When the server player leaves, the map is saved and transferred to the other player, who now acts as the server.
  • When the last player leaves, the map is saved and transferred to the relay server where it is stored until another player joins.

If you have any more questions, feel free to ask them here or in our Discord in the development channel.