Вот моё мнение как лучше реализовать такое освещение : берётся маленький спрайти натягивается на весь экран
За исходную точку бралось утверждение, что сделать "как в терарии" невозможно. Твой метод все равно обходит цель, хоть и очень близко, плюс ненадежный сурф, который может отрисоваться правильно, а может и нет. GameMaker Easy Menu
PS. В моём методе сурф нужен если надо сделать динамическое освещение от нескольких источников света и если много мелких блоков (без сурфа ГМ будит притормаживать с ними)
Сообщение отредактировал Qvant - Вторник, 14 Февраля 2012, 00:03
Я не вижу в примере блоков, только размытое месиво. Ты на скриншот то смотрел?
смысл от этого не меняется - маленький спрайт растягиваеш и всё - вот и освещение как в вашей терре . могу тебе хоть его кубиками хоть треугольниками хоть в горошек ...
А теперь обрати внимание как они двигаются, и как двигаются на видео террарии. Результат не удовлетворяет, так что чисто ради эксперимента сейчас сяду и напишу нормаьный движок. Уно моменто GameMaker Easy Menu
А теперь обрати внимание как они двигаются, и как двигаются на видео террарии. Результат не удовлетворяет
ещё нехватало мне видео с какойто террарией смотреть ... мой метод работает , притом быстро и гибко
Надо чтоб пиксели на границе двигались ?- нарисуй анимацию пикселей на маске по вкусу и выводи кадрами. Надо освещение от разных источников света - сурфами
PS а делать освещение на каждом блоке отдельно - можно , но будит затратно в плане производительности ГМ
Qvant, дай мне время на реализацию, а потому уже выноси приговор. Твой метод просто костыль, но никак не решение. По поводу производительности, рисование спрайта в драв не уступает сурфам, да и вообще исключает обьекты, да-да. GameMaker Easy Menu
В моем проекте мир состоит примерно из 10-ти тысяч объектов. Спрайтов в освещении не применял, менял лишь значение Alpha спрайта объекта. Т.к. использую деактивацию экземпляров за пределами вида, код освещения выполняется только в видимых объектах, коих в пределах вида немного. Тормозит все равно. Код из события Draw объекта, который является родителем всех блоков:
Code
a = place_free(x + 1, y) || place_free(x - 1, y) || place_free(x, y - 1) || place_free(x, y + 1); if instance_exists(objPlayer) { if distance_to_object(objPlayer) > 50 && collision_line(x, y, objPlayer.x, objPlayer.y, objBlockPar, 1, 1) { if !a { alpha = 0; draw_sprite_ext(sprite_index, -1, x, y, 1, 1, 0, make_color_rgb(alpha, alpha, alpha), 1); } } }
почему не решение ? что имено неустраевает в этом методе ? он работает
Quote (Robin-Locksley)
рисование спрайта в драв не уступает сурфам
одного да , но рисование сотни спрайтов каждый раз медленней рисовании одного большого
Если просто их отрисовывать то ГМ может и справиться , но если игра полноценная и кроме этого ещё много отрисовок , партиклей и вычислений то лучше иметь быстрые костыли чем вычислять и рисовать каждай тайл по отдельности.
А может быть твой мозг не потянет даже кода, который все это обиграет? м? Мы говорим об обычных обьектах, значение альфы которых вообще можно присваивать через другой обьект, что исключает использование каких либо действий в них. А как на счет обьекта, которые просто рисует спрыйты? О нем ты тоже можешь что нибудь псевдоумное сказать? Или ты даже массивами или другими датаструктурами пользоваться не в состоянии? м? Я слышу только "бла-бла-бла".
бла-бла-бла, вот написал http://rghost.ru/36509258 простейший вариант освещения как в террарии, фпс просто огромен, бла-бла-бла.
Идиотичность этого утверждения повергает меня в ступор. Меденная работа с сурфами усугубляется всеми возможными и невозможными способами, при чем некоторые из них озвучиваешь ты сам. При этом ты еще умудряешься меня как то обвинить в чем то. То ли идиот, то ли толль, хрен разберешь. Ты уж определись, ты за сурфы или против.
Да да я страшный тролль пытающийся всех затроллить...Стоп а может быть я идиот? Ну не знаю тебе видимо видней. Слов просто нет... Если руки из правильного места растут, то сурфом можно без проблем поднять фпс с 5 до 10, но не более.
Quote (Qvant)
Вот моё мнение как лучше реализовать такое освещение : берётся маленький спрайти натягивается на весь экран
Этот вариант конечно лучшее что можно сделать на ГМ, но сейчас речь именно о террарии где просчёт освещения идёт для каждого блока.
Quote (Robin-Locksley)
А теперь обрати внимание как они двигаются, и как двигаются на видео террарии. Результат не удовлетворяет, так что чисто ради эксперимента сейчас сяду и напишу нормаьный движок. Уно моменто
ну ну, ждём.
Даже у великого Fade написавшего свой маинкрафт, ничего не получилось
Quote (Qvant)
Если просто их отрисовывать то ГМ может и справиться , но если игра полноценная и кроме этого ещё много отрисовок , партиклей и вычислений то лучше иметь быстрые костыли чем вычислять и рисовать каждай тайл по отдельности.
Согласен целиком и полностью
Сообщение отредактировал -MaX- - Вторник, 14 Февраля 2012, 02:52
бла-бла-бла, вот написал http://rghost.ru/36509258 простейший вариант освещения как в террарии, фпс просто огромен, бла-бла-бла.
У какие мы агрессивные Вот тебе матрешка, сиди разбирайся. Свет включается по клавише Enter. На моей старенькой gf8400m 45-50 фпс. Годится или мало?
Quote (-MaX-)
Да да я страшный тролль пытающийся всех затроллить...Стоп а может быть я идиот? Ну не знаю тебе видимо видней. Слов просто нет... Если руки из правильного места растут, то сурфом можно без проблем поднять фпс с 5 до 10, но не более.
Может быть, все может быть. Ты читал вообще предыдущие мои сообщения, м? Мне плевать насколько и чего там сурфейсы, я их не использую, и использовать не собираюсь. Шониясна?
Quote (-MaX-)
Согласен целиком и полностью
Че ты там согласен? Руки выровняй, потом рассуждай. Через жопу то конечно все тормозить будет. GameMaker Easy Menu
Вот тебе матрешка, сиди разбирайся. Свет включается по клавише Enter. На моей старенькой gf8400m 45-50 фпс. Годится или мало?
Ты в террарию то вообще играл? Твой метод такой же костыль как у Qvant только более тормознутый. В твоей "матрёшке" нет даже движущихся источников света, ну это всё фигня сделать можно, меня больше волнует другое, в террарии свет через блок проходит хуже чем через открытое пространство, это и есть главная фишка такого освещения, у тебя же обыкновенные круги, так что не понятно ещё у кого руки то кривее
Ты в террарию то вообще играл? Твой метод такой же костыль как у Qvant только более тормознутый. В твоей "матрёшке" нет даже движущихся источников света, ну это всё фигня сделать можно, меня больше волнует другое, в террарии свет через блок проходит хуже чем через открытое пространство, это и есть главная фишка такого освещения, у тебя же обыкновенные круги, так что не понятно ещё у кого руки то кривее
Да ну? У самого пупок надорвался что-то путное сделать, и сразу прям ручки кривее? Возьми да и напиши алгоритм, которые сделает тебе динамический свет и затемнение/подсветку блоков, это так сложно? Ай-яй-яй, как не хорошо, мусье то оказывается еще и лентяй...
Разговор был о чем? Освещение блоками по 16 пикселей. Разговор был о том, что такой метод "нельзя реализовать" и что там вообще будет плохой фпс. Ты просто пропустил все эти моменты, и начал искать к чему прицепиться за отсутствием каких либо аргументов. Я делаю вывод что ты тролль и вести разговор лично с тобой больше не имею желания. Зато с радостью обсужу "матрешку" с другими пользователями. GameMaker Easy Menu
Возьми да и напиши алгоритм, которые сделает тебе динамический свет и затемнение/подсветку блоков, это так сложно?
Так я именно это и написал, или ты уже забыл?
Quote (Robin-Locksley)
Разговор был о чем? Освещение блоками по 16 пикселей. Разговор был о том, что такой метод "нельзя реализовать" и что там вообще будет плохой фпс. Ты просто пропустил все эти моменты, и начал искать к чему прицепиться за отсутствием каких либо аргументов.
не знаю может я чего пропустил, но тема кажется называется "освещение как в terraria".
Quote (Robin-Locksley)
Я делаю вывод что ты тролль и вести разговор лично с тобой больше не имею желания.
Аналогично, люблю общаться с умными людьми...
Ну есть ещё люди считающие что на ГМ можно сделать освещение как террарии? Или может кто хочет обозвать меня троллем? Да пожалуйста валяйте...
Не клей из себя дурачка, ты написал что-то, что нельзя использовать. Ни более, ни менее. Ты же понял что я имел ввиду алгоритм для примера что я дал, да?
Quote (-MaX-)
не знаю может я чего пропустил, но тема кажется называется "освещение как в terraria".
Ты пропустил тот момент, что "освещение как в terraria":
Quote (Robin-Locksley)
блоками по 16 пикселей
которые:
Quote (-MaX-)
Если динамичное и 16х16 то ничего не выйдет
А тепеь возьми, и добавь туда динамическое освещение, или просто подвигай источники света, тебе же не сложно написать такой простой код? Минимаьный фпс при динамическом освещении у меня не опускался ниже 45. Да-да. Возьми и ручками сам напиши, или боишься что получится как с тем примером на 10 фпс? Да руки то нужно допиливать отдельно.
Quote (-MaX-)
Аналогично, люблю общаться с умными людьми...
Судя по всему общаешься ты исключительно с собой, что как бы намекает на гениальность твоего ума, который впрочем не способен при этом на простейшие вычисления. Упс
Quote (-MaX-)
Ну есть ещё люди считающие что на ГМ можно сделать освещение как террарии? Или может кто хочет обозвать меня троллем? Да пожалуйста валяйте...
То, что тут нет людей, которые могут поспорить по наглости с тобой еще не значит что что то там невозможно, кроме как в твоем ущербном сером веществе. GameMaker Easy Menu
Это так же очевидно, как то что вода мокрая, небо синее а огонь горячий. В тебе как раз никто не сомневается
И ты не переживай, работа идет, но не потому что мне хочется тебе что-то доказать, а потому что это будет полезно людям, которые делают а не разводят демагогию. Я же не просто забежал тут свои "типа мысли" повыкрикивать и уйти. Так поступают только тролли вроде тебя. Можешь пойти и поискать, пока я работаю, себе другую тему для испражнения, как нужно будет, я позову обратно.
Добавлено (15.02.2012, 02:53) --------------------------------------------- Такс, считаю поставленную задачу выполненной, насколько это возможно. ТЫЦ! Пример содержит динамический источник освещения и тени, зависящие от рельефа. Правда алгоритм генерации теней допиливать до более вменяемого состояния мне было откровенно лень, поэтому тени кое где лежат не совсем корректно. Впрочем написать свой алгоритм никто не мешает, все упирается только в желание. Исходник кроме освещения так же демонстрирует быстродействие, для чего я специально нагрузил систему обьектами. При 600-700 обьектах на моем старом мобильном (обрубок для ноутбука) gf8400m 256 mb фпс стабильно держится на 30. А еще решил немного поерничать, и скомуниздил у террарии тайлсет специально для исходника Предупреждаю тех, кому нужно все и с наскока, пример достаточно сложный, есть много нюансов в которых без познаний не разобраться. Разжевывать тоже ничего не планирую. Как есть, так есть.
Известные проблемы: - задержка между переходами в комнату, я в курсе, это из-за генерации правильных спрайтов для ландшафта. - задержка при включении освещения, это из-за генерации большой карты теней. Дальше все должно работать достаточно быстро и стабильно.
В общем пробуйте и отписывайтесь, все ли достаточно быстро работает или не работает. Достаточно ли похоже на треррарию и почему не похоже (специально для троллька который сам ничего не делает).
По результатам личного теста минимальный фпс: GF 8400 GT, 521 Mb - 90-100 fps GF GT 220, 1 Gb - потолок для комнаты, 100 fps соответственно VIA S3G UniChrome интегрированная, 64 Mb - 35-45 fps
Добавлено (15.02.2012, 21:03) --------------------------------------------- Навел марафет для жк мониторов, теперь ну совсем похоже на террарию, как мне кажется. И да, все таки хотелось бы услышать хоть какие то комментарии. Будет жаль если я двое суток убил впустую.
Robin-Locksley, да, пример впечатляет! Также, должно быть не видно мест, в которых нет блоков. И прошу сделать удаление и создание блоков. Ну и можно прокомментировать код, если, конечно, не лень.
P.S: И лень было расставлять столько много блоков по комнате вручную?! :)