Мне кое что удалось сделать с жанром кампании, а именно сделать аналог современной онлайн игры.
Расскажу коротко идею:
Игрок заходит в камнанию и начинается инициализация.
На компьютере устанавлен специальный клиент, который общается между игрой и сервером.
Ну а дальше, как вы уже догодались у игрока есть 1 герой, которым от управляет остальные же подгружаются от команд сервера и загрузки их в игру.
То есть получается 1 игрок к примеру Красного цвета и 50 героев синего и того Онлайн 51.
Всё очень здорого, но вот только много эфектов с string[255] не сделать. Можно ли увеличить этот лимит?

Alex Daniels, в варике поддержки сокетов нет. Ваше решение костыльное.
`
ОЖИДАНИЕ РЕКЛАМЫ...
2
Ancient, а каким массивом ты потом будешь загружать все эти данные? то есть предлагаешь на каждое действие делать запрос на сервер и обновлять каждый раз переменную?
Doc, предложи свой способ. А то только на словах все мастера.
alexprey:
если человек вообще думает о подобном в 2015 году то это почти диагноз
ну почему, опыт взлома всегда полезен)
Да нет, скорее всего удержать небольшую часть игроков :)
29
А какая связь между запросами на сервер и получением данных из переменных?
Уже предложили все, самая очевидная архитектура - создавать свой ивент на получение данных, сторить эти данные в нормальных глобалках нормальных типов и использовать эти глобалки (т.к. логический поток в вк3 один проблем с этим не возникнет).
Я честно даже не могу представить что здесь непонятного.
И да перечитал тут постики, передавать каждый раз героя и логин игрока (которые не меняются) просто смешно. Координаты приказа, статы и хп тоже не часто (раз в секунду это не часто) меняются. Вам бы почитать о том как мультиплеерные игры делаются или подумать о том сколько лишних действий происходит. С такой архитектурой как сейчас будут проблемы и проблемы большие.
28
Doc, спасибо кэп
вот только ты не учёл что афтар впервые пишет клиент-сервер
да и большинство его постов бред
так что либо тролль афтара либо займись чем то полезным
2
nvc123, О да, Герой. Ты видимо сам ничего не понимаешь в клиент серверных приложениях, ибо то что ты пишешь у тебя отваливается, каждый раз как что-то хочешь придумать.
Doc, ну так и правильно поток то один и что для каждой переменой резервировать память? Это же капец сколько запросов придётся делать. Или в варике можно принимать массив данных в переменую?
28
Doc, на сервер
мы же не можем принять сразу все данные а потом в клиенте их расфасовать по нужным событиям/переменным и передать в вар3
мы пишем большую часть на jass
в джасс нету массива байтов поэтому он и использует строки
а если без строк то надо делать 100500 запросов
сначала запрашиваем координату x потом координату y
потом координату x другого юнита потом y
мы же не можем получить их все 1 пакетом и на стороне клиента указать какому юниту какие координаты
это же нереально сделать просто
2
nvc123, Опять завёлся... Так я и принимаю все данные одним пакетом и потом распределяю на массив (int, float). С этим я разобрался уже лет 5 назад, но самый быстрый способ принять в string и потом парсить, ибо ты не знаешь игрок в игре или уже нет, об этом знает только сервер.
29
Alex Daniels, а зачем вообще спорить если ты знаешь самый быстрый способ и вообще самый умный? Или самый быстрый в смысле тяп ляп закодить? Ну вот он твой самый быстрый способ, уперся в лимиты. Ради чего все это? Экономия запросов к серверу? А их и не должно быть, кроме как "игрок сделал приказ двигаться/атаковать/остановиться". Экономия запросов от сервера? Смехота, у вас оверхед от постоянной передачи данных от всех 50 игроков будет намного больше. Игрок не знает о других залогиненных игроках? Так передайте ему эту информацию когда он логинится, а всем залогиненным информацию о том что зашел игрок с ником Х. Так сложно?
2
Doc, ну вот и массив тебе. 51-ому игроку нужно передать всю информацию об остальных.
Doc, И это уже реализовано, вопрос вообще был о расширении переменой.
24
Alex Daniels, ну если все настолько плохо, то вам остается только реализовать на jass какой-нибудь алгоритм сжатия данных и жать ваши данные вместо отправки в открытом виде... полеты на костылях, во сне и наяву
29
Alex Daniels, нет уж, ему нужно передать 50 id интов, которые поместятся в 100 байт (думаю в 25к игроков вы уложитесь), огого. Информацию о игроке нужно передать тогда, когда этот игрок появится непосредственно в радиусе видимости. И так как мы сейчас обсуждаем совсем другую проблему, если 50 игроков появятся в зоне видимости, то все сфейлится, потому что по какой-то причине у тебя данные из сети в сыром виде парсятся жассом, чего быть не должно.
2
Doc, но игрок который конектится не уверен в том, что все игроки не находятся рядом с ним...
Doc, не будешь же ты отправлять с сервера сообщение, извините все игроки находятся в городе, пожалуйста подождите...
prog, уже и это сделано...
28
реализовать на jass какой-нибудь алгоритм сжатия данных
уже и это сделано..
я пад стол
29
Alex Daniels, а что сейчас, блин? У тебя проблемы с логическим мышлением? Мое решение в ХУДШЕМ случае ничем не отличается от твоего текущего.
2
Doc, если делать что-то качественное, то делать до конца... Твоё решение может быть и лучше, но как оно с запросами на сервер обстоит сложно сказать без теста.
24
У меня на самом деле только один вопрос - почему? Почему не сделать всю работу с сетью в нативном коде, раз уж есть какая-то нативная часть, отвечающая за передачу данных, а в Jass отдавать информанию такими порциями, какими он может её переваривать? Т.е. пришел, например, один пакет на сто записей, а Jass может обработать не больше 10 за раз - десять раз дернули калбек из нативного кода и передали все данные.
28
prog, на самом деле этот вопрос у всех
но афтар видимо бох джасса и ему проще написать 100500 строк на нём чем 10 на нативном
если кто не понял то почти всё что я писал до этого это сарказм и тонкие намёки на то что не стоит всё на джасс писать
2
prog, Хмм, теперь понятно о чём речь... Да нужно попробовать такой подход, но не знаю на сколько он быстрым будет. Но уже будет 2 способа для реализации.
prog, Спасибо.
nvc123, так на джассе вообще ерунда кода...
nvc123, менее 100 строк.
28
Хмм, теперь понятно о чём речь
теперь понятно
теперь
29
prog, это мы и пытаемся выяснить с самого начала треда.
если уж справились с внедрением таких вещей в игру то должны понимать что-то
Видимо это было ошибочное заявление.
Alex Daniels,
но как оно с запросами на сервер обстоит сложно сказать без теста.
А наличие других ммо на рынке это типа не показатель? Или они тоже все обо всех передают всем игрокам?
28
других ммо
другие ммо работают на чёрной магии а вместо серверов там жертвенные алтари на которых постоянно приносят в жертву девственниц
если забыли/не нашли девственницу то ммо падает
24
nvc123, неееет, что ты наделал - эти тайны нельзя раскрывать - за тобой уже выехали!
Чтобы оставить комментарий, пожалуйста, войдите на сайт.