Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Blade & Soul (https://forum.zone-game.info/forumdisplay.php?f=183)
-   -   Open source Blade & Soul Scala Server Emulator (https://forum.zone-game.info/showthread.php?t=33794)

hex1r0 27.01.2014 21:40

Open source Blade & Soul Scala Server Emulator
 
Git репозиторий:
https://github.com/HeXLaB/play.bns
Перенос еще не закончен, и продолжается прямо сейчас.

// ---------------------------------------------------------------------------------------

http://goo.gl/VwnNfK

Наш апдейтер, для тех кому нужен последний клиент работающий с нашей сборкой. Он регулярно обновляется и соответствует поддержке сервера.

По умолчанию апдейтер качает в папку .target рядом с ним.

Как указать папку куда качать клиент? Есть 2 варианта.

Вариант первый:

bns.updater.exe -t куда_качаем

Вариант второй:
* запускаем bns.updater.exe
* выключаем
* открываем config.json (должен создатся рядом с bns.updater.exe)
* заменяем .target на желаемый путь
* запускаем bns.updater.exe

VirusTotal: report

// ---------------------------------------------------------------------------------------

Итак, с чего же начать..., пожалуй начну с того что я являюсь членом закрытой команды разработки Blade & Soul. Но есть желание разрабатывать Blade & Soul как open source проект. Почему open source? Просто потому что проект само собой огромный, естественно он требует огромного количества ресурсов. Конечно можно насобирать такое количество ресурсов если есть хорошее финансирование, или программисты работают за хлеб, хм, может быть обратится к индусам(слышал они работают за копейки)? Нет, пожалуй давайте лучше создадим open source проект.

Какие у нас цели:
1) конечно же создать эмулятор Blade & Soul в всей его полноте
2) создать масштабируемую платформу
3) использовать как можно меньше shared-state
4) вывести эмуле-строение на новый уровень
5) избегать глобальных сервисов
6) для разработчиков скриптов/ДП должен быть удобное API без необходимости использовать synchronized..., Atomic..., Thread..., Unmodifiable etc
7) "just-in-time development" (термин сам придумал :) ), расширяем, пишем скрипты без необходимости перекомпилировать/перезапускать сервер. Почти как WYSIWYG :)

Что у нас уже есть:
1) рабочий сервер авторизации
2) рабочий лобби сервер
3) рабочий гейм сервер

Технологии которые мы используем:
* Scala http://www.scala-lang.org/
* Maven http://maven.apache.org/
* Akka http://akka.io/
* Slick http://slick.typesafe.com/
* Logback http://logback.qos.ch/

Общая модель:
Код:

                            игровой мир(актор систем)
                    |                                  |
          игровая карта 1 (актор)            игровая карта 2 (актор)
                  инстансы                          инстансы
            игроки, нпц, и тд                игроки, нпц, и тд


1) все игроки на одной карте/инстансе обрабатываются синхронно
** нету проблем с synchronizatin, deadlocks, memory visibility и тд
2) общение между мирами асинхронно
3) миры могут быть на одном потоке или нескольких (зависит от нагрузки и конфигурации)
4) миры могут быть на одной машине или нескольких (зависит от нагрузки и конфигурации)
5) безболезненное распределение нагрузки
6) это решение проблемы https://forum.zone-game.info/showthread.php?t=33785

ЧАВО:
1) почему Scala, а не Java, C#, С++, Go...
* vs Java - Scala это очень мощный язык, на много мощней Java и намного удобней даже Java 8, не говоря уже о Java 7-, полная совместимость с любыми либами Java
* vs Any - Akka, Slick работают лучше всего/только с Scala
* vs C# - в Scala можно сделать все что есть в C# и даже больше (речь не о Desktop Applications)
* vs C++ - "ресурсов" нужно еще больше...
* vs Go - язык слишком молодой, и я как и язык не готов брать на себя такую ответственность

2) почему open source
* open source проект это лучшее место для обучения и реализации своих идей
* если посмотреть на сферу MMODEV'а а именно Lineage II или Aion имеют огромную историю, четко видно что все именно благодаря такому проекту как
l2jserver -> l2jfree -> l2emu -> l2emu-rt -> l2...
-> Rebellion -> Phoenix -> Overworld ...
и
aionemu -> mir, aionengine, aionlighting
нехилая база, не так ли?
* каждый работающий в сфере Lineage II и Aion имеет работу благодаря выше названным проектам
* возможность каждому (без сомнения) внести свою часть в проект
* open source проекты часто оставляют вне конкуренции любые коммерческие проекты

3) сейчас снова появится 100500 команд и тру девов
это правда и с вероятностью 100% я могу сказать что так и будет, но посмотрите сами, где они сейчас? где тру девы L2 и Aionа? правильно, ушли на помойку туда откуда они и пришли...

4) с какой версией клиента мы работаем
мы работаем с последней версией Корейского клиента

5) я не умею делать это, это и это, что мне делать?
на самом деле работы хватит всем, играя на оф серверах вы можете собирать информацию как работает тот или иной механизм, вы можете анализировать трафик, вы можете собирать дампы трафика с оф серверов, вы можете писать утилиты, вы можете заниматься тестированием реализованных вещей другими людьми, вы можете модерировать тикеты, вы можете предлагать свои идеи, вы можете разбирать клиент на части и искать в нем полезную информацию, и в конце концов вы можете поднимать боевой дух команды! что очень важно!

------

Hm, how to start..., let's start with introducing myself, I'm member of closed-source Blade & Soul development team. But I have a great desire to develop Blade & Soul as open source project. Why open source? Just because project itself is huge, of course it requires huge amount of resources. Of course you can collect such a huge amount of resources if you have a lot of money or programmers work for a piece of bread :) No, let's create open source project.
Our aims:
1) of course create Blade & Soul Emulator in its completeness
2) create scalable platform
3) use shared-state as rare as possible
4) bring emulation to new level
5) avoid global services
6) for script developers/DP should be provided useful API without requirement how to use synchronized..., Atomic..., Thread..., Unmodifiable etc
7) "just-in-time development" (custom term:) ), expand, write scripts without any need to rebuild/recompile/rerun application. Almost as WYSIWYG :)

What we already have:
1) working Auth Server
2) working Lobby Server
3) working Game server

Technologies we use:
* Scala http://www.scala-lang.org/
* Maven http://maven.apache.org/
* Akka http://akka.io/
* Slick http://slick.typesafe.com/
* Logback http://logback.qos.ch/

FAQ:
1) why Scala, but Java, C#, C++, Go...
* vs Java - Scala is very powerful language, much more powerful then Java and much more flexible and useful then Java 8, without even mentioning Java 7-, plus full compatibility with all Java Libraries.
* vs Any - Akka, Slick work better/only with Scala
* vs C# - Scala can do anything C# has and even more (I'm not talking about Desktop Applications)
* vs C++ - you need even more human resources
* vs Go - language is too young, I as well as language is not ready to take such a huge responsibility

2) why open source
* open source project is the best place to study and implement your own ideas
* if you look on MMORPG development sphere you can see that Lineage II as well as Aion have huge history. You can without drought see that because of l2jserver and aionemu we have such a huge heritage. just look:
l2jserver -> l2jfree -> l2emu -> l2emu-rt -> l2...
-> Rebellion -> Phoenix -> Overworld ...
and
aionemu -> mir, aionengine, aionlighting
cool!, isn't it?
* every worker has a job because of projects mentioned above
* everyone (without dough) can contribute!
* open source projects often are leaving out of the competition any commercial projects

3) maybe a lot of fake teams may appear
this is true, this will probably happen, but look, where are they? where these "true" developers? you are right, they are eating rubbish...

4) what client do you use
we use latest Korean client

5) I don't have enough skills but I want to participate, what I can do?
truly everybody can have piece of work, you may play on Live server to collect data, how this or that works, you may analyze traffic, you may collect traffic dumps from Live servers, you may write different utils, you may help to test this or that, you may moderate tickets, you may suggest your ideas, you may analyze client and try to eject useful information, and in the end you can lift the team's morale! that is very important!

VISTALL 27.01.2014 21:46

Re: Opensource Blade & Soul Scala Server Emulator
 
Знаний хватит? Писать на скале?

JavaMan 27.01.2014 21:47

Re: Opensource Blade & Soul Scala Server Emulator
 
Господи. Опенсурс эмуль на скале. Я дожил до этого момента. Обязательно приму участие в разработке. :)

А где ссылки на сам эмуль ? :(

hex1r0 27.01.2014 22:09

Re: Opensource Blade & Soul Scala Server Emulator
 
Цитата:

Сообщение от VISTALL (Сообщение 348752)
Знаний хватит? Писать на скале?

хватит, это не первый мой проект на Scala

Цитата:

Сообщение от GabberBaby (Сообщение 348753)
Господи. Опенсурс эмуль на скале. Я дожил до этого момента. Обязательно приму участие в разработке. :)

А где ссылки на сам эмуль ? :(

эмуль выложу если будет интерес

принимайте участие в опросе

еще одно, проект изначально планирую international, любые люди с любой страны приветствуются

Добавлено через 33 минуты
модераторам: пропустил пробел в теме между Open и source

JavaMan 27.01.2014 22:44

Re: Opensource Blade & Soul Scala Server Emulator
 
Цитата:

Сообщение от hex1r0 (Сообщение 348763)
эмуль выложу если будет интерес

Я уверен, что интерес будет. Вон к л2 и аиону же есть, хотя они говно еще то. А бнс вроде обещает быть нормальной ммошкой.

Кстати, а почему используете мавен, а не сбт ?

hex1r0 27.01.2014 22:49

Re: Opensource Blade & Soul Scala Server Emulator
 
Цитата:

Сообщение от GabberBaby (Сообщение 348797)
Я уверен, что интерес будет. Вон к л2 и аиону же есть, хотя они говно еще то. А бнс вроде обещает быть нормальной ммошкой.

я не вижу особого интереса..., нужна мобилизации или все потухнет как было с терой

Цитата:

Сообщение от GabberBaby (Сообщение 348797)
Кстати, а почему используете мавен, а не сбт ?

SBT тоже рассматривается если не будет проблем с миграцией, но это мелочь, и не должна пока кого то волновать

Deazer 28.01.2014 10:18

Re: Opensource Blade & Soul Scala Server Emulator
 
http://imagizer.imageshack.us/v2/800x600q90/43/ylev.png
(с)Deazer
На хабре до сих пор гуляет xD

Dolwin 28.01.2014 10:22

Re: Opensource Blade & Soul Scala Server Emulator
 
Готов принять участие

hex1r0 28.01.2014 10:24

Re: Opensource Blade & Soul Scala Server Emulator
 
+:
Свернуть ↑Развернуть ↓

Dolwin 28.01.2014 10:27

Re: Opensource Blade & Soul Scala Server Emulator
 
Цитата:

Сообщение от hex1r0 (Сообщение 348801)
я не вижу особого интереса..., нужна мобилизации или все потухнет как было с терой



SBT тоже рассматривается если не будет проблем с миграцией, но это мелочь, и не должна пока кого то волновать

Обычно там нету никаких проблем. Единственное с чем я встретился - так это то что SBT дольше обновляет артефакты. К примеру в репах Мавена есть ActiveMQ последней версии, а в SBT только предпоследняя. Хотя я думал что у них один и тот же репо


Текущее время: 13:24. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd. Перевод: zCarot