слепой?
0
Elkrakko
Автор: Kitmouse · 10.12.2012, 12:16 · 40 сообщений
Бвахаха, нет.VilgO (10 December 2012 - 07:31) писал: писал:Небось можно же запилить отдельный сервер для атмоса на плюсах на той же машине, а из сервера клиента каждый тик делать запросы.
В каком месте проблема? Можно ли вообще соединить сервер ссочки с чем-нибудь внешним?ZLOFENIX (10 December 2012 - 10:59) писал: писал:Бвахаха, нет.

В качестве результата у меня:Цитатаuses
System.IO;
type
Turf = record
pressure, temperature, oxyproc: real;
function GetOxygMass: real;
begin
result := pressure * oxyproc / 100;
end;
constructor Create;
begin
pressure := random(101, 105);
temperature := random(20, 25);
oxyproc := random(20, 25);
end;
end;
var
Stream: StreamWriter;
Map: array [1..512, 1..512] of Turf;
begin
for var i := 1 to 512 do
begin
for var j := 1 to 512 do
Map[i, j] := new Turf;
end;
Stream := &File.CreateText('C:\atmos.txt');
Stream.Flush;
for var i := 1 to 512 do
begin
for var j := 1 to 512 do
begin
Stream.WriteLine('x={0}', j);
Stream.WriteLine('y={0}', i);
Stream.WriteLine('p={0}', Map[j, i].pressure);
Stream.WriteLine('t={0}', Map[j, i].temperature);
Stream.WriteLine('o={0}', Map[j, i].GetOxygMass);
Stream.WriteLine('#');
end;
end;
writeln(concat('Время записи в файл: ', (Milliseconds / 1000).ToString), ' секунд');
end.
А ты представь, что таких записей должно быть 20 штук в секунду? Вот и я о том же.ЦитатаВремя записи в файл: 0,953 секунд
Вэйт, не обязательно всю станцию каждый раз заново в файл загонять. Достаточно передавать изменения - взрывы, открывшиеся/закрывшиеся двери, и прочее. Остальное-то уже есть. Бьондосервер должен вычислять, какие тайлы изменились и какие могут измениться в следующий тик. Первые - в файл, вторые - обновлять из файла.ЦитатаСмотри, у нас 6 карт с атмосом, каждая 512*512. Чтобы записать файл, бъонду надо будет обратиться к каждому из них, и записать в таблицу их переменные давления, температуры, и компоновки (проценты). Получаем: 768 432 записей переменных НА ОДНУ КАРТУ. Всего-лишь на одну. Каждый раз надо будет обработать - 4 610 592 байта. Ладно, можно исключить космос, и взять просто станции и прочие объекты, тогда количество сокращается до ~1 500 000 байта (дереликт, станция, диджей станция и прочие).