Перейти к контенту

_Призрак_

Жители
  • Число публикаций

    790
  • Регистрация

  • Последнее посещение

О _Призрак_

  • Звание
    Призрак
  • День рождения 20.06.1994

Контакты

  • MSN
    Skype: rus_phantom
  • Сайт
    http://
  • ICQ
    464307676

Информация

  • Город
    Тамбов

Недавние посетители профиля

1 013 просмотров профиля
  1. Редактирование движка X-Ray

    @dsh vector() 1 в 1 транслируется в вызов конструктора FVector (ну или какой там класс). Если в конструкторе по умолчанию (т.е. FVector()) не инициализируются поля то значит там в любом случае будет мусор, хоть ты создал вектор через C++, хоть через Lua. А то что у тебя на одном движке нули, а на другом случайные числа то это легко объяснить - в обоих случаях у тебя мусор в переменных, просто в одном случае у тебя повезло словить 3 нуля, а в другом нет. Или на одном была отключена оптимизация (в этом случае все переменные инициализируются нулем). Почему могло получиться случайно 3 нуля? Потому что если посмотреть на память приложения, то количество нулевых байт будет в сотни раз больше чем любых других из-за специфики программ @drksnc Да, асемблерная вставка означает: pClass->PHGetSyncItem(0)
  2. Редактирование движка X-Ray

    Тут не все так просто. Если просто передавать позицию и применять ее то движения будут дерганными из-за задержки сети. Для того чтобы это заработало так как нужно, нужно ковырять как в классе CActor реализована интерполяция (файл Actor_Network.cpp). Скорее всего ее можно будет ±копипастой применить к обычным НПС.
  3. C++

    @UnLoaded, Скорее всего раньше в скобках было какое то условие, а потом программист поленился удалять if и просто оставил true в качестве условия. Здесь нет никакой магии (Кроме области видимости, но это скорее всего не причина такой конструкции)
  4. Курилка программистов

    Приходит, но все же я бы попросил бы определение "нормально сделанных ботов". ​ Тут я могу поспорить. Да, можно просто сказать что количество пакетов будет большим, но мы можем посчитать насколько. Каждого НПС можно представить как игрока, за которого играет компьютер. Соответсвенно большое число пакетов = (число ботов + игроков) * среднее число отправляемых пакетов в секунду. Итого если мы имеем кооперативное прохождение (сколько это человек? 2-4?), мы можем без проблему заполнить карту еще 30 ботами (а скорее всего и большим числом) без проблем с сетью. К тому же, насколько я знаю, в планах ребят которые делают кооп (или было в планах) - введение системы алайфа в мультиплеер. У нас есть сервер который обсчитывает всех(?) ботов в онлайне, но каждому клиенту отправляет информацию только о НПС в радиусе алайфа. Сколько у нас на пике ботов может быть в радусе алайфа (возьмем стандартный в 150м)? 20? 30? Не думаю больше. Вот и вся проблема большого числа пакетов. Поправьте если я не прав. Какие? Просто если мы говорим про диалоги/передача предметов, то это не является большой проблемой для исправления. Ну для обычных игроков задержки тоже гадят. Поэтому у них происходит предсказывание траектории движения и т.д. Тоже самое включаем для мобов и все, проблема решена.
  5. Курилка программистов

    Тут есть небольшая разница - если в X-Ray уже есть боты (пусть даже в синглплеере) + весь синглплеер сделан по типу напоминающему клиент-серверное приложение. Таким образом для того чтобы перенести ботов в онлайн нужно было заставить мультиплеерный сервер загружать АИ-сетки и запускать соответствующие скрипты, ответственные за поведение ботов (я скорее всего много чего забыл, но не суть). А в Survarium отсутствуют боты в принципе. Вообще. Им все нужно делать с нуля - архитектуру, поведение и т.д. Объем работы совсем другой
  6. Скриптование

    Для того чтобы определить есть ли значение в массиве его в худшем случае нужно полностью перебрать (сложность O(n)), а в случае хеша алгоритмическая сложность точно ниже (скорее всего что то типа O(logn), но я точно не знаю, зависит от реализации, сужу по тому как это сделано в других языках/системах. Есть базы данных где доступ осуществляется вообще за константу)
  7. Курилка программистов

    А можно узнать сакральный смысл двойного arg? Почему не local t = arg or {...} ?
  8. Рефакторинг: _g.script

    А можно ссылку на бенчмарки, исследования по этому поводу?
  9. Скриптование

    Кстати, давно интересовал момент - как правильно будет получить количество элементов в ассоциативном массиве? Я помню делал полный перебор массива чтобы получить его размер, но может есть более приятный вариант?
  10. Редактирование движка X-Ray

    std::function не подойдет? Или я не понял проблему
  11. Редактирование движка X-Ray

    Это не ответ на мой вопрос. Elz написал что модульность каким то образом связана с производительностью. Про удобство разработки у меня вопросов нет
  12. Редактирование движка X-Ray

    Может я что то не понимаю, но как модульность связана с производительностью? И что вообще в твоем понимании модульность?
  13. Редактирование движка X-Ray

    А зачем?
  14. С Днюхой тебя, чувак!

  15. Язык Lua. Общие вопросы программирования

    Прости? Очень интересно высказывание, почему ты так решил?
×