![]() |
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) все игроки на одной карте/инстансе обрабатываются синхронно ** нету проблем с 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! |
Re: Opensource Blade & Soul Scala Server Emulator
Знаний хватит? Писать на скале?
|
Re: Opensource Blade & Soul Scala Server Emulator
Господи. Опенсурс эмуль на скале. Я дожил до этого момента. Обязательно приму участие в разработке. :)
А где ссылки на сам эмуль ? :( |
Re: Opensource Blade & Soul Scala Server Emulator
Цитата:
Цитата:
принимайте участие в опросе еще одно, проект изначально планирую international, любые люди с любой страны приветствуются Добавлено через 33 минуты модераторам: пропустил пробел в теме между Open и source |
Re: Opensource Blade & Soul Scala Server Emulator
Цитата:
Кстати, а почему используете мавен, а не сбт ? |
Re: Opensource Blade & Soul Scala Server Emulator
Цитата:
Цитата:
|
Re: Opensource Blade & Soul Scala Server Emulator
|
Re: Opensource Blade & Soul Scala Server Emulator
Готов принять участие
|
Re: Opensource Blade & Soul Scala Server Emulator
+:Развернуть ↓ |
Re: Opensource Blade & Soul Scala Server Emulator
Цитата:
|
Re: Opensource Blade & Soul Scala Server Emulator
Молчать когда есть что сказать объективно довольно глупо. Тем более знавал я проект примерно 1:1 так как ты расписал , правда на куда более лучших условий без альтруизма и потерпел он крах.
Желаю удачи , велосипедисты.Скинешь мне в ПМ ссылку на тест сервер. Правда , скажем у меня без альтруизма и велосипедов , имеется таковой :) |
Re: Opensource Blade & Soul Scala Server Emulator
Цитата:
Но! У нас есть предложение работать или НЕ работать! А не критиковать! Не нравиться - делай свой опен сорс. (Как говорится - не нравится - сделай сам)... Так что... Что есть то есть) |
Re: Opensource Blade & Soul Scala Server Emulator
Цитата:
Не понимаю реакции Дизера. Ну любишь ты каждый раз велосипедить на ооп, локах, атомиках, сиди да велосипедь. Почему не дать другим повелосипедить на функциональщине и почтовых ящиках (акка) ? |
Re: Opensource Blade & Soul Scala Server Emulator
Цитата:
instance model - это очень глубокое объяснение, в общем объясняю, потом что вижу что некоторым не понятно почему именно такая модель (упрощенное представление): Код:
игровой мир(актор систем) 1) все игроки на одной карте(инстансе обрабатываются синхронно) ** нету проблем с synchronizatin, deadlocks, memory visibility и тд 2) общение между мирами асинхронно 3) миры могут быть на одном потоке или нескольких (зависит от нагрузки) 4) миры могут быть на одной машине или нескольких (зависит от нагрузки) 5) безболезненное распределение нагрузки ..... PS: о неужели моя модель и есть та самая instance model |
Re: Opensource Blade & Soul Scala Server Emulator
Цитата:
Добавлено через 1 час 52 минуты обновил шапку, перенес туда схему, чтобы понятней было почему именно такой набор библиотек отдельное спасибо всем кто уже написал и проявил желание участвовать в проекте сейчас я занимаюсь организационной работой, переношу наши наработки и провожу некоторые изменения в АПИ, пишу систему конфигурации, скоро будет больше информации, следите за новостями |
Re: Opensource Blade & Soul Scala Server Emulator
Ах да хотел сказать. Для нашей аудитории - тоисть кодеров емулей, лучше пишите на Java. Первая причина та что - скалу мало кто знает.
И это не только про СНГ аудиторию |
Re: Opensource Blade & Soul Scala Server Emulator
первое: я 5 лет писал на Java, язык не соответствует моим требованиям
второе: проект на Java уже есть, OpenBNS третье: отличий не так уж и много (главное желание) Код:
class CreateCharacter extends BnSClientMessage { |
Re: Opensource Blade & Soul Scala Server Emulator
спорить с человеком который делает свою платформу ОЧЕНЬ актуально
познавательно и обдуманно |
Re: Opensource Blade & Soul Scala Server Emulator
цитата:Развернуть ↓Да походу многие не понимают, что на скале можно писать императивно как на явке, а не всегда херачить функциональщину. К тому же функциональный код зачастую читать легче чем ооп. |
Re: Opensource Blade & Soul Scala Server Emulator
Цитата:
|
Re: Opensource Blade & Soul Scala Server Emulator
hex1r0
Давай поговорим серйозно. С тех кто написал в тебе, пару человек знают Скалу, или хотя б могут на ней писать. Я в этот круг вхожу. Но вот Deazer, G1ta0, pchayka, L2CCCP и другие не имеют представления что такое Скала. Хоть это и похожее, но это не Java. На хорошем уровне - я скажу, что никаво тут нету кто б писал на ней. Тоисть будут танци с бубном. Танци поражают нечитаемость. Например - первой непоняткой стал выбор Maven, против SBT. Цитата:
|
Re: Opensource Blade & Soul Scala Server Emulator
Я лично со скалой столкнулся как с фоновым языком для некоторого веб-фреймворка, и мне не понравилось.
Тут верно заметили, что опен-сурс предполагает выбор некого наиболее популярного языка ради большой аудитории кодеров. Насчет того, что на l2j одни костыли... ну так это ж не java виновата, а разработчики. Большой опенсурс приносит в жертву красоту ради массовости. А так конечно масса лучей добра всякому такого рода начинанию. PS. Модель как у легенды - разработка эмуля в режиме вечного ОБТ идеально подходит. Если вы сможете создать нечто играбельное и не сбавить темпы с обновлениями - сможете купить дом на мальдивах :D |
Re: Opensource Blade & Soul Scala Server Emulator
Ребят, хватит пожалуйста уговаривать автора, что писать на скале неправильно. Однажды поняв скалу, начинаешь ее очень сильно любить и на явку возвращаться совсем не тянет.
Цитата:
Цитата:
|
Re: Opensource Blade & Soul Scala Server Emulator
Вы лучше скажите, когда можно будет скачать ваш сурс и начать грабить школьников?
Разумеется, я не хочу ничего писать. Я просто хочу нахаляву получить BnS сервер и рубить бабосы. Когда ждать, когда вы все сделаете? |
Re: Opensource Blade & Soul Scala Server Emulator
Цитата:
|
Re: Opensource Blade & Soul Scala Server Emulator
Готов помочь ^_^
|
Re: Opensource Blade & Soul Scala Server Emulator
Я правильно понял, что вы хотите разделить "игровой мир" и "игровая карта" на разные сервера и реализовать между ними синхронизацию состояний всех объектов?
|
Re: Opensource Blade & Soul Scala Server Emulator
примерно так, но не обязательно другой сервер, это может быть тот же сервер, просто другой актор ("поток"), но не исключается "переброс" перегруженных лок на другие физические сервера (это в перспективе и если будет необходимость).
к.к. модель игры сама собой представляет локации со "швами" это вполне реализуемо. трудней в таких играх как л2, где нет швов, но тоже реализуемо. |
Re: Opensource Blade & Soul Scala Server Emulator
Цитата:
|
Re: Opensource Blade & Soul Scala Server Emulator
Цитата:
|
Re: Opensource Blade & Soul Scala Server Emulator
Цитата:
Шов там есть просто его не как не увидеть - карта растянута на 32200~ и попросту ребра одной локаици пересекаются(вплотную) с другой. |
Re: Opensource Blade & Soul Scala Server Emulator
Цитата:
|
Re: Opensource Blade & Soul Scala Server Emulator
Цитата:
|
Re: Opensource Blade & Soul Scala Server Emulator
Цитата:
|
Re: Opensource Blade & Soul Scala Server Emulator
Цитата:
Давайте я обьясню. Емуль - это мелкий проект. Усложнять проект до посинения - нету смысла. Это тоже самое - что забивать мелкий гвоздь, большим молотком. |
Re: Opensource Blade & Soul Scala Server Emulator
Цитата:
Почему "кал" то? З.Ы. Вы пишите napile, Consulo и не понимаете этого. Добавлено через 7 минут Может вам стоит внимательнее читать Цитата:
|
Re: Opensource Blade & Soul Scala Server Emulator
Цитата:
P.S. Я так понимаю сервер в новом квадрате обслуживает -новых нпц(квесты), монстров, инсты и тд.) только ради разгрузки сервера это делается ? |
Re: Opensource Blade & Soul Scala Server Emulator
Цитата:
|
Re: Opensource Blade & Soul Scala Server Emulator
Цитата:
Consulo - я вообще начал, что б работать в ней. И угадай какая у меня основная IDE на компе? С напильником немного другое. Но я не начил кодить напильник на Scala, или переписывать Consulo на Xtend. С той же целью никто не пишет на Scala емули в Л2. Хоть ж - может быть два языка в проекте и будет работать. Я не усложняя свою и так сложную жизнь. |
Re: Opensource Blade & Soul Scala Server Emulator
Цитата:
Так что достаточно перехватить пакет, подгрузки следующего квадрата и в этот же момент переключить игрока на другой сервер(опять же будет небольшой фриз) - не вижу в этом проблемы. |
Текущее время: 06:01. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2023, Jelsoft Enterprises Ltd. Перевод: zCarot