FaL_DissecTor писал: на что тогда влияет те движения что я делаю мышкой?
cl_viewangles.
Цитата:
FaL_DissecTor писал: Если да, то почему так все сложно, отчего не использовать 1 вектор конкретно куда сейчас смотрит игрок а не плодить тысячу векторов для модели, для эмм панча?
Чтобы это понять, надо самому написать хотя бы один движок.
Без этого все разговоры неизбежно сведутся к злому умыслу и коварному заговору. Причём в любой области.
Shapirlic писал: Была бы какая нить инструкция по написанию хорошего кода Ну там что то типа
1.Не употребляй непроинициилизированные указатели.
2.Обнуляй переменные... и тд.
По этой инструкции можно было бы проверить весь код ))
есть такая весЧь как статические анализаторы кода
но они малоэффективны на малых объёмах кода
если у тебя С++, то попробуй PVS-Studio
у них есть демовариант использования
Shapirlic писал: Была бы какая нить инструкция по написанию хорошего кода Ну там что то типа
1.Не употребляй непроинициилизированные указатели.
2.Обнуляй переменные... и тд.
По этой инструкции можно было бы проверить весь код ))
Маниакальное использование ассерта и обнуление всех переменных. У меня так ILE пишется.
__________________
Трагическая новость: Пятеро инженеров Casio умерли от смеха, узнав что Samsung анонсировали часы с заявленным временем работы в 25 часов
Спасибо парни за ответы.Ещё один вопрос -
Я пытаюсь на клиенте симулировать серверные пули. Сделал передачу через евент в оружии всех нужных параметров для пули.Осталось только одно - синхронизировать движение\полёт.
Как в общем случае описать движение\полёт? Как я понимаю,оригин меняется по такому закону -
C++ Source Code:
origin += velocity * frametime.
Ну и там трейс от оригина до получившегося вектора для проверки попал ли во что или нет.А как меняется скорость со временем? Точнее как меняется скорость от гравитации? Имеется скорость (velocity),гравитация самой ентити (pev->gravity) и серверная гравитация (sv_gravity).Как это всё связать? У меня написано что то типа
Я точно знаю, что это не правильно,так как при стрельбе видно,что попадание серверной пули находится немного ниже,чем попадание клиентской.И там точно не линейная зависимость как у меня.Подскажите правильную формулу.
Там ничего нету про гравитацию.Там только расчёт времени полёта и точки попадания. Мне же нужна формула изменения скорости полёта от гравитации со временем. Я в Ксаше порылся на этот счёт,но ничего не нашёл. Оно там стопудово есть,просто я просмотрел. Ты должен знать
Добавлено 10-08-2012 в 14:58:
И вы говорили про статичные анализаторы кода - я нашёл и заюзал CPPCheck. Несколько десятков ошибок и варнингов он выдал и был прав.Но были и ложные срабатывания.
Насчёт пуль - я сто раз говорил что у меня в моде физика пуль другая.У меня пули - ентити.Они летят время,они падают со временем,теряют скорость,рикошетят,пробивают стены и другие ентити.Так что на них влияет гравитация.На сервере у меня невидимая ентитя пуля,которая дамажит,пробивает и всё остальное.А на клиенте трейсер,который имеет такие-же параметры,как и серверная ентитя.Поэтому мне нужно на клинете сделать симуляцию серверной физики.
А про ложные срабатывания - прога говорила -
This value is never used.
Но при детальном разборе оказывалось что это не так.
Зато она нашла одну плохую ошибку - выход за границы массива в одном месте.Это могло спровоцировать падение.
Possible null pointer dereference: pController - otherwise it is redundant to check if pController is null at line 791
Т.е. первую и главную проверку на валидность она уже благополучно забыла. И какими дешевыми трюками она проверяет валидность кода, спрашивается?
Допроверяю ксаш - отпишусь поподробнее, если кому-то интересно.
Дядя Миша писал: Я понимаю. Но это никак не отменяет того факта, что на малых расстояниях влиянием гравитации можно пренебречь.
На малых да.Но например в bounce или на других больших картах влияние гравитации заметно.Видно,что клиентский пулевой декал не совпадает с серверным на юнит-два.Конечно мелочи,но хотелось бы сделать точно.Для этого мне нужна формула гравитации или скорости,незнаю как назвать но думаю ты понял что я имею ввиду.
Shapirlic писал: Для этого мне нужна формула гравитации или скорости
velocity.z -= gravity * frametime
фреймтайм на клиенте можно получить отняв олдтайм от тайма, а гравитацию взять из мовеварсов.
Добавлено 10-08-2012 в 18:02:
Вообщем допроверял я ксаш-мод. Нашел пару непроинициализированных переменных, которые особо ни на что не влияли и одну ошибку с копированием векторов там, где можно было просто взять на них указатели, скорее стилистическое, нежели ошибка. Ерундовая программка вообщем. Но из плюсов я заметил работающий барнакль, да.