Последние сообщения

Страницы: 1 [2] 3 4 ... 10
11
Вопросы дварфоводов / Re: Вопросница
« Последний ответ от Cagey_BastarD 31 Июль 2017, 07:49:44 »
Подскажите, совместимы ли сейвы 42.06 на 43.05 версии
12
Оффтопик / Re: Куда все делись ?
« Последний ответ от New man 30 Июль 2017, 15:38:27 »
Было время, когда из-за спама тут невозможно было сидеть даже. Тогда и уменьшился поток новых юзеров и контента.
13
Оффтопик / Re: Куда все делись ?
« Последний ответ от scaryman 16 Июль 2017, 08:02:10 »
Хах, а у Бориса еще есть ICQ.

Вот ты странный :) Я что, должен был удалить в ней свою регистрацию что ли? Есть и есть, что с того. Другое дело что клиент её я месяцами не запускаю, но это ведь не важно, да? :)
нуу так не интересно, я думал ты еще его юзаешь.
14
Оффтопик / Re: Куда все делись ?
« Последний ответ от AnotherBoris 15 Июль 2017, 01:09:16 »
Ну... где-то ты, безусловно, прав :) Несмотря на то, что я как бы немножко программер, подавляющее большинство моих приложений работают очень далеко от мобильных платформ. Впрочем, и от писюков тоже. Хотя и имеют гуй на писюках. Ну да ладно, давай немного пооффтопим :)

Итак. я не очень себе представляю как оно там всё, но всё-таки предположу, что сервер у нас умный. Памяти у него достаточно, проца тоже. Иначе какой тогда вообще смысл на нём что-то пускать. Клиент у нас тоже умный, но не настолько, да и злобный юзер на нём поназапускал всякой хрени, жрущей его и без того невеликие ресурсы. И трафик между ними, постоянно извещающий клиента об изменении состояния дел на сервере и изредка сообщающий серверу о том, что юзер надавил очередную кнопку и чего-то там сделал.

Насколько я понял: в данном случае тебе больше всего беспокоит трафик. Обсчитать все эти тайлы сервер обсчитает, он умный, но переслать столько он уже не в состоянии. Хорошо. Давай жрать слона по частям. Понятно, что при подключении клиент должен скачать карту целиком. Это неизбежно. Но на данном этапе как раз можно воспользоваться архиватором. Юзер подождёт, это однократный процесс. Да и выбора у него нет :) Значит главный затык: пересылка динамических изменений. Посмотрим...

Смотри: что именно ты собрался обсчитывать ежесекундно? Если говорить о DF-е то, навскидку там постоянно идёт обсчёт физики воды, распределения температуры, поиск ресурсов на складах и, безусловно, поиск пути. Ну, давай посмотрим по порядку.

Вода. Она непрерывно болтается, что вызывает постоянное изменение кучи тайлов. Если решать задачу напрямую, то изменения всех этих тайлов ты, теоретически, должен отсылать клиентам. Скажем, лужа на 10к тайлов 10 раз в секунду. Даже будучи запакованной это всё равно, скажем, 100 байт 10 раз в секунду. Но так ли уж оно надо? Предположим, для изменения состояния воды ты имеешь детерминированный алгоритм. То бишь результат его работы не зависит от внешних факторов. Тогда зачем пересылать результат работы? Клиент у нас умный, пусть сам и считает. Дай ему единожды стартовое состояние (100 байт), дай текущее состояние рандома и его алгоритм, и пусть пашет. Фактически, тебе нужно будет извещать клиента лишь о непредсказуемых изменениях типа зачёрпывания дварфом ведра воды, прокапывания новой дырки, того же дождя (хотя, по сути, дождь точно такой же детерминированный алгоритм, его тоже можно описать коротеньким пакетом). По сути, у нас получается, что обсчёт воды грузит проц довольно сильно, и мы либо грузим им только сервер и тогда получаем кучу левого трафика, либо грузим и клиента тоже, и тогда левого трафика у нас по сути, не будет. Особенно если мы разделим воду по отдельным лужам, чтобы ведро воды, зачёрпнутое в колодце не вызывало у нас пересылки всего мирового океана.

Распределение температуры. С ним жопа :) Постоянно обсчитывать всё не стал даже Тоади, именно потому у него так криво всё сделано. Но, навскидку могу сказать, что локальный переобсчёт температуры тайла у него происходит при изменении состоянии магмы на соседних тайлах, а расчёт температуры дварфов и грузов - при их перемещении. То есть, фактически, постоянного обсчёта и вовсе нет :) Разве что при изменении погоды, то есть разово. По праздникам. И большая часть нагрузки на проц это у нас обсчёт изменения температуры грузов при перемещении. Но тут всё зависит от реализации. Если брать самый правильный вариант, то перемещение лварфа с грузом должно вызывать "тепловой след". Скажем, взял он кусок льда и понёс по прямой. На каждом тайле лёд должен брать часть тепла тайла, сам нагреваться, а тайл охлаждать, и по итогу за дварфом должна остаться полоска из охлаждённых тайлов разной температуры (лёд-то нагревается и охлаждает тайлы всё меньше и меньше). Но на деле Тоади с этим не заморачивается (и правильно делает!). Грузы не меняют температуру тайла, а просто принимают её со временем. Если клиент знает путь груза, то, теоретически, он может и сам обсчитать его температуру, но... зачем? Посмотри с практической точки зрения - зачем ему вообще подробное знание о температуре каждой вещи в каждую секунду? Нет, если юзер тыкнет, можно и спросить сервер, юзер не переломится пинга туда-сюда подождать, но в рабочее время эта информация нам не нужна. Нам нужно следствие из неё - смена агрегатного состояния жидкостей и вещей, возгорание тайлов, вещей и дварфов и... всё. А это, согласись, очень редкие явления. О них можно и известить клиента особо.

Поиск ресурсов на складах. Это, безусловно, серверная задача. Впрочем, она и нужна исключительно серверу - он же и будет пользоваться этими данными для раздачи задач дварфам. С точки зрения экономии трафика этой задачи нет вообще.

И остаётся отслеживание перемещения юнитов. Это классическая задача, решаемая во всех играх, где юниты есть. И решённая! Не думаю, что стоит тут на ней останавливаться.


И что же у нас по итогу получается? Расчёт температур трафик почти не ест, ибо температуры, как таковые, нафиг клиенту сдались. Обсчёт воды, если продублировать его на клиенте, жрёт проц клиента, но взамен почти не ест трафика. А юниты как бегали, как и в тысячах других игр, так и бегают, сжирая большую часть трафика. И причём здесь, собственно, размер карты? Да, он косвенно влияет на объём обсчитываемой воды, на количество бегающих юнитов, напрямую связан с количеством отжираемой памяти и временем первоначальной загрузки, но всё не так страшно. Если, как ты говоришь, вопрос "хватит ли телефону производительности" нам не интересен, то, получается, производительности ему хватит.

В общем, я бы по итогу, озаботился как раз юнитами :) Скажем, сотня тел бегающих туда-сюда это, втупую, сотня координат, плюс десятки изменений носимых ими грузов, плюс, возможно, изменения их состояния, плюс хэш к ним для контроля синхронизации. А ещё они постоянно что-то роют, кого-то бьют, что-то ломают из вещей, хотя последнее, как и температуру, клиенту можно и не отсылать постоянно. Если юзер чего-то не видит, считай, оно ему и не надо :)

Как-то так, да... :)

Update: к слову, всё вышесказанное относится к случаю, если наш клиент хранит в себе все данные об игре, чтобы сделать отображение её на экране более плавной, самостоятельно заполняя промежутки между пакетами от сервера. А если вспомнить DF, то там юзер вообще видит только один Z-слой. Что тебе мешает в клиенте хранить и обрабатывать только его? Грубо говоря, пересылать только видимую юзером область и, возможно, соседние с ней для ускорения скроллинга.
15
Оффтопик / Re: Куда все делись ?
« Последний ответ от SP 14 Июль 2017, 17:44:12 »
Цитировать
Мозги нужно иметь, тогда всё влезет.
нюню как говорится.
О сколько умных я видел в жизни... мрак в общем. Как вспомню так вздрогну.
Если вы не уловили, что речь идет о "server side", то ей богу не позорились-бы...

Хоть заархивируйся, гарантий это никаких не даст, да что-то выиграть можно,
но для пространств залитых водою к примеру, когда идет дождь не так уж и много.
Да и небесплатна любая архивация, к сожалению, CPU тоже не резиновый.
Маловато на сервере ресурсов в рассчете на одного пользователя...

Локально "в телефоне" нет сомнений, что ресурсов хватит, но ответ на вопрос
"хватит ли в телефоне производительности" не интересен.

Пример с x-com весьма неудачный.
И рядом не лежит объем того, что нужно по-хорошему обсчитать ежесекундно....

16
Оффтопик / Re: Куда все делись ?
« Последний ответ от AnotherBoris 14 Июль 2017, 16:42:37 »
Вот ты ж зажрался, а! 2 миллиона клеточек ему, видите ли, негде хранить. Мозги нужно иметь, тогда всё влезет. Покури на досуге X-Com 3 Apocalypse. Там были карты, грубо (давно дело было) 80х80х30. Причём не просто разрушаемые, а как положено, с физикой и отваливающимися свободными кусками. С приятной графикой, звуковым сопровождением, и всё это работало под DOS4GW, то есть на 4-64 мегабайтах памяти. Четырёх, мать его, мегабайтах! И на жалком 133 процессоре с 16 мегабайтами оперативки он просто летал. Так что это... не пользуйся калькулятором, не надо, у тебя фигня какая-то в результате получается. Почитай мануалы какие-нибудь что ли... Про архивацию данных, хранение вокселей, динамическую генерацию уровней и прочую умную хрень.

P.S. Мобильные платформы же вообще зло. Их мощь в десятки раз превосходит мощность старых компов, а игры в десятки раз хуже. Но с графоном! Тьху!
17
Оффтопик / Re: Куда все делись ?
« Последний ответ от SP 14 Июль 2017, 15:50:52 »
Появилоcь тут время для оценки возможности накалякать что-то дварфоподобное под мобильную платформу.
Посидел я, посчитал, и пригорюнился.
Банальная эмбарк-локация 3х3 это аж 144х144 тайла местности.
20.000 между прочим клеточек.
Если она 100 единиц в высоту, то это уже 2 000 000 потенциальных "единиц хранения".
Запилить что-то с server side обсчетом в таких пространствах вряд ли удастся, к сожалению.
Т.е. сделать можно, но очень дорого встанет в плане ресурсов и как следствие денег.
Видать если пилить, то исключительно локальную версию, а это существенно менее интересно.
Либо очень сильно урезать доступные просторы, что не есть конечно гуд.
С другой стороны... ну не использует никто больше 3-5 ну может 10 уровней.
Всё остальное в лучшем случае шахты, в худшем случае просто гигантская лестница к бездне,
когда на каждом левеле используется 2-4 клетки для лестницы и ничего больше.

Стало зато понятно, почему оно стоко жрет :).


18
Оффтопик / Re: Куда все делись ?
« Последний ответ от AnotherBoris 13 Июль 2017, 00:23:28 »
Хах, а у Бориса еще есть ICQ.

Вот ты странный :) Я что, должен был удалить в ней свою регистрацию что ли? Есть и есть, что с того. Другое дело что клиент её я месяцами не запускаю, но это ведь не важно, да? :)
19
Оффтопик / Re: Куда все делись ?
« Последний ответ от SemonX 12 Июль 2017, 21:50:46 »
Хах, а у Бориса еще есть ICQ.
Только заметил, любезный?  ;D
20
Оффтопик / Re: Куда все делись ?
« Последний ответ от scaryman 12 Июль 2017, 21:27:38 »
Хах, а у Бориса еще есть ICQ.
Страницы: 1 [2] 3 4 ... 10