finfan

Выдающийся
Местный
Сообщения
95
Розыгрыши
0
Репутация
565
Реакции
153
Баллы
1 335
Хроники
  1. Interlude
Доброго времени суток друзья!
Есть на руках эмулятор, который разрабатывался с 2014 года.
На данный момент эмулятор разрабатывается в закрытом режиме. Мы ищем 5 человек, которые получат его бесплатно в замен на фидбэк (тестинг).

Язык: Java, Groovy

Основные фишки:
  • Реализация GameWorld'ов (аналог инстансов)
  • Новый движок зон
  • Шаблонизатор velocity для билда ваших любимых HTML
  • КаГ на оффе спавн
  • ACP из коробки
  • Божественный чат фильтр
  • Вменяемые формулы (не все xD)
  • DROP каГ на оффе
  • Поддержка fence
  • Dependly inject
  • Божественный рефактор global AI (вменяемый)
  • Поддержка модулей (extensions)
  • Существенное улучшение сетевого потока (позволяет держать больше игроков с наименьшими лагами у клиента)
И т.д. т.к. вы всё равно не получите исходы, вам не надо знать больше ;D!

Дальнейшие планы:
  • Полный рефактор работы с базой и подключение хибернейт (люди смогут безболезненно поменять базу данных с MySQL на Postgres или любую другую)
  • Реврайт всех дверей, т.к. сейчас они не очень лол ;D
  • Замки/Форты и их осады
  • Party система
  • Кланы
  • Олимпиада (вынос её в отдельный модуль)
  • REST API

Модульные (то что можно подключать и отключать - как плагины) проекты:
  • Олимпиада
  • "Combo Breaker!"
  • "Пикачу я выбираю тебя!"
  • "Вызов дерзости"
  • "Hunter X Hunter"
  • "Dynamic Environment"
  • "C.H.A.S.E.R."
  • "Reaper"
  • "Fairy Arcana"
P.S. Чуть не забыл, ВСЕ фидбэкеры будут получать обновления БЕСПЛАТНО, БЕЗ РЕГИСТРАЦИИ и СМС.
 

Я тоже за
 
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
Доброго времени суток друзья!
Есть на руках эмулятор, который разрабатывался с 2014 года.
На данный момент эмулятор разрабатывается в закрытом режиме. Мы ищем 5 человек, которые получат его бесплатно в замен на фидбэк (тестинг).

Язык: Java, Groovy

Основные фишки:
  • Реализация GameWorld'ов (аналог инстансов)
  • Новый движок зон
  • Шаблонизатор velocity для билда ваших любимых HTML
  • КаГ на оффе спавн
  • ACP из коробки
  • Божественный чат фильтр
  • Вменяемые формулы (не все xD)
  • DROP каГ на оффе
  • Поддержка fence
  • Dependly inject
  • Божественный рефактор global AI (вменяемый)
  • Поддержка модулей (extensions)
  • Существенное улучшение сетевого потока (позволяет держать больше игроков с наименьшими лагами у клиента)
И т.д. т.к. вы всё равно не получите исходы, вам не надо знать больше ;D!

Дальнейшие планы:
  • Полный рефактор работы с базой и подключение хибернейт (люди смогут безболезненно поменять базу данных с MySQL на Postgres или любую другую)
  • Реврайт всех дверей, т.к. сейчас они не очень лол ;D
  • Замки/Форты и их осады
  • Party система
  • Кланы
  • Олимпиада (вынос её в отдельный модуль)
  • REST API

Модульные (то что можно подключать и отключать - как плагины) проекты:
  • Олимпиада
  • "Combo Breaker!"
  • "Пикачу я выбираю тебя!"
  • "Вызов дерзости"
  • "Hunter X Hunter"
  • "Dynamic Environment"
  • "C.H.A.S.E.R."
  • "Reaper"
  • "Fairy Arcana"
P.S. Чуть не забыл, ВСЕ фидбэкеры будут получать обновления БЕСПЛАТНО, БЕЗ РЕГИСТРАЦИИ и СМС.
Давайте,посмотрим что к чему )
 
Шаблонизатор velocity для билда ваших любимых HTML
И какой профит в л2? Правильно, никакого.
Полный рефактор работы с базой и подключение хибернейт (люди смогут безболезненно поменять базу данных с MySQL на Postgres или любую другую)
Серьезно? А ничего, что 2 различные субд и безболезненно не получиться поменять. Даже если представим нашу субд в виде постгресса, то мы не сможем добавить колонку в середину или еще куда то, только в конец. Используем домены, для типов данных. Типы данных, процедуры, функции на языке pl/pgsql, тригеры, последовательности. И решили перейти под mysql и почти всё отвалилось. Где без болезненный переход? Затачивается под определенную субд с её возможностями. Во вторых внедрять хибернейт в л2...
 
  • Мне нравится
Реакции: gvb
Я тоже кратенько:
Velocity нужен чтобы собирать html страницу по выполнению условий с Java объектами. У вас вряд ли будет что то сложнее if else. Это немного избыточно.
Спавн и дроп как на оффе собран руками или спарсен или взят откуда ?
В чем конкретнее заключалось улучшение сетевого потока? От каких рассылок избавились? В чем была оптимизация?
И последнее насчёт хибернейта. Он тяжелый, он представляет объекты бд как Java объекты(а в л2 уже есть Java объекты, и они просто сериализуются для сохранения в бд), у него не тривиальное апи (если вам нужна какая то логика кроме Селекта из таблицы)

По всему остальному нужно смотреть на работоспособность)
 
  • Мне нравится
Реакции: kick
Да ладно, че вы пристали, поковыряться же дают в сборке. Мне поэтому и стало интересно посмотреть (Судя по описанию) что они там за 5 лет навертели, хоть ИЛ я и ненавижу и как игрок, и как немного приближенный в сфере администрации - продажные кланы с зергом, играющие за 40к в неделю, кучу паков, которые доширачят на фанпее и подрывают экономику, тупые админы, которые не могут прикрутить даже шарный ЛГ и их дюпают пакетками. БрррРРРРррр, не ИЛ, а сборище динозавров и школобизнесменов
 
Так же посмотрел бы если это возможно, сугубо для себя не для проекта
 
@AndragorAndragor верифицированный пользователь., так никто не налетал, а суть в решение задачи различным образом. Да много полезного есть, но тут и не очень благоприятного для эмуля л2.
И последнее насчёт хибернейта. Он тяжелый, он представляет объекты бд как Java объекты(а в л2 уже есть Java объекты, и они просто сериализуются для сохранения в бд), у него не тривиальное апи (если вам нужна какая то логика кроме Селекта из таблицы)
Типичная orm система, которая ей соответствует и реализует паттерн ar или dm. Если идет dm, то конечно более сложное приложение и вся бизнес логика находится в Repository, но все равно он тяжелый для эмуля л2. Да и к тому же 90% запросов в эмулях л2 это типичный CRUD, хотя даже не CRUD. А обычный SELECT, INSERT/REPLACE и в редких случаях DELETE
 
@AndragorAndragor верифицированный пользователь., так никто не налетал, а суть в решение задачи различным образом. Да много полезного есть, но тут и не очень благоприятного для эмуля л2.

Типичная orm система, которая ей соответствует и реализует паттерн ar или dm. Если идет dm, то конечно более сложное приложение и вся бизнес логика находится в Repository, но все равно он тяжелый для эмуля л2. Да и к тому же 90% запросов в эмулях л2 это типичный CRUD, хотя даже не CRUD. А обычный SELECT, INSERT/REPLACE и в редких случаях DELETE
Что такое ar и dm?
Какие ещё могут быть запросы, если не CRUD? oO Если ты о DDL операциях, то в хибернейте с ними ещё сложнее, чем с DML
 
@Rozhek, Active Record и Data Mapper. В любом эмули нету полных CRUD запросов к бд, максимум вставки и чтения.
 
Господи, на каждый пук скоро свой паттерн проектирования будет, чтобы вообще не думать)
C - insert, R - select, U - update, D - delete. Ну первые 3 точно постоянно используются )
 
И какой профит в л2? Правильно, никакого.
Лучше говнокодить
for(...) if(...) string += part.replaceAll(Holder.getDataByPew(pew).getOtherData())
Отличный подход, респектос. 👍


Velocity нужен чтобы собирать html страницу по выполнению условий с Java объектами. У вас вряд ли будет что то сложнее if else. Это немного избыточно.
Ну почему же? В свое время я вполне эффективно использовал Velocity в том же L2J: циклы, условия, редиректы, макросы и все такое. Очень удобно и красиво. В обычных диалогах оно не требуется, но во всем остальном - очень даже упрощает жизнь.


Серьезно? А ничего, что 2 различные субд и безболезненно не получиться поменять. Даже если представим нашу субд в виде постгресса, то мы не сможем добавить колонку в середину или еще куда то, только в конец. Используем домены, для типов данных. Типы данных, процедуры, функции на языке pl/pgsql, тригеры, последовательности. И решили перейти под mysql и почти всё отвалилось. Где без болезненный переход? Затачивается под определенную субд с её возможностями. Во вторых внедрять хибернейт в л2...
При использовании миграций того же хибернейта и указании диалекта для него, никаких проблем не будет, потому-что он сам сгенерирует схему для БД. Единственное с чем могут быть проблемы - процедуры. Триггеры в формате L2J - нахрен не нужны.
И в чем проблема внедрения ORM или вообще автоматического маппинга на объекты? То что не осилили? Или то что больше нравится JDBC? Бывает, че.


@finfan жги эмуль ;D
 
Ну сам концепт orm, насколько я понимаю, подразумевает взаимодействие записей бд в форме объектов. Это удобно когда вы что то делаете с новостями на сайте, перекидываете деньги на счете и подобные операции, у которых основной способ хранения в бд и взаимодействие с данными в бд.
Но например в л2 таскать десериализованного плеера из бд по всем классам, взаимодействовать им с генерируемыми по формулам данными и сохранять раз в 5 минут - бред же.
Конечно хибернейт предоставляет удобства по разворачиванию среды в бд, но это может делать и FlyWay. Думаете не будете писать запросы? Чтобы правильно переписать простой запрос с парой джойнов, фильтром и группировкой в аннотациях хибернейта придётся пердеть несколько часов ну либо просто подложить запрос)
Для предметов он действительно был бы полезен, и основная идея прекрасно вписывается в функции по работе с ними. Но в хибернейт нужно хорошо разбираться, обьекты Обновляются в разных потоках, сеансы открываются и закрываются, объекты выгружаются и снова инициализируются из бд. Нужно все понимать, иначе утоните в ексепшнах. По моему многовато для работы с одной таблицей.
 
Чтобы правильно переписать простой запрос с парой джойнов, фильтром и группировкой в аннотациях хибернейта придётся пердеть несколько часов ну либо просто подложить запрос)
О каких "пару часов" идёт речь? XD PQL в помощь, если не выставлено явной связи между объектами. И вообще, зачем имея релляционную БД не использовать связи и делать джоины?

обьекты Обновляются в разных потоках, сеансы открываются и закрываются, объекты выгружаются и снова инициализируются из бд
Там все прекрасно настраивается, касательно сессий. И там вполне поддерживается thread-local сессии. С текущей трединговой моделью L2J - могут быть непредсказуемые вещи - базару ноль, но это все вполне нормально правится, если знать об этом.
Объекты загружаются только по запросу (включая lazy загрузку на ссылаемые объекты) - не страшно. В реалиях L2J lazy загрузка не особо требуется, а касательно дерганья из репозитория - это вполне контроллируемый процесс и никто это не будет делать каждые 5 минут XD
 
это может делать и FlyWay
Это тот самый FlyWay по которому почти ноль документации и в котором нужно смотреть код? Тот самый, который падает по NPE если каталог БД указан через URL? Знаю такой:)
 
Назад
Сверху Снизу