Visitar URL original
GitHub - NosCoreIO/NosCore: NosCore is a Nostale emulator in c# (.Net 10) using SuperSocket / Entity Framework / WebAPI / Autofac / Mapster / Serilog · GitHub
Skip to content
NosCoreIOPublic

About

NosCore is a Nostale emulator in c# (.Net 10) using SuperSocket / Entity Framework / WebAPI / Autofac / Mapster / Serilog

Resources

Contributing

Stars

163 stars

Watchers

15 watching

Forks

Latest commit

 

History

4,525 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NosCore

Codacy Badge .NET

Special Thanks for Contributions

You want to contribute ?

Discord

You like our work ?

NosCore is a spare-time open source project. Sponsoring does not buy a hosted server, a license or a support contract — it buys time spent on the emulator and on the packages around it (NosCore.Packets, NosCore.Dao, NosCore.Algorithm, the parser tooling).

Sponsors get the Supporter role on our Discord.

Sponsor me! ko-fi Become a Patron!

Warning!

We are not responsible of any damages caused by bad usage of our source. Please before asking questions or installing this source read this readme and also do a research, google is your friend. If you mess up when installing our source because you didnt follow it, we will laugh at you. A lot.

Instructions to contribute

Disclaimer

This project is a community project not for commercial use. The emulator itself is proof of concept of our idea to try out anything what's not possible on original servers. The result is to learn and program together for prove the study.

Legal

This Website and Project is in no way affiliated with, authorized, maintained, sponsored or endorsed by Gameforge or any of its affiliates or subsidiaries. This is an independent and unofficial server for educational use ONLY. Using the Project might be against the TOS.

Editors

Any editor that handles .NET 11 works: the build, the tests and every tool here run from the command line on Windows, Linux and macOS. In Visual Studio we recommend:

Building and running

documentation/getting-started.md goes from a fresh clone to a character in the world: the game data the parser needs, the database, the order to start the servers in, the accounts that exist by default and how to point a client at your server.

documentation/architecture.md explains how the servers, the projects and the sibling packages fit together.

In short, with each server in its own terminal:

dotnet build NosCore.sln
cd build/net11.0
dotnet NosCore.Parser.dll --folder <parser input folder>
dotnet NosCore.MasterServer.dll
dotnet NosCore.LoginServer.dll
dotnet NosCore.WorldServer.dll

It needs the .NET 11 SDK and a PostgreSQL on localhost:5432 (user postgres, password password). The parser creates the database and applies the migrations itself.

On Windows, scripts\ has a .cmd for each of these, and docker-compose.yml runs the same servers in containers.

Inter-server messaging

Master, world, login and web API servers talk to each other through Wolverine. By default the queues live in the same PostgreSQL database as the game data, so there is nothing extra to install.

The PostgreSQL transport polls its queues (PollingIntervalMs, 20 ms by default), so every master round trip costs one to two polling intervals. For production, switch every server to RabbitMQ in its Messaging section (or with the MESSAGING_TRANSPORT / RABBITMQ_URI environment variables):

Messaging:
  Transport: RabbitMq
  RabbitMqUri: amqp://user:password@rabbitmq:5672

All servers must use the same transport. Queues are created on startup.

(Optional) Local NuGet packages

Every NosCore repo ships a Directory.Build.props that adds a NuGet source when the NOSCORE_LOCAL_PACKAGES environment variable is set — useful for testing an un-released NosCore.Packets / NosCore.Dao / NosCore.Shared build without publishing it.

One-time setup (run once per machine):

setx NOSCORE_LOCAL_PACKAGES C:\LocalPackages
mkdir C:\LocalPackages

Restart Visual Studio / your shell so the new variable is picked up.

Drop any .nupkg file into that folder, then restore as usual. If the variable is unset the property group is skipped and only nuget.org is used — no action needed for contributors who don't want local packages.

About

NosCore is a Nostale emulator in c# (.Net 10) using SuperSocket / Entity Framework / WebAPI / Autofac / Mapster / Serilog

Resources

Contributing

Stars

163 stars

Watchers

15 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages