[OpenSource] Nostale Private Server Emulator - SaltyEmu (based on ChickenAPI)

10/23/2018 09:02 Blowa#1
Hi,

I'd like to present you my project, SaltyEmu.

It's a modern MMORPG Emulator written in C# / Go for the game Nostale.

My goals :
  • Bring a new eye on Nostale Private Server scene.
  • Improving my software designing skills & implementation skills
  • Help the real servers being highlighted by their work and remove all those shitty drag & drop servers that are designed to make money on developer's work.

GitHub : [Only registered and activated users can see links. Click Here To Register...]
Discord : [Only registered and activated users can see links. Click Here To Register...]


What are we looking for ?
We would like to know what you, server owners (real servers ones) are actually looking to add on your server which is a pain to do on OpenNos without changing everything in the base source (which is the most important lack of OpenNos to us)

How does SaltyEmu work ?
Actually, most of the packets are converted into abstracted events that will go through the event pipeline.
As well, there are a lot of micro services you can easily access to manage a lot of things (Sessions around the network, static data (.dat), instanciated data...)


The event pipeline is divided in two big parts :
- EventChecker : Filters event, based on checks, if a requirement check fails, the event is dropped from the pipeline
- EventHandlers : Handles the event, does the expected processing for the given event (like broadcasting a packet on a maplayer, adding item in an inventory...)

You can add as much handlers / checkers as you want to for 1 single event, through dynamically loaded plugins (stored in dynamic libs aka .dll)

Example :
A player send a "chat message"
It's converted to a ChatMessageEvent (we try as much as possible to factorize our code base)
ChatMessageEvent goes in every EventCheckers of the pipeline

Advantages of this architecture :
- Extreme pluggability (you can change the handling of an event during server's runtime)
- Easy Load Balancing (you can easily make one TCP listener that will throw event to handlers in a distributed software)

What we got so far :
- Command Framework (SaltyEmu.Commands & Essentials)
- MicroService Framework (MQTT)
- Family (MicroService)
- Friend / Blocked (Micro service)
- Multi channel
- Chat System
- Monsters & NPC's AI
- Battle
- NpcDialogs (still need to implement a lot of specific handling but really easy to add those)
- Guri Handling (same as NpcDialogs)
- Item Usage (same as NpcDialogs)
- Player Walking
- Shops
- Inventory
- Commands
- Items
- Portals
- Skills
- Specialists
- Groups
- Buffs
- Heavy documentation

What we will work on really soon :
- NosBazaar
- More documentation as there is already
- More tests (we try to handle the maximum of scenarios we can)
- Pets / Partners
- Scripting Instances (probably LUA or C# scripting)


Are you interested ?
We are always looking for contributors :
- Packets fixing (we have some missing informations actually)
- Feedbacks

If you find anything wrong in my thread, I would be glad if you could inform me, I wrote that fastly during my chinese course :kappa:


PS : This is not a PoC, it has been running on our side since some months now, we reached a point where we'd like to have some external feedback.
10/23/2018 09:10 ~Teiko~#2
WERE IS DOWNLOOUD??

Just kidding, keep it Up we need some new things and not only opennos.
10/23/2018 11:08 SxManuxS#3
yers

Yes my interresed :)
10/23/2018 11:11 PenguinXD#4
Make NosTale great again :reeee:
10/23/2018 11:30 Radiv#5
Good luck
10/24/2018 13:59 Petonio#6
For what i saw this emulator will be probably the best out there.
It has a great structure and its maintainability is something crazy.
For all the founders with hands and a bit of coding knowledge reading this : support this project cuz it'll be fantastic. Sure it needs more work right now but good things need time to grow up.

Keep up the good work
10/25/2018 22:27 dogenumberpi#7
any more info on what you mean as an "emulator"?
because my meaning is to be able to play it on android or something, but i don't think that's what you meant......
10/25/2018 22:39 Saber none#8
Quote:
Originally Posted by dogenumberpi View Post
any more info on what you mean as an "emulator"?
because my meaning is to be able to play it on android or something, but i don't think that's what you meant......
OpenNos is basically an emulator, emulator just means that it is something with which you can emulate something whatever it is.
10/26/2018 11:47 erixor#9
Quote:
Originally Posted by dogenumberpi View Post
any more info on what you mean as an "emulator"?
because my meaning is to be able to play it on android or something, but i don't think that's what you meant......
Basically Nostale is an online game that has a Client (what you download on your computer), and a server, that communicates with the client and vice versa.

This emulator has a goal to emulate the server part
10/26/2018 13:09 NT Z0ltar#10
It's a good project, I'm waiting to see more and I wish you good luck :)
10/28/2018 23:24 Marvin341#11
Awesome! NosTale really needs to be revived,
I am sick of the usual, EXP maps there, Donor shop there, buy this SP Job99 +15 there
We really need actual servers , even tho questing is boring often, the quests are really nice! i miss that part of the game being really alive ^^
10/29/2018 14:37 ✿¸.•❤•.❀•ilin•❀.•❤•.¸✿#12
really nice work,
but new emu new problems :D
24/7 comming? :D
11/06/2018 17:44 Blowa#13
Gonna opensource most important parts of SaltyEmu really soon.

I'm working on a proper splitting from things we want to keep private (such as plugins) and things that we want to share to grow the community around SaltyEmu & ChickenAPI.

By the way, SaltyEmu, not like OpenNos, won't be something you'll consider to buy/sell since it's mostly a network wrapper with some meta programming things to dynamically load implementations from ChickenAPI and some plugins without changing the "Server" code base.
11/18/2018 04:48 Blowa#14
Hi everyone,

We are opening SaltyEmu & ChickenAPI's actual development repositories to whoever would want to come and give us some REAL help (feedback, implementations...)

From beginner developer to experienced developer.
(We don't need leechers that will create a thread on elitepvpers because he does not know how to make a simple condition)

We decided to create a discord server to discuss about SaltyEmu & ChickenAPI for the community's needs.
[Only registered and activated users can see links. Click Here To Register...]


[Only registered and activated users can see links. Click Here To Register...]

Don't forget that we are doing a community project freely, on our free time, for pleasure & learning purposes.
Better not come to waste our time, you'll waste your own one.


Edit :
Since a lot of people don't know what "contributing to a project" means, we have opened a blacklist of people who are forbidden from our project contributors group.

You guys should have respect towards people that works and give their free time for a project you are just waiting to get money, asshole :)


Regards,
Blowa.
11/21/2018 20:46 -Diamond-#15
Seems like it would be user-friendly too, i like the idea.
About the edit, lot of people ain't respectful, i hope you'll find some good contributors, i would be happy to help you but i'm just learning c# still, i would be a waste of time atm