- 
	
	
		
		
			
				
				
				
					Кто знает мультиплеер, а так же локализацию и глоболизацию?
				
				
						
							
							
						
						
							
						
				
					
						
							Если бы я знал точные ответы на все эти вопросы я бы разве спрашивал? 
Но то что мне удалось догнать в ходе эксперементов. поделюсь по большому секрету. 
1. Когда распаковал srver.scc и обработал утилиткой раскодировки получил последовательность #byte #byte ... вот таких чисел, где byte - число из диапазода 0..255. Скорее всего это управляющие коды инициализации, либо сервера, либо еще и каждого клиента. Возможно управляющая последовательность сервером обработки данных и передачи их клиентам. 
2. Глобализация PublicVariable "NameOfValue" дает указание о рассылки переменной. Переменная может быть простого типа или объект. Про массивы и группы не сказанно, да я и не пробывал - не было надобности. Ну тут надо вспомнить принципы программирования на языке Ада. Дело в том, что каждый комп можно рассматривать как параллельный процесс, но не синхронизированный с остальными. Т.е. если точнее сказать, то почти синхронизированный. Синхронизация происходит по переменной time, которая доступна только для чтения, но различия ее значения, в зависимости от коннекта может достигать до 5 секунд и иногда более. Так же переменная player - обозначает локального игрока на данном компьютере. Из-за этого можно делать (как я уже пробывал) например разные вступительные ролики для каждой из сторон, а при желании и для каждого игрока... 
Это я увлекся малость. Так вот из-за того что сетевая игра - на самом деле параллельные процессы то инструкция типа 
MyScoreEast=ScoreEast+1 
publicVariable "MyScoreEast" 
неверна, так как увеличение вроде на единицу из-за сдвига времени приведет к тому, что переменная увеличиться на количество игроков в игре + сервер, если он удаленный. Скорее лучше сделать 
PublicVariable "MyScoreEast" 
MyScoreEast=MyScoreEast+1 
Но лучше бы рассылку данных производить где-то в середине интервала изменения переменной. После рассылки значение переменной будут совпадать (если переменная с фиксированным интервалом изменения). Кстати какое значение будет итоговым - трудно сказать. Зачем нужна рассылка? Ну для того, чтобы у тех у кого лаги, то они получали достоверные сведения о игре, а не то что у них происходит. Так же не следует делать рассылку кучи переменных, потому что она будет загружать траффик. Достаточно рассылать основные например счет. Кстати инициализацию переменных в начале игры не нужно рассылать, потому как инициализация пройдет у каждого на компе локально. Если вы не увеличиваете и не уменьшаете значение переменной то рассылку стоит вести по образу: 
IsDone=true 
PublicVariable "IsDone" 
Теперь еще. Если вы создаете динамически юниты или технику в игре, то тут надо обходить еще одну трудность. На самом деле игра игра идет на компе каждого своя. Что рассылаеться, так это положение юнита и его направление движение, а так же состояние (например ведет огонь). Игра немного экстраполирует данные (наверное видели в процессе игры как солдат бежит к дому, и пробегает его, а потом телепортируеться возле стены. Это вот экстрополяция. Так вот, чтобы создать юнит, нужно, чтобы его создавал один комп, а потом рассылал (для инициализации) первичные данные. Т.е. нужно блокировать создание объекта на других компах. Для этого нужно использовать переменную player. И потом не забыть разослать данные об объекте.. Кстати можно использовать addAction, для добавления кокому-то юниту. По этому типу я как-то написал шаблон для создания карт типа конквест... Но тут есть так же свои трудности. 
Ну вроде что знал ответил. 
Теперь догадки (продолжение начала). 
В руководстве от БИС написанно, что локализация нужна для пременных из таблицы стрингов, для дальнейшего отображения на компе игрока. но на самом деле. Просмотрев несколько сетевых карт, я понял, что они как всегда наврали (такое подозрение, что никто там не знает, всех команд и описания параметров к ним, а те кто знают хотят заработать денег. По непроверенным данным на одном секретном сервере есть описание структуры config.cpp от БИС. Вообщем очень напоминает ситуацию с Кислородом. Вот так я и задаюсь вопросом. Зачем я платил 60 баксов и зачем они встраивали редактор, без описания...) Ладно, опять увлекся. 
Локализироваться могут все объекты, как и в случае их публикации. Зачем это надо я еще не допрыгал. Но думаю может как раз для динамического создания.... Еще меня убивает то, что в их кодах локализация переменных сменяется глобализацией и наоборот. Вот тут я совсем не разобрался. 
Вот может кто нить дополнит. 
П.С. Копия того, что в споре тиснул на флеш.ру.
						
					 
					
				 
			 
			
			
		 
	 
		
	
 
		
                
		
	
 
	
	
	
	
	
	
	
	
	
		
		
			
				
				Ваши права
			
			
				
	
		- Вы не можете создавать новые темы
 
		- Вы не можете отвечать в темах
 
		- Вы не можете прикреплять вложения
 
		- Вы не можете редактировать свои сообщения
 
		-  
 
	
	
	Правила форума