Пишу свою сборку с нуля

PowerPuffLove

Путник
Участник
Сообщения
19
Розыгрыши
0
Репутация
0
Реакции
2
Баллы
3
Хроники
  1. Interlude
Исходники
Присутствуют
Сборка
Vasyan.NET
Всем привет! Я вот уже 12 лет занимаюсь кодингом пять дней в неделю по 8 часов в день и решил попробовать ради эксперимента написать свою сборку.
В качестве ЯП буду использовать C# на .NET фреймворке. В помощь себе беру Claude c подпиской за 200 баксов и этот форум как источник костылей и велосипедов, информации о багах/дюпах. В качестве интереса готов ответить на все ваши вопросы и поделиться всей инфой по архитектуре ядра. Буду признателен если вы задушите меня техническими вопросами и будете меня критиковать на каждом шагу, чтобы я смог использовать вашу критику для улучшения будущей сборки. По поводу раздачи исходников я пока не решил - на данный момент исходники показывать не буду, но возможно после получения того или иного результата, поменяю свое мнение.

По плану в MVP хочу сделать серверную сборку для IL хроник, но с возможностью дальнейших расширений под любые будущие хроники. Я понимаю, что механики сильно меняются от хроники к хронике, некоторые кардинально, это будет учтено в архитектуре ядра. Такую дельту между хрониками планирую реализовывать в виде подключаемых и отключаемых плагинов.

Проанализировав код расшаренных Java сборок, я сделал вывод, что многопоточная архитектура с блокировками несет большой риск дэдлоков и гонок, приводящих к дюпам, поэтому я думаю сделать сборку на тиковой системе. Условно положим тик сервера = 100мс.

За время одного тика сервер буферизирует все приложенные к нему пакеты и в конце тика делает транзакционную запись в БД. Таким образом, если пользователь выкинул что-то из инвентаря на пол, операция удалить предмет из инвентаря и положить предмет на пол будет атомарна и выполнена в транзакции - если что-то пошло не так, то откатятся оба действия.

Также тиковый подход исключит любые гонки и блокировки потоков, но не запретит параллельную обработку буфера. В текущих ява сборках при PVP удар игрока по другому игроку может обработаться сервером не последовательно во времени, а по порядку, который определила ОС при обработке потоков. Мне кажется это нифига не честно :)

Тиковый подход строго сортирует пакеты по времени прихода на сервер и буфер гарантирует обработку в нужном порядке - если ты ударил соперника раньше, то и сервер обработает это по-честному.

Также я откажусь от использования ООП для работы с игровыми объектами, чтобы исключить лишние аллокации и не загружать сборщик мусора. Но об этом я расскажу в следующем посте, если соберу позитивный фидбек от вас. Спасибо, что прочитали.
 
А откуда мне взять референсные значения? Информацию о механиках и формулах, и т.п. Я её собираю сразу изо всех источников и делаю сравнение. Почему мне не должно быть все равно на то, на каком языке написана логика того или иного скилла или механики? Мне надо воспроизвести ожидаемое поведение, а не ограничения какого-то языка.
Ты серьезно? Потрать силы и возможности на психиатра. Грек тупо построил систему что бы ты мог запускать любые хроники на яве. Он тупо раз за разом все автоматически переделывает под новую яву. Назови мне хоть одну сборку на базе сервера от него, которая работает? Приносит баблишко?
Простой пример.
Чел тут спрашивал что у него при точке камушки гигантов не работают. Я иду к Мобиусу, расписываю все и вся. Коды, все, пакеты. Ответ, ты крут продолжай в этом направлении и реши мою проблему. Он в душе не ебет что делает. Понятия не имеет. Поверхостно знает как всех опрокинуть и все.
А ты исходы берешь у него а не у L2jServer? С ума сошел?
Сообщение объединено:
Не обращай внимания, тут такой форум, что 90% начинаний сталкиваются с критикой и "наездами".
Если ты и правда разработчик с опытом, и хочешь в это поковыряться, то, как сказали выше, возьми на разбор PTS модели, которые есть в свободном доступе. Посмотри, как это изначально задумывалось, как реализовали они - и поищи более интересные решения, например. Понятное дело, что это скорее всего для себя, хобби - но смотреть на оригинальный продукт лучше, чем на пережеванный кусок пиццы (мобиус или что-то подобное).
Сам, когда начал ковырять PTS, механики, аишки, и то, что мне было интересно, сильно удивился - что несмотря на то, что это в свободном доступе - используют это далеко не все, возможно потому, что это им и не нужно.
Ну и это игра в долгую, почти не монетизируемая, поэтому - подумай хорошеенько - а надо ли тебе это вообще?) А так, удачи в ковырянии)
Все с этим форумом в порядке, вон whiteo ктото тронул, раскритиковал? Чел реально запилил кое что. Рассуждать о супер мега сервере от исходников Мобиуса это вообще в край.
 
Последнее редактирование:
Вайбкодер ты хотел сказать
называть программистами людей которые никогда не писали все своими руками - у меня язык не поворачивается
был только такой мем в поиске к сожалению.
 
Назад
Сверху Снизу