Перейти к содержимому

Движок Megakostyl

игры программирование трассировка лучей free pascal

Сообщений в теме: 44

#21
Vitalik

    Тех. специалист

  • Команда ViaTeam
  • 3 864 сообщений
  • ГородНягань mega-sity
  • Статус:&$*@#^&$@?
  • Имя:Виталий
  • Ник:Vitalik
  • Команда:ViaTeam
  • Должность на ViaTeam:
    Основатель ViaTeam
    Технический специалист

Просмотр сообщения.html (24 декабря 2014 - 18:36) писал:

Я почти ничего не понял, но звучит круто)!
Это короче типа звук круче стал и скоро кат сцены будут :)
Такая игруха уже вырисовывает с музыкой, звуками и заставками в будущем) Но мы то ждем мультиплеер xD

Bloody mess, ты с объемным звуком то еще билд игры не выкладывал ?)

Ты говоришь, исправь глюки. Да это все твои кривые руки. (с) PR-MIX - Письмо директору

Мы Вконтакте - http://vk.com/viateam

#22
.html

    OWNAGE! :)

  • Верховные модераторы
  • 3 008 сообщений
  • Имя:Александр
  • Ник:.html
Да) Мы всё ждем мультик)))

#23
Bloody mess

    Мега Разработчик

  • Команда ViaTeam
  • 360 сообщений
  • Steam:Bloody_messVIA
  • Имя:Георгий

Просмотр сообщенияVitalik (26 декабря 2014 - 01:41) писал:

Но мы то ждем мультиплеер

Просмотр сообщения.html (26 декабря 2014 - 19:19) писал:

Да) Мы всё ждем мультик)))

Ну вы ваще смотрю сговорились)

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

Ну да хватит о печальном. У меня в голове уже практически сложился цельный образ архитектуры движка, и он уже потихоньку перетекает в код. Скоро уже допилю более-менее функционал меню. В скором времени можно будет задуматься над содержимым игрового мира и процесса, т.е. геймплея.

#24
Bloody mess

    Мега Разработчик

  • Команда ViaTeam
  • 360 сообщений
  • Steam:Bloody_messVIA
  • Имя:Георгий
Слепил более-менее игровой процесс и меню вместе, реализовал частично функционал меню, попутно исправив баг с переключением музыки. В новой сборке можно уже потыкать меню со звуками и запустить уровень. Правда пришлось пока на время влепить туда пару костылей, но они уже совсем скоро рассосутся.

Думаю вот ещё как задавать последовательность уровней и кат-сцен. Можно, например, как в игре Blood задавать это всё в текстовом файле. И надо будет подумать над оформлением загрузки уровня.

#25
Bloody mess

    Мега Разработчик

  • Команда ViaTeam
  • 360 сообщений
  • Steam:Bloody_messVIA
  • Имя:Георгий
Пробую замутить эффект огня для экрана загрузки.
Прикрепленное изображение: rt25.jpg
Он, конечно, круче смотрится в движении, но прежде, чем залить новую сборку, надо бы исправить пару глюков с этим эффектом и прикрутить его к собственно загрузке.

#26
Bloody mess

    Мега Разработчик

  • Команда ViaTeam
  • 360 сообщений
  • Steam:Bloody_messVIA
  • Имя:Георгий
Решил немного отвлечься на графику. Доделал загрузку карт высот, чтобы реализовать parallax mapping (обыкновенный, не тот что parallax occlusion mapping). Но надо будет ещё поизучать это дело. Помимо этого выкрутил наконец-то все нормали на стенах и декалях в нужную сторону и исправил один косяк в формуле расчёта бликов.
Прикрепленное изображение: rt26.jpg
А хотя может ну его этот паралакс...

#27
Bloody mess

    Мега Разработчик

  • Команда ViaTeam
  • 360 сообщений
  • Steam:Bloody_messVIA
  • Имя:Георгий
В процессе размышления о том, как добавить свиборга, который бы мог передвигаться по уровню, всплыла проблема статичности структур. На данный момент расположение всех объектов расчитывается заранее, и трассировка производится по этим статичным структурам соответственно. Что выливается в ряд ограничений и проблем с производительностью, а в особенности, в нерациональном использовании кэша процессора, например.

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

Суть вкратце такова. Вместо статичных громоздких структур в виде массивов в каждой клетке, в которых одни и те же примитивы могут повторяться, использовать более гибкие связанные списки и ссылки на элементы этих списков. Это упростит расчёты для динамических объектов. Для источников света я думаю завести отдельный обновляющийся массив, содержащий только нужные для данного кадра источники, хотя тут ещё нужно будет прикинуть что к чему. Ну так вот, мы имеем гибкие структуры, которые можно без особых усилий модифицировать, и позволяющие реализовать динамические объекты и добавить интерактивности уровню. Следующая жертва - трассировщик, который сейчас работает со статическими неупорядоченными данными, в результате чего неэффективно использует кэш, мечась туда-сюда по памяти. Вместо этого лучше каждый кадр создавать список объектов, которые попадают в камеру (отсечение по пирамиде) и уже по этому списку работать. Для начала можно из этого списка создать отдельные списки для вертикальных сегментов экрана, а затем каждый поток трассировщика, обрабатывая свой сегмент экрана 16х16, будет уже строить свой список, упорядоченный по удалению от камеры, и по нему производить трассировку лучей. Это по сути схоже с адаптивной груповой трассировкой, которую можно будет потом добавить для сегментов экрана.

#28
Lobokokao

    Недавно здесь

  • Пользователи
  • 3 сообщений
  • Имя:Mava
круто

#29
Bloody mess

    Мега Разработчик

  • Команда ViaTeam
  • 360 сообщений
  • Steam:Bloody_messVIA
  • Имя:Георгий
Очередной приступ депрессии в связи с тем, что в комплиляторе Free Pascal не реализована возможность использования ассемблерных вставок во встраиваемых (inlined) функциях, вроде прошёл. Всё же надо двигаться дальше к намеченной цели, а не вертеться вокруг одной оптимизации. Упорством и смирением с пока что ограниченными возможностями стоит допилить этот проект до логического завершения, а уже затем, вероятнее всего, я буду мутить одну тему в жанре платформера. А может и не платформера...

#30
Bloody mess

    Мега Разработчик

  • Команда ViaTeam
  • 360 сообщений
  • Steam:Bloody_messVIA
  • Имя:Георгий
После длительного затишья я внезапно вновь принялся бесщадно выпиливать костыли и запиливать новые. На сей раз я решил переделать вывод изображение на экран. Теперь есть два отдельных буфера: один для трассировки, другой - для пользовательского интерфейса. Это позволяет трассировать в одном разрешении, а остальное выводить в другом. Так, например, при трассировке в низком разрешении можно лицезреть пользовательский интерфейс, а также видеоролики, во вполне приемлемом качестве.

Также идёт перепиливание и допиливание спрайтов. Динамичность уровней пока в ступоре, ибо в прошлый раз я так и не пришёл к адекватному варианту.

#31
Bloody mess

    Мега Разработчик

  • Команда ViaTeam
  • 360 сообщений
  • Steam:Bloody_messVIA
  • Имя:Георгий
Реализовал наконец-таки мипмаппинг для спрайтов/декалей. Исправил кое-какие недочёты в выборке текстур для них. Сейчас думаю переделать эффект онгя и, возможно, добавлю ещё один эффект, если я правильно представил его реализацию...
Прикрепленное изображение: rt27.jpg Прикрепленное изображение: rt28.jpg
Хоть скрин размером 640х480, трассировка производилась в разрешении 320х192, а результат уже был растянут на всё окно. На втором скрине видно, что меню выводится в нормальном разрешении 640х480.

#32
Bloody mess

    Мега Разработчик

  • Команда ViaTeam
  • 360 сообщений
  • Steam:Bloody_messVIA
  • Имя:Георгий
Подправил эффект огня, теперь он всегда показывается при выводе меню. Поэкспериментировал немного с совмещением трассировки лучей и растеризации.
Прикрепленное изображение: rt29.jpg Прикрепленное изображение: rt30.jpg

В связи с подготовкой к разгону сервера линейки я начал пилить для нашего сервера свой апдейтер, как говорится, с блекджеком и шлюхами. А в качестве тестирования для начала реализую апдейтер для этого движка.

#33
Bloody mess

    Мега Разработчик

  • Команда ViaTeam
  • 360 сообщений
  • Steam:Bloody_messVIA
  • Имя:Георгий
Реализовал вывод 3д-модели с аффинным текстурированием и освещение по Гуро, а также простое отсечение треугольников по ограничивающей пирамиде.
Прикрепленное изображение: rt31.jpg

Продолжу, полажуй, пока пилить апдейтер...

#34
Bloody mess

    Мега Разработчик

  • Команда ViaTeam
  • 360 сообщений
  • Steam:Bloody_messVIA
  • Имя:Георгий
Помучившись с утилитой для апдейтера, которая упаковывает файлы и генерирует патч-лист, я запилил более-менее основной функционал самого апдейтера. Для сжатия файлов используется метод lzma (7zip), для проверки оригинальности файлов используется 256-битный хэш по ГОСТу Р 34.11-94, но в будущем я думаю заменить его на новый стандарт ГОСТ Р 34.11-2012, а возможно даже на цифровую подпись ГОСТ Р 34.10-2012.

Скачать и протестировать апдейтер для движка можно тут. Уже реализовано самообновление самого апдейтера, а также загрузка файлов с http сервера. Обе фичи вы сможете заценить, так как по ссылке находится старая версия апдейтера. Апдейтер следует поместить в отдельную папку, потому что туда закачается движок.

P.S. Изучив поверхностно кое-какие аспекты сетевого программирования, идея мультплеера уже не кажется такой запредельной, но всё же для начала надо решить другие задачи...

#35
Bloody mess

    Мега Разработчик

  • Команда ViaTeam
  • 360 сообщений
  • Steam:Bloody_messVIA
  • Имя:Георгий
Несмотря на отсутствие информации, работа над движком продолжалась и продолжается сейчас. Много чего произошло за это время, мы многое переосмыслили, опираясь на опыт прошлых проектов, в особенности сервера Фреи. Так вот в итоге мы решили малость переквалифицировать движок МегаКостыль...
Прикрепленное изображение: e001.jpg Прикрепленное изображение: e002.jpg Прикрепленное изображение: mked_old.jpg

Прикрепленное изображение: 001.jpg Прикрепленное изображение: 002.jpg Прикрепленное изображение: 003.jpg Прикрепленное изображение: 004.jpg Прикрепленное изображение: 005.jpg

Происходившие за это время события я кратко (очень) описал в первом посте в истории изменений.

#36
Dark killer

    Зампалит ViaTeam

  • Команда ViaTeam
  • 8 825 сообщений
  • Городг.Архангельск
  • Статус:Мастный
  • Имя:Максим
  • Ник:Dark killer
  • Должность на ViaTeam:
    Зампалит ViaTeam
    Участник команды ViaTeam
Все это очень интересно и круто! :) Но как бы это все увидеть поближе....
Поиграть бы уже скорее в это творчество :) Или видеоролик посмотреть :)
Управляющий сервером НГР

Изображение

#37
Bloody mess

    Мега Разработчик

  • Команда ViaTeam
  • 360 сообщений
  • Steam:Bloody_messVIA
  • Имя:Георгий
Пока, увы, особо похвастаться нечем. Нужно разбираться со скелетной анимацией. Я вроде более-менее вкурил, но надо продумать как лучше реализовать. Ещё попутно ковыряю один физический движок.

Вот, чтобы было что показать, добавил в шейдерах карту бликов
Прикрепленное изображение: 006.jpg Прикрепленное изображение: 007.jpg Прикрепленное изображение: 008.jpg Прикрепленное изображение: 009.jpg

#38
Dark killer

    Зампалит ViaTeam

  • Команда ViaTeam
  • 8 825 сообщений
  • Городг.Архангельск
  • Статус:Мастный
  • Имя:Максим
  • Ник:Dark killer
  • Должность на ViaTeam:
    Зампалит ViaTeam
    Участник команды ViaTeam
Может помощь нужна?
Со временем говорю сразу - категорическая сютьюэйшен .....
Управляющий сервером НГР

Изображение

#39
Bloody mess

    Мега Разработчик

  • Команда ViaTeam
  • 360 сообщений
  • Steam:Bloody_messVIA
  • Имя:Георгий

Просмотр сообщенияDark killer (13 февраля 2017 - 18:46) писал:

Может помощь нужна?
Со временем говорю сразу - категорическая сютьюэйшен .....

Да пока что тут особо нечем помочь, необходимо сначала инструментарий запилить, в котором уже можно было бы что-то конкретное делать. Ну а сейчас самая лучшая помощь - это мотивация и пинки)

#40
.html

    OWNAGE! :)

  • Верховные модераторы
  • 3 008 сообщений
  • Имя:Александр
  • Ник:.html

Просмотр сообщенияBloody mess (13 февраля 2017 - 21:53) писал:

Ну а сейчас самая лучшая помощь - это мотивация и пинки)
Прикрепленное изображение: Sdasdasd.jpg



Количество пользователей, читающих эту тему: 3

0 пользователей, 3 гостей, 0 анонимных