Sidebar

Xash3D: Обсуждение

gfdjr5

[NULL]
25.11.12
562
0
0
Хотели сделать совершенно новый движок, а получился сурс.
 

Raid

VIP
VIP
11.07.06
8 319
33
  • Rocket медаль
2 gfdjr5:
На брашах сделать совершенно новый не получится, тк совершенно новый одинаково хорошо умеет и в открытые пространства, и в закрытые, в лайтмапы, в динамический свет, ну ты пони.
 

gfdjr5

[NULL]
25.11.12
562
0
0
Raid сказав(ла):
2 gfdjr5:
На брашах сделать совершенно новый не получится, тк совершенно новый одинаково хорошо умеет и в открытые пространства, и в закрытые, в лайтмапы, в динамический свет
Да лучше бы не врали публике. Писали, что Сурс - совершенно новый движок, написанный с нуля. В то же время писали, что взяв исходники Квэйка разделили на два проекта - GoldSrc и Src. И как это Сурс написан с нуля после этого? Сам Кармак утвердил, что в исходниках всё ещё есть участки от Квэйка. Да что там, в слитых сурсах можно всё видеть. Структура файлов та же, код тот же. Тяжело, конечно, поддерживать тогда было Стим, а сейчас что? Состояние гонки? Сурс 2 написали. А что там нового? Код ведь тот же. Только-только в нём была введена поддержка шейдеров версии 3. Взялись бы они за это серьёзнее, написали бы движок и уровня Анрил 4 и Фростбайта 3. А то и лучше.

Raid сказав(ла):
Каждый день открываешь для себя что-то новое.
 
Команда форуму
VIP
28.03.10
15 566
315
83
Кубань
  • Золотая медаль 215
  • Серебряная медаль 214
  • Золотая медаль 221
  • Cat
Тут дело не в предиктинге, по крайней мере я считаю так.
На здоровье.
Альтернатива существует?
В ку3 это всё весьма неплохо реализовано, с экстраполяцией. Главная фишка - в использовании low-res таймера, что само по себе позволяет получить хорошую предиктабельность. Но не совместимо с некоторым кодом на сервере.
только: NetQuake | QuakeWorld
NQ - это Normal Quake. Никакого NetQuake в природе не существует.

Post automatically merged:

А сорс превратился в огромного слабоуправляемого монстра, с которым не сделаешь уже ничего. Вот прекрасные последствия написания кода на С++.
 
Останнє редагування:

gfdjr5

[NULL]
25.11.12
562
0
0
Дядя Миша сказав(ла):
В ку3 это всё весьма неплохо реализовано, с экстраполяцией. Главная фишка - в использовании low-res таймера, что само по себе позволяет получить хорошую предиктабельность. Но не совместимо с некоторым кодом на сервере.
Экстраполяция может внести свой отрицательный вклад тем, что если игрок будет, допустим, бежать к обрыву и от него перестанут приходить пакеты, то сервер его и скинет вниз. Хотя клиент, пока пакеты на сервер не приходили, остановился у края обрыва.

Дядя Миша сказав(ла):
NQ - это Normal Quake. Никакого NetQuake в природе не существует.
Назвали его так исторически. После того, как появился QW, за обычным закрепилось название NetQuake. А вот о названии Normal Quake я не слышал. Но мы говорим об одном и том же Квэйке первом, расчитанном на игру по локали, поэтому не суть.

Дядя Миша сказав(ла):
А сорс превратился в огромного слабоуправляемого монстра, с которым не сделаешь уже ничего. Вот прекрасные последствия написания кода на С++.
Слабая управляемость у кода на С. А сурс является ярким примером того, как не надо использовать ООП в С++. И код на С++ не подразумевает классов. Это лишь язык с увеличенными, по сравнению с С, функционалом. На нём и процедурно, как на С, можно писать программы. Но и при использовании классов надо с умом подходить, а не городить говнокод. Сурс явно плохой пример ООП, зато отличный пример того, как не нужно писать, оформлять и проектировать свой проект. "Слабоуправляемым монстром" код становится, когда плохо спроектирован. Сделать можно - переписать всё начисто. Но у вэлв нет на это времени. Поэтому придётся довольствоваться этим.

Где квар sys_ticrate у ксаша? Как он за частотой обновления сервера следит?
 
Команда форуму
VIP
28.03.10
15 566
315
83
Кубань
  • Золотая медаль 215
  • Серебряная медаль 214
  • Золотая медаль 221
  • Cat
от него перестанут приходить пакеты, то сервер его и скинет вниз
Я смотрю у тебя фантазия, как у нашего общего друга. А может это сезонное.
Слабая управляемость у кода на С
И в чём это выражается?
сурс является ярким примером того, как не надо использовать ООП
То есть его ламерье писало, правильно понимаю?
И код на С++ не подразумевает классов
О как.
Покажи нам свои проекты, где всё по канонам.
 

gfdjr5

[NULL]
25.11.12
562
0
0
Дядя Миша сказав(ла):
Я смотрю у тебя фантазия, как у нашего общего друга. А может это сезонное.
Отличный пример это когда клиент А бежит и прыгает с обрыва, а клиент Б экстраполируя данные, получит информацию о прыжке после того как персонаж выбежит за грань обрыва, и затем весьма "резко" прыгнет.
А что? Такое вполне могло бы быть. Есть модификации к GTA San Andreas - SA:MP, для поддержки мультиплеера. В самой СА изначально только поддержка сингла была. А тут прикрутили сеть. И на начальных версиях было так, что когда игрок переходил в меню паузы, обновления от него переставали приходить и ему отсылаться. И когда такой игрок вел авто, то при переходе в паузу авто продолжало двигаться для всех других игроков. За это время авто могло и скатиться в кювет и перевернувшись, взорваться, убив всех, кроме игроков в паузе, пассажиров. Она могла и упасть в воду, и утопить всех пассажиров, что не в паузе. После же возвращения игрока в игру наступал резкий синхрон сервера с последними данными от игрока. То-есть, несмотря на то, что авто продолжало куда-то двигаться, как игрок вышел из паузы, он и авто со всеми пассажирами возвращаются на позицию, в которой они были перед уходом этого игрока в паузу. Предиктинг, кстати, прикрутили там только недавно, но замечу, что так же отрывисто, как в ксаше, игроки по миру у клиента не бегали. Стрелять только приходилось "по пингу", на упреждение.

Не про бумера ли ты часом?

Дядя Миша сказав(ла):
И в чём это выражается?
А я что, могу использовать каждую подсистему движка отдельно друг от друга? Могу их свободно расширить? Одно небольшое изменение в коде не приведёт к общей неработоспособности всей системы? А для новых изменений мне не придётся переписывать значительную часть кода?

Дядя Миша сказав(ла):
То есть его ламерье писало, правильно понимаю?
Писали люди, которые не особо заботились о том, как они потом будут менеджить этот код.

Дядя Миша сказав(ла):
О как. Покажи нам свои проекты, где всё по канонам.
"Нам" это кому? Ты знаешь, что такое парадигмы программирования? Ты мне покажи, где написано, что код С++ всегда пишут с классами. В С++ имеется поддержка классов, но никто не обязывал их использовать. Поэтому я не понимаю за что такие плохие отзывы в сторону С++.
 
Останнє редагування:
Команда форуму
VIP
28.03.10
15 566
315
83
Кубань
  • Золотая медаль 215
  • Серебряная медаль 214
  • Золотая медаль 221
  • Cat
А я что, могу использовать каждую подсистему движка отдельно друг от друга?
Ну я же могу, почему ты не можешь?
А для новых изменений мне не придётся переписывать значительную часть кода?
Всё зависит от того, как это было спроектировано. А не от языка.
В С++ имеется поддержка классов, но никто не обязывал их использовать.
Я тебе еще раз говорю, Сишный исходник, переименованный в .cpp даёт падение в производительности на 40%. По крайней мере на шестой студии.
 

gfdjr5

[NULL]
25.11.12
562
0
0
Дядя Миша сказав(ла):
Ну я же могу, почему ты не можешь?
И тебе не придётся дописывать его или тащить вместе с ним дополнительный функционал? Так ли это?

Дядя Миша сказав(ла):
Всё зависит от того, как это было спроектировано. А не от языка.
Ну так и я о том же. Но на плюсах делать проще, если виртуальные классы использовать. Вместо wavdata и mp3data сделать интерфейс sounddata, а от неё унаследовать уже их. Или лучше даже sounddata оставить, сделать отдельный интерфейс загрузчика звуков и хандлер для него, чтобы можно было указатели добавлять в его лист загрузчиков. Тогда и менеджер звуков сделать, в котором определить метод загрузки звука. Этот метод при вызове будет обращаться к хандлеру с названием звука для загрузки. А хандлер проверяет, есть ли среди загрузчиков тот, что поддерживает указанное расширение. Есть - грузит и выдает указатель на sounddata, нет - возвращает с ошибкой.
Вот и расширяемость.

Дядя Миша сказав(ла):
Я тебе еще раз говорю, Сишный исходник, переименованный в .cpp даёт падение в производительности на 40%. По крайней мере на шестой студии.
Я не знаю как работает такая старая студия. Попробуй на новых посмотреть. Может просто при смене расширения шестая студия автоматом компилирует код как C++. От того, что просто расширение сменилось и студия даёт код настолько медленнее, скорее всего это какие-либо особенности шестой студии. У неё уж старый компилятор, может возьмёшь за 2010 или 2013 экспресс? Бесплатная. Только зарегестрироваться нужно, чтобы код активации прислали. У них компиляторы поновее будут. Глядишь и код быстрее скомпилируют.
 
Останнє редагування:

gfdjr5

[NULL]
25.11.12
562
0
0
Кто-нибудь может сходить вместе со мной потестить Ксаш в мультиплеере? Обычная халфа. Или кс 1.3/1.5 (если запустится).
Скачайте заранее карту 1337_street. Она компактная, для теста подойдёт. Хочется посмотреть что из себя представляет предикт код сейчас. В мастер-сервере сервер не отобразится, думаю, поэтому напишите в лс, кому скинуть айпи.

Карта:
http://rghost.ru/58214520
 
Останнє редагування:

bel

New member
23.09.12
19
0
0
2 gfdjr5:
Уважаемый, вот что Вы к человеку-то докопались?

Если человек хочет развивать наследие от QuakeWorld в отдельную ветку - пусть развивает. Замечу, что у него довольно-таки неплохо получается (последняя версия для меня была 0.96, остались хорошие впечатления).

Выбор языка - тоже его дело. Есть вещи, которые принципиально нужно писать на Си; и я сам считаю, что игры (ядро/серверную часть) лучше всего писать на Си (не инди; не смартфонные). Выбор языка чаще всего связанно с привычкой. Пускай есть какое-то снижение производительности, но оно обязательно присутствует. Хоть 1% - это его аргумент, и он действует. А Ваши контраргументы не смогут полностью отменить снижение производительности.

Отказ от плюшек тоже связанны с привычкой. Если "чо" в Си есть дефайны, и если умело ими пользоваться, то можно написать такой код, который будет конфеткой. Если грамотно проектировать код, иметь какие-то правила внутри своих проектов (ЕМНИП у валв приватные переменные начинаются на m_ ), то никаких проблем внутри ядра быть не должно. Можно и на Си наговнокодить. И будет этот код работать в сто раз хуже, чем в той же Java. Тут дело не в языке, а в проектировке, понимаете?

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

Не занимайтесь демагогией. Умейте уважать выбор других, а то складывается такое ощущение, что Вы это делаете для собственной выгоды. Вас что-то не устраивает? Делайте свой движок или используйте любой другой (UT4, сурцы есть и написан он на Вашем любимом C++).
 

gfdjr5

[NULL]
25.11.12
562
0
0
bel сказав(ла):
2 gfdjr5:
Уважаемый, вот что Вы к человеку-то докопались?

Если человек хочет развивать наследие от QuakeWorld в отдельную ветку - пусть развивает. Замечу, что у него довольно-таки неплохо получается (последняя версия для меня была 0.96, остались хорошие впечатления).

Выбор языка - тоже его дело. Есть вещи, которые принципиально нужно писать на Си; и я сам считаю, что игры (ядро/серверную часть) лучше всего писать на Си (не инди; не смартфонные). Выбор языка чаще всего связанно с привычкой. Пускай есть какое-то снижение производительности, но оно обязательно присутствует. Хоть 1% - это его аргумент, и он действует. А Ваши контраргументы не смогут полностью отменить снижение производительности.

Отказ от плюшек тоже связанны с привычкой. Если "чо" в Си есть дефайны, и если умело ими пользоваться, то можно написать такой код, который будет конфеткой. Если грамотно проектировать код, иметь какие-то правила внутри своих проектов (ЕМНИП у валв приватные переменные начинаются на m_ ), то никаких проблем внутри ядра быть не должно. Можно и на Си наговнокодить. И будет этот код работать в сто раз хуже, чем в той же Java. Тут дело не в языке, а в проектировке, понимаете?

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

Не занимайтесь демагогией. Умейте уважать выбор других, а то складывается такое ощущение, что Вы это делаете для собственной выгоды. Вас что-то не устраивает? Делайте свой движок или используйте любой другой (UT4, сурцы есть и написан он на Вашем любимом C++).
Как-нибудь без вас решу, хорошо? Без обид.
 
Останнє редагування:

Qwertyus

Well-known member
13.08.09
1 474
65
48
  • Xash медаль
Да дайте вы двум людям поспорить :)
 

gfdjr5

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

johndoe

Супер Модератор
Команда форуму
Супер Модератор
11.03.08
2 590
28
48
Останнє редагування:

Raid

VIP
VIP
11.07.06
8 319
33
  • Rocket медаль
Думаю так же стоит сделать расширенное управление звуками (спец. энтитей), чтобы можно было играть 2 звука параллельно, и менять громкость от нуля до 100% не выключая. Суть такого действия вот в чём: едет, скажем, поезд. Снаружи у него звук стука колёс. В салоне тот же звук, с тем же таймингом, однако с фильтром (приглушённый). Как высовываешься наружу - срабатывает плавное (и регулируемое соответственно) затухание звука в салоне, и увеличение громкости звука снаружи. Засовываешься обратно в салон - соответственно, затухает звук снаружи, и набирает громкость звук внутри.
 

Game Server

Доноры Красавчики

Користувачі онлайн

Немає користувачів онлайн.