Magicsea Online 124 Report post Posted October 17, 2020 (edited) Утилизация стандартных теней До После Edited October 18, 2020 by Kara Online 1 Quote Контакты: Сайт: https://magicseaonline.com/ Telegram: https://t.me/magicsea_online - здесь мы публикуем последние новости по разработке Discord: https://discord.gg/nqkv76YVbj Telegram Chat: @magicsea_chat Группа VK: https://vk.cc/chjbzd Чат VK: https://vk.cc/chjc8L YouTube: https://www.youtube.com/@magicsea_online Форум: https://forum.magicseaonline.com Служба поддержки: https://magicseaonline.com/support или https://t.me/magicsea_support База знаний: https://magicseaonline.com/knowledge Рейтинг: https://magicseaonline.com/rating Финансовая помощь проекту: https://magicseaonline.com/donate С уважением, Magicsea Team Share this post Link to post Share on other sites
Magicsea Online 124 Report post Posted October 20, 2020 Тестирование карты нормалей Quote Контакты: Сайт: https://magicseaonline.com/ Telegram: https://t.me/magicsea_online - здесь мы публикуем последние новости по разработке Discord: https://discord.gg/nqkv76YVbj Telegram Chat: @magicsea_chat Группа VK: https://vk.cc/chjbzd Чат VK: https://vk.cc/chjc8L YouTube: https://www.youtube.com/@magicsea_online Форум: https://forum.magicseaonline.com Служба поддержки: https://magicseaonline.com/support или https://t.me/magicsea_support База знаний: https://magicseaonline.com/knowledge Рейтинг: https://magicseaonline.com/rating Финансовая помощь проекту: https://magicseaonline.com/donate С уважением, Magicsea Team Share this post Link to post Share on other sites
z0nT 6 Report post Posted November 2, 2020 Тени от части сняли проблему с "плоскостью" игры, но объёма всё равно не хватает как по мне 1 Quote Share this post Link to post Share on other sites
V3ct0r 2,145 Report post Posted December 14, 2021 @Kara Online, @Kst, привет! Как у вас дела с проектом? Уже прошло более года, а от вас никаких новостей. 1 Quote Some useful links / Полезные ссылки Tips for making a topic in 'Questions & Help' / Рекомендации по созданию тем в разделе "Помощь" Server Advertising Section Rules / Правила раздела "Реклама серверов" Available e-mail domains for registration / Допустимые e-mail домены для регистрации User groups / Группы пользователей User ranks / Звания пользователей "Broken" pictures on the forum / "Битые" изображения на форуме Beware of scammers! / Осторожно, мошенники! My developments / Мои разработки Mods for client and server / Моды для клиента и сервера PKOdev.NET website for Tales of Pirates Server / PKOdev.NET веб-обвязка для сервера Пиратии I do not provide any help in private messages and outside the forum. Use 'Questions & Help' section please. Thank you for understanding! Я не оказываю какую-либо помощь в личных сообщениях и вне форума. Пожалуйста, используйте раздел "Пиратия: Помощь". Благодарю за понимание! Share this post Link to post Share on other sites
Graf 217 Report post Posted December 14, 2021 Там в процессе. Причем в активном. Предполагаю, что держут интригу) 2 Quote Share this post Link to post Share on other sites
BETEP/macs509 89 Report post Posted December 15, 2021 (edited) https://gamedev.ru/projects/forum/?id=259554 Не знаю как в плане "переделанных" механик, но широкоформат + фпс + улучшенный рендер с тенями и освещением и измененный шрифт дают достаточно приятную картинку. Edited December 15, 2021 by BETEP/macs509 1 2 Quote Share this post Link to post Share on other sites
Magicsea Online 124 Report post Posted December 15, 2021 В 14.12.2021 в 19:15, V3ct0r сказал: @Kara Online, @Kst, привет! Как у вас дела с проектом? Уже прошло более года, а от вас никаких новостей. В 14.12.2021 в 21:57, Graf сказал: Там в процессе. Причем в активном. Предполагаю, что держут интригу) 13 часов назад, BETEP/macs509 сказал: https://gamedev.ru/projects/forum/?id=259554 Не знаю как в плане "переделанных" механик, но широкоформат + фпс + улучшенный рендер с тенями и освещением и измененный шрифт дают достаточно приятную картинку. Привет! Всё супер, спасибо что спросил. Давно мы не описывали свою работу в этой теме, так как в большинстве всё описание ведём на своём закрытом форуме для коммуникации внутри команды и некоторую часть выкладываем нашим преданным игрокам (матросам). Объём работы велик, много что переписали и нужно переписать/дописать, работаем целой командой и день и ночь, практически каждый день Команда занимающая клиентской частью сейчас очень активно занимается адаптацией игры под всевозможные платформы, на данный момент имеем поддержку win x32, win x64, linux, android, macOS и сейчас в работе над IOS(отчеты техников в спойлере), должны к концу месяца закончить. Очень трудно адаптировать китайщину под кроссплатформу, там очень много мелочей которые тратят кучу времени, к примеру для адаптация под компилятор MinGW и поддержку x64 пришлось запилить свой клей между игрой и LUA, (https://github.com/Alex2772/cpp_lua_glue) так как там есть asm вставки, которые как ты знаешь на x64 совсем другие). Ещё интереснее стало когда пришлось избавиться от WinAPI, MinGW нам вообще жопу порвал, он ругается на все мелочи, если знаком с этим компилятором знаешь о чем я. Спойлер Первый запуск на Linux Первый запуск на Android Первый запуск на MacOS Первый запуск на IOS В итоге первый запуск на Linux завели спустя 2 месяца ежедневной работы, так как архитектура исходников не позволяет расширяться и нанимать новый разрабов не опасаясь сливов, пришлось разбить проект на много репозиториев, переделать модули в библиотеки (libdbc.dll/so, util.dll/so, odbc.dll/so и т.д), чтобы можно было позволить работать над отдельными модулями не имея доступы к основным исходникам. К этому всему прикрутили автоматическую компиляцию всех компонентов на билд машинах (CI CD), для билда всё перевели на CMake под это всё барахло закупили оборудование (linux тачка с 32 CPU и 256 RAM) со своей простроенной NAT архитектурой и всё это под оберткой Conan (python). Спойлер Оптимизация зависимостей Зависимости и архитектура CMake Мультибилд MindPower через Conan Компиляция Boost и стресстесты build-machine В общем очень всё тяжело, сложно, но очень интересно и планы на продукт грандиозные. Очень сильно упоролись в поддержку множества устройств, пришлось большой объём работы провести над переписью шейдеров игры под разные видеокарты intel, nvidia, амуде)). Сюда же прикрепили крутую оптимизацию GPU и CPU, нашли кучу проблем с сетевой частью, которая очень сильно тормозит и бросается с потока на поток (class Sema), игровым движком (не графическим), кучу копирования классов пришлось на ссылки перекинуть (очень крутой буст кстати дало), свои кастомные решения ThreadPool'a, обработчика событий, backtrace и крч много-много-много всего, которое требуется любому современному продукту. К этому прикрутили популярные методы улучшения графики (HBAO, динамические тени, динамическое освещение, новая технология источников света в 1 calldraw, skybox с собственной технологией динамического размыливания). Спойлер Настройка окружения Ко всему прочему большой акцент сделали на GUI, так как адаптация под мобилку потребует полностью перерисовывать интерфейс, решили полностью перейти на самописный фреймворк(https://github.com/aui-framework/aui), который даст возможность крутить интерфейс как захотим под любым углом, сейчас активно переводим все существующие элементы под него, так к примеру в августе разработали новый чат с динамическим расширением, в ноябре между адаптацией под платформы завезли новые bb коды на основе xml парсинга для сервера (цвета, выравнивания (даже по ширине текста)) Спойлер Выравнивание текста Новое окно диалога Что касается серверной части, мы в основном занимались доработками lua. Пришлось пробежаться по всем файлам и провести микро оптимизацию всех функций, наследие от китайцев и старых разработчиков оставило кучу сюрпризов. Перешли на lua 5.4 со всеми вытекающими последствиями, после чего завезли несколько профилировщиков, обнаружили уязвимые места и фиксим их. Так же закончили дробление lua на файлы, теперь сборка логически разбита на 200+ файлов по механикам или смыслам, а все функции покрыты комментариями для новых разработчиков, для расширения штата создали свою базу знаний для обучения скриптеров/геймдизов/нарративщиков. В ней мы пишем документацию по всем системам, которые у нас реализованы или находящихся в планах на реализацию. Спойлер Развернули большую компанию по введению 2 и более языков на уровне скриптов. Переработали множество квестов и наград за них для прозрачного развития игрока относительно игрового процесса. Теперь прокачка игрока построена не только на тотальном убийстве игроков, а на прохождении заданий в городах/деревнях или исторической цепочке. Проработали и продолжаем прорабатывать начало игры для игрока любого уровня - мы постепенно знакомим игрока со всеми механиками игры начиная с локации для новичков. Процесс взятия профессии мы так же перенесли на новую локацию. Игрок находится под нашим контролем первые 30-40 минут своей игры. Мы проделали большую работу по написанию новой-старой локации Остров Зимы(Северные королевства), в этой локации мы продолжили работать над ЛОРом игры и добавили множество заданий, новых существ, новые поселения и активности для игрока высокого уровня. Спойлер План локации Северные Королевства По смете выложили уже 4.255 млн на всю разработку, планируем хорошую рекламную компанию и ожидаем очень большую нагрузку из-за этого сейчас приходится продумывать и прорабатывать каждый модуль по отдельности, обвязывать его тестами. Из первой необходимости осталось доделать IOS, автоматизировать процесс деплоя, доделать патчер и лаунчер, доделать поддержку английского и передать на перевод под другие языки. В следующем году планируем открываться, в первом квартале надеемся провести локальные тесты. Тут примерно 30% проделанной работы, кучу остальной мелочи описывать смысла не вижу. Как-то так у нас дела)) 3 1 Quote Контакты: Сайт: https://magicseaonline.com/ Telegram: https://t.me/magicsea_online - здесь мы публикуем последние новости по разработке Discord: https://discord.gg/nqkv76YVbj Telegram Chat: @magicsea_chat Группа VK: https://vk.cc/chjbzd Чат VK: https://vk.cc/chjc8L YouTube: https://www.youtube.com/@magicsea_online Форум: https://forum.magicseaonline.com Служба поддержки: https://magicseaonline.com/support или https://t.me/magicsea_support База знаний: https://magicseaonline.com/knowledge Рейтинг: https://magicseaonline.com/rating Финансовая помощь проекту: https://magicseaonline.com/donate С уважением, Magicsea Team Share this post Link to post Share on other sites
Magicsea Online 124 Report post Posted December 15, 2021 В 02.11.2020 в 23:32, z0nT сказал: Тени от части сняли проблему с "плоскостью" игры, но объёма всё равно не хватает как по мне Да мы тоже обратили на это внимание и решили завезти технологию под названием HBAO, она влияет на затемнение углов физической модели в игре, очень хорошо видно на стыках между полигонами, если присматриваться то изменения практически не заметны, а в глобальном масштабе очень заметно. К сожалению это негативно сказывается на производительности и требует более новую версию API, по этим причинам мы оставили эту механику только для игроков с ПК, там для них это незаметно. Спойлер 1 1 Quote Контакты: Сайт: https://magicseaonline.com/ Telegram: https://t.me/magicsea_online - здесь мы публикуем последние новости по разработке Discord: https://discord.gg/nqkv76YVbj Telegram Chat: @magicsea_chat Группа VK: https://vk.cc/chjbzd Чат VK: https://vk.cc/chjc8L YouTube: https://www.youtube.com/@magicsea_online Форум: https://forum.magicseaonline.com Служба поддержки: https://magicseaonline.com/support или https://t.me/magicsea_support База знаний: https://magicseaonline.com/knowledge Рейтинг: https://magicseaonline.com/rating Финансовая помощь проекту: https://magicseaonline.com/donate С уважением, Magicsea Team Share this post Link to post Share on other sites
V3ct0r 2,145 Report post Posted December 17, 2021 Привет, @Kara Online! Благодарю за такой развернутый ответ, было очень интересно почитать. Проект выглядит впечатляюще, работа действительно проведена огромная! Буду ждать релиза и открытие вашего форума. И надеюсь, хотя бы изредка будете баловать нас новостями проекта. 1 Quote Some useful links / Полезные ссылки Tips for making a topic in 'Questions & Help' / Рекомендации по созданию тем в разделе "Помощь" Server Advertising Section Rules / Правила раздела "Реклама серверов" Available e-mail domains for registration / Допустимые e-mail домены для регистрации User groups / Группы пользователей User ranks / Звания пользователей "Broken" pictures on the forum / "Битые" изображения на форуме Beware of scammers! / Осторожно, мошенники! My developments / Мои разработки Mods for client and server / Моды для клиента и сервера PKOdev.NET website for Tales of Pirates Server / PKOdev.NET веб-обвязка для сервера Пиратии I do not provide any help in private messages and outside the forum. Use 'Questions & Help' section please. Thank you for understanding! Я не оказываю какую-либо помощь в личных сообщениях и вне форума. Пожалуйста, используйте раздел "Пиратия: Помощь". Благодарю за понимание! Share this post Link to post Share on other sites
Magicsea Online 124 Report post Posted December 25, 2021 В 17.12.2021 в 09:15, V3ct0r сказал: Привет, @Kara Online! Благодарю за такой развернутый ответ, было очень интересно почитать. Проект выглядит впечатляюще, работа действительно проведена огромная! Буду ждать релиза и открытие вашего форума. И надеюсь, хотя бы изредка будете баловать нас новостями проекта. Продолжаем баловать вас новостями: наконец-то успешно запустили игру на IOS(на скриншоте игра запущена на 8 iPhone). 2 1 Quote Контакты: Сайт: https://magicseaonline.com/ Telegram: https://t.me/magicsea_online - здесь мы публикуем последние новости по разработке Discord: https://discord.gg/nqkv76YVbj Telegram Chat: @magicsea_chat Группа VK: https://vk.cc/chjbzd Чат VK: https://vk.cc/chjc8L YouTube: https://www.youtube.com/@magicsea_online Форум: https://forum.magicseaonline.com Служба поддержки: https://magicseaonline.com/support или https://t.me/magicsea_support База знаний: https://magicseaonline.com/knowledge Рейтинг: https://magicseaonline.com/rating Финансовая помощь проекту: https://magicseaonline.com/donate С уважением, Magicsea Team Share this post Link to post Share on other sites
e1mer 106 Report post Posted December 25, 2021 Это IPhone XR 1 Quote Share this post Link to post Share on other sites
champ 168 Report post Posted December 26, 2021 Очень здорово! Удачи с проектом! Личная практика и опыт мне говорят, что пиратия больше нерентабельная - надеюсь, что я не прав и ваш проект окупит себя 1 Quote Share this post Link to post Share on other sites
V3ct0r 2,145 Report post Posted December 27, 2021 On 12/25/2021 at 2:48 PM, Kara Online said: Продолжаем баловать вас новостями: наконец-то успешно запустили игру на IOS(на скриншоте игра запущена на 8 iPhone). Это уже играбельная версия? Quote Some useful links / Полезные ссылки Tips for making a topic in 'Questions & Help' / Рекомендации по созданию тем в разделе "Помощь" Server Advertising Section Rules / Правила раздела "Реклама серверов" Available e-mail domains for registration / Допустимые e-mail домены для регистрации User groups / Группы пользователей User ranks / Звания пользователей "Broken" pictures on the forum / "Битые" изображения на форуме Beware of scammers! / Осторожно, мошенники! My developments / Мои разработки Mods for client and server / Моды для клиента и сервера PKOdev.NET website for Tales of Pirates Server / PKOdev.NET веб-обвязка для сервера Пиратии I do not provide any help in private messages and outside the forum. Use 'Questions & Help' section please. Thank you for understanding! Я не оказываю какую-либо помощь в личных сообщениях и вне форума. Пожалуйста, используйте раздел "Пиратия: Помощь". Благодарю за понимание! Share this post Link to post Share on other sites
Magicsea Online 124 Report post Posted December 28, 2021 (edited) В 27.12.2021 в 10:06, V3ct0r сказал: Это уже играбельная версия? Она не оптимизирована и есть небольшие проблемы с кодировкой, но играть уже можно на всех устройствах. На фотографии ниже игра представлена на платформах Win/MacOS/Android/IOS. Edited December 29, 2021 by Kara Online 1 1 Quote Контакты: Сайт: https://magicseaonline.com/ Telegram: https://t.me/magicsea_online - здесь мы публикуем последние новости по разработке Discord: https://discord.gg/nqkv76YVbj Telegram Chat: @magicsea_chat Группа VK: https://vk.cc/chjbzd Чат VK: https://vk.cc/chjc8L YouTube: https://www.youtube.com/@magicsea_online Форум: https://forum.magicseaonline.com Служба поддержки: https://magicseaonline.com/support или https://t.me/magicsea_support База знаний: https://magicseaonline.com/knowledge Рейтинг: https://magicseaonline.com/rating Финансовая помощь проекту: https://magicseaonline.com/donate С уважением, Magicsea Team Share this post Link to post Share on other sites
V3ct0r 2,145 Report post Posted August 15, 2022 Привет, @Kst, @Kara Online! Прошел уже достаточно большой промежуток времени, хочется в очередной раз поинтересоваться жизнью проекта. Есть ли новости, достижения, проблемы? Quote Some useful links / Полезные ссылки Tips for making a topic in 'Questions & Help' / Рекомендации по созданию тем в разделе "Помощь" Server Advertising Section Rules / Правила раздела "Реклама серверов" Available e-mail domains for registration / Допустимые e-mail домены для регистрации User groups / Группы пользователей User ranks / Звания пользователей "Broken" pictures on the forum / "Битые" изображения на форуме Beware of scammers! / Осторожно, мошенники! My developments / Мои разработки Mods for client and server / Моды для клиента и сервера PKOdev.NET website for Tales of Pirates Server / PKOdev.NET веб-обвязка для сервера Пиратии I do not provide any help in private messages and outside the forum. Use 'Questions & Help' section please. Thank you for understanding! Я не оказываю какую-либо помощь в личных сообщениях и вне форума. Пожалуйста, используйте раздел "Пиратия: Помощь". Благодарю за понимание! Share this post Link to post Share on other sites
Kst 47 Report post Posted September 10, 2022 В 15.08.2022 в 13:51, V3ct0r сказал: Привет, @Kst, @Kara Online! Прошел уже достаточно большой промежуток времени, хочется в очередной раз поинтересоваться жизнью проекта. Есть ли новости, достижения, проблемы? Работаем, Без преувеличения каждый день. Добрали новых участников команды, обучили работе с Пиратией. Не было ещё недели без работы. На данном портале есть участники нашего приватного дискорд канала где отслеживаются все коммиты, открыты каналы для общения, видны участники. Думаю они не дадут мне соврать. При наличии конкретного промежуточного результата будем рады поделиться. 1 1 Quote Работаем над портированием пиратии под все платформы (win, linux, android, macos, ios) We are developing the tales of pirates to all platform (win, linux, android, macos, ios) telegram: https://t.me/magicsea_online Share this post Link to post Share on other sites
ViolSea 0 Report post Posted September 12, 2022 А можно ли как то связаться с вами? Я хотел бы тоже поучаствовать в производстве, опыт большой есть) @ViolSea - телега) Quote Share this post Link to post Share on other sites
V3ct0r 2,145 Report post Posted September 13, 2022 On 9/11/2022 at 12:55 AM, Kst said: Работаем, Без преувеличения каждый день. Добрали новых участников команды, обучили работе с Пиратией. Не было ещё недели без работы. На данном портале есть участники нашего приватного дискорд канала где отслеживаются все коммиты, открыты каналы для общения, видны участники. Думаю они не дадут мне соврать. При наличии конкретного промежуточного результата будем рады поделиться. Супер! Рад, что проект живет и развивается. Буду ждать промежуточных результатов и последних новостей. Quote Some useful links / Полезные ссылки Tips for making a topic in 'Questions & Help' / Рекомендации по созданию тем в разделе "Помощь" Server Advertising Section Rules / Правила раздела "Реклама серверов" Available e-mail domains for registration / Допустимые e-mail домены для регистрации User groups / Группы пользователей User ranks / Звания пользователей "Broken" pictures on the forum / "Битые" изображения на форуме Beware of scammers! / Осторожно, мошенники! My developments / Мои разработки Mods for client and server / Моды для клиента и сервера PKOdev.NET website for Tales of Pirates Server / PKOdev.NET веб-обвязка для сервера Пиратии I do not provide any help in private messages and outside the forum. Use 'Questions & Help' section please. Thank you for understanding! Я не оказываю какую-либо помощь в личных сообщениях и вне форума. Пожалуйста, используйте раздел "Пиратия: Помощь". Благодарю за понимание! Share this post Link to post Share on other sites
Magicsea Online 124 Report post Posted November 26, 2022 (edited) Всем привет Мы чутка освободились и наконец-то пришли с новостями. Предисловие: Вот уже 2 года и 10 месяцев как мы находимся в разработке нашего продукта. Смотря сейчас на пройденный нами путь, мы понимаем, что разработка собственной игры, а тем более кроссплатформенной это не самое быстрое занятие и легкое хобби. Из-за желания сделать продукт идеальный, мы совершали ошибки, за которые уже поплатились самым ценным ресурсом человечества - временем. Если бы можно было вернуться в начало нашего пути и дать пару советов, то мы бы сэкономили как минимум целый год. Но не всё так плохо, самое важное что мы получили - это опыт, опыт который считается бесценным для нас. Позвонить разработчику на мобильный номер и будить его, потому что он в процессе спринта проспал начало работы? - Да, это про нас. Уснуть на стуле или на столе в ночное время пока вы решаете, как в этом чертовом MindPower'e реализована система эффектов? - Да и это про нас. Сломать, построить, сломать и ещё раз построить чтобы потом опять сломать? - Да, увы и это про нас. Мы предусматриваем даже неразумные вещи, которые могут произойти с продуктом в процессе его эксплуатации. Больше 5 млн рублей в нашей excel таблице сейчас в расходах, больше чем десятки тысяч коммитов в репозиториях, мы разобрали эту чертову игру на кусочки и собрали её заново, мы даже знаем кому звонить когда ошибка в графическом движке при воспроизведении анимации (поищите в исходниках "crash!!!, call"), мы уже не просто команда, а уже большая семья. Всё это время мы искали ту самую, единственную, верную тропу по которой нам необходимо идти, и мы её нашли. Ну и к чему же мы наконец-то пришли? Клиент: На данный момент мы переписываем весь функционал клиента прописанный в C++ на скриптовой язык LUA. Для чего? Скриптовой язык LUA является простым на наш взгляд, как минимум проще чем C++, средняя стоимость оплаты труда на порядок меньше, разграничение скриптовой логики и логики движка предоставляет куча безопасности, избавляет раз и навсегда от утечек памяти, скорости работы и самое важное - ускоряет процесс разработки. Множество важных элементов игрового и графического движка мы переписали с 0, такие как рендер карты, игровые эффекты, рендер в принципе. Наш девиз - Кара должна запускаться даже на кофемолке © alex2772. Мы помешаны на оптимизации и не позволяем себе потратить лишние 10 миллисекунд в UI потоке, поэтому всё что можно мы стараемся вытащить в другие потоки без частого использования мьютексов. И конечно, мы понимаем, что какой-то наш забугорный клиент может иметь телефон на какой-то 4.x версии android’a с ограниченным количество CPU и предусматриваем это. Хочется отметить важный факт, что мы делаем клиент игры, который способен работать на 1.38 версии клиента, а с некоторыми доработками и на 2.0. И не исключаем возможность тестирования нашего клиента совместно с руководством и игроками существующих серверов по их желанию. CI/CD: Мы очень активно пользуемся технологией CI и CD. Каждый раз когда разработчик делает коммит в репозиторий, то клиент игры автоматически собирается под все платформы и обновляется на всех платформах. Чтобы залить обновление для клиента, нам достаточно 1 коммита. Сервер: GateServer, GroupServer и AccountServer переписали с нуля, GameServer пока фулл рефактор скриптов. Все сервера переписали под CMake и адаптировали под работу в Linux, затянули их под технологию Docker и сразу же под технологию Kubernetes. Lua игрового мира: Все вы знаете, как выглядит легаси код сервера, как в нем не понятно что к чему - все навалено в один файл и покрыто китайскими комментариями с битой кодировкой. А если копнуть дальше, то можно заметить в коде очень много проблем с глобальными переменными, а также все это сопровождается алгоритмическими ошибками. Когда к нам в команду пришел опытный луа-разработчик, он сказал: “это все говно нужно переписывать, как оно работало - я хз”. Теперь у нас ООП в Луа, мы переписываем легаси архитектуры, к примеру вот так сейчас выглядит обычный диалог с НПС. Теперь не нужно продумывать сложную логику из взаимосвязи страниц, даже разработчики с низким уровнем знания lua разбираются с этим быстрее, чем это было раньше. “У вас много магических чисел - магические числа — это плохо”, он не исправил это, но теперь весь код наполнен комментариями по всем магическим числам, по которым можно дать комментарии. Большинство функций, поведение которых не тривиально описаны и задокументированы. Пример: Вы знаете самые нагруженные функции в луа на вашем сервере? Вы знаете, как их найти? Вот и мы тоже не знали, а теперь в нашем арсенале 3 профилировщика, которые покажут нам, где мы просаживаемся по производительности при росте онлайна. А где же мы берем онлайн, у нас на сайте все время 4% нагруженности было… Наш луа код на сервере покрыт комментариями на 90%, а все что можно шаблонизировать - шаблонизировано или продолжает шаблонизироваться: Кстати, на скриншоте можно еще увидеть новое логирование, которое вываливает traceback и систему мультиязычности сервера. Вы знаете сколько игрок прошел заданий и сколько денег он потратил на лечение? Вот и мы тоже не знали, но добавили больше 100 различных метрик, которые можем анализировать и выводить в красивые и информативные графики. Перебалансированные квесты по наградам и уровням. Теперь мы можем решать чем заниматься игрокам на сервере: - прокачка через убийство мобов: повышаем рейты на убийство опыта, понижаем рейты на получение опыта с заданий, - прокачка через историческую цепочку: понижаем рейты за убийство мобов, понижаем опыт за обычные сайд задания, повышаем за историческую цепочку. При всех этих изменениях мы продолжаем поддерживать старую, добрую Пиратию и в любой момент все наши изменения баланса/экономики за 10 минут откатываются обратно, кроме квестов, наверное. Это все благодаря одному конфигурационному файлу, который отвечает за константные переменные, а также за активацию тех или иных систем. Каждой системе отдельный файл, каждой системе отдельный флаг отключения - мы разбили весь луа код из 10-15 файлов в 250+ и это позволяет лучше понимать работу систем, что снижает порог вхождения новых разработчиков. Наш репозиторий сервера насчитывает более 2500 коммитов, свою руку к коду приложило около 20 специалистов, различной направленности. А через наши файлы в целом прошло больше 60 человек: они рисовали иконки и картинки, писали новые задания, рефакторили старый код, писали новые системы, писали музыку и звуки, изменяли карты, страдали и наслаждались результатом. С каждым разом описывая наши достижения мы хотим поделиться всем, но пока мы писали данный пост мы понимаем что всё описать невозможно, по этому оставим тут самые интересные и важные на наш взгляд новости. Edited November 27, 2022 by Kara Online 4 1 1 Quote Контакты: Сайт: https://magicseaonline.com/ Telegram: https://t.me/magicsea_online - здесь мы публикуем последние новости по разработке Discord: https://discord.gg/nqkv76YVbj Telegram Chat: @magicsea_chat Группа VK: https://vk.cc/chjbzd Чат VK: https://vk.cc/chjc8L YouTube: https://www.youtube.com/@magicsea_online Форум: https://forum.magicseaonline.com Служба поддержки: https://magicseaonline.com/support или https://t.me/magicsea_support База знаний: https://magicseaonline.com/knowledge Рейтинг: https://magicseaonline.com/rating Финансовая помощь проекту: https://magicseaonline.com/donate С уважением, Magicsea Team Share this post Link to post Share on other sites
Magicsea Online 124 Report post Posted November 29, 2022 Время от времени мы публикуем интересные моменты при работе со старым кодом игры, новости разработки и другие интересные фишки в нашем телеграмм канале https://vk.cc/chjcxR Присоединяйтесь, задавайте вопросы и учитывайте в своих проектах! 1 1 Quote Контакты: Сайт: https://magicseaonline.com/ Telegram: https://t.me/magicsea_online - здесь мы публикуем последние новости по разработке Discord: https://discord.gg/nqkv76YVbj Telegram Chat: @magicsea_chat Группа VK: https://vk.cc/chjbzd Чат VK: https://vk.cc/chjc8L YouTube: https://www.youtube.com/@magicsea_online Форум: https://forum.magicseaonline.com Служба поддержки: https://magicseaonline.com/support или https://t.me/magicsea_support База знаний: https://magicseaonline.com/knowledge Рейтинг: https://magicseaonline.com/rating Финансовая помощь проекту: https://magicseaonline.com/donate С уважением, Magicsea Team Share this post Link to post Share on other sites
Magicsea Online 124 Report post Posted December 3, 2022 Интересный факт. Менеджер ресурсов - норма для любого высоконагруженного приложения, в нём хранятся все ресурсы необходимые для работы приложения, так называемый кэш. Когда мы начали работать над эффектами, мы задумались о создании собственного менеджера ресурсов, который будет работать в многопоточном режиме для улучшения производительности. Пока мы анализировали код старого менеджера ресурсов, мы обратили внимание на две интересные реализации: 1. Менеджер ресурсов загружает все необходимые ресурсы в оперативную память при запуске игры и помещает в список std::vector. Это примерно 700 элементов. 2. При создании любого элемента в игре (эффект/объект/персонаж) менеджер ресурсов бегает по списку всех элементов внутри себя и вытаскивает необходимый. Если с первым пунктом это не сильно трогает, т.к лишние 200-300 МБ ОЗУ не является сейчас проблемой для современных ПК, то второй пункт открывает глаза на причины просадок при хороший замесах. С персонажами всё понятно, зашли в зону видимости, создали и работаем с ним, а вот с эффектами становится очень интересно. Каждый удар меча по цели создаёт на цели эффект хита, чем больше скорость атаки тем больше создаётся эффектов на цели, каждый раз при этом мы бегаем по списку из 700 элементов ищем подходящий и отдаём из менеджера ресурсов. Для нас это было очень забавно. Использовать ассоциативный контейнер (std::map) вместо обычного списка (std::vector) - это переписать от силы 10 строчек, может дать серьёзный прирост производительности при замесах. Еще больше интересных фактов вы можете узнать в нашем телеграмм канале https://vk.cc/chjcxR 1 Quote Контакты: Сайт: https://magicseaonline.com/ Telegram: https://t.me/magicsea_online - здесь мы публикуем последние новости по разработке Discord: https://discord.gg/nqkv76YVbj Telegram Chat: @magicsea_chat Группа VK: https://vk.cc/chjbzd Чат VK: https://vk.cc/chjc8L YouTube: https://www.youtube.com/@magicsea_online Форум: https://forum.magicseaonline.com Служба поддержки: https://magicseaonline.com/support или https://t.me/magicsea_support База знаний: https://magicseaonline.com/knowledge Рейтинг: https://magicseaonline.com/rating Финансовая помощь проекту: https://magicseaonline.com/donate С уважением, Magicsea Team Share this post Link to post Share on other sites
V3ct0r 2,145 Report post Posted December 3, 2022 Привет, @Kara Online! Подписался на ваш канал, буду следить за новостями. Спасибо! Также перенес тему в раздел Новости и объявления. 11 hours ago, Kara Online said: Для нас это было очень забавно. Использовать ассоциативный контейнер (std::map) вместо обычного списка (std::vector) - это переписать от силы 10 строчек, может дать серьёзный прирост производительности при замесах. У бинарного дерева (std::map) сложность поиска O(log n). Вероятно, поскольку не требуется упорядоченная последовательность и не добавляются новые элементы, в вашем случае выгоднее использовать хэш-таблицу (std::unordered_map), у которой сложность поиска в среднем случае составляет O(1). Интерфейс такой же, как и у std::map. Так же увидел такой фрагмент кода: 1) Почему используется сишная функция strcmp() вместо std::string::operator==()? if (_vecPartName[n] == pszName) { ... } 2) В данном примере не критично, но если вместо n будет итератор, то лучше использовать префиксный оператор инкремента, чтобы избежать лишнего копирования. 3) size_t n(0), ИМХО, довольно экзотический синтаксис инициализации, обычно используют запись size_t n = 0. Для простых типов обе записи идентичны. Quote Some useful links / Полезные ссылки Tips for making a topic in 'Questions & Help' / Рекомендации по созданию тем в разделе "Помощь" Server Advertising Section Rules / Правила раздела "Реклама серверов" Available e-mail domains for registration / Допустимые e-mail домены для регистрации User groups / Группы пользователей User ranks / Звания пользователей "Broken" pictures on the forum / "Битые" изображения на форуме Beware of scammers! / Осторожно, мошенники! My developments / Мои разработки Mods for client and server / Моды для клиента и сервера PKOdev.NET website for Tales of Pirates Server / PKOdev.NET веб-обвязка для сервера Пиратии I do not provide any help in private messages and outside the forum. Use 'Questions & Help' section please. Thank you for understanding! Я не оказываю какую-либо помощь в личных сообщениях и вне форума. Пожалуйста, используйте раздел "Пиратия: Помощь". Благодарю за понимание! Share this post Link to post Share on other sites
Magicsea Online 124 Report post Posted December 3, 2022 7 минут назад, V3ct0r сказал: Привет, @Kara Online! Подписался на ваш канал, буду следить за новостями. Спасибо! Также перенес тему в раздел Новости и объявления. У бинарного дерева (std::map) сложность поиска O(log n). Вероятно, поскольку не требуется упорядоченная последовательность и не добавляются новые элементы, в вашем случае выгоднее использовать хэш-таблицу (std::unordered_map), у которой сложность поиска в среднем случае составляет O(1). Интерфейс такой же, как и у std::map. Так же увидел такой фрагмент кода: 1) Почему используется сишная функция strcmp() вместо std::string::operator==()? if (_vecPartName[n] == pszName) { ... } 2) В данном примере не критично, но если вместо n будет итератор, то лучше использовать префиксный оператор инкремента, чтобы избежать лишнего копирования. 3) size_t n(0), ИМХО, довольно экзотический синтаксис инициализации, обычно используют запись size_t n = 0. Для простых типов обе записи идентичны. Данный скриншот является вырезкой из оригинального кода игры, мы больше не используем этот менеджер ресурсов. Просто обращаем внимание разработчиков на те или иные моменты в легаси. 1 Quote Контакты: Сайт: https://magicseaonline.com/ Telegram: https://t.me/magicsea_online - здесь мы публикуем последние новости по разработке Discord: https://discord.gg/nqkv76YVbj Telegram Chat: @magicsea_chat Группа VK: https://vk.cc/chjbzd Чат VK: https://vk.cc/chjc8L YouTube: https://www.youtube.com/@magicsea_online Форум: https://forum.magicseaonline.com Служба поддержки: https://magicseaonline.com/support или https://t.me/magicsea_support База знаний: https://magicseaonline.com/knowledge Рейтинг: https://magicseaonline.com/rating Финансовая помощь проекту: https://magicseaonline.com/donate С уважением, Magicsea Team Share this post Link to post Share on other sites
Kst 47 Report post Posted December 4, 2022 В 03.12.2022 в 15:26, V3ct0r сказал: Привет, @Kara Online! Подписался на ваш канал, буду следить за новостями. Спасибо! Также перенес тему в раздел Новости и объявления. У бинарного дерева (std::map) сложность поиска O(log n). Вероятно, поскольку не требуется упорядоченная последовательность и не добавляются новые элементы, в вашем случае выгоднее использовать хэш-таблицу (std::unordered_map), у которой сложность поиска в среднем случае составляет O(1). Интерфейс такой же, как и у std::map. Так же увидел такой фрагмент кода: 1) Почему используется сишная функция strcmp() вместо std::string::operator==()? if (_vecPartName[n] == pszName) { ... } 2) В данном примере не критично, но если вместо n будет итератор, то лучше использовать префиксный оператор инкремента, чтобы избежать лишнего копирования. 3) size_t n(0), ИМХО, довольно экзотический синтаксис инициализации, обычно используют запись size_t n = 0. Для простых типов обе записи идентичны. Предлагаю данные замечания внести в публичный репозиторий https://github.com/PKO-Community-Sources/ClientSide-Sources/blob/bebbf1b7ea45de3ba56b137b4a4cc3e90a1e28d0/Engine/sdk/src/MPResManger.cpp#L1959 Quote Работаем над портированием пиратии под все платформы (win, linux, android, macos, ios) We are developing the tales of pirates to all platform (win, linux, android, macos, ios) telegram: https://t.me/magicsea_online Share this post Link to post Share on other sites
V3ct0r 2,145 Report post Posted December 5, 2022 On 12/4/2022 at 3:47 PM, Kst said: Предлагаю данные замечания внести в публичный репозиторий https://github.com/PKO-Community-Sources/ClientSide-Sources/blob/bebbf1b7ea45de3ba56b137b4a4cc3e90a1e28d0/Engine/sdk/src/MPResManger.cpp#L1959 У меня есть вопрос касательно активности данного репозитория: последний коммит был сделан 2 года назад. Думаю, отпишусь в теме по исходникам на форуме. Quote Some useful links / Полезные ссылки Tips for making a topic in 'Questions & Help' / Рекомендации по созданию тем в разделе "Помощь" Server Advertising Section Rules / Правила раздела "Реклама серверов" Available e-mail domains for registration / Допустимые e-mail домены для регистрации User groups / Группы пользователей User ranks / Звания пользователей "Broken" pictures on the forum / "Битые" изображения на форуме Beware of scammers! / Осторожно, мошенники! My developments / Мои разработки Mods for client and server / Моды для клиента и сервера PKOdev.NET website for Tales of Pirates Server / PKOdev.NET веб-обвязка для сервера Пиратии I do not provide any help in private messages and outside the forum. Use 'Questions & Help' section please. Thank you for understanding! Я не оказываю какую-либо помощь в личных сообщениях и вне форума. Пожалуйста, используйте раздел "Пиратия: Помощь". Благодарю за понимание! Share this post Link to post Share on other sites