An open source implementation of the dark souls 2 game server.

Related tags

Game ds2os
Overview

Dark Souls 2 - Open Server

WARNING: This is non-functional, its an initial branch from ds3os.

What is this project?

An open source implementation of the dark souls 2 game server.

Idealistically made for the purpose of allow better alternatives to playing mods than getting your account banned and using the retail ban server. As well as opening up opportunities to improve player safety and choice, by allowing them to segregate themselves off from the pool of cheaters on retail, without loosing network functionality.

‼️ This project is still a work in progress, no guarantees are given over its stability (that said it works quite well now!).

Build Status

Can I use it with a pirated game?

No, the server authenticates steam tickets. Please do not ask about piracy, steam emulators or the like, we have no interest in supporting them.

FROM SOFTWARE deserves your support too for the excellent work they do, please buy their games if you can.

Where can I download it?

Downloads are available on the github releases page - https://github.com/TLeonardUK/ds2os/releases

How do I use it?

Once built you should have a folder called Bin, there are 2 subfolders of relevance. Loader and Server.

First run the Server.exe in Server, this will start the actual custom server running on your computer.

The first time the server runs it will emit the file Saved\config.json which contains various matchmaking parameters that you can adjust (and apply by restarting the server) to customise the server.

User can join the server by opening the Loader.exe program in the Loader folder and finding the correct server in the list and clicking the launch button. If the server has been configured to not advertise on the master server (or if running on a LAN without an internet connection), then the server operator can distribute the Saved\server.ds2osconfig file that the server emits, which can be imported into the loader and used to directly connect to the server.

Servers can also be password protected if required by setting as password in Saved\config.json, a password will need to be entered when attempting to launch the game with a protected server.

NOTE: The steam client (no login needed) must be installed when you run the Server.exe. Otherwise, Server.exe will fail to initialize.

What currently works?

Most of the games core functionality works now, with some degree of variance to the retail game. We're currently looking to closer match retail server behaviour and make some general improvements to the running of unoffical servers.

  • Login, key exchange and network transport
  • Announcement messages
  • Profile management
  • Blood messages
  • Bloodstains
  • Ghosts
  • Summoning
  • Invasions
  • Visitors (Auto-Summoning via covenant)
  • Matchmaking (eg. Correctly matching summoning/invasions/visits with player level)
  • Roster of knights
  • Archdragon peak bell ringing
  • Undead match
  • Telemetry and misc server calls (the few that are of use to us)
  • Steam ticket authentication.
  • Master server support for loader (show available servers).
  • WebUI for server showing gameplay statistics / allowing admin control.

Future roadmap:

  • Regulation file distribution.
  • Anticheat (potentially we could do some more harsh checks than FROM does).

Will this ban my account on the retail server?

So far we've had several accounts using unoffical servers, for quite a while, and have not had any account penalized on the retail server.

So it seems safe enough. The only way you are going to get banned is if you do things that would normally get you banned then go back to the retail server - cheating and the like.

FAQ

I launch the game but its unable to connect?

There are a few different causes of this, the simplest one is to make sure you're running as admin, the launcher needs to patch the games memory to get it to connect to the new server, this requires admin privileges.

If the server is being hosted by yourself and the above doesn't solve your issue, try these steps:

Ensure these ports are forwarded on your router, both for tcp and udp: 50000, 50010, 50050, 50020

Its possible you don't have the configuration for the server setup correctly. After running the server once make sure to open the configuration file (Saved/config.json) and make sure its setup correctly (it will attempt to autoconfigure itself, but may get incorrect values if you have multiple network adapters). The most critical settings to get correct are ServerHostname and ServerPrivateHostname, these should be set to your WAN IP (the one you get from sites like https://whatismyip.com), and your LAN IP (the one you get from running ipconfig) respectively. If you are using LAN emulation software (eg. hamachi) you will need to set these to the appropriate hamachi IP.

What do all the properties in the config file mean?

The settings are all documented in the source code in this file, in future I'll write some more detailed documentation.

https://github.com/TLeonardUK/ds2os/blob/main/Source/Server/Config/RuntimeConfig.h

How do I build it?

Currently the project uses visual studio 2019 and C++17 for compilation, and as such is currently limited to windows. At some point in future the codebase will likely be moved over to something platform agnostic like cmake.

Ensure that you have vcpkg (https://vcpkg.io) installed and integrated into visual studio as well, as it is used for managing a few of the dependencies, by doing the following:

  1. Clone the vcpkg repo: git clone https://github.com/Microsoft/vcpkg.git or download the repository as .zip file
  2. Run Windows PowerShell as Administrator and cd into the directory, example: cd C:\dev\vcpkg
  3. Enter command: .\bootstrap-vcpkg.bat and wait for it to process
  4. Enter command: .\vcpkg integrate install and wait for it to process

Building the project should now require opening the Source/DS3OpenServer.sln and building it. To uninstall vcpkg use the .\vcpkg integrate remove command.

Whats in the repository?

/
├── Config/               Contains any useful configuration material, server config files and alike.
├── Protobuf/             Contains the protobuf definitions used by the server's network traffic. Compiling them is done via the bat file in Tools/
├── Resources/            General resources used for building and packaging - icons/readmes/etc.
├── Source/               All source code for the project.
│   ├── Loader/           Simple winforms app that loads DS3 such that it will connect to a custom server.
│   ├── Server/           Source code for the main server.
│   └── ThirdParty/       Source code for any third-party libraries used. Preference is storing source here over using vcpkg modules where practical.
├── Tools/                Various cheat engine tables, bat files and alike used for analysis.

How can I help?

Check our the issues page, or send me a message for suggestions on what can be done.

Right now there are a few server calls we either have stubbed out or returning dummy information, implementing them properly, or finding out the format of the data they need to return would be worth while.

There are also a lot of protobuf fields that are still unknown and use constant values when sent from the server, determining what they represent would be a good improvement.

Credit

A lot of the information needed to produce this implementation has been figured out by the community. Especially the members of the ?ServerName? souls modding discord.

The following 3 repositories have provided a lot of information used in this implementation:

https://github.com/garyttierney/ds3-open-re

https://github.com/Jellybaby34/DkS3-Server-Emulator-Rust-Edition

https://github.com/AmirBohd/ModEngine2

Graphics and icons provided by:

Campfire icon made by ultimatearm from www.flaticon.com

Various UI icons made by Mark James from http://www.famfamfam.com/lab/icons/silk/

Comments
  • Failed to write full patch to memory

    Failed to write full patch to memory

    The loader was built without any issue.

    image

    It's failing to patch, but I am running both the game and loader as admin. Not sure if it would matter, but the game is as fresh of an install as possible and the game is not installed to C:

    Appreciate any guidance.

    opened by VenganzaD 3
  • Building Issue (DS2OS)

    Building Issue (DS2OS)

    Loader.exe was built without any errors and works pretty fine, but only shows DS3 open servers, think it still uses DS3OS MasterServer. That is ok.

    The real problem is that I get either LNK2019 errors or C4996 errors. I tried building OpenSSL 1.0.1, 1.1.0 and even 3.1.0, but none of them worked. I set all the dependencies and additional directories, but still no hope. Is that even possible to build DS2 Server.exe at this moment?

    P.S. vcpkg is installed and works, tried to install OpenSSL via vcpkg too, didn't help. Any suggestions?

    opened by t1mb3rw0lf 2
  • I hope to resume work on this project as soon as possible

    I hope to resume work on this project as soon as possible

    Sorry, I don't know programming language, so I don't know how to parse these files. When can I release the complete files? The DS2 server is not sure about the specific opening time, so I can only put my hope here at present!

    opened by Littdds 1
  • No longer thinking about coming back with the project to finish DS2OS?

    No longer thinking about coming back with the project to finish DS2OS?

    I play the ds2 a lot and I believe there are many people who still play this game, if it ends, it would be great to call the ds2 public that is without hope.

    opened by ZkilleMito 3
  • Dark souls II or Dark Souls II: Scholar of the First Sin?

    Dark souls II or Dark Souls II: Scholar of the First Sin?

    Well, that's the question. Is this server created (or should I say planned) for the original Dark Souls II or Dark Souls II: Scholar of the First Sin?

    Thank you for your great work anyway. DS3os preserves this great game for future.

    opened by Pacifist-Penguin 0
Owner
Tim Leonard
Professional game developer by day, random nonsense coder by night.
Tim Leonard
Full source code for WarriOrb, a Dark-Souls like action platformer - using Unreal Engine 4

WarriOrb source code WarriOrb is a hardcore action platformer where you play as a demon who is trapped in an unlikely body. The game mixes the difficu

Not Yet 247 Dec 30, 2022
Free in the Dark, a Alone in the Dark engine reimplementation.

FITD Free in the Dark, a Alone in the Dark engine reimplementation. Long overdue source code update from the version that was released on source forge

null 47 Dec 20, 2022
Dark Sky DOS Game (curses port)

Dark Sky This is a port of the original Dark Sky by Ben "Bent"

Jamie 2 Apr 6, 2022
the long dark mod

tld the long dark mod 安装说明 下载Tld Mod ,主要代码已经开源,请加群后在群文件中下载使用。请根据自己的游戏平台选择对应的版本。(下载路径为群文件TLDMOD文件夹) 注:不同平台之间游戏存在细微

Chase 4 Oct 28, 2021
OpenMW is an open-source open-world RPG game engine that supports playing Morrowind.

OpenMW is an open-source open-world RPG game engine that supports playing Morrowind.

null 4.5k Jan 2, 2023
This is a list of different open-source video games and commercial video games open-source remakes.

This is a list of different open-source video games and commercial video games open-source remakes.

Ivan Bobev 173 Jan 2, 2023
Minetest is an open source voxel game engine with easy modding and game creation

Minetest is an open source voxel game engine with easy modding and game creation

Minetest 8.3k Dec 29, 2022
Open-source, cross-platform, C++ game engine for creating 2D/3D games.

GamePlay v3.0.0 GamePlay is an open-source, cross-platform, C++ game framework/engine for creating 2D/3D mobile and desktop games. Website Wiki API De

gameplay3d 3.9k Jan 8, 2023
KlayGE is a cross-platform open source game engine with plugin-based architecture.

KlayGE KlayGE is a cross-platform open source game engine with plugin-based architecture. It's started since 2003. The explicit goal of KlayGE is: to

Minmin Gong 1.8k Dec 23, 2022
Powerful, mature open-source cross-platform game engine for Python and C++, developed by Disney and CMU

Panda3D Panda3D is a game engine, a framework for 3D rendering and game development for Python and C++ programs. Panda3D is open-source and free for a

Panda3D 3.6k Dec 31, 2022
MIT Licensed Open Source version of Torque 2D game engine from GarageGames

We've moved! All torque engines have moved to a new organization, Torque Game Engines. Torque2D can be found at https://github.com/TorqueGameEngines/T

GarageGames 1.7k Dec 14, 2022
Free, open-source, game engine and a 3D sandbox.

Work-in-Progress The official "early alpha" release should be available around April 2021 SGEEngine SGEEngine is an open source (MIT License), C++ cen

ongamex 72 Dec 7, 2022
MAZE (My AmaZing Engine) - 🎮 Personal open-source cross-platform game engine

MAZE (My AmaZing Engine) is the self-written open-source cross-platform game engine in the active development stage. At the moment it is my main pet project, developed for the purpose of learning and preserving different game dev technologies.

Dmitriy Nosov 13 Dec 14, 2022
an open source NES platformer game

Nova the Squirrel is an NES game that stars Nova Storm, a green squirrel, who winds up in a new and unfamiliar world with strange new abilities, and she must use her new abilities to save the world.

null 170 Dec 5, 2022
Ducktape is an Open source Light weight 2d Game Engine that gives utmost priority to user convenience.

Ducktape is an Open source Light weight 2d Game Engine that gives utmost priority to user convenience. It is written in c++ and uses SFML and Box2d for graphics and physics respectively.

Ducktape 102 Dec 30, 2022
An open-source puzzle game

These are series of enigmas games. Enjoy thinking about puzzles. This 1.4 version contains : - Eulerian Graphs series (with time challenge) ...but m

null 6 May 29, 2022
Cytopia is a free, open source retro pixel-art city building game with a big focus on mods.

Cytopia is a free, open source retro pixel-art city building game with a big focus on mods. It utilizes a custom isometric rendering engine based on SDL2.

CytopiaTeam 1.6k Dec 30, 2022
SnaX Game Engine - Open Source

SnaX Game Engine License SnaX Game Engine - https://github.com/snaxgameengine/snax Licensed under the MIT License http://opensource.org/licenses/MIT.

SnaX Game Engine 14 Dec 1, 2022
An open source re-implementation of RollerCoaster Tycoon 2 🎢

An open source re-implementation of RollerCoaster Tycoon 2 ??

OpenRCT2 11.3k Jan 3, 2023