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

KY Üye
KAYIT
11 Mar 2026
Mesajlar
39
Tepki puanı
48
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
 
Graph. Desig.
KY Saygın Üye
KAYIT
11 Ocak 2023
Mesajlar
404
Çözümler
1
Tepki puanı
623
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
322
Tepki puanı
148
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
39
Tepki puanı
48
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 Üye
KAYIT
11 Mar 2026
Mesajlar
39
Tepki puanı
48
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
16
Tepki puanı
1
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
39
Tepki puanı
48
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.
 
KY Kıdemli Üye
KAYIT
18 Tem 2025
Mesajlar
145
Tepki puanı
15
"My friend, if you keep sticking to the original UI, you won't be able to publish on the App Store or Google Play Store because it will violate licensing."
maalesef bu haliyle de yayınlanamaz hocam.item isim,ikon,modeli aynı şekilde skill isim, ikon, fxi farklı tutmak lazım yayın için. ve maplerde değişmeli. sadece ışık, texture, shader değişimiyle yayınlamak mümkün değil maalesef.
Gönderi otomatik olarak birleştirildi:

i submitted this pr
 
Son düzenleme:
KY Üye
KAYIT
11 Mar 2026
Mesajlar
39
Tepki puanı
48
Build 25 is live:

- The inventory window is narrower: equipment around the character, magic bags extend the slots and fold on a click, more rows on taller screens, and a drop area that destroys items.
- Talk NPCs open their quests again; only Kelly the Makeup Artist opens the Beauty Shop.
- The Crack of All Means quest chain begins at the castle Advisors, Herga and Nez, at level 50.
- The Character Info window is wider and shorter, so it fits a 720p screen.
- Stat and mastery points are redistributed at Kaishan; the Redistribute and Reset skills buttons are gone.
- Master skills spend one class stone per cast; the scroll stays required.
- Lupine Eyes shows in the active buffs when cast outside a party.
- The village notice boards in Linate and Laiva offer their repeatable hunts again.
- Quest journals keep their line breaks instead of showing a bar.
- Placed objects such as the Ardream bridge now line up with their collision, so you stand on the planks instead of in them.
- Quest notifications share one window with previous/next paging, and Close all dismisses them together.
- Rescuing Sid / Rescuing Michelle completes by itself once the Worm is dead; the journal's Turn in button for it is gone.
Gönderi otomatik olarak birleştirildi:

Build 26 is live:

- Casting a skill cancels a walk to a clicked point instead of resuming it afterwards.
- The battle log reports skill use, success and failure, the start and end of the auto attack, and the carrying weight limit.
- The Ascetic's quiz chain begins at Veda and Tabeth in Eslant at level 62, and Zamed and Raek in Ardream ask for Atross and Riote.
- The Magic Anvil accepts daggers, one-handed swords, axes and maces.
- Seventy-nine more quests: the Fork Town story in Moradon through the Black Marketer's ambush, the Dispatch Officers' crossing to Mora Island and the Raged Captain's elixir, Guardian of 7 Keys, the Ronark Land outpost captains, the Eslant sages' hunts, the Nostrums, Hepa's crafting and Moira's chest draws, the Legendary jewellery hunts, and the Bridewell Prison punishments that release the prisoner.
- Monsters summoned by a quest or a GM appear at once for everyone nearby.
- Thirty-five more quests: Fork Town's story to its end with Amelie, Sharine's soul stone research, and the Ronark Land story chain for both nations through Ardream's towers and prisons, Eslant's demons and the war in Ronark Land.
- Quests that ask for enemy players count the kills; about ninety quest NPCs and monsters stand where retail places them, and twenty-six NPCs wear their retail models.
 
Son düzenleme:
KY Üye
KAYIT
11 Mar 2026
Mesajlar
39
Tepki puanı
48
Build 27 is live:

- Thirteen more quests: Drake's Collect Enemy Emblem, Cougar's introduction letter to the castle captains, Peace of Ardream, Peace in Ronark Land, and the Analysts' Event hunts in Ronark Land.
- Quests whose reward differs by class pay the player's own class, and quests titled per nation list under the player's own title.
- The Knight Clerks in the castles trade coins for national points, promote knight squads and raise their class.
- The Power-Up Store sells its catalog for Knight Cash in game.
- Collection Races now also ask for items to gather, run in every hunting zone on a weekly schedule with one race per zone, pay their rewards by mail when the race ends, and their window opens by itself for everyone who qualifies.
- Mail is rebuilt: mails wait for offline characters, carry coins and up to four items dragged in from the inventory, attachments are claimed from the mail, and a new mail is announced on screen.
- Game Masters get a Races tab to start, close and watch Collection Races.
- Announcements at the top of the screen use the quest progress style.
- Default keys: the quest journal moves to F10, achievements to F11 and mail to L.
- The Water Spirit's story goes on at Leia, Fina and Sara: the Ring of Spirit, the sisters' reunion, the three Onyx guardians unsealed at the temple and Draiden.
- The Great Priests produce holy water for priests.
- Cougar introduces Moradon to newcomers.
- Dark Stones stand in Ronark Land, and its fallen warriors can be healed with the Pole of Life.
- The New Hero story continues at Kaishan with the mysterious singing voice, and the Descendant of Hero bosses, the Haunga Warriors and the Trolls stand where their quests hunt them.
- Instance dungeons: Cougar's Monster Suppression Squad at level 5 and the castle captains' squad at level 46 open a private copy of the dungeon for the player and their party, closed when the last one leaves or after thirty minutes.
- The Crack of All Means runs to its end: the Crevice of Resources at Ramark, the vaccination hunts, Gater and Knoker, and the Shadow of Krowaz for Harrigan and Marcus.
- Game Masters spawn monsters that never respawn with +monsummon.
 
Üst Alt