GELİŞTİRİYORUM LibreKO | Knight Online Rebuilt in Godot and .NET 10 | Now Open Source

KY Üye
KAYIT
11 Mar 2026
Mesajlar
36
Tepki puanı
44
Hi everyone, ZeusAFK again. A few weeks ago I posted the first public technical demo of my from-scratch Knight Online server and client. Today I am doing what I promised in that post: the source code is public.

The project now has a name of its own, LibreKO, and everything lives on GitHub under the AGPL-3.0 license:

The server (.NET 10, C#) and the Godot 4 client, plus a Docker Compose stack that starts a database, the login server and the game server with one command.

The asset pipeline. It decodes a Knight Online installation (meshes, textures, terrain, effects, tables) into Godot-native files. You point it at your own game folder and it writes everything the client needs.

A VS Code extension for the quest scripting language, with highlighting and item, quest and NPC ids shown as names while you edit.

The libreko.org website.

Built client connecting to test server.

Website: Discord:
Some things I want to be clear about, because they matter.

The repositories contain no game content. No models, textures, sounds, maps or tables from the original game are included, and none will be. The client bakes its content from your own installation with the asset pipeline. If you do not own the game files, the client will start but there will be nothing to see.

This is still far from a complete game. Many systems are missing, incomplete or broken, exactly as in the demo. What changed is that you can now read the code, run it yourself and fix things.

There is no security to speak of yet. The server trusts the client. Run it on your own machine or for friends, not on the open internet as if it were a finished product.

I am not launching a private server and I am not making money from this. I am doing it because rebuilding a game I loved is fun, and I am publishing it because I cannot finish something this big alone.

Running it yourself:

1. Clone the LibreKO repository and run "docker compose up" at the root. That builds both servers and starts them with a MariaDB. Without Docker, the README explains how to run them with the .NET 10 SDK against your own database.
2. Clone LibreKO-Assets and run the bake against your Knight Online folder, writing into the client's assets directory. A full bake takes a while and several gigabytes.
3. Open the client folder with Godot 4.7.2 .NET and press Play. Account creation is automatic on a fresh database.

Where help is needed:

- Quest content. Quests are written in a small text language of their own and a big part of the game's quests still need to be checked, fixed or written.
-Testing. Play it, break it, open issues with what you find.
- Protocol coverage. Plenty of packets are still unhandled or only partially handled.
- Art tooling and the client. Rendering, effects, UI, animations, all of it.

If you looked at the demo and thought "I could do that better", now you can. Pull requests are welcome, and the Discord is the place to ask questions before diving in.

Thank you to everyone who tried the demo and sent feedback. It is genuinely motivating to finally have this out in the open.

Video:

Screenshots:
1789685962480.png
1789685971352.png
1789685977814.png
 
KY Kıdemli Üye
KAYIT
1 Haz 2022
Mesajlar
224
Çözümler
1
Tepki puanı
192
Yaş
35
perfect timing thank you
 
Graph. Desig.
KY Saygın Üye
KAYIT
11 Ocak 2023
Mesajlar
403
Çözümler
1
Tepki puanı
620
Konum
Peru
Web
demon-ks.blogspot.com
Bu projenin kullanıma sunulduğu aşamadaki testlerin yürütülmesine yardımcı oldum; hâlâ düzeltilmesi gereken pek çok husus bulunsa da sistemin gayet iyi çalıştığını söyleyebilirim.

Bu durum, geleneksel formatı geride bırakarak KO için yeni bir aşamanın kapısını aralıyor.
 
KY Uzman Üye
Coder
KAYIT
13 Şub 2021
Mesajlar
321
Tepki puanı
146
Yaş
35
Konum
Indonesia
Deneyimli Codex/programcıların yer aldığı özel bir grup oluştursak nasıl olur? Daha önce dev alanında çalışmış, tecrübeli kişiler bir araya gelip projeyi birlikte geliştirebiliriz.
 
KY Üye
KAYIT
11 Mar 2026
Mesajlar
36
Tepki puanı
44
What if we formed a dedicated group of experienced Codex/programmers? People with prior experience in the development field could come together and develop the project collaboratively.
Sounds good. I’d be happy to collaborate with more developers and grow LibreKO together.
 
KY Üye
KAYIT
11 Mar 2026
Mesajlar
36
Tepki puanı
44
Build 24 is now live:

- Moving while casting a heal cancels it, including when you keep a movement key held.
- Monsters move smoothly at their real speed instead of sliding or hopping.
- Entering a busy area such as Moradon no longer stutters: creatures and ambient effects stream in instead of loading at once.
- Archers can cut a shot's animation by moving once the arrow is away; moving earlier cancels the shot.
- A cancelled bow shot no longer leaves the arrow in the hand.
- The attendance window only opens by itself when a reward is waiting.
- Potions used in the middle of a skill combo are no longer swallowed.
- The attendance window is smaller and shows which rewards are acquired, ready to claim or not yet available.
- Claiming an attendance reward with a full inventory now says so.
- Right click no longer changes your target; left click selects.
- Names over characters, monsters and NPCs are larger, and Settings > Video has a Name Size slider.
- During the public demo, type +setlevel in chat to set your own level.
- The Inn Hostess now seals and unseals your items, and binds them to you.
- Sealed items look blue, and bound items carry a silver border.
- Sealed and bound items can no longer be sold to a shop, put on a stall or posted.
- Warrior skills of levels 70 to 80 work as intended: Berserker raises attack 20% and lowers defence 300 for 20 s, Berserk Echo and Blade of Hell sweep the enemies around you, Blade of Hate and Blade of Heaven strike your target, and HP Booster restores HP as if sitting.
- Warriors keep attacking and can use skills while running or click-moving.
- Archers: Multiple Shot fires every arrow, hits land when the arrow arrives, R waits for the target to come into range instead of walking to it, and a single click only selects.
- Potions share one two-second cooldown and their sound plays the moment you drink.
- Monsters no longer heal themselves or each other unless they are healers.
- NPCs stand on platforms and bridges, the target ring follows the ground slope, and the map shows the zone name.
- Dying clears your target; the battle log lists skill and potion use, pickups, experience and National Points.
- Character creation: the mouse wheel zooms in on the face and picking a hair colour no longer spins the character.
- Kelly the Makeup Artist opens the beauty shop; its F9 key is gone.
 
KY Kıdemli Üye
KAYIT
1 Haz 2022
Mesajlar
224
Çözümler
1
Tepki puanı
192
Yaş
35
orijinal uifleri kullanabilsek mükemmel olurdu :)
 
KY Üye
KAYIT
11 Mar 2026
Mesajlar
36
Tepki puanı
44
It would be great if we could use the original UIFS.:)
Thanks, and I get the appeal. The original UIF files themselves won't be part of LibreKO: they are NTT's assets and the .uif container is their format, and the project keeps its own asset formats so anyone can build without a retail client. But the thing you actually want, the classic look, is very doable as a theme, and it's a great contribution if you want to take it on.

What I'd suggest: a modular UI theme system

A theme is a folder you drop into the game's user data directory, nothing compiled into the client:

themes/classic-1098/
theme.json manifest: name, author, target client version, base theme to inherit from
layout.json where every panel and widget sits
skins.json which image, nine-slice borders and font goes with each widget style
atlas/*.png the artwork

Layout as data. Every window and widget in the client gets a stable semantic id (hud.hp_bar, inventory.grid, skill_bar.slot) and layout.json says, per id: anchor (top-left, bottom-center, ...), offset, size, and for containers the child order. The client already pins HUD pieces to screen edges through anchors, so this is the same idea written down in JSON instead of code. Sizes are in design pixels at a reference resolution and the client scales, so a 1024x768-era layout still works on a 4K screen.

Skins as nine-slice PNGs. Panels, buttons, bars and slots are described as a PNG region plus nine-slice margins (left/top/right/bottom in pixels) and optional per-state variants (normal/hover/pressed/disabled). That is exactly what Godot's StyleBoxTexture wants, so the client turns skins.json into a Godot Theme at load time. Colors and fonts live in the same file so a theme can restyle text without touching code.

Inheritance. A theme names a base theme and only overrides what it changes. The built-in dark-glass theme is the root, so a classic theme only has to ship the windows it restyles and everything else keeps working.

Runtime side. Theme selection in Settings, hot reload while editing (watch the folder, rebuild the Godot Theme, re-anchor), and a fallback: any id a theme doesn't define uses the base theme, so a half-finished theme never breaks the UI.

If you want to start, the two pieces that make everything else possible are the semantic ids on the existing widgets and the JSON schema for layout/skins. I'm happy to review a proposal or a first PR, and to walk you through where the HUD anchoring and the theme colors currently live in the client.
 
KY Üye
KAYIT
1 Kas 2022
Mesajlar
7
Tepki puanı
0
Hey,

First of all, congrats on the project. It already looks really cool :) I actually had a few things I was curious about, so I'd be really happy if you could answer them.

With this kind of MMORPG project, I've seen people try using UE5 because it's relatively easy to develop with thanks to the Blueprint system, but it can also lead to quite a lot of optimization issues later on.

Do you think using Godot could cause similar optimization problems as the project gets bigger and more complex?
 
KY Üye
KAYIT
11 Mar 2026
Mesajlar
36
Tepki puanı
44
Hey,

First of all, congrats on the project. It already looks really cool :) I actually had a few things I was curious about, so I'd be really happy if you could answer them.

With this kind of MMORPG project, I've seen people try using UE5 because it's relatively easy to develop with thanks to the Blueprint system, but it can also lead to quite a lot of optimization issues later on.

Do you think using Godot could cause similar optimization problems as the project gets bigger and more complex?
Yeah, optimizing on UE5 and Unity is a nightmare, I first started implementing the project on unity, it was running at 17 FPS and the client build was 8GB, now with godot it works at 120 FPS on my PC and the client build is 1.5 GB, and there is still a lot of optimization work that can be done. And finally, I decided for godot because it is free and open source engine.
 
Üst Alt