Да лучше бы не врали публике. Писали, что Сурс - совершенно новый движок, написанный с нуля. В то же время писали, что взяв исходники Квэйка разделили на два проекта - GoldSrc и Src. И как это Сурс написан с нуля после этого? Сам Кармак утвердил, что в исходниках всё ещё есть участки от Квэйка. Да что там, в слитых сурсах можно всё видеть. Структура файлов та же, код тот же. Тяжело, конечно, поддерживать тогда было Стим, а сейчас что? Состояние гонки? Сурс 2 написали. А что там нового? Код ведь тот же. Только-только в нём была введена поддержка шейдеров версии 3. Взялись бы они за это серьёзнее, написали бы движок и уровня Анрил 4 и Фростбайта 3. А то и лучше.Raid сказав(ла):2 gfdjr5:
На брашах сделать совершенно новый не получится, тк совершенно новый одинаково хорошо умеет и в открытые пространства, и в закрытые, в лайтмапы, в динамический свет
Каждый день открываешь для себя что-то новое.Raid сказав(ла):ну ты пони
На здоровье.Тут дело не в предиктинге, по крайней мере я считаю так.
В ку3 это всё весьма неплохо реализовано, с экстраполяцией. Главная фишка - в использовании low-res таймера, что само по себе позволяет получить хорошую предиктабельность. Но не совместимо с некоторым кодом на сервере.Альтернатива существует?
NQ - это Normal Quake. Никакого NetQuake в природе не существует.только: NetQuake | QuakeWorld
Экстраполяция может внести свой отрицательный вклад тем, что если игрок будет, допустим, бежать к обрыву и от него перестанут приходить пакеты, то сервер его и скинет вниз. Хотя клиент, пока пакеты на сервер не приходили, остановился у края обрыва.Дядя Миша сказав(ла):В ку3 это всё весьма неплохо реализовано, с экстраполяцией. Главная фишка - в использовании low-res таймера, что само по себе позволяет получить хорошую предиктабельность. Но не совместимо с некоторым кодом на сервере.
Назвали его так исторически. После того, как появился QW, за обычным закрепилось название NetQuake. А вот о названии Normal Quake я не слышал. Но мы говорим об одном и том же Квэйке первом, расчитанном на игру по локали, поэтому не суть.Дядя Миша сказав(ла):NQ - это Normal Quake. Никакого NetQuake в природе не существует.
Слабая управляемость у кода на С. А сурс является ярким примером того, как не надо использовать ООП в С++. И код на С++ не подразумевает классов. Это лишь язык с увеличенными, по сравнению с С, функционалом. На нём и процедурно, как на С, можно писать программы. Но и при использовании классов надо с умом подходить, а не городить говнокод. Сурс явно плохой пример ООП, зато отличный пример того, как не нужно писать, оформлять и проектировать свой проект. "Слабоуправляемым монстром" код становится, когда плохо спроектирован. Сделать можно - переписать всё начисто. Но у вэлв нет на это времени. Поэтому придётся довольствоваться этим.Дядя Миша сказав(ла):А сорс превратился в огромного слабоуправляемого монстра, с которым не сделаешь уже ничего. Вот прекрасные последствия написания кода на С++.
Я смотрю у тебя фантазия, как у нашего общего друга. А может это сезонное.от него перестанут приходить пакеты, то сервер его и скинет вниз
И в чём это выражается?Слабая управляемость у кода на С
То есть его ламерье писало, правильно понимаю?сурс является ярким примером того, как не надо использовать ООП
О как.И код на С++ не подразумевает классов
Дядя Миша сказав(ла):Я смотрю у тебя фантазия, как у нашего общего друга. А может это сезонное.
А что? Такое вполне могло бы быть. Есть модификации к GTA San Andreas - SA:MP, для поддержки мультиплеера. В самой СА изначально только поддержка сингла была. А тут прикрутили сеть. И на начальных версиях было так, что когда игрок переходил в меню паузы, обновления от него переставали приходить и ему отсылаться. И когда такой игрок вел авто, то при переходе в паузу авто продолжало двигаться для всех других игроков. За это время авто могло и скатиться в кювет и перевернувшись, взорваться, убив всех, кроме игроков в паузе, пассажиров. Она могла и упасть в воду, и утопить всех пассажиров, что не в паузе. После же возвращения игрока в игру наступал резкий синхрон сервера с последними данными от игрока. То-есть, несмотря на то, что авто продолжало куда-то двигаться, как игрок вышел из паузы, он и авто со всеми пассажирами возвращаются на позицию, в которой они были перед уходом этого игрока в паузу. Предиктинг, кстати, прикрутили там только недавно, но замечу, что так же отрывисто, как в ксаше, игроки по миру у клиента не бегали. Стрелять только приходилось "по пингу", на упреждение.Отличный пример это когда клиент А бежит и прыгает с обрыва, а клиент Б экстраполируя данные, получит информацию о прыжке после того как персонаж выбежит за грань обрыва, и затем весьма "резко" прыгнет.
А я что, могу использовать каждую подсистему движка отдельно друг от друга? Могу их свободно расширить? Одно небольшое изменение в коде не приведёт к общей неработоспособности всей системы? А для новых изменений мне не придётся переписывать значительную часть кода?Дядя Миша сказав(ла):И в чём это выражается?
Писали люди, которые не особо заботились о том, как они потом будут менеджить этот код.Дядя Миша сказав(ла):То есть его ламерье писало, правильно понимаю?
"Нам" это кому? Ты знаешь, что такое парадигмы программирования? Ты мне покажи, где написано, что код С++ всегда пишут с классами. В С++ имеется поддержка классов, но никто не обязывал их использовать. Поэтому я не понимаю за что такие плохие отзывы в сторону С++.Дядя Миша сказав(ла):О как. Покажи нам свои проекты, где всё по канонам.
Ну я же могу, почему ты не можешь?А я что, могу использовать каждую подсистему движка отдельно друг от друга?
Всё зависит от того, как это было спроектировано. А не от языка.А для новых изменений мне не придётся переписывать значительную часть кода?
Я тебе еще раз говорю, Сишный исходник, переименованный в .cpp даёт падение в производительности на 40%. По крайней мере на шестой студии.В С++ имеется поддержка классов, но никто не обязывал их использовать.
И тебе не придётся дописывать его или тащить вместе с ним дополнительный функционал? Так ли это?Дядя Миша сказав(ла):Ну я же могу, почему ты не можешь?
Ну так и я о том же. Но на плюсах делать проще, если виртуальные классы использовать. Вместо wavdata и mp3data сделать интерфейс sounddata, а от неё унаследовать уже их. Или лучше даже sounddata оставить, сделать отдельный интерфейс загрузчика звуков и хандлер для него, чтобы можно было указатели добавлять в его лист загрузчиков. Тогда и менеджер звуков сделать, в котором определить метод загрузки звука. Этот метод при вызове будет обращаться к хандлеру с названием звука для загрузки. А хандлер проверяет, есть ли среди загрузчиков тот, что поддерживает указанное расширение. Есть - грузит и выдает указатель на sounddata, нет - возвращает с ошибкой.Дядя Миша сказав(ла):Всё зависит от того, как это было спроектировано. А не от языка.
Я не знаю как работает такая старая студия. Попробуй на новых посмотреть. Может просто при смене расширения шестая студия автоматом компилирует код как C++. От того, что просто расширение сменилось и студия даёт код настолько медленнее, скорее всего это какие-либо особенности шестой студии. У неё уж старый компилятор, может возьмёшь за 2010 или 2013 экспресс? Бесплатная. Только зарегестрироваться нужно, чтобы код активации прислали. У них компиляторы поновее будут. Глядишь и код быстрее скомпилируют.Дядя Миша сказав(ла):Я тебе еще раз говорю, Сишный исходник, переименованный в .cpp даёт падение в производительности на 40%. По крайней мере на шестой студии.
Как-нибудь без вас решу, хорошо? Без обид.bel сказав(ла):2 gfdjr5:
Уважаемый, вот что Вы к человеку-то докопались?
Если человек хочет развивать наследие от QuakeWorld в отдельную ветку - пусть развивает. Замечу, что у него довольно-таки неплохо получается (последняя версия для меня была 0.96, остались хорошие впечатления).
Выбор языка - тоже его дело. Есть вещи, которые принципиально нужно писать на Си; и я сам считаю, что игры (ядро/серверную часть) лучше всего писать на Си (не инди; не смартфонные). Выбор языка чаще всего связанно с привычкой. Пускай есть какое-то снижение производительности, но оно обязательно присутствует. Хоть 1% - это его аргумент, и он действует. А Ваши контраргументы не смогут полностью отменить снижение производительности.
Отказ от плюшек тоже связанны с привычкой. Если "чо" в Си есть дефайны, и если умело ими пользоваться, то можно написать такой код, который будет конфеткой. Если грамотно проектировать код, иметь какие-то правила внутри своих проектов (ЕМНИП у валв приватные переменные начинаются на m_ ), то никаких проблем внутри ядра быть не должно. Можно и на Си наговнокодить. И будет этот код работать в сто раз хуже, чем в той же Java. Тут дело не в языке, а в проектировке, понимаете?
Я никогда не поверю в то, что у Вас нет вещи, которая хуже остальных, но используете Вы её исключительно из привычки. Пускай на Си нет таких плюшек и библиотек, как на С++, но если человек хочет писать велосипед - пускай пишет. Особенно хороши велосипед тогда, когда они заточены под свои параметры. В этом нет ничего криминального, и опять-таки же это выбор каждого.
Не занимайтесь демагогией. Умейте уважать выбор других, а то складывается такое ощущение, что Вы это делаете для собственной выгоды. Вас что-то не устраивает? Делайте свой движок или используйте любой другой (UT4, сурцы есть и написан он на Вашем любимом C++).
Ну так он таки прав. Это движок ДМа, ему и решать, как его пилить.gfdjr5 сказав(ла):Как-нибудь без вас решу, хорошо? Без обид.


Так и спорить не буду. Он итак решает как его пилить, не будет же он всё бросать и делать по новому или переделывать имеющееся по-другому. А вы как стервятники налетели. Есть что сказать по существу - говорите. А нет, так и смысла говорить нет. Я не указываю, как надо делать, я лишь делаю предложения, а потом мы их обсуждаем. Тема и создана для обсуждений. Какие претензии в мой адрес? Я разве писал что-то наподобие: "ДМ, Си - говно короче, полное. Воот. Так что ты, это, на крестах, короче, делай, окда? И студия шестая тоже говно, бери 2013 и пили короче движок быстрее. А потом допиливай предиктинг и поддержку закачки ресурсов"? Нет, не писал. Вы бы лучше про баги сюда отписывали, может нашлись бы люди, что их исправили бы.AHTu6uoTuK сказав(ла):Ну так он таки прав. Это движок ДМа, ему и решать, как его пилить.![]()
Чё?Вот именно для нее и прикупили исходники Quake 2.
Кто мы? Ты тут один.А вы как стервятники налетели.