|
You last visited: Today at 12:38
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.
05/06/2018, 21:51
|
#1
|
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.
|
|
|
05/07/2018, 14:33
|
#2
|
elite*gold: 0
Join Date: May 2018
Posts: 4
Received Thanks: 0
|
Great to see that there a people which make their own works.
You defenitly need more support dude!
Keep going
|
|
|
05/08/2018, 00:46
|
#3
|
elite*gold: 98
Join Date: Jan 2010
Posts: 632
Received Thanks: 1,727
|
Quote:
Originally Posted by CyberTale Studios
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.
|
|
|
05/16/2018, 16:52
|
#4
|
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.
|
|
|
05/25/2018, 10:54
|
#5
|
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.
|
|
|
06/03/2018, 11:41
|
#6
|
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 !
|
|
|
06/04/2018, 13:21
|
#7
|
elite*gold: 0
Join Date: Nov 2011
Posts: 72
Received Thanks: 29
|
Nice work!
|
|
|
06/24/2018, 15:59
|
#8
|
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
|
|
|
08/03/2018, 15:29
|
#9
|
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.
|
|
|
08/03/2018, 15:54
|
#10
|
elite*gold: 6
Join Date: Dec 2010
Posts: 295
Received Thanks: 86
|
Quote:
Originally Posted by val77
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 .
|
|
|
08/03/2018, 16:23
|
#11
|
elite*gold: 98
Join Date: Jan 2010
Posts: 632
Received Thanks: 1,727
|
Quote:
Originally Posted by Ortator
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
|
|
|
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?
|
|
|
08/04/2018, 09:10
|
#13
|
elite*gold: 98
Join Date: Jan 2010
Posts: 632
Received Thanks: 1,727
|
Quote:
Originally Posted by DeadBoy83
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.
|
|
|
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?
|
|
|
08/05/2018, 09:51
|
#15
|
elite*gold: 98
Join Date: Jan 2010
Posts: 632
Received Thanks: 1,727
|
Quote:
Originally Posted by BlackoutŠ
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.
|
|
|
All times are GMT +2. The time now is 12:38.
|
|