Jump to content

nyarum

Advanced members
  • Content Count

    25
  • Joined

  • Last visited

  • Days Won

    4

Everything posted by nyarum

  1. Noterius - это проект игрового эмулятора, который будет являться НЕ точной копией официального сервера. Почему "НЕ точной"? Потому что нет объективного смысла делать полное подобие PKO, TOP, Piratia и XHDW. Остальное будет на усмотрение других разработчиков, делаете форки и разрабатываете эмулятор под себя, там будут все удобства для этого. На правах рекламы и развития опен-сорса - https://github.com/Nyarum/noterius Канал в телеграме - t.me/noterius Скоро будет полное README по запуску и текущему прогрессу в виде issue. Из предисловия, что было раньше (Хоть это и называлось new generation architecture): - Хреновая работа с базой данных - Ниочемная работа с логикой и смешивание это с парсером пакетов - Никакого заложенного будущего расширения эмулятора - Множество багов связанных с обработкой пакетов - Производительность страдающая из-за самой основы Что уже есть сейчас: - Полностью акторная модель, построенная при помощи protoactor в Go - Все главные сетевые элементы в виде акторов (ConnectReader, PacketReader, PacketSender) умеют обрабатывать себя и данные в 5 конкурентных потоков, если того потребует нагрузка. - Правильная обработка пакетов - Использование интерфейсов везде, где их можно внедрить для удобного unit тестирования - Работа с базой данных построенная на обычном query билдере - Правильное пробрасывание всех корневых элементов, без использования лишних аллокаций в коде Какие акторы существуют уже сейчас: ConnectReader - принимает на себя чистые байты, проводит их по network пекеджу для разбора пакетов и отправляет девственный пакет с разобранными филдами в PacketReader PacketReader - принимает на себя чистые структуры, свитчит по ним и в зависимости от структуры делает дальнейшие действия. Минимум логики - больше роутинга в главные акторы. PacketSender - пушилка пакетов в коннект, с процедурой маршалинга структуры в байтики. Player - вся логическая обработка игрового аккаунта и персонажа. World - обработка самого мира, как следует из названия, будет так же следить за всеми передвижениями игроков, от чего в будущем он может делать различные действия на свое усмотрение. Welcome to the new world, guys :3
  2. I think this topic may be closed because I started a rework on noterius emulator - https://github.com/Nyarum/noterius @V3ct0rcan you do it, please?
  3. В рамках данного топика официально закрываю данную тему для создания новой, по noterius, как в былые теплые времена MD. Реворк эмулятора уже начался, скоро подъедет и документация с прогрессом. @V3ct0rcan you do it, please?
  4. Хоть немного поздновато даю ответ. В общем, я остановился на варианте продолжать noterius, так как спустя некоторое время поступило ко мне несколько сообщений, что люди хотели бы продолжать на чем-то готовом, нежели писать свои эмуляторы на основе облегченного протокола.
  5. Still not, currently status of the project - it's just the description. As I'll start to develop this I'll give details for you and other people.
  6. Of course, people can help via issues or I can give permissions to repo if someone help with that.
  7. Если кто-либо захочет написать эмулятор, но не хочет иметь дело с разбором протокола, даже по выложенным исходникам, но вполне способен написать логику любого типа, пусть даже в целях не будет реализовать подобие Пиратии, то он получит полную доку, что требуется отправить на этот прокси сервер и какой ответ придет на запрос. 1. Для нас скрывается протокол Пиратии в чистом виде, получаем знакомый всем формат JSON, к примеру и описание каждого пакета для взаимодействия с клиентом. 2. Не нужно будет реализовывать никаких собственных сериализаторов и делать мегатонну вызовов, можно тупо сосредоточиться на логике в своем эмуляторе, сериализаторов для каждого языка с горочкой хватает. 3. По фану, мне за все время, как я отошел от разработки - написало около 8-и человек с интересом к эмулятору в том или ином виде
  8. This project isn't emulator but it's part of all emulators like a holy help Go is the really beautiful language for network tools. Maybe, I'll start work on next emulator with this project but still I don't know.
  9. So, a few time ago I had "ingrysty" nickname, now I have nickname Nyarum. I created a second version of PKO emulator - https://github.com/Nyarum/noterius but it wasn't finished because the development can be a long time without any results, so thereby I got a very good experience and got academic goals. But all this bullshit, go to the main theme. Secret - I called it "galactic transport" because the project about hiding hard requests to client from server, instead you can use mainstream protocols like (JSON, Protobuf, etc..). Above description can be not very clear for you but it needed for next things. 1. There is a server, it used like a proxy. 2. It accepts the mainstream protocols on input and you have a documentation about you can send to that. 3. This proxy does the main work with PKO protocol and sends a result to the client. It very similar to the official gate server but does optimization many things. 4. For example that I mean under "optimizations" - packet about moves, by the standard you must send to the client every move with one coordinate, with the Secret you can send one packet where you set coordinates FROM and TO, the Secret will make the other work with separate it to many packets for client. Goals: 1. Write an emulator in the one face hard, your work always will be about fixing bugs and improvements. 2. You'll get a new style messaging with the client without an undefined protocol and fields. 3. I really hope that it will start a new era with emulators on PKO. Questions, discussions, suggestions - I'll glad to hear it.
  10. Контекст эмулятора почти не имеет смысла обсуждать
  11. Собсно, я когда-то некоторым известный ingrysty, сейчас я на постоянной основе Nyarum. Написал вторую версию эмулятора по Пиратии - https://github.com/Nyarum/noterius, но так и не закончил в связи с тем, что разработка могла идти бесконечно, а нужный опыт и академические цели были достигнуты. Но насрать на эту всю воду, перейдем к сути. Secret - назвал я этот галактический транспорт так, потому что проект о сокрытии тяжелых запросов к клиенту, используя различные вариации стандартных видов сериализации (JSON, Protobuf, etc..) Выше описание, как можно предположить, сразу и не понятно. Оно само собой, но нужно для понимания следующих этапов. 1. Есть сервер, используется как прокси. 2. Он принимает на вход различные популярные сериализации и задокументирован на то, что ему можно отсылать и что вы будете получать в ответах. 3. Этот прокси, секретным образом делает всю магию с протоколом Пиратии и отдает клиенту. Эдакий гейт сервер, только он будет оптимизировать многие из запросов к клиенту в упрощенный вид. 4. Чтобы дать понимание под упрощенным видом - приведу пакетную составляющую шагов в Пиратии. Клиент хочет от сервера получить каждую единицу координаты в один пакет. В свою очередь вы будете посылать из своих разработок данному гейту только ОТ и ДО, он сделает свое дело по разбивке шагов на несколько сотен пакетов и отправит клиенту. Цели: 1. Писать эмулятор тяжко, трудно и в одно рыло она будет бесконечным исправлением багов и доработкой. 2. Вы получите современный вид общения с клиентом Пиратии на очень упрощенном языке данных, не нужные филды будут скрываться от вас. 3. Надеюсь начнется новая эра серверов в виде собственных эмуляторов, ваше дело далее заботиться о логике. Пишите хоть на PHP. Вопросы, обсуждения, предложения - приветствуются. English version -
×
×
  • Create New...