14

» lentinant'ов блог / Симулятор истребителя скелетов

lentinant, ага, понял тебя. Действительно, стоимость переходов зависит от ранее пройденного пути. Но это всего лишь означает, что стоимость переходов из текущей точки в четыре соседних нужно просто будет рассчитывать заново, а не брать из заранее просчитанного массива. Не нужно вселенную параллельных графов делать, всё равно веса нужны только для расчета перехода из текущей точки в соседние. Достаточно для каждой точки волны хранить состояние максимум четырёх соседей.
Попробую на примере:
  1. Пускаем первую волну, игрок стоит в точке А. Волна состоит из двух соседних точек. Путь в точку B стоит 1 поворот + 1 переход. Путь в точку D тоже стоит один поворот + 1 переход. Пишем в результирующую матрицу переходов: AB - 2, AD - 2. При этом для каждой из конечных точек запоминаем состояние всех соседних клеток (максимум 4, целый граф не нужен, т.к. альтернативные пути не должны и не влияют друг на друга - они все будут менять исходное состояние карты).
  1. Теперь из каждой точки первой волны запускаем по новой волне.
  1. Волна из точки B имеет всего одну незадействованную ранее точку - C. Стоимость перехода из уже повёрнутой к игроку B в С теперь 3 поворота + 1 переход (стоимость считали исходя из сохранённого ранее положения соседей точки B). Пишем в результирующую матрицу: BС - 8 (стоимость пути до B + стоимость перехода).
  1. Волна из точки D также имеет одну незадействованную точку - С. Стоимость перехода из уже повёрнутой D в С теперь 1 поворот + 1 переход. Пишем в результирующую матрицу: DC - 4 (стоимость пути до B + стоимость перехода).
  1. Волны пришли в конечную точку, поиск окончен. Теперь собираем оптимальный путь идя от C в обратную сторону и выбирая переходы с наименьшими весами: CD (4) - DA (2). Итого, самый дешевый путь: ADC.
Тут не рассмотрена ситуация когда один и тот же переход попадает в два пути - тут логика такая, если мы пишем в результирующую матрицу переходов значение, а там уже записано более дешевая стоимость пути, то ничего не пишем, т.к. наш вариант хуже.
14

» lentinant'ов блог / Симулятор истребителя скелетов

Но ведь, в процессе первого же перехода мы меняем параметры комнат, а значит, меняем вес некоторых ребер нашего графа. Обычные алгоритмы поиска пути тут не подходят.
Именно обычные и подходят. Поиск в ширину с учётом веса рёбер. Классическая задача.
14

» Color Escape 2 / Релиз!

awesomesk1ll, я о прыжке, который нельзя скорректировать в воздухе. В старых игрухах такой иногда встречался. Т.е. если ты нажал кнопку прыжка и выбрал направление, то персонаж пока прыжок не закончит (обычно в пропасть) управления не слушается.
Я тебя неправильно понял?
14

» Color Escape 2 / Релиз!

awesomesk1ll:
Прыжок не должен ни как работать если персонаж в воздухе
Ты пробовал играть в игры с неуправляемым прыжком? Это дыбом волоса, вот что я скажу. Выбешивает до пара из ушей. Братья Марио смотрят на тебя с укором. :)
14

» Программирование / Упрощенная рефлексия

Extravert, в качестве инструмента конечно! Даже если что-то и накроется, так всегда можно поправить.
14

» [Gameboom] -40 / [Gameboom] -40

-40 выше нуля. Снегурка, залезай в форточку, я подсажу! :)
14

» Программирование / Упрощенная рефлексия

Ох, стрёмно это. Cегодня они есть, а завтра нет, или зарефакторят им другую логику работы, интерфейс сменят. . К тому же медленней прямых вызовов на несколько порядков.
Что там в юнити такого полезного от любопытных спрятали?
14

» Ootahice / [видео] Tech Демонстрация (1 неделя)

Очень круто! Снег, ёлки и динамический свет - всё как я люблю. :)
А в чём будет заключаться геймплей?
14

» lentinant'ов блог / Симулятор истребителя скелетов

lentinant, конечно не должны все враги ломиться на игрока. Только самые злобные и агрессивные. Это фишка, когда все враги простые и рандомные, а некоторые, особо опасные, агрессивно ищут игрока. Враги в виде яблонь, которые хочешь обстучал, а хочешь мимо пошел не делают вызова, разве что плотной толпой встанут на пути.
14

» lentinant'ов блог / Симулятор истребителя скелетов

lentinant:
поиск пути я пытался сделать, для монстров
Они не могут целенаправленно искать игрока? о_О Повышение сложности через преследование и агрессию игрока - это более мягкий и интересный путь, чем тупо накручивать врагам хелсы.
По идее, поиск пути не должен отличаться от обычного. Тут небольшая матрица ячеек, возможность перехода из ячейки к соседям фиксирована, цена зависит от её положения. Перед каждым расчетом нужно строить граф уровня, цена перехода из узла в узел рассчитывается как количество поворотов, требуемых для перехода. А дальше классический поиск в ширину, никаких наворотов типа A* не нужно, размер матрицы крошечный.
Если что - могу поделиться кодом поиска пути на C++.
14

» Несыть / Несыть

Хм. Надо затестить, с чем чёрт не шутит! Можешь мне прислать какой-нибудь скомпилированный примерчик?
14

» Несыть / Несыть

alexprey, ага, понял.
Using feature levels, you can develop an application for Direct3D 9, Microsoft Direct3D 10, or Direct3D 11, and then run it on 9, 10 or 11 hardware (with some exceptions of course, new 11 features will not run on an existing 9 card for example).
Если на компе нет DirectX11 то игруха работать не будет. Эта фишка для того, чтобы DirectX11 работал на видеокарточках разработанных для более старых версий DirectX, при этом программное обеспечение должно быть новым. Чуда, увы, не происходит, просто для старого железа DX11 подсовывает старую реализацию старых плюшек, которые были в нём переработаны.
14

» Color Escape 2 / Релиз!

Fakov, ещё плавную индикацию подготовки заряда у пушки сделай - у игрока станет точнее контроль за временем фриза. Мне кажется это очень важно для ощущения полного контроля над персонажем.
14

» Ootahice / Логотип

awesomesk1ll, выглядит круто, но "О" не читается совсем. "злом киборге" и всё.
14

» Color Escape 2 / Релиз!

В лучших традициях земляного червяка Джима. Он тоже так стрелял.
14

» Lo of the Dark / 0.6 - няшные пиявки!

Червепиявка? :) Почему не просто пиявка? Пиявка же и есть червь. Это подкласс кольчатых червей.
14

» Несыть / Несыть

MaJo, ну, когда-нибудь перейду и на более поздние директы (хотя скорее всего на OpenGL), но пока в этом нет необходимости - я не использую ничего такого модного и ультрасовременного. Спрайты, блендинг + один шейдер размытия на весь проект.
14

» Несыть / Несыть

alexprey:
11 версии библиотеки можно выставить уровень совместимости для 9 версии и все будет работать
О_О Волшебство какое-то... Дай ссылку что-ли.
9 версия выбрана потому, что это последний DirectX, который работает на WinXP, а пользователи WinXP для меня важны и нужны. Инди как-никак.
14

» Несыть / Несыть

Hate, darkowlom, ага, была такая штука, пофиксил в новой версии. Там профиль по умолчанию подгружался когда его не просили.
H, alexprey, в 9DХ всё ручками, фулскрин тоже руками переключается и при этом нужно не только все ресурсы перегрузить, но и окно пересоздать. Как это сочетается с тем, что если в системе более новый директикс, то более старые им эмулируются, я не знаю.
14

» Несыть / Несыть

A lost device must re-create resources (including video memory resources) after it has been reset.
Возможно в десятом и выше как-то проще с этим. Но мне приходится перезагружать всю графику при потере устройства.
В любом случае, я допинал проблему. :) Теперь осталось самому пройти несколько раз демо-уровни, дописать один саундтрек (для уровня с гонками) и записать демо-видос. Думаю за завтра-послезавтра управлюсь.
14

» lentinant'ов блог / Симулятор истребителя скелетов

Сейчас ещё поиграл. Неудобно, что нельзя кликнуть по дальней клетке чтобы туда перейти, только по смежной. Можно не делать полноценный поиск пути, а просто выбирать из ближайших ту клетку, которая по расстоянию из центра ближе к той, куда кликнул игрок.