1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Пожалуйста, внимательно прочитайте правила раздела.
  3. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

Новый игровой движок

Тема в разделе "Мастерская", создана пользователем Bobbie, 11 дек 2016.

  1. Bobbie

    Bobbie

    Регистрация:
    28 ноя 2016
    Сообщения:
    145
    Разделил движок на два форка. Первый будет переведен с DirectX 9 на Opengl, а второй использует Direct2D.

    Мой сайт: Popov Evgeniy personal website
    Страница движков: Game engine
     
    Последнее редактирование: 31 окт 2017
    Dimouse нравится это.
  2. Bobbie

    Bobbie

    Регистрация:
    28 ноя 2016
    Сообщения:
    145
    Закончил перевод рендера с DirectX на Opengl и сделал еще один форк. На данный момент имеются три варианта движка: с софтварным рендером через GDI, а так же с аппаратным рендером через Opengl или Direct2D.
     
  3. nop

    nop

    Регистрация:
    5 дек 2014
    Сообщения:
    2.297
    Забавный движок. Напомнил мне мои поделки в 90-х для Borland C и DOS. Код относительно чистый, но делает немногим больше абстракции фреймбуфера и устройств ввода. Пока, кажется, строго под Windows. Рисует предельно простые 2D спрайты, насколько я понял, без эффектов итд. Квадратно-гнездовыми методами. Использует 3D API для вывод картинок -> input lag и вряд ли есть обещанная совместимость со старыми операционками и терпимая скорость на старом железе.
    Поддержка разных API через форки - немного :facepalm:
     
    Последнее редактирование: 31 окт 2017
  4. Bobbie

    Bobbie

    Регистрация:
    28 ноя 2016
    Сообщения:
    145
    @nop, По поводу фрейм-буфера вы правы. Изначально движок писался для Dingux(Linux для Dingoo A320). Потом решил перенести его на Windows. Для облегчения переноса написал эмулятор фрейм-буфера. Этим объясняются особенности архитектуры движка. Поддержку старого железа реализовать не удалось ибо без тестового железа это затруднительно. На машинах уровня четвертого пентиума будет стабильно выдавать 59 fps. Вопрос. Пригоден ли мой движок для простых любительских игр?
     
  5. nop

    nop

    Регистрация:
    5 дек 2014
    Сообщения:
    2.297
    Вероятно, да, если как-то объяснить жертве, почему ей не подходит SDL :)
    Для самообучения очень интересно, думаю, все это реализовать самому, но я бы посоветовал те вещи, которые возможно, например, загрузку картинок, все же делать через общедоступные библиотеки, например GitHub - nothings/stb: stb single-file public domain libraries for C/C++
    Движок "для себя" норм, но с точки зрения пользователя естественный вопрос, почему он должен ограничиваться столь спартанской функциональностью? Кстати, я не смотрел, звук там есть?
     
  6. Bobbie

    Bobbie

    Регистрация:
    28 ноя 2016
    Сообщения:
    145
    @nop, Есть поддержка вывода звука и проигрывания видеороликов. Работает через DirectShow. По поводу библиотек вы правы, но зависимости бесят.
     
  7. nop

    nop

    Регистрация:
    5 дек 2014
    Сообщения:
    2.297
    Меня тоже, одна из причин, по которым не продвинулся далеко в карьерном росте :) За велосипеды не очень любят платить, даже если мои велосипеды в 5 раз быстрее :)
    --- добавлено 31 окт 2017, предыдущее сообщение размещено: 31 окт 2017 ---
    Я бы посоветовал объединить форки движка в один, пользуясь условной компиляцией. Если, например, появляется возможность запускать один и тот же код на разных операционках и на разных API - уже намного интереснее. ИМХО.
     
  8. Bobbie

    Bobbie

    Регистрация:
    28 ноя 2016
    Сообщения:
    145
    Немного оптимизировал движок и провел тесты. Привожу результаты тестов.
    Тестировал на своем компьютере. Моя конфигурация: процессор Intel Pentium G2020 2.9 гигагерца, видеокарта Asus Geforce 640 GT c 1 гигабайтом видеопамяти.

    Первый тест


    Максимально количество кадров при снятых ограничениях fps.

    Количество кадров на Asus Geforce 640 GT:

    Direct2D - 206
    GDI - 174
    OPENGL - 216

    Количество кадров на встроенном видеоядре:

    Direct2D - 193
    GDI - 166
    OPENGL - 155

    Второй тест

    Загрузка процессора при включенном ограничении в 59 кадров. Этот тест проводился только на Asus Geforce 640 GT. Результаты:

    Direct2D - от 17% до 27%
    GDI - от 18% до 25%
    OPENGL - от 13% до 24%

    Код теста был откомпилирован с отключенными оптимизациями при помощи TDM-GCC. При компиляции в Visual C++ с включенными оптимизациями максимальная нагрузка на процессор снижается еще на 10%.
     
    Последнее редактирование: 4 ноя 2017
  9. Bobbie

    Bobbie

    Регистрация:
    28 ноя 2016
    Сообщения:
    145
    Переделал интерфейс для взаимодействия с системой определения столкновений. Это система стабильна и более не будет меняться.
     
  10. Bobbie

    Bobbie

    Регистрация:
    28 ноя 2016
    Сообщения:
    145
    Важное обновление движка, которое делает его полностью готовым к использованию в реальных проектах.

    • Улучшена мультимедийная подсистема(поддержка звука и видеороликов). Теперь она полностью готова и не будет больше меняться.
    • Закончена доработка подсистемы для работы с геймпадом.
    • Увеличена производительность рендера.

    Так же произведен тест движка на Intel Core 2 Duo 2.4 Ghz 12 летней давности. Движок стабильно держит 59 fps.
     
    Grongy нравится это.
  11. Bobbie

    Bobbie

    Регистрация:
    28 ноя 2016
    Сообщения:
    145
    Выпущены корректирующие релизы движка. Варианты с Opengl и Direct2D рендером полностью готовы. Вариант с софтварным рендером будет адаптирован для работы со старым железом и старыми версиями Windows.
     
    Master of Games нравится это.
  12. Steel Rat Stainless

    Steel Rat

    Регистрация:
    28 дек 2006
    Сообщения:
    3.260
    Что на сцене? Сколько объектов? Насколько тяжёлые не графические операции считаются? Quadtree используешь?
     
  13. Bobbie

    Bobbie

    Регистрация:
    28 ноя 2016
    Сообщения:
    145
    На сцене фон и один спрайт, но и при сотне спрайтов результаты аналогичные. Деревья не использую. Графика выводиться как текстурированный квадрат. Текстура обновляется каждый кадр.
    @Steel Rat, исходники открыты. Могли бы и там посмотреть.
     
  14. Steel Rat Stainless

    Steel Rat

    Регистрация:
    28 дек 2006
    Сообщения:
    3.260
    @Bobbie, меня от чужих исходников уже блевать тянет. =) Проще ж рассказать, чодакак.
    Хороший тест будет при 20000 спрайтах.
     
  15. Bobbie

    Bobbie

    Регистрация:
    28 ноя 2016
    Сообщения:
    145
    @Steel Rat, 20000 спрайтов это избыточное количество. Движок делается для двумерных игр в стиле денди или сеги, а там больше двух десятков спрайтов на одном экране не бывает.
     
  16. Steel Rat Stainless

    Steel Rat

    Регистрация:
    28 дек 2006
    Сообщения:
    3.260
    @Bobbie, ну, при наличии системы частиц вполне запросто. А самому разве не интересно попробовать?
     
  17. Guyver

    Guyver

    Регистрация:
    2 окт 2005
    Сообщения:
    4.959
    @Bobbie, ну не правда ваша. Та же Sega Megadrive умела в 80 спрайтов и этого было мало, поэтому разработчикам всяких Contra Hard Corps, Alien Warrior, Light Crusader и прочих Gunstar Heroes постоянно приходилось всяко хитрить: показывать спрайты через кадр, тратить больше памяти на дополнительные спрайты и всякое такое. Сейчас-то зачем разработчиков такой трататой заставлять заниматься? Пришел к тебе японец danmaku делать, а ему ногой с разворота сразу. Он же обратно в blitz basic уйдет (или что там сейчас модно?)
     
  18. MisterGrim Very old

    MisterGrim

    Legacy

    Регистрация:
    29 ноя 2007
    Сообщения:
    25.423
    Вообще это нормальная практика — проверять любую программу на граничные значения.
    А тут я раз такой — и на нетбуке с Atom N2700 пытаюсь запустить.
     
    Master of Games нравится это.
  19. Bobbie

    Bobbie

    Регистрация:
    28 ноя 2016
    Сообщения:
    145
    @MisterGrim, каковы результаты? Сколько fps?
     
  20. MisterGrim Very old

    MisterGrim

    Legacy

    Регистрация:
    29 ноя 2007
    Сообщения:
    25.423
    @Bobbie, а что конкретно тестировать нужно? В любом движке должен быть .exe с проверкой на прочность. Я много на чём запустить могу.
     
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление