Войти
ПроектыФорумУтилиты

C# 2D Engine. Оцените Технодемо. Ваше мнение? (2 стр)

Страницы: 1 2 3 Следующая »
#15
16:50, 4 авг. 2005

To Dinosaur Вполне возможно, что насчет VSync я и ошибаюсь (я так и написал "насколько я знаю" :). Спасибо за подсказку.


#16
20:30, 4 авг. 2005

Медленные операции выделения (не говоря уже об освобождении) памяти. Например при написании волнового алгоритма поиска пути, при использовании стандартного ArrayList и операций add/removeat поиск по карте 512х512 занимал 6-8 сек. Простой отказ от ArrayList и переход на свой однонаправленый список с выделением памяти 1 раз в начале алгоритма дал 0.02 сек!!!

Операция выделения памяти работает быстрее чем в C++. Похоже что-то ты с боксингом намудрил...

http://rsdn.ru/article/dotnet/GCnet.xml

#17
21:10, 4 авг. 2005

безграмотный ты, LSL, и посты твои безграмотные

#18
22:45, 4 авг. 2005

p4 2.4, gf fx5600, 512ram
~600-650 фпс в космосиме )
Особенный респект за то, что пишите в связке шарп + огл :)

#19
6:42, 5 авг. 2005

где то здесь было про VSync
Цитирую d12a60n

Нужно использовать расширение OpenGL — WGL_EXT_swap_control. Просто добавь кусочек кода к проекту и жизнь шикарна:

typedef BOOL (APIENTRY * wglSwapIntervalEXT_Func)(int);wglSwapIntervalEXT_Func wglSwapIntervalEXT =  wglSwapIntervalEXT_Func(wglGetProcAddress("wglSwapIntervalEXT"));if(wglSwapIntervalEXT) wglSwapIntervalEXT(0); // 1 - чтобы включить
#20
8:01, 5 авг. 2005

Поиграл в демку про кораблики :)
Понравилось.

Хотя я где то это уже видел но хотелось бы полноценной игры.

#21
11:30, 5 авг. 2005

To B.F.
К сожаленью пока это только технодемо, тоесть демонстрация возможностей движка,
способности комманды написать стабильный код и при наличии хороших художников
сделать красивую картинку которая бы шла без тормозов на средней машине.

Мне тоже бы хотелось сделать "полноценную" игру. Но пока в нашей команде нехватает как минимум художника.
А на чужой, пусть и немного модифицированой графике далеко не уедеш :(.
Потому мы и появились в инете и на этом форуме. (хотя сдается мне, что дело все равно окончится наемом фрилансеров,
так как голым энтузязизмом сыт не будеш :)

To LSL Да действительно, в моем примере были операции боксинга (C++сных шаблонов для ArrayList в C# пока нет).
Этот пример был приведен скорее для того, чтобы показать, что зная плюсы и минусы языка можно добится хороших результатов,
отличающихся на порядки по производительности.
Но на интенсивных операциях выделения памяти С# всетаки тормозит. Я не проводил глубоких исследований данной темы
(с чесными замерами как автор приведеной тобой статьи), это так сказать из "личного опыта". Кстати в статье, преймущество GC и C# призрачно.

PS: Особенно интересно слышать возгласы программера наблюдающего за наличием свободной памяти
в системе, при работе его приложения. Это звучит приблизительно так: Когда этот #@$% коллектор сподобится мусор собрать!?!
(Да, я знаю, можно собирать мусор принудительно, но к сожаленью это не панацея)
PPS: Еще раз повторюсь: автосборщик мусора - счастье и проклятие одновременно

#22
13:58, 5 авг. 2005

asu
Athlon XP 3200+ 512 Mb DualDDR 400, Ti4200.
660-680 fps, довольно красиво.

Мне кажется, что "почему" относилось не к 2D или C#, а к довольно странному сочетанию C# + OpenGL.
Раз уж C#, то почему не Managed DX?

#23
14:31, 5 авг. 2005

To Mikle Вопрос задавался раньше. Отвечу еще раз:

Я признаться ManagedDX ненавижу :(. (после того, как скачав в очередной раз DX SDK перестают собиратся сорсы,
так как кто-то умный в MS в очередной раз поменял иерархию классов) Потому и OpenGL.

Архитектура ManagedDX еще не устоялась и я устал от постоянной гонки за изменениями. + для 2D движка не
нужны все новомодные навороты, там всего-то функий надо: переключение видеорежима, загруза в текстуру, вывод текстуры
в ортогональной проекции и блендинг. Все! Это на OpenGL делается на раз-два. Инкапсулировать данную функциональность
довольно просто. Соответственно, если мы дорастем до 3D и захотим перейти на ManagedDX, нужно будет подменить только
реализацию 1-2 обьектов. Остальное, например интерфейс, системы частиц, анимированые текстуры и т.д. перейдет вообще без изменений.

#24
14:36, 5 авг. 2005

asu

Demo1: 350 - 400 FPS (Celeron 1.4, Radeon 9800 128mb, 384mb ОЗУ).

Как у вас реализован ввод? Через DirectInput?

Нельзя ли выложить демку, демонстрирующую производительность движка со следующей функциональностью:

1) регулирование и вывод на экран текущего количества спрайтов;
2) выбор видеорежима (fullscreen / windowed), выбор разрешения.

#25
15:56, 5 авг. 2005

To Hardgainer
Ответ на 2: Переключение видеорежима fullscreen / windowed, а также настройка частоты есть уже в Demo 2 (каталог Data\Config.xml).
Разрешение правда только 1024х768.

Ответ на 1: Вывод к-ва спрайтов можно и добавить :) Правда к-во спрайтов с FPS напрямую не связано, так как очень многое зависит от размеров
самих спрайтов. Если выводить спрайт размером с экран с включеным блендингом (по простому полу-прозрачностью), то система будет тормозить уже
на десятках-сотнях, а если спрайты мелкие (типа как в технодемо 2), то без проблемм можно говорить как минимум о тысячах спрайтов одновременно
находящихся на экране.

#26
16:01, 5 авг. 2005

To Hardgainer
Ввод без DirectInput. Через обычные события Windows.
Могут быть глюки типа: Жмеш alt-tab - переходиш в винду, зажимаеш кнопку мыши/клавиатуры,  Жмеш alt-tab снова - игра о зажатой кнопке ничего не знает :)
Хотя надо быть извращенцем, чтоб такое сотворить :)

#27
17:58, 5 авг. 2005

asu

Спасибо за лекцию о спрайтах :). Но я уже изучил эти закономерности на собственном опыте.

Я пишу свою игрушку и соответственно 2D движок к ней (Managed DirectX).
Поэтому было бы неплохо иметь под рукой демку, выводящую (с альфаблендингом)
различные количества спрайтов размером, скажем, 128x128 пикселей, чтобы знать на что ориентироваться.

Насчёт DirectInput. Планируется ли поддержка геймпадов?

PS: для меня технодемо 2 весит многовато чтобы качать.

#28
20:02, 5 авг. 2005

asu

Но на интенсивных операциях выделения памяти С# всетаки тормозит.

Ну да, на экстримально интенсивных, когда одновременно с выделением происходит и освобождение.
Эти всё запросто обноруживается и оптимизируется.

Я признаться ManagedDX ненавижу :(. (после того, как скачав в очередной раз DX SDK перестают собиратся сорсы,
так как кто-то умный в MS в очередной раз поменял иерархию классов) Потому и OpenGL.

Архитектура ManagedDX еще не устоялась и я устал от постоянной гонки за изменениями.

DirectX от версии к версии (каждые два месяца) развивается, оптимизируется, исправляются ошибки.
Разумеется MDX тоже и архитектура его давно уже устаялась.
Изменения затрагивают мелкие детали, кривые моменты... элементарный мелкий рефакторинг.

Никаких "изменений архитектуры" нет, обычное развитие программного продукта.

Впрочем с выходом C# 2.0 возможны более крупные модификации API.

#29
11:18, 8 авг. 2005

To LSL: Давай не будем спорить :) У каждого есть свое мнение, и тема этого форума не звучит "Плюсы и минусы С#".
Тем более я не против С#, как языка для создания игр. (Я сам кстати на нем и пишу, если ты заметил :)))
У каждого инструмента есть свое назначение и предложеные мной технодемы призваны были показать,
что С# с задачей создания игр справляется! Так что мне кажется, что мы по одну сторону баррикад :)

To Hardgainer: Нет, поддержка геймпадов не планируется.
По поводу такого вида технодемы как ты просиш - я думаю кроме тебя она никому больше не будет интересна.
Так что, извини.

Страницы: 1 2 3 Следующая »
ПроектыФорумУтилиты

Тема в архиве.