Форум: "Игры";
Текущий архив: 2004.12.26;
Скачать: [xml.tar.bz2];
ВнизА не устраивать ли нам небольшие конкурсы по кодингу? Найти похожие ветки
← →
wiz © (2004-07-23 18:12) [640]PPPS: для тех кто не хочет ждать до завтра пример:
//ПсихЪ code
function Fast_Distance_2D( x : integer; y : integer ) : integer;
var
mn : integer;
begin
x := abs( x );
y := abs( y );
if x < y then
mn := x
else
mn := y;
Result := ( x+y-( mn shr 1 )-( mn shr 2 )+( mn shr 4 ) );
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
x,y,len:integer;
worktime,dummy:double;
begin
dummy:=0;
TimerInit;
for i:=1 to max_iter do
begin
x:=random(10000)-5000;
y:=random(10000)-5000;
len:=Fast_Distance_2D(x,y);
dummy:=dummy+len;
end;
TimerTick;
edit1.text:=floattostr(dummy);
worktime:=timer_counter/max_iter * 10E9;
edit1.text:=format("%4.4f нс/выч",[worktime]);
end;
TimerInit, TimerTick - вызовы QueryPerformanceCounter;
dummy - чтобы компилер не "забил" на len;
edit1.text:=floattostr(dummy); - чтобы компилер не "забил" на dummy;
max_iter - очевидно количество итерации (1 000 000)
← →
NailMan © (2004-07-23 18:19) [641]Тоесть мой вариант на non-sqrt получился быстрее?
Сегодня у себя попробую потестить(AXP 3000+, DDR400 512Mb) аналогичный тест. И могу на AXP 2100+(DDR333) и Athlon 750(PC100).
---
WBR, NailMan aka 2:5020/3337.13
← →
wiz © (2004-07-23 18:27) [642]2 NailMan: я почти не сомневался, что
function Fast_Distance_2D_nailman_fast( x : integer; y : integer ) : integer;
begin
Result := x*x + y*y;
end;
на int"ах будет очень быстрым. Я сам пользуюсь именно таким (только на double"ах), т.к. обычно нафиг не надо брать корень (можно сравнивать квадраты).
← →
OSokin (2004-07-24 13:55) [643]Слушайте, скачал с сайта паратрупер. Имхо, самая крутая графика в DeadMeat"а, но где враги?
← →
NailMan © (2004-07-24 15:18) [644]Оффтоп:
Ха! интересные результаты получились на моем варианте тестилки:
алгоритмы поиска столкновения сфера-сфера(3D) на синглах:
алгоритм(полностью процедуру я привел выше):
sQ:=Sqr(v2.x-v1.x) + Sqr(v2.y-v1.y) + Sqr(v2.z-v1.z);
If sq<=((r1+r2)*(r1+r2)) then result:=true;
выдал результат на 1млн итераций: 55 нс/итерация
алгоритм:
sQ:=(v2.x-v1.x)*(v2.x-v1.x) + (v2.y-v1.y)*(v2.y-v1.y) + (v2.z-v1.z)*(v2.z-v1.z);
If sq<=((r1+r2)*(r1+r2)) then result:=true;
выдал результат на 1млн итераций: 27.2 нс/итерация
Проц AXP3000+(2100MHz), мозг 512 DDR400.
Результат без использования SQR быстрей в 2 раза чем с этой функцией.
А если модифицировать так:
If (v2.x-v1.x)*(v2.x-v1.x) + (v2.y-v1.y)*(v2.y-v1.y) + (v2.z-v1.z)*(v2.z-v1.z)<=((r1+r2)*(r1+r2)) then result:=true else result:=false;
то получается: 24.4 нс/итерация
Вот она где сила....
---
WBR, NailMan aka 2:5020/3337.13
← →
Zer0 © (2004-07-24 18:46) [645]1. для бенчмарков вычисления дистанции рекомендую создать отдельный тред
3. есть оптимизации на притирки ассемблеровских команд.
2. а никто не заморачивался с fpu? ;)
← →
cyborg © (2004-07-24 19:05) [646]Попробуй ещё:
Result:=(v2.x-v1.x)*(v2.x-v1.x) + (v2.y-v1.y)*(v2.y-v1.y) + (v2.z-v1.z)*(v2.z-v1.z)<=((r1+r2)*(r1+r2));
Ещё одной проверкой меньше.
← →
NailMan © (2004-07-24 21:10) [647]Zer0 ©
Я заморачивался с 3DNow!. Фактически моя демка его активно использует, но об этом действительно надо в новой созданной ветке.
---
WBR, NailMan aka 2:5020/3337.13
← →
}{enon © (2004-07-25 11:18) [648]Собственно, тут появился один вопросик. Могу ли я использовать в своей игре чужой модуль (например, unit от чьего-нибудь ColorTetris"a)?
← →
cyborg © (2004-07-25 11:21) [649]
> [648] }{enon © (25.07.04 11:18)
Можешь, только поблагодарить не забудь в титрах где нибудь. Это конечно, если у тебя совесть есть, ежели её нет, то это делать совсем не обязательно.
← →
DeadMeat © (2004-07-25 14:44) [650]
> [643] OSokin (24.07.04 13:55)
На врагов ты смотришь с самого начала... 5-пять корабликов пришелцев. Правда они сами в отпуске (лето всетаки) и поэтому корабли стоят на стоянке... А вообще если хочешь доделай, как я описывал ранее...
---
...Death Is Only The Begining...
← →
Andr © (2004-07-25 15:40) [651]to DeadMeat © (25.07.04 14:44) [650]
А ты что, доделывать не будешь?
Ты же обещал!
← →
OSokin (2004-07-25 16:00) [652][650] и [651]. Это правда. К тому же твой код - ты с ним можешь разобраться лучше. Это раз. У меня не дополнительных опенглюков. Это два. И третье - даже эти корабли пришельцев не уничтожаются.
← →
DeadMeat © (2004-07-25 16:13) [653]
> [651] Andr © (25.07.04 15:40)
Не ну если так понравилось, то доделаю... Правда не скоро.
> [652] OSokin (25.07.04 16:00)
До колижинов не дошел, но как уже сказал выше, выкрою время...
---
...Death Is Only The Begining...
← →
wiz © (2004-07-25 16:20) [654]2 }{enon:
в принципе - можешь... только советую тебе вначале спросить разрешение у того кто это написал, например и-мыльно... Не знаю точно, но я думаю здесь мало кто тебе откажет (в конце концов этот конкурс и задумывался, как опенсурс), так что этот вопрос (в некотором роде) формальность. Зато автору модуля будет приятно :)))
← →
}{enon © (2004-07-25 17:50) [655]Ок. Просто этот Xonix - моя вторая игра (первая была на DelphiX). Так что я не уверен, что успею освоить DerectDraw / OpenGL в установленный срок, а выводить графику через WinAPI как-то криво.
← →
OSokin (2004-07-25 17:57) [656]Ага. Я пожертвовал размером и решил сделать на DelphiX.
← →
DeadMeat © (2004-07-25 21:27) [657]> Darthman
Не много не в тему, но всеже... Щас зашел на твою страничку (вдруг чего нового увижу :)) и заметил вот это
Описание всех правил игры и примера можно в разделе Xonix.
Как я понимаю, пропустил слово посмотреть
Это так... просто....
---
...Death Is Only The Begining...
← →
Darthman © (2004-07-26 00:29) [658]спасибки, поправлю :)
За себя говорю - мои исходники можно использовать как хошь, если не жаль будет, упомяни. Нет, Так нет :)
← →
ПсихЪ_задумчивый (2004-07-26 09:53) [659]Исходники юзайте как хотите, мне не жалко. Только прошу не трогать идею Darthman"а в его Color Tetris"e. Ибо я её сейчас развиваю...
Окинул проблему Xonix"а своим программерским взглядом. Накодил парочку моделей. ДА!!! Косяков там целая туча. К тому же в комплексе это достаточно крутовато получается... (: Так что делание игры на работе мне представилось нереальным. Если найду в ближайшее время деньги на мать и проц, значится примаю участи. Нет, значит нет... ):
Всем хорошего кода!
← →
Darthman © (2004-07-26 11:31) [660]ПсихЪ_задумчивый:
Что же ты там мутишь (заинтересованно)? Обязательно покажешь :)
← →
имя (2004-07-26 17:34) [661]Удалено модератором
← →
}{enon © (2004-07-26 21:24) [662]
> ДА!!! Косяков там целая туча.
Может я чего-то не понимаю, но особых косяков там вроде бы нет... В классическом варианте все реализуется без особых проблем: волновой алгоритм, коллизия окружность-прямая и т.д. Можно конечно сделать клетки поля размером в 1 пиксель и возиться с отражением от кривой поверхности, но только зачем это нужно?
← →
RagE © (2004-07-27 09:43) [663][662]
ты знаешь я еще за прогу не садился, только алгоритм обдумывал. И ты знаешь косяки есть, по крайней мере я увидел некую сложность как определить отрезанный кусок, он же может быть любой формы. Я алгоритм надумал но будет ли работаь еще не знаю.
← →
Darthman © (2004-07-27 10:46) [664]Задачка хорошая? :) ИМХО сложная весьма... может быть продлевать придется.
← →
Magikan © (2004-07-27 11:29) [665]А что тут сложного - алгоритм заливки замкнутой фигуры
← →
RagE © (2004-07-27 11:30) [666]Darthman © (27.07.04 10:46) [664]
Да задачка довольно интересная. Я еще попутно с графикой разбираюсь :), Первый раз буду игру на API писать :) Да впринципе и игру тоже почти в первый :)
← →
RagE © (2004-07-27 11:34) [667]Magikan © (27.07.04 11:29) [665]
Тут сложным я считаю не залить фигуру а определить эту саму фигуру и есть ли в ней шарик. Вобщем то может все и просто но пока определенные трудности я уже вижу.
← →
Darthman © (2004-07-27 11:39) [668]Ну как определить есть ли в ней шарик я уже точно знаю. По методу Монте Карло тут просто все можно сделать. Вот.
← →
Darthman © (2004-07-27 13:27) [669]Хотя нет... это я сморозил, запутали меня, блин :(
← →
RagE © (2004-07-27 14:22) [670]А что за метод такой? Я даже не слышал о таком
← →
Darthman © (2004-07-27 14:31) [671]Да это вообще немного не отсюда, просто на работе голову заморочили :(
← →
RagE © (2004-07-27 15:01) [672]А все же? Интересно стало
← →
Darthman © (2004-07-27 15:13) [673]http://edu.ioffe.ru/register/?doc=efros/4.tex
← →
RagE © (2004-07-28 09:24) [674]Народ хелп плиз. У меня прога еще ничего не делает, только окно создает а уже весит 43к, а как только добавил в uses OpenGL12 113к стал. Неужели так и должно быть?
← →
Darthman © (2004-07-28 10:08) [675]SysUtils и Classes убери и будет не больше 30
← →
П7 (2004-07-28 10:44) [676]Точнее не совсем убери, а перенеси нужные тебе функции в отдельный файлик. Который и подключай вместо вышеназванных юнитов.
← →
RagE © (2004-07-28 10:57) [677]Сенкс попробую
Кстати пробовал вообще пустой проект откомпилить
program test
begin
end.
13 кил получается
нездорово это как то
← →
Megabyte-CeerCop © (2004-07-28 11:37) [678]У меня пустой, без Uses - 8 кб.
← →
RagE © (2004-07-28 12:05) [679]Megabyte-CeerCop © (28.07.04 11:37) [678]
Можешь дать свои настройки проекта? Всеже интересно чего я не так делаю, или пришли плиз уже скомпиленный exe. Я свой смотрел там куча пурги разной есть и вполне ненужной но как отключить не знаю.
← →
Darthman © (2004-07-28 12:05) [680]Удалено модератором
Страницы: 1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18
19 20 21 22 23 24 25 26 27
вся ветка
Форум: "Игры";
Текущий архив: 2004.12.26;
Скачать: [xml.tar.bz2];
Память: 1.59 MB
Время: 0.562 c