https://github.com/artemijan/l2shablya
Lineage 2 game server emulator written in rust
https://github.com/artemijan/l2shablya
emulator gamedev interlude l2 lineage2 rust
Last synced: about 1 year ago
JSON representation
Lineage 2 game server emulator written in rust
- Host: GitHub
- URL: https://github.com/artemijan/l2shablya
- Owner: artemijan
- License: other
- Created: 2024-10-09T18:02:06.000Z (almost 2 years ago)
- Default Branch: master
- Last Pushed: 2025-04-13T22:30:29.000Z (over 1 year ago)
- Last Synced: 2025-05-07T18:08:38.857Z (about 1 year ago)
- Topics: emulator, gamedev, interlude, l2, lineage2, rust
- Language: Rust
- Homepage:
- Size: 11.3 MB
- Stars: 4
- Watchers: 5
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.MD
- License: LiCENSE.MD
Awesome Lists containing this project
README
# L2Shablya βοΈ πΊπ¦

*Inspired by the swift, light, and deadly Kozak weapon, L2Shablya embodies precision and speed in every line of code.*
**Disclaimer**: *The name "Shablya" reflects the project's focus on performance and elegance, paying homage to the
iconic Kozak weapon. It is used here metaphorically and holds no association with real-world conflict or violence.*
Current state: `Under development`
About: This implementation is based on L2J, e.g. I reimplement everything in rust from java + I optimize things,
like DB denormalization for performance boost, removing unnecessary operations and so on.
## Status
- [](https://codecov.io/gh/artemijan/L2Shablya)
- [](https://github.com/artemijan/L2Shablya/actions/workflows/rust.yml)
Always remember "Having tests opens doors to refactoring! More tests - more doors are open."
## Ready features:
- [x] Login server
- [x] Login process + auto create accounts
- [x] Game server registration
- [x] Kicking player
- [x] CMD login
- [ ] EBPF filtering of banned IPs
- [x] Game server
- [x] register o login server
- [x] player packet encryption support (shifting key)
- [x] player can select game server
- [x] player can create char
- [x] player can delete char
- [x] player can restore char
- [x] player can select char
- [ ] player can enter the game world
- [ ] player can move
- [ ] player can select target
- [ ] player can send chat messages
- ..... a lot more
## The client
[Here](https://drive.google.com/file/d/1sXMoENX7YuhqKTYSjJN8RfHMgJ6Yeu6s/view?usp=share_link) is google drive link where
you can download client. In order to play, you have to change ip in L2.ini file.
## Local deployment
- create .env file
```bash
DATABASE_URL=sqlite://local.sqlite?mode=rwc
```
- install cargo and rust
- install sea-orm-cli
```bash
cargo install sea-orm-cli
```
- run migrations
```bash
sea-orm-cli migrate up
```
- run login server
```bahs
cargo run -p login
```
- run game server
```bash
cargo run -p game
```