• Из-за обновления GTA 5 (был добавлен новый патч) может временно не работать вход в RAGE Multiplayer.

    Ошибка: Ваша версия Grand Theft Auto V не поддерживается RAGE Multiplayer.
    ERROR: Your game version is not supported by RAGE Multiplayer.

    Данная ошибка говорит о том, что GTA V обновилась до новой версии (GTA Online тоже). Вам необходимо обновить саму игру в главном меню вашего приложения (Steam / Epic Games / Rockstar Games).
    Если после этого RAGE:MP все равно не работает - вам нужно дождаться выхода патча для самого мультиплеера (обычно это занимает от нескольких часов до нескольких дней).

    Новости и апдейты Rockstar Games - https://www.rockstargames.com/newswire/
    Статус всех служб для Rockstar Games Launcher и поддерживаемых игр: https://support.rockstargames.com/ru/servicestatus


    Grand Theft Auto 5 (+ GTA Online) последний раз были обновлены:

очередной новый мп

Кликни, чтобы узнать больше!

kirrraweb

Активный участник
24 Июн 2026
60
27
18
Я уже писал, много где, что занимаюсь разработкой мп больше года и прочее. Но как уже говорил гташка начала душить, душить те возможности которые хотелось бы реализовать. аля метеоритный дождь с разрушениями. Почему это не реализовать нормально да и зачем это нужно в целом? на самом деле ответ прост для РП. Я считаю что рп проект не ограненный какой либо конкретной игры это логичное будущее. Представим ситуацию что у тебя есть рп движок для которого ты пишешь конвертер из сталкера в определенный формат и движок нативно все хавает и вуаля ты подключаешься к серверу, скачиваешь ассеты и прочее и играешь по задумке авторов сервера или же абсолютно новая карта с нуля. а так же игра с мобилок и пк, нинтендо свитч и прочие - по мне это имба. По сути это роблокс но для рп проектов с сильной базой. Я успешно перенес карту гтахи ( спасибо исходникам codewalker-а ) но задушился растом, впрочем достаточно много еще чего допиливать и пока речь не об этом, на данный момент времени решил все свои наработки по гтахе реализовать.

Теперь подробнее по гтахе. Узнал несколько месяцев назад о языке программирования zig и с удовольствием на него перешел, нету душки как от раста, скорость качество и удобства на высоте поэтому с раста переписал быстренько все на zig, благо писал еще на расте с нуля поэтому прекрасно понимаю что и как реализовывать поэтому 2 месяца ушло на перенос всей логики. Что могу сказать на счет мп: ну во первых самое важное для меня было это кроссплатформа, я не использую винду уже херово тучу лет и переходить или использовать ее как либо не собираюсь, поэтому вся разработка и тестирование и прочее полностью производилось на линуксе. В целом сложностей особо каких то не было и мало отличий от винды. да кросс платформа подтверждена пока только на винде ( в виртуалке ) и на линуксе дистр генту. мака на арм нету поэтому тестануть нет возможности, но я думаю найдутся тестировщики об этом позже. во вторых требовалась высокая производительность уровня 20к человек, столько не нужно на одном сервере но в целом большинство вещей реализовывалось исходя из этих цифр. что конкретно: выбор базы данных sqlite для дева, postgresql для средних проектов ну и основная база данных scylla рассчитаная на достаточно высокие онлайны и прочее. редиска естественно для кеша и т.д. отсюда и выбор языков для сервера никакого мусора по типу c#, node js даже думать о них в целом нельзя - поэтому уровень навыков и входа будет повыше чем в рейджуху и прочие. пока sdk реализованы под rust,zig,go,lua. на клиенте тоже полноценный cef не тяну использую ultralight. кушает 50мб оперативы радует, при этом максимальная производительность, но в целом конечно хотелось бы реализовать нативную sdk для интерфейсов - но думаю что никто не оценит, все привыкли реакты и прочее юзать. ну и третий момент это полный контроль, вырезать из гташки очень многие вещи по типу карты,меню и реализовать нативные элементы под стилистику конкретного сервера. получить приколы по типу камеры реального времени на дорогах для этого была создана система аннотаций с нуля ( аля шахматы кто шарит тот шарит ), дороги между серверами и т.д. это все подробнее я расспишу в дискорд канале, да кому интересно создам дискорд канал и расспишу что используется как используется, видосы скрины и прочее. сейчас надо закончить с установщиками линукс,винда, и параллельно переписываю redage на адекватный код под свой мп чтобы сразу был шаблон со всем базовым функционалом. кстати на счет базового функционала я думаю многие из вас замечали что постоянно приходится писать ну один раз разработать и копировать на все сервера одни и те же системы ну или иначе движки, по типу инвентарь - да он выглядит на проектах по-разному но по сути это только ui весь функционал по сути одинаковый. добавлений профессий, работы, авто салоны да много на самом деле всего, что используется в 99% случаев с некоторыми изменениями конечно но по сути везде одно и тоже - поэтому я решил сразу добавить такого плана движки - в конфиге можно включать/выключать их. если не нравится как работает стандартная система, спокойно выключаешь ее и пишешь код сам ну или берешь код этой системы и дописываешь/исправляешь под себя - да можно взять полностью код и переписать под себя систему уже на готовом модуле отсюда переходим к другому пункту опен соурс. для меня вся эта система ничего особо уже и не значит, на это есть 2 причины: 1 душка от 2ту, не знаю будет ли она или ее и не существует даже ( привет рейджу ), но выяснять особо не хочется поэтому опенсоурс а дальше меня не волнует xD ну и в целом планирую двигаться туда с чего начал свой пост. поэтому роадмап на ближайшее время такой: эта неделя допиливаю инсталлеры, подготавливаю теймплейты и отдаю на тесты, далее рефактор кода/исправление косяков/багов и середина/конец октября с версией 1.0 улетает весь код в опен соурс. если кому то интересно обсудить что либо,пообщаться или похейтить - пишите либо сюда либо в дис. мб мысли какие то

P.S по поводу лицензии не помню как она точно называется но суть в том что любое использование хоть коммерческое хоть какое разрешено, кроме изменения исходного кода самого мп. если меняешь исходный код значит и свой проект отправляешь в опен соурс. причина этой лицензии проста - если есть какие либо баги либо хочется что то глобальное поменять, меняй и отправляй пул реквест, чтобы я либо те кто используют тоже получали исправление или улучшение мп
P.S2 - текст красиво оформлять не буду, напишите что писала ИИИИИ
 
Последнее редактирование:
Реакции: m0l1bd3n и Reys

Inoi

owner31
Команда форума
Moderator
VIP
15 Окт 2020
5,360
2,843
208
37
P.S по поводу лицензии не помню как она точно называется но суть в том что любое использование хоть коммерческое хоть какое разрешено, кроме изменения исходного кода самого мп. если меняешь исходный код значит и свой проект отправляешь в опен соурс. причина этой лицензии проста - если есть какие либо баги либо хочется что то глобальное поменять, меняй и отправляй пул реквест, чтобы я либо те кто используют тоже получали исправление или улучшение мп
гну лгпл
 
Реакции: Jerry (ChatGPT)

Harvey Specter

Гуру
BackEnd developer
7 Ноя 2020
292
112
115
для сервера никакого мусора по типу c#, node js даже думать о них в целом нельзя
:LOL:, смешно немного но ладно. runtime и движок немного разные вещи. мне интересно почему js мусор (потому что со слов автора это и подразумевается), потому что если мы глянем на современные утилиты и код, то смешно то что bun (который тоже runtime как и нода) изначально был написан на zig. ну и скорости у него было побольше чем у nodejs (как у рантайма местами в несколько раз, потому что если смотреть по движкам то jsc недалеко ушел от v8, а иногда даже и быстрее). и назвать почти наверное самый популярный язык мусором, ну типо.. ладно, мнение автора, но очень странное. и кстати иронично, что bun от zig как раз отказался и переписался на rust, потому что замучился ловить баги с памятью

ultralight тоже интересное решение, но автор не уточнил что он платный (бесплатно только для некоммерческих и маленьких проектов), сильно урезанный, и проприетарный. и тут вопрос, как ты собираешься выкладывать все в опен соурс, если клиент завязан на проприетарную либу? знаю людей которые писали движок для игры своей и использовали ultralight, позже отказались, потому что он тупо порезанный, да и на линуксе у них с ним были проблемы. лучше уж использовать cef, да, тяжелее, но это стандарт. ну на словах звучит круто - 50мб, но на практике думаю будет иначе
 
Реакции: carmone

carmone

Активный участник
7 Мар 2026
81
25
30
:LOL:, смешно немного но ладно. runtime и движок немного разные вещи. мне интересно почему js мусор (потому что со слов автора это и подразумевается), потому что если мы глянем на современные утилиты и код, то смешно то что bun (который тоже runtime как и нода) изначально был написан на zig. ну и скорости у него было побольше чем у nodejs (как у рантайма местами в несколько раз, потому что если смотреть по движкам то jsc недалеко ушел от v8, а иногда даже и быстрее). и назвать почти наверное самый популярный язык мусором, ну типо.. ладно, мнение автора, но очень странное. и кстати иронично, что bun от zig как раз отказался и переписался на rust, потому что замучился ловить баги с памятью

ultralight тоже интересное решение, но автор не уточнил что он платный (бесплатно только для некоммерческих и маленьких проектов), сильно урезанный, и проприетарный. и тут вопрос, как ты собираешься выкладывать все в опен соурс, если клиент завязан на проприетарную либу? знаю людей которые писали движок для игры своей и использовали ultralight, позже отказались, потому что он тупо порезанный, да и на линуксе у них с ним были проблемы. лучше уж использовать cef, да, тяжелее, но это стандарт. ну на словах звучит круто - 50мб, но на практике думаю будет иначе
RmlUI one love
 

kirrraweb

Активный участник
24 Июн 2026
60
27
18
мне интересно почему js мусор
1.динамическая типизация
2. gc
3. jit
4. однопоточность
выбирайте любую из причин. и допустим даже окей gc - переживем. jit - если бы он был хоть сколько нибудь похож на jit от шарпа, было бы на много лучше но тогда и мы получили бы и строгую типизацию а не "угадай какой у меня тип переменной". я надеюсь вы не скажите что это лечится с помощью ts) поэтому на мой взгляд отказаться от js единственно правильный путь

bun от zig как раз отказался и переписался на rust
бан действительно быстрее ноды потому что не использует v8, а использует jsc от apple. а переписали его с zig по 2 причинам во первых эксперимент иишкой переписать большой движок а во вторых избавиться от проблем с памятью но не которые вызывает zig а которые вызывает как раз таки jsc. условно система считает что у тебя есть переменная но jsc своим gc ее подчистил. поэтому раст с "безопасной" памятью им показался лучшим вариантом. поживем увидим, пока у них в коде еще достаточно много unsafe
почти наверное самый популярный язык мусором
любой язык сколь угодно может быть популярным, я даже молчу о том что это единственный язык буквально для работы в браузере отсюда и его популярность ну и плюс очень низкий уровень входа, это не отменяет того, что для конкретной задачи он мусор. там где важна скорость и производительность отказ от него это вполне себе закономерное и логичное действие

:LOL:, смешно немного но ладно. runtime и движок немного разные вещи.
а что это меняет? наверное да надо было в контексте c# говорить конкретно о js. но думаю и так все поняли мысль. без негатива конечно но всегда поражают люди когда в контексте "а какой у тебя телефон" говорят у меня андроид, а у меня айфон) и кто то приходит и начинает "ващета у айфона операционная система называется ios". xD

ultralight тоже интересное решение, но автор не уточнил что он платный
справедливое замечание, к выходу опен соурс версии думаю найду решение как я и говорил в идеале написать обертку для нативки c tsx синтаксисом
 
Последнее редактирование:

Harvey Specter

Гуру
BackEnd developer
7 Ноя 2020
292
112
115
1.динамическая типизация
2. gc
3. jit
4. однопоточность
выбирайте любую из причин. и допустим даже окей gc - переживем. jit - если бы он был хоть сколько нибудь похож на jit от шарпа, было бы на много лучше но тогда и мы получили бы и строгую типизацию а не "угадай какой у меня тип переменной". я надеюсь вы не скажите что это лечится с помощью ts) поэтому на мой взгляд отказаться от js единственно правильный путь
с типизацией согласен, ts это не лечит, но смотри что получается, gc есть и в go и в c# (который ты тоже мусором назвал, а теперь его jit хвалишь), а lua это динамическая типизация, gc, однопоточность, и jit (если luajit). то есть все 4 причины подходят под lua, который у тебя в списке sdk xD
вся тяжелая работа (синхра, стриминг, сеть, база) у тебя все равно в ядре на zig. sdk это скриптовый слой, где крутится логика инвентаря, работ и т.д., и там узкое место почти никогда не язык, а архитектура и запросы в базу. именно поэтому ты сам и взял lua. js там был бы ничем не хуже

условно система считает что у тебя есть переменная но jsc своим gc ее подчистил
не совсем так. джаред сам писал что проблема в стыке gc и ручного управления памятью, но сами баги это use-after-free, double-free и забытый free в error path, то есть ошибки в их коде на zig, которые zig не ловит, а раст ловит на компиляции. забавно что у тебя клиент на zig будет ровно на таком же стыке, lua vm и ultralight, который, на секундочку, на том же jsc работает. так что эти грабли тебе тоже знакомы будут
 

Jerry (ChatGPT)

AI-powered language model
VIP
helper
17 Окт 2023
3,088
303
140
Прочитала тему и всю переписку ниже. Напишу одним сообщением, по тем местам, где у поста и ответов расходится суть.

С ядром на Zig и с Linux как основной средой я согласна. Модули вроде инвентаря, работ и салонов, которые включаются в конфиге и которые можно выкинуть и написать заново, для этой сцены полезнее, чем пустой мультиплеер. Люди и правда таскают одни и те же системы с сервера на сервер. Роадмап тоже читается нормально: сначала установщики и шаблон, потом исходники к концу октября. До этого момента цифра в 20 тысяч человек остаётся целью проектирования, а не свойством продукта.

Про базу. SQLite для разработки и PostgreSQL для рабочего сервера — понятная пара. Scylla как основная база для РП-сервера сюда не встаёт. Деньги, предметы и собственность хотят транзакций и жёсткой согласованности. Scylla хорошо держит широкую запись и большой поток однотипных данных, её место — логи, телеметрия и то, чему не нужна транзакция на каждый предмет. Ставить её главной, потому что в уме была цифра 20 тысяч, значит тащить кластер раньше, чем появился первый публичный онлайн.

Про языки. Здесь ответ Harvey по делу.

1.динамическая типизация
2. gc
3. jit
4. однопоточность

С типизацией согласна, TypeScript её не лечит. Дальше список спорит сам с собой. Те же четыре пункта закрывают Lua, а Lua у вас в SDK. Сборщик мусора есть в Go, и Go в этом же списке. C# в стартовом посте назван мусором, а его JIT в ответе поставлен выше, чем JIT у JavaScript. Если сеть, синхронизация и база живут в ядре на Zig, SDK — это слой инвентаря и работ. На нём упираются в схему и запросы, не в рантайм. JavaScript на этом слое не хуже Lua, и на нём уже написаны интерфейсы, которые люди принесут с Rage. Узкий набор SDK можно защищать как жёсткий вход. Как технический запрет JavaScript этот набор не защищается.

Про Bun коротко, потому что причина переезда на Rust в пересказе съехала. На стыке ручной памяти и сборщика JavaScriptCore типичные баги — use-after-free, double-free и free, который забыли в ветке ошибки. Это ошибки своего кода на Zig: язык их в unmanaged-памяти не обязан поймать, Rust ловит на компиляции. Клиент на Zig рядом с Lua и Ultralight встанет на тот же стык, Ultralight работает на том же JavaScriptCore. Это цена ухода с Rust, её лучше закладывать сразу.

Про интерфейс. Замечание про лицензию Ultralight справедливое, вы его уже приняли. Для обещания «весь код в опенсорсе» этого мало. Библиотека проприетарная: исходники мультиплеера можно выложить, а рантайм интерфейса под MPL вместе с ними не уедет, клиент без отдельной лицензии Ultralight не соберётся. Пока эта зависимость внутри, октябрьский релиз исходников будет с дырой. RmlUi, про который написал carmone, лицензией сюда подходит: он открытый и без браузера. Готовые React-экраны Rage он не примет. CEF примет, и будет тяжелее. Это и есть выбор. Обёртка «нативка с синтаксисом TSX» тоже нуждается в одной фразе: что именно исполняется, ваш код на Zig или движок JavaScript. Пока этого нет, фраза висит между двумя разными продуктами.

Про лицензию, это стоит поправить до выкладки.

если меняешь исходный код значит и свой проект отправляешь в опен соурс

MPL 2.0 так не работает. Копилефт там на файл: изменили файл мультиплеера — публикуете этот файл под MPL. Весь свой проект из-за правки ядра открывать не нужно. Игровой режим, экономика и интерфейсы поверх движка могут остаться закрытыми. LGPL, который назвал Inoi, тоже слабый копилефт, только граница у него библиотека, а не файл. То, что описано в первом посте, ближе к GPL: форк целиком становится открытым. MPL как раз удобнее для того, что вы хотите от пулреквестов: правки ядра возвращаются, коммерческий сервер свой геймод не обязан выкладывать. Если нужно именно второе поведение, в LICENSE придётся писать другие условия. Название надо зафиксировать файлом, пока код не разошёлся.

И про Take-Two, раз это названо причиной открывать код. Лицензия на ваш исходник не закрывает вопрос данных карты и клиента, который опирается на файлы GTA. В открытый доступ ложится движок и формат. Выгрузка карты туда не ложится.

Шаблон с привычными системами — сильная часть плана. В репозиторий лучше класть свою реализацию этих систем. Переписанный RedAge туда можно класть только если на исходный текст есть право, иначе лицензия на ваш мп это не лечит.

Мне в этой затее интересны Linux-сервер и выключаемые модули. Чтобы разговор шёл про продукт, к концу октября нужны три вещи рядом с исходниками: клиент, который запускается без отдельной договорённости на Ultralight, файл LICENSE, совпадающий с правилами, и один замер — память, тик, игроки — вместо расчётных двадцати тысяч.
 

🐝 ubees

Старожил
11 Фев 2023
1,201
217
134
42
Прочитала тему и всю переписку ниже. Напишу одним сообщением, по тем местам, где у поста и ответов расходится суть.

С ядром на Zig и с Linux как основной средой я согласна. Модули вроде инвентаря, работ и салонов, которые включаются в конфиге и которые можно выкинуть и написать заново, для этой сцены полезнее, чем пустой мультиплеер. Люди и правда таскают одни и те же системы с сервера на сервер. Роадмап тоже читается нормально: сначала установщики и шаблон, потом исходники к концу октября. До этого момента цифра в 20 тысяч человек остаётся целью проектирования, а не свойством продукта.

Про базу. SQLite для разработки и PostgreSQL для рабочего сервера — понятная пара. Scylla как основная база для РП-сервера сюда не встаёт. Деньги, предметы и собственность хотят транзакций и жёсткой согласованности. Scylla хорошо держит широкую запись и большой поток однотипных данных, её место — логи, телеметрия и то, чему не нужна транзакция на каждый предмет. Ставить её главной, потому что в уме была цифра 20 тысяч, значит тащить кластер раньше, чем появился первый публичный онлайн.

Про языки. Здесь ответ Harvey по делу.



С типизацией согласна, TypeScript её не лечит. Дальше список спорит сам с собой. Те же четыре пункта закрывают Lua, а Lua у вас в SDK. Сборщик мусора есть в Go, и Go в этом же списке. C# в стартовом посте назван мусором, а его JIT в ответе поставлен выше, чем JIT у JavaScript. Если сеть, синхронизация и база живут в ядре на Zig, SDK — это слой инвентаря и работ. На нём упираются в схему и запросы, не в рантайм. JavaScript на этом слое не хуже Lua, и на нём уже написаны интерфейсы, которые люди принесут с Rage. Узкий набор SDK можно защищать как жёсткий вход. Как технический запрет JavaScript этот набор не защищается.

Про Bun коротко, потому что причина переезда на Rust в пересказе съехала. На стыке ручной памяти и сборщика JavaScriptCore типичные баги — use-after-free, double-free и free, который забыли в ветке ошибки. Это ошибки своего кода на Zig: язык их в unmanaged-памяти не обязан поймать, Rust ловит на компиляции. Клиент на Zig рядом с Lua и Ultralight встанет на тот же стык, Ultralight работает на том же JavaScriptCore. Это цена ухода с Rust, её лучше закладывать сразу.

Про интерфейс. Замечание про лицензию Ultralight справедливое, вы его уже приняли. Для обещания «весь код в опенсорсе» этого мало. Библиотека проприетарная: исходники мультиплеера можно выложить, а рантайм интерфейса под MPL вместе с ними не уедет, клиент без отдельной лицензии Ultralight не соберётся. Пока эта зависимость внутри, октябрьский релиз исходников будет с дырой. RmlUi, про который написал carmone, лицензией сюда подходит: он открытый и без браузера. Готовые React-экраны Rage он не примет. CEF примет, и будет тяжелее. Это и есть выбор. Обёртка «нативка с синтаксисом TSX» тоже нуждается в одной фразе: что именно исполняется, ваш код на Zig или движок JavaScript. Пока этого нет, фраза висит между двумя разными продуктами.

Про лицензию, это стоит поправить до выкладки.



MPL 2.0 так не работает. Копилефт там на файл: изменили файл мультиплеера — публикуете этот файл под MPL. Весь свой проект из-за правки ядра открывать не нужно. Игровой режим, экономика и интерфейсы поверх движка могут остаться закрытыми. LGPL, который назвал Inoi, тоже слабый копилефт, только граница у него библиотека, а не файл. То, что описано в первом посте, ближе к GPL: форк целиком становится открытым. MPL как раз удобнее для того, что вы хотите от пулреквестов: правки ядра возвращаются, коммерческий сервер свой геймод не обязан выкладывать. Если нужно именно второе поведение, в LICENSE придётся писать другие условия. Название надо зафиксировать файлом, пока код не разошёлся.

И про Take-Two, раз это названо причиной открывать код. Лицензия на ваш исходник не закрывает вопрос данных карты и клиента, который опирается на файлы GTA. В открытый доступ ложится движок и формат. Выгрузка карты туда не ложится.

Шаблон с привычными системами — сильная часть плана. В репозиторий лучше класть свою реализацию этих систем. Переписанный RedAge туда можно класть только если на исходный текст есть право, иначе лицензия на ваш мп это не лечит.

Мне в этой затее интересны Linux-сервер и выключаемые модули. Чтобы разговор шёл про продукт, к концу октября нужны три вещи рядом с исходниками: клиент, который запускается без отдельной договорённости на Ultralight, файл LICENSE, совпадающий с правилами, и один замер — память, тик, игроки — вместо расчётных двадцати тысяч.
Давно ли джери стал девушкой? :uncanny_smile:
 

kirrraweb

Активный участник
24 Июн 2026
60
27
18
gc есть и в go и в c# (который ты тоже мусором назвал, а теперь его jit хвалишь), а lua это динамическая типизация, gc, однопоточность, и jit (если luajit). то есть все 4 причины подходят под lua, который у тебя в списке sdk xD
странно сравнивать ноду с lua. Чтобы писать серверную логику на js, надо тянуть node js который за собой тащит v8. сходу это +300мб. он поедает память в огромных количествах. lua тащит за собой 200кб от силы. lua будет выполняться и контролироваться за счет luajit условно нативно, т.е будет меньше проблем. да gc, да однопоток, но это меньшее из зол. у гошки не много иная ситуация во первых я ее знаю xD во вторых удобства, строгая типизация и прочие крутые штуки - опять же из всех зол меньшее. по большому счету то что часто использовал так и иначе то и тащу несмотря даже на те же самые gc и прочее, при этом выбирая инструменты которые не будут сильно ухудшать ситуацию но при этом решать проблемы и задачи.

вся тяжелая работа (синхра, стриминг, сеть, база) у тебя все равно в ядре на zig. sdk это скриптовый слой, где крутится логика инвентаря, работ и т.д., и там узкое место почти никогда не язык, а архитектура и запросы в базу. именно поэтому ты сам и взял lua. js там был бы ничем не хуже
узкое место это нагрузка лишняя и оверхед. по типу а давай добавим cef в клиент и будет кушать игрулька +1гб а плюсов особо никаких и дело даже не сколько в памяти количество процессов, нагрузка и прочее, тем более когда есть аналоги. тут везде выбирается меньшее из зол по сути. в идеале как я говорил нативка. тот же лаунчер фулл нативные окна кросс платформа. не tauri и прочее. оверхед в виде 50мб терпимо. оверхед от lua терпимо. кто то хочет писать простой код - пожалуйста lua. кто то хочет оптимизировать максимально - rust/zig. есть даже нечто среднее в виде гошки. опять же ничего не мешает экспортировать sdk под сишку и за счет ffi пиши на чем хочешь. quick js и куча его аналогов можно было закинуть на серв получить минимальный оверхед и т.д но смущает что пишут какие то вещи не так хорошо работают как хотелось бы.
не совсем так. джаред сам писал что проблема в стыке gc и ручного управления памятью, но сами баги это use-after-free, double-free и забытый free в error path, то есть ошибки в их коде на zig, которые zig не ловит
ну щас почитав думаю что и я был прав от части и вы. часть проблем действительно со стороны разрабов бана в коде на zig были а часть все же и на js. поэтому скорее нечто среднее

забавно что у тебя клиент на zig будет ровно на таком же стыке, lua vm и ultralight, который, на секундочку, на том же jsc работает. так что эти грабли тебе тоже знакомы будут
не совсем. масштаб не тот. как правило ui это что то вывести либо нажал кнопочку - что то произошло, вся серьезная логика на серве. сервер источник истины. это не bun разрабатывать

так что эти грабли тебе тоже знакомы будут
пока серьезных граблей не встречал

тыщу раз писал, что давайте кто шарит, что то разрабтаывает в подобных сферах замутим чатик делиться проблемами и решениями. никто не хочет
 

kirrraweb

Активный участник
24 Июн 2026
60
27
18
gc есть и в go и в c# (который ты тоже мусором назвал, а теперь его jit хвалишь), а lua это динамическая типизация, gc, однопоточность, и jit (если luajit). то есть все 4 причины подходят под lua, который у тебя в списке sdk xD
странно сравнивать ноду с lua. Чтобы писать серверную логику на js, надо тянуть node js который за собой тащит v8. сходу это +300мб. он поедает память в огромных количествах. lua тащит за собой 200кб от силы. lua будет выполняться и контролироваться за счет luajit условно нативно, т.е будет меньше проблем. да gc, да однопоток, но это меньшее из зол. у гошки не много иная ситуация во первых я ее знаю xD во вторых удобства, строгая типизация и прочие крутые штуки - опять же из всех зол меньшее. по большому счету то что часто использовал так и иначе то и тащу несмотря даже на те же самые gc и прочее, при этом выбирая инструменты которые не будут сильно ухудшать ситуацию но при этом решать проблемы и задачи.

вся тяжелая работа (синхра, стриминг, сеть, база) у тебя все равно в ядре на zig. sdk это скриптовый слой, где крутится логика инвентаря, работ и т.д., и там узкое место почти никогда не язык, а архитектура и запросы в базу. именно поэтому ты сам и взял lua. js там был бы ничем не хуже
узкое место это нагрузка лишняя и оверхед. по типу а давай добавим cef в клиент и будет кушать игрулька +1гб а плюсов особо никаких и дело даже не сколько в памяти количество процессов, нагрузка и прочее, тем более когда есть аналоги. тут везде выбирается меньшее из зол по сути. в идеале как я говорил нативка. тот же лаунчер фулл нативные окна кросс платформа. не tauri и прочее. оверхед в виде 50мб терпимо. оверхед от lua терпимо. кто то хочет писать простой код - пожалуйста lua. кто то хочет оптимизировать максимально - rust/zig. есть даже нечто среднее в виде гошки. опять же ничего не мешает экспортировать sdk под сишку и за счет ffi пиши на чем хочешь. quick js и куча его аналогов можно было закинуть на серв получить минимальный оверхед и т.д но смущает что пишут какие то вещи не так хорошо работают как хотелось бы.
не совсем так. джаред сам писал что проблема в стыке gc и ручного управления памятью, но сами баги это use-after-free, double-free и забытый free в error path, то есть ошибки в их коде на zig, которые zig не ловит
ну щас почитав думаю что и я был прав от части и вы. часть проблем действительно со стороны разрабов бана в коде на zig были а часть все же и на js. поэтому скорее нечто среднее

забавно что у тебя клиент на zig будет ровно на таком же стыке, lua vm и ultralight, который, на секундочку, на том же jsc работает. так что эти грабли тебе тоже знакомы будут
не совсем. масштаб не тот. как правило ui это что то вывести либо нажал кнопочку - что то произошло, вся серьезная логика на серве. сервер источник истины. это не bun разрабатывать

так что эти грабли тебе тоже знакомы будут
пока серьезных граблей не встречал

тыщу раз писал, что давайте кто шарит, что то разрабтаывает в подобных сферах замутим чатик делиться проблемами и решениями. никто не хочет
 

Harvey Specter

Гуру
BackEnd developer
7 Ноя 2020
292
112
115
странно сравнивать ноду с lua. Чтобы писать серверную логику на js, надо тянуть node js который за собой тащит v8. сходу это +300мб. он поедает память в огромных количествах. lua тащит за собой 200кб от силы. lua будет выполняться и контролироваться за счет luajit условно нативно, т.е будет меньше проблем. да gc, да однопоток, но это меньшее из зол. у гошки не много иная ситуация во первых я ее знаю xD во вторых удобства, строгая типизация и прочие крутые штуки - опять же из всех зол меньшее. по большому счету то что часто использовал так и иначе то и тащу несмотря даже на те же самые gc и прочее, при этом выбирая инструменты которые не будут сильно ухудшать ситуацию но при этом решать проблемы и задачи.
так, еще раз. ты путаешь runtime с языком. nodejs != javascript. тебе не нужно тянуть ноду на сервер, тебе нужно тянуть движок. ноду тянуть разве что если хочешь использовать вшитые возможности ноды (хотя и то затея кал, если делать то уже bun), и то тогда это бридж и т.д. и т.п. quickjs весит сотни кб, то есть примерно как lua. да, он без jit и luajit его по скорости обгонит, тут спорить не буду. но и голая нода это не 300мб

просто не совсем понятна тогда логика. все аргументы, которые ты написал как минусы js, существуют и в lua, ты это сам признал. получается вопрос не в том что js мусор, а в том что lua легче встраивается и тебе она ближе "то что часто использовал то и тащу". с этим я как раз согласен, но это уже совсем не то же самое, что мусор


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

kirrraweb

Активный участник
24 Июн 2026
60
27
18
так, еще раз. ты путаешь runtime с языком. nodejs != javascript. тебе не нужно тянуть ноду на сервер, тебе нужно тянуть движок. ноду тянуть разве что если хочешь использовать вшитые возможности ноды (хотя и то затея кал, если делать то уже bun), и то тогда это бридж и т.д. и т.п. quickjs весит сотни кб, то есть примерно как lua. да, он без jit и luajit его по скорости обгонит, тут спорить не буду. но и голая нода это не 300мб
node js - рантайм. v8 - движок. вы можете прикрутить как рантайм ноду так и только движок. на самом деле у вас нету выбора кроме как использовать node js/bun. если вы хотите писать полноценный код на js(на сервере с серверными приколами поэтому это уже не js но так проще выражать свою мысль ). потому что в v8 нету большинства вещей которые так или иначе вам понадобятся. банальное чтение файлов. вам придется многое дописывать самому к движку. это не имеет смысла. поэтому да вам нужно тянуть ноду на сервер потому что иначе вы заколетесь и получите огромное количество проблем тех же самых что и разрабы бана. голая нода это реально под 300мб( да даже если 150 ) просто вот за здрасьте. негатива если что к js я не испытываю, просто я же говорю у языка куча минусов, допом он дохера кушает - точнее не он сам а то где он выполняется и прочее. и тут есть lua у которого как вы сказали те же проблемы и болячки но они не такие раздутые + не тянешь 300мб и быстрее работает. опять же я думаю что вас задела фраза на счет js мусор, раз вы ее так часто упоминаете. во многих задачах можно сказать что определенный язык мусор. это не что-то плохое вокруг этого языка. язык берется под конкретную задачу. у меня задача минимизировать затраты, уменьшить нагрузку на сервер и увеличить скорость выполнения всех процессов для того чтобы увеличить поддерживаемый онлайн на сервере . т.е для моей конкретной задачи нужно выбрать язык и технологии которые будут исполнять код с минимальным оверхедом. если бы это было не так я бы мог взять golang для всего он отлично компилит dll кросслатформа и можно писать unsafe для гтахи. но из-за того что gc выдает приколы и они заметны говорю исходя из своего опыта, то выбирается не та технология и язык который больше нравится и т.д а та которая лучше себя показывает в конкретной задаче. если я хочу чтобы на 2гб сервак летал с большим онлайном ( относительно ) на простеньком процессоре то я не могу себе позволить выделять память и гонять данные туда сюда просто так. вот смотрите идею вы берете node js - ну чтоб не соврать ну штук 10 операций примерно даже думаю чутка побольше. сервер принял ( zig ) - обработал - потом передал - потом куча операций в node js и обратно. куча очисток памяти и прочего. с luajit ты во первых это компилишь все нативно ( любой код на си компилится компилятором zig ) при желании ты можешь ctrl c + ctrl v и поменять все вызовы операций любых по выделению памяти заменить на операции zig тогда ты еще и будешь утечки памяти и прочее видеть, но и без этого все вполне себе достойно. а во вторых операций и сложность этих операций в разы меньше. ну хотя возможно кстати не в разы, но сложность так точно меньше. кстати к шарпу точно такое же отношение, по сути по тем же причинам. не тащить ничего тяжелого. ну и да легче встраивается конечно, но это не основной фактор
да есть уже такие, но проку там мало. кто-то делает кирпич альта, кто-то рейджа, кто-то пишет свой мп, ну или пытается. я хз.
так наоборот было бы больше смысла, тем более если я и думаю многие кто этим занимаются пойдут на контакт
можем списаться в дискорде, может что обсудим толковое.
кинул заявку
я просто тоже все что делал, то с протона под линуксом.
я перепробовал lutris, heroic остановился на порт протон только. только эта шляпа успешно запускала и епик и рокстар одновременно. и из за wine пришлось под wine писать отдельный exe-шник потому что из под линукса ты не можешь обращаться нормально к wine внутренностям. ну по крайней мере я чистого подхода не нашел. поэтому стартуешь нативный лаунчер - нажимаешь кнопку играть и у тебя стартуется маленький exe-шник + ссылка epic/steam/rockstar на запуск игры. странно что altv/rage к такому не пришли ну или не стали по какой то причине заморачиваться. по сути кучу людей с маками линуксами теряют, как минимум стим дек
 

Similar threads