Форум Trainsim  

Вернуться   Форум Trainsim > Auran TrainZ > TrainZ — Об игре

Ответ
 
Опции темы Опции просмотра
Старый 15.05.2010, 13:56   #16
Skif
Матёрый пользователь
 
Аватар для Skif
 
Регистрация: 10.02.2008
Сообщений: 1,440
Вы сказали Спасибо: 0
Поблагодарили 7 раз(а) в 7 сообщениях
Skif стоит на развилке (репутация по умолчанию)
По умолчанию

...я конечно, не зверский программист, но ломать мозги о том, рвать или не рвать строку при передаче ее уже на уровне сети по протоколу TCP/IP - должно быть головной болью не программиста, а потока, управляющего сокетом отправления. Для сего ему положено иметь буфер для кеширования и формирования пакетов, протоколы контрольных сумм и еще многое, благодаря чему в винде еще до сих пор чудом работает сеть. Потому стоит соорудить MFC Based Application.
__________________
Это наша-то колея узкая? Да это ваша слишком широкая!
Skif вне форума   Ответить с цитированием
Старый 01.01.2007, 12:00  
Яndex
Спонсор
 
 
Регистрация: 01.01.2007
Сообщения: 500


Реклама показывается изредка по случайному принципу
По умолчанию РЕКЛАМА

 
Старый 15.05.2010, 18:02   #17
genesis
Матёрый пользователь
 
Регистрация: 31.07.2007
Адрес: Ульяновск
Сообщений: 2,570
Вы сказали Спасибо: 245
Поблагодарили 175 раз(а) в 76 сообщениях
genesis стоит на развилке (репутация по умолчанию)
Отправить сообщение для genesis с помощью ICQ Отправить сообщение для genesis с помощью Skype™
По умолчанию

TRam_, не слушаешь нас — послушай Скифа.
Цитата:
Сообщение от Skif Посмотреть сообщение
начните вы с малого - с полнофункционального управления от клавиатуры и дуплексного обмена - это я вам как системщик советую.
Как раз суперуниверсальность — проблема твоих идей, где ты предлагаешь делать специфичный для мультиплееров код в драйвере. Неужели тебе непонятно, что:
Единственной заботой драйвера должен быть обмен данными, который используют другие скрипты и плагины.
Цитата:
Сообщение от Skif Посмотреть сообщение
MFC Based Application.
МФС имеет несколько дубовый вид. Я думаю, по простоте и удобству .NET больше подойдет.

Последний раз редактировалось genesis; 15.05.2010 в 18:15.
genesis вне форума   Ответить с цитированием
Старый 15.05.2010, 18:23   #18
TRam_
Матёрый пользователь
 
Аватар для TRam_
 
Регистрация: 18.02.2008
Сообщений: 8,716
Вы сказали Спасибо: 1,424
Поблагодарили 2,377 раз(а) в 1,330 сообщениях
TRam_ стоит на развилке (репутация по умолчанию)
По умолчанию

Цитата:
Единственной заботой драйвера должен быть обмен данными, который используют другие скрипты и плагины.
обмен данными с требуемой скоростью.

Например для клавиатуры код вообще отдельный надо делать, так как для неё нужно 3 байта (2 на код клавиши + флаг) , но обмениваться часто (~0.01 с). А мультиплееру надо 1 строку или массив писать, по несколько тысяч символов, но раз в 0.5 секунды. И запись ответной строки (в случае одномассивного интерфейса) задерижит отправку очередного ответа от клавиатуры.

Не, если считаешь, что запись этих строк происходит почти мгновенно, я не имею ничего против. Но я не считаю, что ТРС умеет записывать строки в 2000 байт даже за 0.05 с (т.е. 5 пропущенных сигналов клавиатуры)
__________________
местный зомбяк
TRam_ вне форума   Ответить с цитированием
Старый 15.05.2010, 19:21   #19
genesis
Матёрый пользователь
 
Регистрация: 31.07.2007
Адрес: Ульяновск
Сообщений: 2,570
Вы сказали Спасибо: 245
Поблагодарили 175 раз(а) в 76 сообщениях
genesis стоит на развилке (репутация по умолчанию)
Отправить сообщение для genesis с помощью ICQ Отправить сообщение для genesis с помощью Skype™
По умолчанию

Цитата:
Сообщение от TRam_ Посмотреть сообщение
Например для клавиатуры код вообще отдельный надо делать, так как для неё нужно 3 байта (2 на код клавиши + флаг) , но обмениваться часто (~0.01 с). А мультиплееру надо 1 строку или массив писать, по несколько тысяч символов, но раз в 0.5 секунды. И запись ответной строки (в случае одномассивного интерфейса) задерижит отправку очередного ответа от клавиатуры.
Ну да, это у тебя серьезные проблемы, ведь ты передаешь только одну строку за раз.
А еще, к твоему сведению, в ТРС многозадачность кооперативная. Так что как бы ты не выпендривался с десятком строк для каждой функции, по твоим суждениям следует, что запись данных мультиплеера по-любому заблокирует клавиатуру.
Цитата:
Сообщение от TRam_ Посмотреть сообщение
обмениваться часто (~0.01 с)
Ты не прав. Во-первых, номинал времени отклика для нажатия клавиши — 0.1 с. Во-вторых, используя паттерн ли...
Цитата:
Сообщение от TRam_ Посмотреть сообщение
Но я не считаю, что ТРС умеет записывать строки в 2000 байт даже за 0.05 с
А зря, вот сначала посчитай, а потом уже пиши, а то нередко "факты", написанные тобой, оказываются бредом. Живо встает в памяти проблема отражения ГСТСа от стрелок.

Последний раз редактировалось genesis; 15.05.2010 в 19:26.
genesis вне форума   Ответить с цитированием
Старый 15.05.2010, 19:42   #20
genesis
Матёрый пользователь
 
Регистрация: 31.07.2007
Адрес: Ульяновск
Сообщений: 2,570
Вы сказали Спасибо: 245
Поблагодарили 175 раз(а) в 76 сообщениях
genesis стоит на развилке (репутация по умолчанию)
Отправить сообщение для genesis с помощью ICQ Отправить сообщение для genesis с помощью Skype™
По умолчанию Счеты

Тест:
Код:
int[] a = new int[10000];
int i;
int j;

Interface.Log("START");

for (i = 0; i < a.size(); ++i)
{
	for (j = 0; j < a.size(); ++j)
	{
		a[i] = j;
		a[j] = i;
	}
}

Interface.Log("STOP");
Interface.Log(a[0] + a[a.size() - 1]);
Результат:
Код:
? 000004AC Warn   0:25.7 Trainz          : WorldState::NativeLog> START
? 000004AC Warn   0:41.2 Trainz          : WorldState::NativeLog> STOP
? 000004AC Warn   0:41.2 Trainz          : WorldState::NativeLog> 19998
Скорость записи:
2 * 10000 * 10000 / (41.2 - 25.7) = 12903225,806451612903225806451613

То есть:
12.9 МБ/с (считаем целое четырехбайтовое число за один байтовый символ)

Вывод:
Скрипты в ТРС прекрасны.

Последний раз редактировалось genesis; 15.05.2010 в 19:45.
genesis вне форума   Ответить с цитированием
Старый 15.05.2010, 19:53   #21
Midnighter
Матёрый пользователь
 
Аватар для Midnighter
 
Регистрация: 13.05.2007
Адрес: Красноярск
Сообщений: 1,171
Вы сказали Спасибо: 2
Поблагодарили 45 раз(а) в 17 сообщениях
Midnighter стоит на развилке (репутация по умолчанию)
Отправить сообщение для Midnighter с помощью ICQ
По умолчанию

Миша, Вова, Саня! Каковы перспективы увидеть мультик в ТРС вцелом?)
Ребята вон для ГТА довольно быстро управились
__________________
Верю в смерть после жизни, любовь после секса и в крем после бритья
Midnighter вне форума   Ответить с цитированием
Старый 15.05.2010, 20:04   #22
genesis
Матёрый пользователь
 
Регистрация: 31.07.2007
Адрес: Ульяновск
Сообщений: 2,570
Вы сказали Спасибо: 245
Поблагодарили 175 раз(а) в 76 сообщениях
genesis стоит на развилке (репутация по умолчанию)
Отправить сообщение для genesis с помощью ICQ Отправить сообщение для genesis с помощью Skype™
По умолчанию

Надо пробовать

Если техническая сторона все это вполне допускает, то организационные моменты гораздо сложнее, мне кажется.
genesis вне форума   Ответить с цитированием
Старый 15.05.2010, 21:34   #23
TRam_
Матёрый пользователь
 
Аватар для TRam_
 
Регистрация: 18.02.2008
Сообщений: 8,716
Вы сказали Спасибо: 1,424
Поблагодарили 2,377 раз(а) в 1,330 сообщениях
TRam_ стоит на развилке (репутация по умолчанию)
По умолчанию

Цитата:
Живо встает в памяти проблема отражения ГСТСа от стрелок.
да, ГСТС неверно отпределяет положение переведённой не на нас противошёрстрной стрелки.
ЭТО ФАКТ. А моё предположение о том, что оно неверно определяется для противошёрстных стрелок вообще было вызвано фитчей АЛСН потери кодирования на стрелке и фактом не оказалось.

Цитата:
То есть:
12.9 МБ/с (считаем целое четырехбайтовое число за один байтовый символ)
остаётся только мне со строками проверить и покончить ещё с одним своим бредом.
__________________
местный зомбяк

Последний раз редактировалось TRam_; 15.05.2010 в 21:37.
TRam_ вне форума   Ответить с цитированием
Старый 15.05.2010, 22:54   #24
genesis
Матёрый пользователь
 
Регистрация: 31.07.2007
Адрес: Ульяновск
Сообщений: 2,570
Вы сказали Спасибо: 245
Поблагодарили 175 раз(а) в 76 сообщениях
genesis стоит на развилке (репутация по умолчанию)
Отправить сообщение для genesis с помощью ICQ Отправить сообщение для genesis с помощью Skype™
По умолчанию

Строка — тот же массив чисел. Ничего иного ты не обнаружишь.
К тому же имеет смысл работать именно с массивом интов. Так имеется возможность экономно передавать бинарные данные. Извлечь из такого массива строку легко, а наоборот — уже труднее.
Цитата:
Сообщение от TRam_ Посмотреть сообщение
да, ГСТС неверно отпределяет положение переведённой не на нас противошёрстрной стрелки.
Как он может определять положение стрелки, ГСТС лишь ищет и находит, а положение стрелки выдается Junction.GetDirection() и от поиска не зависит.
genesis вне форума   Ответить с цитированием
Старый 15.05.2010, 23:49   #25
TRam_
Матёрый пользователь
 
Аватар для TRam_
 
Регистрация: 18.02.2008
Сообщений: 8,716
Вы сказали Спасибо: 1,424
Поблагодарили 2,377 раз(а) в 1,330 сообщениях
TRam_ стоит на развилке (репутация по умолчанию)
По умолчанию

Цитата:
Как он может определять положение стрелки, ГСТС лишь ищет и находит,
ну не положение относительно поиска, так направление относительно поиска, выдаваемое
public native bool GSTrackSearch.GetFacingRelativeToSearchDirection ( void ) .


Цитата:
К тому же имеет смысл работать именно с массивом интов. Так имеется возможность экономно передавать бинарные данные.
а может вовсе с плавающей точкой делать? А то нам целочисленные не очень-то нужны, главное - имена и значения скорости и расстояния
__________________
местный зомбяк
TRam_ вне форума   Ответить с цитированием
Старый 15.05.2010, 23:51   #26
Combine
Матёрый пользователь
 
Аватар для Combine
 
Регистрация: 30.08.2007
Адрес: Московская область, 36км
Сообщений: 3,620
Вы сказали Спасибо: 263
Поблагодарили 304 раз(а) в 172 сообщениях
Combine стоит на развилке (репутация по умолчанию)
По умолчанию

Цитата:
Но я не считаю, что ТРС умеет записывать строки в 2000 байт даже за 0.05 с (т.е. 5 пропущенных сигналов клавиатуры)
Ну на твоем кассетном Спектруме, может, и так... У всех людей скорость перемещения данных в ОЗУ давно уже имеет исчисление гигабайтами.

Цитата:
Миша, Вова, Саня! Каковы перспективы увидеть мультик в ТРС вцелом?)
Ребята вон для ГТА довольно быстро управились
Технически проблем никаких нет. А так бы я на вашем месте давно подсадил меня на героин и заставлял работать в обмен на дозу.

Цитата:
а может вовсе с плавающей точкой делать? А то нам целочисленные не очень-то нужны, главное - имена и значения скорости и расстояния
Лучше булев.

P.S. Володя, ради бога, занимайся лучше своим делом — сопроматом и не мотай нам нервы и не трать наше время на опровержение твоей бредятины.
Combine вне форума   Ответить с цитированием
Старый 16.05.2010, 00:27   #27
genesis
Матёрый пользователь
 
Регистрация: 31.07.2007
Адрес: Ульяновск
Сообщений: 2,570
Вы сказали Спасибо: 245
Поблагодарили 175 раз(а) в 76 сообщениях
genesis стоит на развилке (репутация по умолчанию)
Отправить сообщение для genesis с помощью ICQ Отправить сообщение для genesis с помощью Skype™
По умолчанию

Цитата:
Сообщение от TRam_ Посмотреть сообщение
ну не положение относительно поиска, так направление относительно поиска, выдаваемое
public native bool GSTrackSearch.GetFacingRelativeToSearchDirection ( void ) .
Интересно услышать детали.
genesis вне форума   Ответить с цитированием
Старый 16.05.2010, 00:41   #28
TRam_
Матёрый пользователь
 
Аватар для TRam_
 
Регистрация: 18.02.2008
Сообщений: 8,716
Вы сказали Спасибо: 1,424
Поблагодарили 2,377 раз(а) в 1,330 сообщениях
TRam_ стоит на развилке (репутация по умолчанию)
По умолчанию

Цитата:
Ну на твоем кассетном Спектруме, может, и так...
хочешь чтоб а ещё попетросянил? Пожалуйста. Мой камп, с которого я написал это сообщение


Цитата:
Интересно услышать детали.
это не детали. Это пояснение.

Цитата:
P.S. Володя, ради бога, занимайся лучше своим делом — сопроматом и не мотай нам нервы и не трать наше время на опровержение твоей бредятины.
Вероятно ты прав... Пора уже TRainzManual_'у на покой. Свою самую сложную мечту - связать trainz и свою программу - он уже осуществил
__________________
местный зомбяк
TRam_ вне форума   Ответить с цитированием
Старый 16.05.2010, 13:04   #29
genesis
Матёрый пользователь
 
Регистрация: 31.07.2007
Адрес: Ульяновск
Сообщений: 2,570
Вы сказали Спасибо: 245
Поблагодарили 175 раз(а) в 76 сообщениях
genesis стоит на развилке (репутация по умолчанию)
Отправить сообщение для genesis с помощью ICQ Отправить сообщение для genesis с помощью Skype™
По умолчанию

Цитата:
Сообщение от TRam_ Посмотреть сообщение
это не детали. Это пояснение.
Что в нем не так — вот что я хочу услышать. Возвращает ли он правильное значение, или неправильное, или противоположное правильному, или всегда одно, или вообще рандомное.
genesis вне форума   Ответить с цитированием
Старый 16.05.2010, 13:12   #30
TRam_
Матёрый пользователь
 
Аватар для TRam_
 
Регистрация: 18.02.2008
Сообщений: 8,716
Вы сказали Спасибо: 1,424
Поблагодарили 2,377 раз(а) в 1,330 сообщениях
TRam_ стоит на развилке (репутация по умолчанию)
По умолчанию

возвращает всегда false. При любом положении левера относительно пути.

Следующий SearchNext выдаёт null, так что для маршрутизации надо запоминать объект перед стрелкой и его направление относительно поиска, чтобы после её перевода возобновлять поиск с этого объекта, а не со стрелки.
TRam_ вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 16:54. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
© 2001-2019, Администраторы и разработчики Клуба Trainsim
TopList Нажми для появления дома Trainsim на карте Intermap
Что это?