Sidebar

Xash3D SDL2 форк

mittorn

New member
Apr 22, 2010
1,213
15
0
2 KiQ:
Если бы оно было бы внутри SDL - добавил бы.
Однако у SDL всё плохо с функциональностью. Сделано из разряда "чтобы было".
Джойстик на андройде не полностью работает, SDL_iconv cp1251 не умеет.
Я так полагаю, что 16 бит тоже из-за него нельзя.
Для отрисовки ttf придётся какую-то систему кэша шрифтов делать наверно. Это всё ведь в текстуры заливать. Но можно попробовать (опять же для консольного).
 

mittorn

New member
Apr 22, 2010
1,213
15
0
2 Дядя Миша:
Просто нужно учитыаать, что его возможно придётся доделывать.
Есть ещё вариант - система бэкендов.
Сделать бэкенды для SDL, winapi/wgl, x11/glx, x11/egl, osx/cgl, android
При этом SDL будет шаблоном для новых бэкендов - таким средством унификации, а для каждой платформы будет свой уже оптимизированный кусок кода, в отличие от SDL учитывающий тонкости системы.
Например, на android кнопки геймпада и клавиатуры уже представлены в виде клавиш.
SDL их раздпляет на разные виды событий, которые надо собирать отдельно. Получается какой-то костыль, в котором не работает половина кнопок.
Только там такие проблемы не только со вводом и не только на android.
ещё пример - когда я пытался запустить сервер на windows - пришлось его собирать как dedicated. Иначе он просто не запускался из-за того, что SDL не проходил кавой-то тест.
 

Aptem

New member
Jul 9, 2015
13
0
0
Новые баги:
Не работают поля "Server name", "Max players" и "Password", в них ничего ввести нельзя.
При попытке запустить выделенный сервер, движок вылетает.
 

mittorn

New member
Apr 22, 2010
1,213
15
0
У тебя меню старое. Оно не умеет ввод с SDL.
Выделенный вроде работал, посмотрю, может сломал где-то.
 

mittorn

New member
Apr 22, 2010
1,213
15
0
2 Aptem:
Опиши подробнее, как вылетает выделенный сервер. У мен вылет не воспроизводится.
Обновление:
1. Переделан интерфейс меню в совместимый вид. Теперь в старых меню можно вводить текст, а новые можно невозбранно грузить оригинальным движком (не проверял). Поддержка utf-8.
2. Реализация utf-8 для hud (в клиенте должен быть исправлен баг отрисовки русских символов из-за знаковости char)
3. Реализация utf-8 для vgui (немного кривая, оставляет пробелы между буквами, но лучше чем ничего)
4. Фиксы поддержки cp1251 (cvar cl_charset cp1251 для отключения utf8-нововведений).
kaon так и не заработал, выложил сюда:
https://transfer.sh/hAJEN/xash-sdl.7z
 

Aptem

New member
Jul 9, 2015
13
0
0
Достаточно поставить галочку Dedicated server в настройках сервера и запустить сервер, главное ещё что бы игра была в полноэкранном режиме, иначе баг не сработает.
Лог вылета:
https://yadi.sk/i/JfCO7RWcm9LFy
 

mittorn

New member
Apr 22, 2010
1,213
15
0
2 Aptem:
Хорошо, проверю. я в оконном проверял, по этому бага не видел.

[ADDED=mittorn]1449824007[/ADDED]
2 Aptem:
Как ни старался - не выходит
 
Last edited:

Дядя Миша

Супер Модератор
Mar 28, 2010
15,347
235
0
Кубань
Люди, играющие в ксаш по интернету наверняка замечали странное явление: некоторые игроки пытаются приконнектиться к серверу и их моментально выбрасывает обратно, они снова пытаются - сново выбрасывает. Это происходит вот по какой причине: на сервере есть некое подобие защиты от читерства - ограничение на кол-во присланных usercmd_t. Сам лимит на cl_cmdbackup равен 16-и, а на сервере защита настроена на 28 комманд. Так что даже в теории к проблемам это приводить не должно. Однако на практике - приводит. Почему же это происходит? Дело в том, что некоторые игроки подключаются к серверу с параметром fps_max 0. Я напомню что при отпущенном ограничителе фпс с легкостью достигает тысячи-другой, cmdtime херится, возможны и какие-то другие несоответствия. Так или иначе но при fps_max 0 клиент ухитряется послать серверу в два раза больше команд за один кадр. Возможна и более банальная причина: сервер тчинкает 72 раза в секунду, а клиент - 800 раз.
Вообщем успевает ))))
Я советую запретить использование fps_max 0 при сетевой игре. В идеале следовало бы слегка изменить протокол и брать fps_max с сервера, но это гораздо сложнее и ломает совместимость.
 

mittorn

New member
Apr 22, 2010
1,213
15
0
2 Дядя Миша:
Не знаю способа повлиять на fps_max у игроков.
К сожалению они могут скачивать сборки с кривыми конфигами.
Надо придумать какую-то систему стандартного конфига. Например, конфиги, которые применяются при обновлениях.
 

gfdjr5

[NULL]
Nov 25, 2012
563
0
0
cl_cmdbackup - отвечает за кол-во пакетов, которые будут переданы при неполадках, потерях соединения и т.д. Оптимальное и стандартное значение - 2. Для чего его использовать при коннекте?
Посмотрел в Source - cl_cmdbackup используется только при CL_SendMove
 
Last edited:

mittorn

New member
Apr 22, 2010
1,213
15
0
2 gfdjr5:
я тоже думаю, что это не связано. Подключаются очень часто с мобильных устройств и там могут быть другие причины. Одна из них к примеру - нестабильность больших пакетов. Зачастую modellist падает.
 

Дядя Миша

Супер Модератор
Mar 28, 2010
15,347
235
0
Кубань
отвечает за кол-во пакетов, которые будут переданы при неполадках, потерях соединения
cl_cmdbackup - это кол-во пакетов, которые передаются КАЖДЫЙ КАДР.
от 1 до 16.
Не знаю способа повлиять на fps_max у игроков.
Сделать проверку на локальную игру в Host_FilterTime и запретить fps_max 0 если игра нелокальная. Чтобы ограничить между 15 и 500 фпс.
У кого будет 0 - у тех автоматом станет 15 фпс :) Они испугаются и введут нормальное значение.
 

GNU/Hurt

Maïté
Mar 5, 2014
1,094
23
0
>У кого будет 0 - у тех автоматом станет 15 фпс Они испугаются и введут нормальное значение.
ну тогда уж 60. сбрасывать надо к адекватным дефолтам.

>15 фпс
я не удивлюсь кстати, если консолебл-дям через пару поколений так и захардкодят. и ещё побольше мыла и блюра втюхают.
 

gfdjr5

[NULL]
Nov 25, 2012
563
0
0
Дядя Миша said:
cl_cmdbackup - это кол-во пакетов, которые передаются КАЖДЫЙ КАДР.
от 1 до 16.
Какая разница - каждый или нет в нашей ситуации? Этот квар влияет на внутриигровое поведение неткода, а в процессе коннекта он не участвует - вот на что тебе нужно было обратить внимание

http://txdv.github.io/cstrike-cvarlist/
In addition, with each command packets(cl_cmdrate), we re-send the last few previous movement commands ( in case there is packet loss ) so that we can keep moving smoothly in the face of minor network problems. The default number of "backup" commands that we send is 2, but you can change this number by setting cl_cmdbackup to another number. You can send more than 8 backup commands and you should note that sending backup commands will increase your outgoing bandwidth usage.
 
Last edited:

Дядя Миша

Супер Модератор
Mar 28, 2010
15,347
235
0
Кубань
2 gfdjr5: ты опять меня учить собрался? Оно влияет НЕ В ПРОЦЕССЕ КОННЕКТА, а с ПЕРВЫМ ВАЛИДНЫМ КАДРОМ.
Но выглядит это так, как будто игрок не может подключиться вообще.
 

gfdjr5

[NULL]
Nov 25, 2012
563
0
0
Дядя Миша said:
ты опять меня учить собрался?
Больно надо. Хотя, за 10 лет разработки ты так и не исправил это. Но, да, это лишь мелочи

Дядя Миша said:
Оно влияет НЕ В ПРОЦЕССЕ КОННЕКТА, а с ПЕРВЫМ ВАЛИДНЫМ КАДРОМ.
Но выглядит это так, как будто игрок не может подключиться вообще.
Так пусть тогда сервер при коннекте проверяет значение этого квара у клиента и отправляет ему clamp'ленное обратно.

А ещё, пожалуйста, выделяй капсом ВЕСЬ свой ТЕКСТ, чтобы было понятнее, а то так НЕ ПОНЯТНО, окей? Или пиши его 6 шесть раз подряд
Или пиши его 6 шесть раз подряд
Или пиши его 6 шесть раз подряд
Или пиши его 6 шесть раз подряд
Или пиши его 6 шесть раз подряд
Или пиши его 6 шесть раз подряд
 
Last edited:

mittorn

New member
Apr 22, 2010
1,213
15
0
2 Дядя Миша:
у меня там эта часть кода немного изменена.
Вообще, надо время sleep расчитывать из остатка. Но это надо проверять, когда так делал, были просадки fps и заметно ухудшалась отзывчивость управления.
 

gfdjr5

[NULL]
Nov 25, 2012
563
0
0
Дядя Миша said:
2 gfdjr5: доведи свой проект до ума
На вряд ли я смогу выполнить такую просьбу
 
Last edited by a moderator:

Game Server

CSM TV

Page QR Code

QR Code

Donate Campaign

Total amount
$0.00
Goal
$25.00

Latest profile posts

TestUser wrote on TRUP@C's profile.
Master?
TestUser wrote on TRUP@C's profile.
Hello Father

Members online

No members online now.

Discord