Рисование только тех объектов, что на экране
|
|
Loko™ | Дата: Вторник, 24 Июля 2012, 19:36 | Сообщение # 1 |
постоянный участник
Сейчас нет на сайте
| Как можно "разгрузить" систему и повысить быстродействие? Вот к примеру при создании многих спрайтов в разных частях уровня - игра начинает тормозить, даже если эти спрайты - далеко от экрана. Как сделать, чтобы рисовались только те объекты, что на экране?
p.s. мне pyatnica70rus написал по этому вопросу, но я не понял как это реализовать: Есть карта - массив. Объекты - тоже. (у меня так) У игрока есть позиция. С помощью координат вычисляешь зону считывания -> рисуешь
Ghost Quest - 2D платформер в стиле 2D платформеров [Статья] Создаем 2D платформер а-ля Ghost Quest [Статья] Реализовываем вис на крюке/платформе
|
|
| |
Palmar | Дата: Вторник, 24 Июля 2012, 19:41 | Сообщение # 2 |
Pλlmar Games
Сейчас нет на сайте
| Есть один небольшой наркоманский способ, не знаю, повлияет ли на производительность, но сделать что то типо проверки: IF object is on screen => Make visible IF object isn't on screen => Make invisible
|
|
| |
Loko™ | Дата: Вторник, 24 Июля 2012, 19:43 | Сообщение # 3 |
постоянный участник
Сейчас нет на сайте
| Пробовал. Так просто объекты становятся невидимыми.
Ghost Quest - 2D платформер в стиле 2D платформеров [Статья] Создаем 2D платформер а-ля Ghost Quest [Статья] Реализовываем вис на крюке/платформе
|
|
| |
Palmar | Дата: Вторник, 24 Июля 2012, 22:11 | Сообщение # 4 |
Pλlmar Games
Сейчас нет на сайте
| Quote (Loko™) Пробовал. Так просто объекты становятся невидимыми. Ну дык так и должно быть. Только не факт что это снижает нагрузку. Надо будет проверить
|
|
| |
Loko™ | Дата: Вторник, 24 Июля 2012, 23:53 | Сообщение # 5 |
постоянный участник
Сейчас нет на сайте
| Palmar, это не снижает нагрузку, я уже проверял.
Ghost Quest - 2D платформер в стиле 2D платформеров [Статья] Создаем 2D платформер а-ля Ghost Quest [Статья] Реализовываем вис на крюке/платформе
|
|
| |
tvmerd | Дата: Среда, 25 Июля 2012, 00:20 | Сообщение # 6 |
участник
Сейчас нет на сайте
| Loko™, у констракта много подводных камней - я сам со своей игрой фигово мучаюсь с оптимизацией Решить этот вопрос сложно
|
|
| |
boymove | Дата: Среда, 25 Июля 2012, 02:36 | Сообщение # 7 |
заслуженный участник
Сейчас нет на сайте
| Quote (Loko™) Как сделать, чтобы рисовались только те объекты, что на экране? по умолчанию это уже реализовано в программе, ищите другие способы оптимизации.
Моя первая поделка Моя вторая поделка
|
|
| |
AlttarBoy | Дата: Среда, 25 Июля 2012, 04:55 | Сообщение # 8 |
почетный гость
Сейчас нет на сайте
| http://gcup.ru/forum/39-20384-1 вот прамер, как раз на массиве
|
|
| |
Loko™ | Дата: Среда, 25 Июля 2012, 11:55 | Сообщение # 9 |
постоянный участник
Сейчас нет на сайте
| AlttarBoy, в твоем примере работает все четко, без тормозов и т.п. Но как это реализовать? Добавлено (25.07.2012, 11:55) --------------------------------------------- AlttarBoy, исходник не открывается. Пишет, что он был реализован на более старой версии
Ghost Quest - 2D платформер в стиле 2D платформеров [Статья] Создаем 2D платформер а-ля Ghost Quest [Статья] Реализовываем вис на крюке/платформе
|
|
| |
allxumuk | Дата: Среда, 25 Июля 2012, 12:03 | Сообщение # 10 |
старожил
Сейчас нет на сайте
| Quote (Loko™) AlttarBoy, исходник не открывается. Пишет, что он был реализован на более старой версии Эм... может на более новой? У тебя r2 версия (самая последняя)?
AlttarBoy, я наверное ослеп, но по ссылке "исходник", исходника нет
Любой дурак может написать программу, которую поймёт компилятор. Хорошие программисты пишут программы, которые смогут понять другие программисты.
|
|
| |
AlttarBoy | Дата: Среда, 25 Июля 2012, 12:39 | Сообщение # 11 |
почетный гость
Сейчас нет на сайте
| Ой)) вот сама основа - это 2-е и 5-е события первое в начале создает определенное количество "блоков" из которых и будет строится мир (копии одного и того же объекта) в о втором событии происходит проверка, если ГГ прошел на расстояние в 1 блок, то все блоки смещаются и меняют кадр анимации
|
|
| |
Loko™ | Дата: Среда, 25 Июля 2012, 13:54 | Сообщение # 12 |
постоянный участник
Сейчас нет на сайте
| allxumuk, ох, я даже и не знал, что r2 вышла, ориентировался по русскому сайту ScirraConstruct, где последняя r1.2 Уже скачиваюДобавлено (25.07.2012, 13:54) --------------------------------------------- AlttarBoy, столкнулся с проблемой, что я тупой. У тебя все реализовано классно, но боюсь, что мне это не понять. Буду искать другие решения проблемы =)
Ghost Quest - 2D платформер в стиле 2D платформеров [Статья] Создаем 2D платформер а-ля Ghost Quest [Статья] Реализовываем вис на крюке/платформе
|
|
| |
|
Shevron_7 | Дата: Четверг, 23 Августа 2012, 08:29 | Сообщение # 14 |
маньяк-бомбист
Сейчас нет на сайте
| Я конечно не спец в скире, но могу сказать что нужно деактивировать все объекты что находятся вне вида. (взял из ГМ)
TEST => Мои игры: Kill your brain Space Conflict Zombie Day Bounce PC Extra ball 2012
Это спасибо в карман не положишь, а в репутацию можно. +1
|
|
| |
doongbo | Дата: Четверг, 23 Августа 2012, 09:27 | Сообщение # 15 |
почетный гость
Сейчас нет на сайте
| Вот придумал такой вот способ Задаем главному герою поведение LineOfSight, ставим видимость например 1000. Пишем такое вот:
Но то что он станет невидимым скорей всего не снимет нагрузки, но буду думать тоже об этом, тож нужна оптимизация. И таким вот нехитрым приемчиком было б здорово это реализовать.
Добавлено (23.08.2012, 09:27) --------------------------------------------- А вот интересно, если особо большие/с эффектами/и тд спрайты удалять когда они не на экране, поможет ли это производительности? Хотя можно сейчас проверить)
Значит так, создал я тут навороченный спрайт с эффектами блюра, когда я находился рядом с ним, фпс падал до 35-40. Задал коллизию на уничтожение спрайта фпс поднялся до 60. Quote (Loko™) Вот к примеру при создании многих спрайтов в разных частях уровня - игра начинает тормозить, даже если эти спрайты - далеко от экрана. значит удаляй их когда они вне экрана =) Хотя нет! Сделал тоже самое но поставил инвизибле при коллизии, и фпс поднялся до 60!!! Теперь к примеру на картинке, можно быстренько подставить особые спрайты которые нужно "тушить" и фпс должен подняться!
Или еще лучше и быстрее. Склепать все спрайты которые нужно деактивировать в одну семью!
В Terrain добавляем все спрайты которые нужно сделать невидимыми. И такими вот двумя строчками тушим свет вне экрана.
"Чучундрия. Забранные"
Сообщение отредактировал doongbo - Четверг, 23 Августа 2012, 10:54 |
|
| |
voltermag | Дата: Четверг, 23 Августа 2012, 19:22 | Сообщение # 16 |
постоянный участник
Сейчас нет на сайте
| Сделай беспаливную смену лайаутов, чтобы менялись уровни путём телепортации и сохранения координат( я так сделал на микрогене, очень оптимизировало), а игрок будет думать, что он до сих пор на первом уровне)
Подсказки в ААА играх: Чтобы убить - стреляйте Чтобы не убить - не стреляйте Подсказки в Инди играх: ыаа ыбб беб ыб
|
|
| |
Markoffka | Дата: Четверг, 23 Августа 2012, 20:18 | Сообщение # 17 |
Pixel Logic
Сейчас нет на сайте
| можно реализовать через Translites
|
|
| |