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

Курилка программистов


Рекомендуемые сообщения

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

Изменено пользователем abramcumner
  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение

@abramcumner, если убрать нет пакет, как делать сохранение для сингла?

Вообще ничего не писал про убирание нет-пакета. Я говорил о замене нет-пакетов во взаимодействии клиентских и серверных объектов в синглплеере.

Поделиться этим сообщением


Ссылка на сообщение

В ЗП в ActorVehicle.cpp закомментирована функция CActor::attach_Vehicle, так что Дизель прав - аттача ГГ не было :)

Поделиться этим сообщением


Ссылка на сообщение

Я пошел СВОИМ алгоритмом, который, как показала практика, работает быстрее.

Этого не было продемонстрировано :)

У dsh было 300мс на ОП-2/солянке, небось еще и с сейва в середине игры. Вполне возможно, что твой алгоритм на тех же объемах будет выдавать не меньше.

Ну и разница 80 vs 300 ни о чем. Там вон только луаджит 2.0 обещает работать в 10 раз быстрей :)

 

Вот все и хотят услышать от тебя подробности алгоритма. Перебор 1-65534 просто не эстетичен. Если есть решение лучше, все с радостью перейдут на него.

 

Вот ты написал - движковый итератор. А чем он лучше? На пустой игре да: вместо перебора 65534 переберет 2 объекта: актора и Сидора. А в солянке небось на старте за 32к объектов. И цикл 1-65534 и твой итератор будут перебирать приблизительно одинаковые количества объектов.

Изменено пользователем abramcumner

Поделиться этим сообщением


Ссылка на сообщение

Проект перешел границы личного с тех пор, как стал общедоступным. Саша (Malandrinus) предупреждал нас о всех последствиях. И вот они и во всей красе. Так что не то что (имхо) пора, а уже жизненно НЕОБХОДИМО открывать все карты И то, что было интересно для нас (домашнего использования) уже не интересно для комьюнити.

Боже мой. О чем ты?! Какой общедоступный, какие последствия?! Если ты о Prosectors Project. То он нифига не общедоступный, скоро уже будет полгода, как открыли тему, а в шапке одна ссылка на ваши наработки(архив на ЯДе) и та сдохла.

Неудивительно, что не подключился ни один человек. Не к чему подключаться.

 

Был такой школьный рассказ о карандашах - как будто про этот проект написан :)

Изменено пользователем abramcumner
  • Согласен 3

Поделиться этим сообщением


Ссылка на сообщение

Как-бы так случилось, что я простой исполнитель. Но есть вполне определённый хозяин проекта.

И я, есть всё-таки этика, следуя которой я не могу публиковать не согласованные с руководителем материалы.

Это не закон. Это просто мои личные убеждения. А правильные они или нет - это не моя юрисдикция.

Правила морали не позволяют мне опрелюднивать эти материалы.

Решение полностью зависит от автора.

Стоп-стоп. Я не призываю и уж тем более не заставляю публиковать какие-либо материалы ни тебя, ни хозяина проекта. Просто указал на расхождение между декларациями(общедоступный) и реальностью(доступны мегаописания и ролики на ютубе).

Если общедоступный проект - это проект, чтобы получить доступ к которому, надо покопаться в сообщениях за 2015 год, то это какой-то беспощадный сюрреализм.

 

Вы и так видите что случилось.

Вообще ничего не случилось.

 

И все-таки почитайте рассказ про карандаши :) Он короткий.

http://lukoshko.net/story/sinie-listya.htm

Надо так давать, чтобы можно было взять. А то так и будут рисовать синие листья...

Изменено пользователем abramcumner
  • Спасибо 1
  • Нравится 1

Поделиться этим сообщением


Ссылка на сообщение

@Kondr48, за инфу про изменение правил гитхаба спасибо, а статья напрочь желтушная.

Гитхаб просто явно задекларировал то, что он все это время делал :) Как это в свое время сделали Микрософт и гугл.

 

С учетом, что OpenXray основан на нелегальных исходниках, заморочки с лицензиями не должны беспокоить :)

Изменено пользователем abramcumner
  • Спасибо 1

Поделиться этим сообщением


Ссылка на сообщение
12 часов назад, Malandrinus сказал:

В С++, кстати, полно замаскированных операторов goto: switch, break, continue, множественные return - это всё по сути операторы goto.

Duff device :)

Цитата

strcpy(to, from, count)
register char *to, *from;
register count;
{
    register n = (count + 7) / 8;
    if (!count) return;
    switch (count % 8) {
    case 0: do { *to = *from++;
    case 7:      *to = *from++;
    case 6:      *to = *from++;
    case 5:      *to = *from++;
    case 4:      *to = *from++;
    case 3:      *to = *from++;
    case 2:      *to = *from++;
    case 1:      *to = *from++;
               } while (--n > 0);
    }
}

И ни одного гото.

Поделиться этим сообщением


Ссылка на сообщение
1 час назад, Dennis_Chikin сказал:

Или это я чего-то не понимаю ?

Вроде все, как должно быть, - корректная проверка на попадание в диапазон.

Поделиться этим сообщением


Ссылка на сообщение
32 минуты назад, НаноБот сказал:

А можно использовать С/С++ в проекте XRayExtensions?(вставка С/С++ кода в готовый файл).

Можно, линкеру все равно откуда берутся объектные файлы.

 

Есть ли операторы типа ORG в С/С++?

Они там не нужны. В с++ части extern CActor* g_actor; а ORG асмовой части. Разбираешься с манглингом имен и можно писать в хрей-экст на с++.

Поделиться этим сообщением


Ссылка на сообщение
5 минут назад, НаноБот сказал:

@abramcumner Оператор ORG в асме, это задать адрес кода, без него всё это невозможно.

Я знаю, что такое ORG, и еще раз повторю ORG в асме, в с++ extern.

 

И плюс, у компилятора куча ограничений, не не получится, С/С++ невозможно использовать в  XRayExtensions  проекте.

Нет у компилятора никаких ограничений, с++ может генерировать точно такие же объектники, как и асм. Ну и я как бы делал хрей-экст на с++ :)

Поделиться этим сообщением


Ссылка на сообщение
20 минут назад, НаноБот сказал:

А как такая строчка в С++ будет выглядить?

Эта строчка так и останется в xrgame_stubs.asm.

 

org 105602E8h - shift
g_Actor dword ?

В с++ напишешь:


extern CActor* g_Actor;

И можешь обращаться к g_Actor из c++.

Поделиться этим сообщением


Ссылка на сообщение
4 минуты назад, Malandrinus сказал:

и с каждой версией становятся только лучше.

Ну я бы так не сказал.

с 15.5 до 15.6.5(а это в районе года) компилятор был сломан: выдавал ICE на float a = powf(s, 128);

c 15.7 до 15.7.2 снова был сломан(в районе месяца): что-то с шаблонами.

Каждая минорная версия что-нибудь ломает :)

Поделиться этим сообщением


Ссылка на сообщение
3 часа назад, dsh сказал:

Кто в физике/математике разбирается, подскажите пожалуйста, как рассчитать силу, которую нужно приложить к гранате по трем осям, что бы она долетела до указанной точки? Чую, ускорение свободного падения тут участвует. Может @abramcumner подскажет?

 

Именно силу? А то еще Галилей открыл, что гранаты летают по инерции(в полете на них не действуют никакие силы кроме силы тяжести). Граната отправляется в полет со скоростью V, которую приобретает за время маха. Можно задать через импульс(m * V).

По x и z равномерное движение со скоростями Vx и Vz, формула S = V * t -> t = S / V По y равноускоренное движение S = V * t - g * t * t / 2 -> t = V +- sqrt(V * V - 2 * g * S) / g

В точке назначения граната должна оказать одновременно по все трем осям одновременно, получается:

Sx / Vx = Sz / Vz = Vy -+ sqrt(V * V - 2 * g * Sy) / g

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

 

Если задать условие, чтобы запускать гранату с наименьшей скоростью, у меня получилось такие формулы: Vx,z = Sx,z * sqrt(g / D) / 2, Vy = (Sy +  2 * D) * sqrt(g / D) / 2, где D - расстояние до указанной точки.

По идее в АМК должны быть те же самые формулы - там же пускали гранаты.

 

2 часа назад, W.A.S.P. сказал:

Так что расчёты эти, как я понимаю весьма не просты.

Шел 2019 год...

Изменено пользователем abramcumner
  • Нравится 4

Поделиться этим сообщением


Ссылка на сообщение
19 минут назад, dsh сказал:

Не могу понять, что в формулах обозначает S?

Sx = dest.x - pos.x, dest - координаты точки назначения, pos - координаты точки отправления. Sy = dest.y - pos.y, Sz  = dest.z - pos.z. Просто S - это непереименованная D = dest.distance(pos).

 

Мне кажется, что в этих формулах еще должна как-то учитываться масса гранаты? А понял, скорость по каждой оси еще нужно умножить на массу гранаты?

Да, если задавать через импульс, надо еще на массу умножить.

Изменено пользователем abramcumner

Поделиться этим сообщением


Ссылка на сообщение
14 минут назад, dsh сказал:

У меня не долетает.

А ph_frequency что возвращает?

Еще я на ЧН смотрел, но вроде физ. движок и не менялся во всей серии. Вечером посмотрю на ТЧ.

Изменено пользователем abramcumner

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...