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

Alex Daniels, в варике поддержки сокетов нет. Ваше решение костыльное.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
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 какой-нибудь алгоритм сжатия данных
уже и это сделано..
я пад стол
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.