Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   gamedev на flash vs C++ (http://www.flasher.ru/forum/showthread.php?t=129888)

progman 12.09.2009 18:30

gamedev на flash vs C++
 
камрады, просветите плизз по поводу возможности использования флешы для разработки игр.
интересует производительность.

к примеру:
изометрическая 2Д стратегия.
размер карты в 10 раз больше видимой области: предположительно экран 800х600.
несколько тысяч юнитов:
- пара сотен с растровой анимацией и
- все остальное статические: деревья, здания и пр...

террайн тайловый. собирается из тайловых клеток. вся мапа 256х256 клеток. в экран умещается область 25х25 клеток.

начал писать на своем изометрическом движке на С++, но задумался в сторону флеши ибо потом есть намерение попробовать её пристроить в какую нить социальную сеть. для winapp будет сделать это на порядок сложнее.

зы конечно не стракрафт будет но в принципе в первом приближении можно сказать что 50% от старкрафта по сложности и геймплею.

CEBEP 12.09.2009 21:59

флешы, флеши - в мемориз...

etc 13.09.2009 00:39

Производительность будет низкая. Очень. Особенно по сравнению с cpp.

progman 13.09.2009 12:02

Цитата:

Сообщение от etc (Сообщение 850381)
Производительность будет низкая. Очень. Особенно по сравнению с cpp.

насколько низкая?

возможно ли оптимизация: к примеру не рисовать то что не в frustum.

VVall 13.09.2009 12:22

Какой frustum в 2D? Проблема не в том, чтобы не рисовать то, что не в кадре (это само собой разумеется), а в том, что Flash выводит всё чисто программно, не используя аппаратное ускорение, и в том, что AS значительно медленнее, чем код на C++ или Pascal.

Вы лучше подумайте не о графике, а о том-же поиске пути для ваших тысяч юнитов. Или просто поищите среди Flash игр хоть что-нибудь подобное тому, что хотите сделать - если найдёте, будете точно знать, что возможно. Я пока не встречал ничего ни на уровне Starcraft, ни половины от него.

progman 13.09.2009 13:25

Цитата:

Сообщение от VVall (Сообщение 850420)
Какой frustum в 2D? Проблема не в том, чтобы не рисовать то, что не в кадре (это само собой разумеется), а в том, что Flash выводит всё чисто программно, не используя аппаратное ускорение, и в том, что AS значительно медленнее, чем код на C++ или Pascal.

как тогда оптимизация происходит - как не рисуется то чего не попадает в экран?

Цитата:

Сообщение от VVall (Сообщение 850420)
Вы лучше подумайте не о графике, а о том-же поиске пути для ваших тысяч юнитов. Или просто поищите среди Flash игр хоть что-нибудь подобное тому, что хотите сделать - если найдёте, будете точно знать, что возможно. Я пока не встречал ничего ни на уровне Starcraft, ни половины от него.

поиск пути как раз не проблема.

etc 13.09.2009 13:29

Цитата:

Сообщение от progman (Сообщение 850416)
насколько низкая?

На порядок, примерно. Рендер у флеша крайне медлителен. А без обрезки у вас и так ничего не заведется.

VVall 13.09.2009 13:36

Цитата:

Сообщение от progman (Сообщение 850431)
как тогда оптимизация происходит - как не рисуется то чего не попадает в экран?

Даже не знаю, как ответить. Ну вот так и не рисуется, если определено, что не попадает. Я о том, что frustum, который пирамида видимости - это для 3D, а в 2D плоскость.

Цитата:

Сообщение от progman (Сообщение 850431)
поиск пути как раз не проблема.

То есть, вы точно знаете, что достаточно быстрый для RTS (как я понимаю из упоминания Starcraft) поиск пути для тысяч юнитов на Flash не проблема? Тогда о чём вы спрашиваете в этой теме вообще?

progman 13.09.2009 16:31

Цитата:

Сообщение от VVall (Сообщение 850434)
Даже не знаю, как ответить. Ну вот так и не рисуется, если определено, что не попадает. Я о том, что frustum, который пирамида видимости - это для 3D, а в 2D плоскость.

к примеру: качнул книгу "Секреты разработки игр в Macromedia Flash MX"
там есть пример изометрии 10х10 клеток и существо по ним бегает. запустил - всё шутсро бегает.
влез в код и поставил 200х200 и всё сдохло, фпс где то в районе 1 кадр в минуту.
я о такой производительности говорю. 200х200 клеток это вывод 4000х тысяч тайлов. из них четверть гарантированно попадает в область видимости ( frustrum по инерции ее называю ). Флеша я до сиго момента касадся пару раз и очень поверхностно и тонкостей не знаю.
У себя в с++ движке Я контролирую порядок отрисовки и я решаю что рисовать а что не рисовать, в флеше я вообще ничего похожего на функцию render() не нашел :-)
и моск не понимает как там вообще все рисуется. тупо вообще все что есть на сцене или как то можно таки оптимизировать и перед отрисовкой управлять контентом - это рисуем а это нафиг ибо вне зоны видимости?

VVall 13.09.2009 17:12

Если у вас AS3 и растровая графика, то вывод лучше делать через copyPixels, то есть через копирование прямоугольников из одного изображения в другое. В итоге всё копируется на единственное изображение, находящееся на сцене. Это отдалённо напоминает direct draw, и вы будете контролировать, что, куда и сколько рисовать. Можно почитать здесь (там много статей на эту тему).

iflamberg 13.09.2009 17:46

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

Опять же стратегия без правой кнопки мыши - довольно неудобно.

Я думаю, максимум флеша - пошаговая изометрия в стиле warlords или x-com 1,2,3. С упрощенным AI.

progman 13.09.2009 18:09

VVall спасибо - то что дохтор прописал!

etc 13.09.2009 18:15

Цитата:

Сообщение от iflamberg (Сообщение 850465)
Я думаю, максимум флеша - пошаговая изометрия в стиле warlords или x-com 1,2,3. С упрощенным AI.

Ну и ещё 3D с микробаттлграундом и изометрические же MMORPG. И то, с натягом при хорошем железе.


Часовой пояс GMT +4, время: 01:39.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.