![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
2D аркада на 3D движке (oGL). demo N1
wiz © (2004-03-19 16:49:00)Решил представить широкой общественности tech-demo вещицы, которую недавно начал писать.
Итак, tech-demo N1: "Физика и немного графики" (45 kB)
http://www.chat.ru/~wad_fox/sd.exe
После скачивания и выполнения, можно начинать закидывать автора (т.е. меня) помидорами и прочими подручными вещами. Конструктивное закидывание приветствуется.
wiz (2004-04-03 15:09:00) [61]2 VMcL: а разницы? ну сэкономлю я 100kB на exe'шнике... ресурсы всё равно много больше...
VMcL (2004-04-03 14:50:00) [62]>>wiz © (02.04.04 22:57) [86]
Ну не беда. Ты на exe'шник UPX натрави.
wiz (2004-04-02 22:57:00) [63]2 AxxxE: ну я даже и не знаю :). как говорил один великий (жаль не помню кто) "Эксперимент - критерий истины"
кстати, я тут добавил в свою демку GLext и JPEG и всё :(( exe'шник ~250kB.
AxxxE (2004-04-02 15:10:00) [64]>[74]
???
>только учти, что куча модулей юзают SysUtils и Classes. Те же
>Forms...
Так у меня и формс отключены, VCL при программировании OGL не использую
wiz (2004-04-02 07:55:00) [65]2 AxxxE: пятая.
только учти, что куча модулей юзают SysUtils и Classes. Те же Forms...
VMcL (2004-04-01 20:21:00) [66]>>AxxxE © (01.04.04 19:36) [82]
[74]
AxxxE (2004-04-01 19:36:00) [67]А у тебя какая дельфя (версия)?. У меня состав тот же, но из 100кб текста (с прочими модулями) получается 200кб кода :(. Вот я тыркаюсь уже давно и никак не пойму, в чём прикол. Ты уж извини, что вопрос не в тему :).
wiz (2004-03-31 17:28:00) [68]2 VMcL:
>Если M достаточно велико, то у меня есть "запас прочности".
с этим нельзя спорить :)
Morok (2004-03-31 17:11:00) [69]офтоп
чисто по ку 3 там физики зависит от ФПС не знаю как не вдавался в подробности, но знаю что оптимальная игра это 125 или 142 фпс, тогда и летаешь дальше и разпрыжка лучше и можно забираться на более высокие объекты, трики вопшем....
при низких фпс наводка мыши не точная, все зависит от сенса конечно....
VMcL (2004-03-31 17:06:00) [70]P.S. Но есть "критическое значение" M, значения выше которого уже не имеет смысла достигать.
VMcL (2004-03-31 17:04:00) [71]>>wiz © (31.03.04 16:09) [77]
>отя посмотрев на чиселку "2xx"
Для меня самым важным фактором является не макс. число fps и не среднее, а минимальное. По моим наблюдениям: в multiplayer шутерах мне хватает, чтобы fps был не меньше50..60. Хотя, как ты заметил, психологически - "чем больше, тем лучше".
Лично я считаю, что действительно чем больше, тем лучше. Вот почему: например, сейчас я просто бегу, у меня M fps. Если начнется заваруха (Q3 - куча LightningGun + куча ракет, CS - взрывы + smoke grenades), то fps падает. Если M достаточно велико, то у меня есть "запас прочности".
wiz (2004-03-31 16:09:00) [72]2 VMcL:
>Но в общем кое-что полезное в ней можно почерпнуть
Я не говорю, что она бесполезная, просто говорю, что она даёт простое представление о процессах CPU->монитор->глаз->мозг.
>Я так понял, что в Q3 или CS ты не играл?
Обижаете, начальник. Я не люблю их (из сетевых шутеров до сих пор предпочитаю Q2 и Q1-TeamFortress), но я их видел и не один час игрался.
Я только хочу заметить, что imho мои рассуждения "ближе к телу", чем те, что в статье...
считай так: из разбирательств с Vsync'ом и времянкой процесса я вынес свою модель "как это всё работает".
Разница действительно есть и в случае 25->90 и в случае 100->2xx.
Только в случае 25->90 ничего не надо делать (простое увеличение числа кадров улучшает плавность игры).
А в случае 100->2xx (на 100Hz-мониторе) можно попариться, но сделать, например, два кадра в одном (motion blur/trails) и этим улучшить картинку. Если ничего не делать, то твои глаза увидят те же 100 кадров (хотя посмотрев на чиселку "2xx" ты убедишь себя, что всё стало "гораздо круче" - это уже из раздела психологии).
VMcL (2004-03-31 15:37:00) [73]>>wiz © (31.03.04 09:16) [68]
Рассчитывать физ. модель, может, ты будешь успевать и миллион раз в секунду. А видеть игрок будет только какие-то N FPS из них.
ИМХО, неточности в статье, конечно же, есть. Но в общем кое-что полезное в ней можно почерпнуть.
P.S. Я так понял, что в Q3 или CS ты не играл? Я недавно видеокарту дома сменил. И могу сказать, что в Q3 (даже с ботами) между плаванием от 25 до 90 FPS (в слабом режиме графики) и от 100 до 2хх (с крутым режим + 4xAA + 4xAniso) есть огромаднейшая разница в игре (прям аж почувствовал, как лучше играть стал :)
wiz (2004-03-31 15:27:00) [74]2 AxxxE:
это как раз тот случай, когда из 96kB текста получается 64kB кода :)))
wiz (2004-03-31 15:26:00) [75]2 AxxxE:
---cut---
uses
Windows, Messages, OpenGl, {дальше мои модули}
---cut---
т.е. использую всего три библиотеки (ну и System сам линкуется конечно, так что четыре). imho главное - избавиться от SysUtils и Classes.
SysUtils - это относительно просто: не используем inttostr и подобные функции.
Classes - придётся отказаться от всех VCL компонент.
AxxxE (2004-03-31 14:27:00) [76]Кстати, как ты добился таких поразительных результатов в плане объёма? Я как ни старался - писал на WinAPI, "чистый" OpenGL, отключал почти все библиотеки, такого не получал.
wiz (2004-03-31 13:57:00) [77]2 AxxxE:
>Я не про текстуры - просто предлагаю их сделать сплошными.
это сделаем... только я хочу сделать переднюю/заднюю стенки тоже бугристыми => нужна сетка => нужен генератор сетки... А вот как красиво генерировать сетку так, чтобы было сопряжение с сеткой стенок, пока не придумал
>А кто тебе мешает поприбавить мощности в демке, чтоб народ не мучался :) ?
Считайте, что я вас недооценил :) т.к. при нормальных скоростях управлять кораблём - не самое простое занятие.
>Так у тебя уже сейчас стены не ровные, а бугристые, там есть поверхности под разными углами. Или здесь уже приняты какие-то упрощения?
как ты мог заметить - стенки на самом деле горизонтальные и вертикальные с некоторым случайным сдвигом. т.к. я контролирую максимальный и минимальный сдвиги, то я знаю прямоугольник в котором может быть стена. при положении корабля вне этого прямоугольника - коллизия с данной стеной не проверяется. таким образом при данном положении корабля я делаю всего несколько честных проверкок и проверки попадания в прямоугольники (которые очень быстрые, т.к. прямоугольники ориентированы по координатным осям).
Другие углы стен сделать можно, но для быстроты нужно знать их "покоординатные bounding box'ы" в некоторой системе координат и переходить в эту систему координат при проверке на коллизию. Это будет медленнее, чем сейчас, но (я думаю) достаточно быстро. Проблема в том, что это нужно писать :) а я пока не написал :))
AxxxE (2004-03-31 13:43:00) [78]>wiz
>в дальнейшем они будут имитировать нужную поверхность
>(красноватую для Марса, белую в крапинку для Луны и.т.д.)
>как ты мог заметить я не натягивал (пока) тексуры. что позволило
>сделать всю демку - 60kB
Я не про текстуры - просто предлагаю их сделать сплошными.
>ты учти, что сейчас вы управляете "космическим металлоломом".
>Мощьности этого файтера еле-еле хватает преодолеть притяжение...
>в настоящем бою машинки будут помощнее.
А кто тебе мешает поприбавить мощности в демке, чтоб народ не мучался :) ?
>я тоже об этом думал, но для этого нужно написать очень хорошо
>оптимизированный детектор коллизий
Так у тебя уже сейчас стены не ровные, а бугристые, там есть поверхности под разными углами. Или здесь уже приняты какие-то упрощения?
wiz (2004-03-31 12:21:00) [79]2 smb: Alt+F4
smb (2004-03-31 12:14:00) [80]Radeon 9200 64 mb Pentium 2.4HT RAM 512 mb
160 к/с - средне
а на чистых местах в правом верхнем углу до 300-360 к/с
прикольно. особенно шарики. играть в волейбол можно. еслиб по сети вдвоем, точно бы с мячами играли бы :))) летаешь, пихаешь их забрасываешь противника. а то он мягкий такой. просто летает за тобой и стреляет.
- зря водомет убрал.
- как выйти из игры? кроме Ctrl-Alt-Del ;)