Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Nostale
You last visited: Today at 12:38

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[OpenSource] ChickenAPI - Next step in Nostale Private Server Emulation

Discussion on [OpenSource] ChickenAPI - Next step in Nostale Private Server Emulation within the Nostale forum part of the MMORPGs category.

Closed Thread
 
Old   #1

 
Blowa's Avatar
 
elite*gold: 98
Join Date: Jan 2010
Posts: 632
Received Thanks: 1,727
[OpenSource] ChickenAPI - Next step in Nostale Private Server Emulation


Dear Community,

I would like to present you ChickenAPI (what a strange name for Nostale content).

Discord :
Github :


What is ChickenAPI ?

ChickenAPI is, as its name contains, an opensource API that will permit people to have an interoperable code between all implementations that respect ChickenAPI.

I don't get the point, what does ChickenAPI ?

Simply, if you see Bukkit for Minecraft, ChickenAPI has the desire to be the Bukkit of Nostale.

What kind of features ChickenAPI provides ?
- Plugin System (easily create your own plugin that is interoperable with all server software that use ChickenAPI)
- Event System (easily register your plugins interaction with ChickenAPI's events)
- Heavy Documentation (All our work is under documentation written on a best effort basis)
- Community Driven (If you wanna request something that you think ChickenAPI is missing, just do it, it's opened to Pull requests / suggestions)
- ECS (A well known design pattern, that improves software modularity)
Basic Implementation provided (Most of the basic implementation are provided, however, you can use your own one !)
- Packets (We wrote all the packets we know so far in C#, with blazing fast Serializer & Deserializer)



Okay, it's an API, but who will be able to use it ?

Who ever that has a server software that support ChickenAPI.
NosCore will be using ChickenAPI.Packets
SaltyEmu is using all ChickenAPI components
Elendan's private fork of OpenNos will be using ChickenAPI.Packets

Since this API is totally opensource, we would like people to help us building the most interesting API for Nostale Servers.

Temporary thread design, we will go on a better presentation soon.
Blowa is offline  
Thanks
19 Users
Old 05/07/2018, 14:33   #2
 
elite*gold: 0
Join Date: May 2018
Posts: 4
Received Thanks: 0
Talking

Great to see that there a people which make their own works.
You defenitly need more support dude!

Keep going
CyberTale Studios is offline  
Old 05/08/2018, 00:46   #3

 
Blowa's Avatar
 
elite*gold: 98
Join Date: Jan 2010
Posts: 632
Received Thanks: 1,727
Quote:
Originally Posted by CyberTale Studios View Post
Great to see that there a people which make their own works.
You defenitly need more support dude!

Keep going
Funny, from a scammer that is dreaming about his own life.
Blowa is offline  
Old 05/16/2018, 16:52   #4

 
Blowa's Avatar
 
elite*gold: 98
Join Date: Jan 2010
Posts: 632
Received Thanks: 1,727
Big update (not production ready tho) :
We started ECS (Entity component System)
Cleaned up
Added entities containers (IContext, IMap, IMapLayer, IServer...)

What is incoming :
More components / systems


To get an idea on how ChickenAPI's implementation is actually working on our side (NosWings team)

Prometheus + Grafana : Metrics & Monitoring
Redis : Caching (many caches)
Fluentd : All Logging system
PostgreSQL : Database Storage
MessageQueues + gRPC : Inter Server Communication

Our World server : (no bullshit, it's nothing more than that + own plugins)

(It's running on a Docker)

PacketHandling : Nos#.PacketHandlingPlugin - Basic Nostale Packet Handling (based on ChickenAPI's ECS to modify data structures / trigger events)
DataAccessLayer : Nos#.DatabasePlugin - ServiceStack.ORMLite wrapped for ChickenAPI
Session / ServerApi / Multilanguage services : Nos#.RedisPlugin - ServiceStack.Redis wrapped for ChickenAPI

A tutorial has been added to start create your own plugins, more informations are coming around the Plugin system.
Blowa is offline  
Thanks
1 User
Old 05/25/2018, 10:54   #5

 
Blowa's Avatar
 
elite*gold: 98
Join Date: Jan 2010
Posts: 632
Received Thanks: 1,727
Hello guys !

We are looking for some help !

As many of you may have noticed on our discord ()

We would like to add all actually missing packets to ChickenAPI to have a good packet base to spend most of our time on game features.

Do not hesitate to come contributing with some pull requests !


Regards,
ChickenAPI team.
Blowa is offline  
Thanks
2 Users
Old 06/03/2018, 11:41   #6

 
Blowa's Avatar
 
elite*gold: 98
Join Date: Jan 2010
Posts: 632
Received Thanks: 1,727
Update !

What we added so far since last comment :
- Portals
- Npcs
- Monsters
- VisibilitySystem (thanks ECS)
- MapLayers
- Maps
- Algorithms
- Entities Movements
- Chat System (first, general chat & global chat, then, we will create a micro service for chat system (using RabbitMQ on our side))

What will be added soon :
- Inventory
- Skills (Casting / Learning..)
- Buffs
- Battle


Do not hesitate to follow our project !
Blowa is offline  
Thanks
1 User
Old 06/04/2018, 13:21   #7
 
carlospok's Avatar
 
elite*gold: 0
Join Date: Nov 2011
Posts: 72
Received Thanks: 29
Nice work!
carlospok is offline  
Old 06/24/2018, 15:59   #8

 
Blowa's Avatar
 
elite*gold: 98
Join Date: Jan 2010
Posts: 632
Received Thanks: 1,727
We are reworking ECS for performance updates (mostly, the Tick system)

There is now a Nuget Package which is automatically updated from git repository (We do not update it manually)


Every game basis are now prepared, we are just working on correct handling & packet answers.

Do not hesitate to join our Discord to stay tuned !

Inventory is ongoing
Blowa is offline  
Thanks
2 Users
Old 08/03/2018, 15:29   #9

 
Blowa's Avatar
 
elite*gold: 98
Join Date: Jan 2010
Posts: 632
Received Thanks: 1,727
Added (Not copy pasted from OpenNos and renamed it, I've written all those features from scratch respecting ChickenAPI & ECS principles ) :

- Shops
- Crafts
- Buffs
- BCards
- Portals
- NPCs
- Monsters
- Skills
- Movement (Entities can now move, using the tick system)
- Tick System (You can configure Ticks for server refresh as well as ticks for Systems refreshs, using Env for server and overriding base system properties)
- Main Loop (to mainly use my mainthread and not using unmanaged ****** concurrency through unmanaged observables/threads/tasks)
- Events (There are now many game events available for plugins makers)

ECS is now mostly done using compile time properties definition instead of using GetComponent<T>() method calls which can create a big overhead while iterating over entities. (but still available)

I reworked many things so there is an entire Game Event feature for basic featured plugins (Motd plugin, Statistics Plugin...)

(non-exhaustive list)
NpcDialogEvent
WalkEvent
ShopBuyEvent
ShopSellEvent
PlayerConnectEvent
PlayerDisconnectEvent

And some more events...

I'm now working privately and i'll push once ChickenAPI will be stable since no one seems to pay any attention to WIPs projects


Reworks :
- ChickenAPI is now splitted over 4 projects :
- ChickenAPI.Core (contains every "Core" features, Network, Plugin, ECS, "Repo pattern", Logging, Abstracted InterServerCommunication...)
- ChickenAPI.Game.Enums (contains every Enums related to game)
- ChickenAPI.Game.Packets (Contains Packet Serialisation features, contains every packets, just the definition of those, without specific constructors like it is on GitHub)
- ChickenAPI.Game.Features (Contains every game features, Systems, Components, Entities, Game's DAL, Game's DTOs...)


PS : My "private" repository is still open to contributors as far as you can showoff your skills, a technical test (about C# and programming logic) will be necessary to gain access to it.
Blowa is offline  
Thanks
4 Users
Old 08/03/2018, 15:54   #10
 
Ortator's Avatar
 
elite*gold: 6
Join Date: Dec 2010
Posts: 295
Received Thanks: 86
Quote:
Originally Posted by val77 View Post
Added (Not copy pasted from OpenNos and renamed it, I've written all those features from scratch respecting ChickenAPI & ECS principles ) :

- Shops
- Crafts
- Buffs
- BCards
- Portals
- NPCs
- Monsters
- Skills
- Movement (Entities can now move, using the tick system)
- Tick System (You can configure Ticks for server refresh as well as ticks for Systems refreshs, using Env for server and overriding base system properties)
- Main Loop (to mainly use my mainthread and not using unmanaged fucked concurrency through unmanaged observables/threads/tasks)
- Events (There are now many game events available for plugins makers)

ECS is now mostly done using compile time properties definition instead of using GetComponent<T>() method calls which can create a big overhead while iterating over entities. (but still available)

I reworked many things so there is an entire Game Event feature for basic featured plugins (Motd plugin, Statistics Plugin...)

(non-exhaustive list)
NpcDialogEvent
WalkEvent
ShopBuyEvent
ShopSellEvent
PlayerConnectEvent
PlayerDisconnectEvent

And some more events...

I'm now working privately and i'll push once ChickenAPI will be stable since no one seems to pay any attention to WIPs projects


Reworks :
- ChickenAPI is now splitted over 4 projects :
- ChickenAPI.Core (contains every "Core" features, Network, Plugin, ECS, "Repo pattern", Logging, Abstracted InterServerCommunication...)
- ChickenAPI.Game.Enums (contains every Enums related to game)
- ChickenAPI.Game.Packets (Contains Packet Serialisation features, contains every packets, just the definition of those, without specific constructors like it is on GitHub)
- ChickenAPI.Game.Features (Contains every game features, Systems, Components, Entities, Game's DAL, Game's DTOs...)


PS : My "private" repository is still open to contributors as far as you can showoff your skills, a technical test (about C# and programming logic) will be necessary to gain access to it.
Sounds fine, maybe you can show something in a form of a video? (Im interesset). Good luck at the future .
Ortator is offline  
Old 08/03/2018, 16:23   #11

 
Blowa's Avatar
 
elite*gold: 98
Join Date: Jan 2010
Posts: 632
Received Thanks: 1,727
Quote:
Originally Posted by Ortator View Post
Sounds fine, maybe you can show something in a form of a video? (Im interesset). Good luck at the future .
Thanks,
At the moment, I don't have time to make a video (I'm working every days and I spend the most of my free time working on Go, playing some video games and working on ChickenAPI), anyway, I'll try to do one as soon as I do have some more features :
- Battle
- Completely finished inventory
Blowa is offline  
Old 08/03/2018, 23:25   #12
 
elite*gold: 0
Join Date: Jul 2018
Posts: 8
Received Thanks: 0
I do not really understand what it is for, but it seems interesting. Can you tell me what it will do for you?
DeadBoy83 is offline  
Old 08/04/2018, 09:10   #13

 
Blowa's Avatar
 
elite*gold: 98
Join Date: Jan 2010
Posts: 632
Received Thanks: 1,727
Quote:
Originally Posted by DeadBoy83 View Post
I do not really understand what it is for, but it seems interesting. Can you tell me what it will do for you?
If you are not a programmer, it's not really interesting for you

Beside that, I've got my own emulator running with ChickenAPI, SaltyEmu, which is more interesting for people that are not programming since it's a "Drag & Drop" server, using plugins to create the gameplay.
Blowa is offline  
Old 08/04/2018, 14:41   #14
 
elite*gold: 0
Join Date: Jul 2018
Posts: 18
Received Thanks: 8
Discordlink is not working Can you send a new?
BlackoutŠ is offline  
Old 08/05/2018, 09:51   #15

 
Blowa's Avatar
 
elite*gold: 98
Join Date: Jan 2010
Posts: 632
Received Thanks: 1,727
Quote:
Originally Posted by BlackoutŠ View Post
Discordlink is not working Can you send a new?
I've deleted it since no one pays attention to WIPs projects that are not OpenNos obviously. (Because they can't actually have Drag'n'Drop on ChickenAPI without developing or leeching someone's work)

Anyway, if you are still interested to contribute, as told in my prev messages, we are looking for motivated persons but you need to pass a technical test about C# and programming logic mostly.

If you pass that test, you will be able to work with us on SaltyEmu and ChickenAPI.

However, we will be releasing most of our work on GitHub once stable and production ready.
Blowa is offline  
Closed Thread

Tags
chickenapi, nostale private server, noswings, source nostale


Similar Threads Similar Threads
[OpenSource] Nostale Private Server Emulator - SaltyEmu (based on ChickenAPI)
03/30/2020 - Nostale - 31 Replies
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



All times are GMT +2. The time now is 12:38.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.